)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e4e6c47c73cae1cb14a0b10a357c2df0ffe78309","unresolved":false,"context_lines":[{"line_number":11,"context_line":"value on the resource."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Also, the PUT and GET API methods have changed a bit for"},{"line_number":14,"context_line":"both resources in this microversion, so the pythong API"},{"line_number":15,"context_line":"bindings and command lines have been adjusted accordingly."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Part of blueprint service-hyper-uuid-in-api"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"ff346bd7_3119f8d6","line":14,"range":{"start_line":14,"start_character":44,"end_line":14,"end_character":51},"updated":"2017-07-24 18:57:28.000000000","message":"ha, *python*","commit_id":"6f3ec32feaa9f1085f6c7fa68e9da310fabbba23"}],"novaclient/tests/functional/v2/legacy/test_hypervisors.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"5d200d2ba0895f2f31e439924820abf2bc8f69d1","unresolved":false,"context_lines":[{"line_number":28,"context_line":"            self.assertIsInstance(hypervisor.cpu_info, cpu_info_type)"},{"line_number":29,"context_line":"            if uuid_as_id:"},{"line_number":30,"context_line":"                # microversion \u003e\u003d 2.53 returns a uuid for the id"},{"line_number":31,"context_line":"                self.assertFalse(utils.is_integer_like(hypervisor.id),"},{"line_number":32,"context_line":"                                 \u0027Expected hypervisor.id to be a UUID.\u0027)"},{"line_number":33,"context_line":"                self.assertFalse("},{"line_number":34,"context_line":"                    utils.is_integer_like(hypervisor.service[\u0027id\u0027]),"}],"source_content_type":"text/x-python","patch_set":6,"id":"ff346bd7_88994bc5","line":31,"range":{"start_line":31,"start_character":33,"end_line":31,"end_character":54},"updated":"2017-07-26 15:13:17.000000000","message":"we could potentially have coerced the ID to be an UUID by adding a new helper method like utils.is_uuid_like() instead of just verifying the negative assertion but looks something possibly a follow-up.","commit_id":"5745beae5c456aafef82ab7af94b452875409760"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c75ebb9687129c4c07dcd2c2f28e07f8d5243146","unresolved":false,"context_lines":[{"line_number":28,"context_line":"            self.assertIsInstance(hypervisor.cpu_info, cpu_info_type)"},{"line_number":29,"context_line":"            if uuid_as_id:"},{"line_number":30,"context_line":"                # microversion \u003e\u003d 2.53 returns a uuid for the id"},{"line_number":31,"context_line":"                self.assertFalse(utils.is_integer_like(hypervisor.id),"},{"line_number":32,"context_line":"                                 \u0027Expected hypervisor.id to be a UUID.\u0027)"},{"line_number":33,"context_line":"                self.assertFalse("},{"line_number":34,"context_line":"                    utils.is_integer_like(hypervisor.service[\u0027id\u0027]),"}],"source_content_type":"text/x-python","patch_set":6,"id":"ff346bd7_b1ad9a9c","line":31,"range":{"start_line":31,"start_character":33,"end_line":31,"end_character":54},"in_reply_to":"ff346bd7_88994bc5","updated":"2017-07-26 15:45:25.000000000","message":"oslo_utils.uuidutils.is_uuid_like would do that but I\u0027ve been told it\u0027s not fail safe, so I didn\u0027t use it here since we can be pretty sure about the int-like case.","commit_id":"5745beae5c456aafef82ab7af94b452875409760"}],"novaclient/tests/functional/v2/test_hypervisors.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"62f105b5c943c00f989165c9a2bc19ce199bcdb0","unresolved":false,"context_lines":[{"line_number":21,"context_line":"        self._test_list(dict)"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class TestHypervisorsV2_53(TestHypervisorsV28):"},{"line_number":25,"context_line":"    COMPUTE_API_VERSION \u003d \"2.53\""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    def test_list(self):"}],"source_content_type":"text/x-python","patch_set":6,"id":"ff346bd7_a83d2fde","line":24,"updated":"2017-07-26 14:36:39.000000000","message":"It would be great we can have better coverage for this later.","commit_id":"5745beae5c456aafef82ab7af94b452875409760"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6512a7b4ac3932886b3bbc7a05f7b5e1ac6f085a","unresolved":false,"context_lines":[{"line_number":21,"context_line":"        self._test_list(dict)"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class TestHypervisorsV2_53(TestHypervisorsV28):"},{"line_number":25,"context_line":"    COMPUTE_API_VERSION \u003d \"2.53\""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    def test_list(self):"}],"source_content_type":"text/x-python","patch_set":6,"id":"ff346bd7_4ba91d22","line":24,"in_reply_to":"ff346bd7_a83d2fde","updated":"2017-07-26 14:59:05.000000000","message":"Yeah, I agree. I ran out of steam on this change with everything else that was required to do this, so I did the functional tests last and made minimal effort on the hypervisors functional tests. I could follow up with better functional testing of the hypervisors CLIs later.","commit_id":"5745beae5c456aafef82ab7af94b452875409760"}],"novaclient/tests/functional/v2/test_os_services.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"5d200d2ba0895f2f31e439924820abf2bc8f69d1","unresolved":false,"context_lines":[{"line_number":46,"context_line":"            self.assertEqual(\u0027False\u0027, status)"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"class TestOsServicesNovaClientV2_53(base.ClientTestBase):"},{"line_number":50,"context_line":"    \"\"\"Tests the nova service-* commands using the 2.53 microversion."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    The main difference with the 2.53 microversion in these commands is"}],"source_content_type":"text/x-python","patch_set":6,"id":"ff346bd7_8896eb4b","line":49,"range":{"start_line":49,"start_character":36,"end_line":49,"end_character":56},"updated":"2017-07-26 15:13:17.000000000","message":"any reason why you\u0027re not inheriting from test_os_services.TestOsServicesNovaClient ? Looks like you\u0027re overriding all the already existing test methods and just add a new test method.","commit_id":"5745beae5c456aafef82ab7af94b452875409760"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c75ebb9687129c4c07dcd2c2f28e07f8d5243146","unresolved":false,"context_lines":[{"line_number":46,"context_line":"            self.assertEqual(\u0027False\u0027, status)"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"class TestOsServicesNovaClientV2_53(base.ClientTestBase):"},{"line_number":50,"context_line":"    \"\"\"Tests the nova service-* commands using the 2.53 microversion."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    The main difference with the 2.53 microversion in these commands is"}],"source_content_type":"text/x-python","patch_set":6,"id":"ff346bd7_b19b5a64","line":49,"range":{"start_line":49,"start_character":36,"end_line":49,"end_character":56},"in_reply_to":"ff346bd7_8896eb4b","updated":"2017-07-26 15:45:25.000000000","message":"No real reason, just figured it didn\u0027t matter to extend TestOsServicesNovaClientV211 since we don\u0027t need anything from it and all of the tests had to be changed anyway.","commit_id":"5745beae5c456aafef82ab7af94b452875409760"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"5d200d2ba0895f2f31e439924820abf2bc8f69d1","unresolved":false,"context_lines":[{"line_number":61,"context_line":"            self.assertIn(serv.binary, table)"},{"line_number":62,"context_line":"            # the id should not be an integer and should be in the table"},{"line_number":63,"context_line":"            self.assertFalse(utils.is_integer_like(serv.id))"},{"line_number":64,"context_line":"            self.assertIn(serv.id, table)"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    def test_os_service_disable_enable(self):"},{"line_number":67,"context_line":"        # Disable and enable Nova services in accordance with list of nova"}],"source_content_type":"text/x-python","patch_set":6,"id":"ff346bd7_88fa6bba","line":64,"updated":"2017-07-26 15:13:17.000000000","message":"nit: you could potentially have followed the same logic you wrote for os-hypervisors functional testing by having the legacy test_os_services_list method() be calling a private method supporting both legacy and new behaviour so here you would just call it instead of duplicating the test.","commit_id":"5745beae5c456aafef82ab7af94b452875409760"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c75ebb9687129c4c07dcd2c2f28e07f8d5243146","unresolved":false,"context_lines":[{"line_number":61,"context_line":"            self.assertIn(serv.binary, table)"},{"line_number":62,"context_line":"            # the id should not be an integer and should be in the table"},{"line_number":63,"context_line":"            self.assertFalse(utils.is_integer_like(serv.id))"},{"line_number":64,"context_line":"            self.assertIn(serv.id, table)"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    def test_os_service_disable_enable(self):"},{"line_number":67,"context_line":"        # Disable and enable Nova services in accordance with list of nova"}],"source_content_type":"text/x-python","patch_set":6,"id":"ff346bd7_d1affe7a","line":64,"in_reply_to":"ff346bd7_88fa6bba","updated":"2017-07-26 15:45:25.000000000","message":"The difference was I wrote this before I worked on that, and that was already written so I just had to tweak it.","commit_id":"5745beae5c456aafef82ab7af94b452875409760"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"5d200d2ba0895f2f31e439924820abf2bc8f69d1","unresolved":false,"context_lines":[{"line_number":93,"context_line":"            self.assertEqual(serv.id, service_id)"},{"line_number":94,"context_line":"            status \u003d self._get_column_value_from_single_row_table("},{"line_number":95,"context_line":"                service, \u0027Status\u0027)"},{"line_number":96,"context_line":"            self.assertEqual(\u0027enabled\u0027, status)"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    def test_os_service_disable_log_reason(self):"},{"line_number":99,"context_line":"        for serv in self.client.services.list():"}],"source_content_type":"text/x-python","patch_set":6,"id":"ff346bd7_cb6d0dcd","line":96,"updated":"2017-07-26 15:13:17.000000000","message":"again, I\u0027ve taken some time to compare the two test methods (between the legacy test method and this one), probably a proxy pattern would have be nice for us :-)","commit_id":"5745beae5c456aafef82ab7af94b452875409760"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c75ebb9687129c4c07dcd2c2f28e07f8d5243146","unresolved":false,"context_lines":[{"line_number":93,"context_line":"            self.assertEqual(serv.id, service_id)"},{"line_number":94,"context_line":"            status \u003d self._get_column_value_from_single_row_table("},{"line_number":95,"context_line":"                service, \u0027Status\u0027)"},{"line_number":96,"context_line":"            self.assertEqual(\u0027enabled\u0027, status)"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    def test_os_service_disable_log_reason(self):"},{"line_number":99,"context_line":"        for serv in self.client.services.list():"}],"source_content_type":"text/x-python","patch_set":6,"id":"ff346bd7_91d296ff","line":96,"in_reply_to":"ff346bd7_cb6d0dcd","updated":"2017-07-26 15:45:25.000000000","message":"Sure, cleanups welcome to remove duplicate logic, I just had a large change already to get done in a week so I was working more against time than making this pretty.","commit_id":"5745beae5c456aafef82ab7af94b452875409760"}],"novaclient/tests/unit/fixture_data/hypervisors.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"5d200d2ba0895f2f31e439924820abf2bc8f69d1","unresolved":false,"context_lines":[{"line_number":202,"context_line":"class V2_53(V1):"},{"line_number":203,"context_line":"    \"\"\"Fixture data for the os-hypervisors 2.53 API.\"\"\""},{"line_number":204,"context_line":"    api_version \u003d \u00272.53\u0027"},{"line_number":205,"context_line":"    hyper_id_1 \u003d \u0027d480b1b6-2255-43c2-b2c2-d60d42c2c074\u0027"},{"line_number":206,"context_line":"    hyper_id_2 \u003d \u002743a8214d-f36a-4fc0-a25c-3cf35c17522d\u0027"},{"line_number":207,"context_line":"    service_id_1 \u003d \u0027a87743ff-9c29-42ff-805d-2444659b5fc0\u0027"},{"line_number":208,"context_line":"    service_id_2 \u003d \u00270486ab8b-1cfc-4ccb-9d94-9f22ec8bbd6b\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"ff346bd7_2b549920","line":205,"updated":"2017-07-26 15:13:17.000000000","message":"nit: you could just have generated fake UUIDs","commit_id":"5745beae5c456aafef82ab7af94b452875409760"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c75ebb9687129c4c07dcd2c2f28e07f8d5243146","unresolved":false,"context_lines":[{"line_number":202,"context_line":"class V2_53(V1):"},{"line_number":203,"context_line":"    \"\"\"Fixture data for the os-hypervisors 2.53 API.\"\"\""},{"line_number":204,"context_line":"    api_version \u003d \u00272.53\u0027"},{"line_number":205,"context_line":"    hyper_id_1 \u003d \u0027d480b1b6-2255-43c2-b2c2-d60d42c2c074\u0027"},{"line_number":206,"context_line":"    hyper_id_2 \u003d \u002743a8214d-f36a-4fc0-a25c-3cf35c17522d\u0027"},{"line_number":207,"context_line":"    service_id_1 \u003d \u0027a87743ff-9c29-42ff-805d-2444659b5fc0\u0027"},{"line_number":208,"context_line":"    service_id_2 \u003d \u00270486ab8b-1cfc-4ccb-9d94-9f22ec8bbd6b\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"ff346bd7_713df229","line":205,"in_reply_to":"ff346bd7_2b549920","updated":"2017-07-26 15:45:25.000000000","message":"I started with that but then thought I might need to have hard-coded UUIDs for some of the tests, like how the fakes stuff works elsewhere for services.","commit_id":"5745beae5c456aafef82ab7af94b452875409760"}],"novaclient/tests/unit/v2/test_shell.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"be58dcb44b4c927f35a880c8fa12470bee8c6a64","unresolved":false,"context_lines":[{"line_number":2306,"context_line":""},{"line_number":2307,"context_line":"    def test_services_delete_v2_53(self):"},{"line_number":2308,"context_line":"        \"\"\"Tests nova service-delete at the 2.53 microversion.\"\"\""},{"line_number":2309,"context_line":"        pass"},{"line_number":2310,"context_line":""},{"line_number":2311,"context_line":"    def test_host_list(self):"},{"line_number":2312,"context_line":"        _, err \u003d self.run_command(\u0027host-list\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"ff346bd7_4fd6d0c5","line":2309,"updated":"2017-07-26 11:49:12.000000000","message":"why we passed this?","commit_id":"6f3ec32feaa9f1085f6c7fa68e9da310fabbba23"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3720cbfc4e87fffc3a7cf7873314380051dbcf87","unresolved":false,"context_lines":[{"line_number":2306,"context_line":""},{"line_number":2307,"context_line":"    def test_services_delete_v2_53(self):"},{"line_number":2308,"context_line":"        \"\"\"Tests nova service-delete at the 2.53 microversion.\"\"\""},{"line_number":2309,"context_line":"        pass"},{"line_number":2310,"context_line":""},{"line_number":2311,"context_line":"    def test_host_list(self):"},{"line_number":2312,"context_line":"        _, err \u003d self.run_command(\u0027host-list\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"ff346bd7_c0028d09","line":2309,"in_reply_to":"ff346bd7_4fd6d0c5","updated":"2017-07-26 12:57:37.000000000","message":"Because it was a placeholder and I forgot to implement it. :)","commit_id":"6f3ec32feaa9f1085f6c7fa68e9da310fabbba23"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"62f105b5c943c00f989165c9a2bc19ce199bcdb0","unresolved":false,"context_lines":[{"line_number":2457,"context_line":"        self.assert_called(\u0027POST\u0027,"},{"line_number":2458,"context_line":"                           \u0027/servers/uuid4/action\u0027, {\u0027migrate\u0027: None}, pos\u003d4)"},{"line_number":2459,"context_line":""},{"line_number":2460,"context_line":"    def test_hypervisor_list(self):"},{"line_number":2461,"context_line":"        self.run_command(\u0027hypervisor-list\u0027)"},{"line_number":2462,"context_line":"        self.assert_called(\u0027GET\u0027, \u0027/os-hypervisors\u0027)"},{"line_number":2463,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"ff346bd7_8b3dc5c5","line":2460,"updated":"2017-07-26 14:36:39.000000000","message":"The hypervisor cli doesn\u0027t change anything, only the sdk part changed. So test_hypervisors should cover all the cases. So I\u0027m ok to not test at here.","commit_id":"5745beae5c456aafef82ab7af94b452875409760"}],"novaclient/v2/hypervisors.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"5d200d2ba0895f2f31e439924820abf2bc8f69d1","unresolved":false,"context_lines":[{"line_number":60,"context_line":"        Get a list of hypervisors."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        :param marker: Begin returning hypervisor that appear later in the"},{"line_number":63,"context_line":"                       keypair list than that represented by this keypair name"},{"line_number":64,"context_line":"                       (optional)."},{"line_number":65,"context_line":"        :param limit: maximum number of keypairs to return (optional)."},{"line_number":66,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"ff346bd7_169d7cbb","side":"PARENT","line":63,"range":{"start_line":63,"start_character":23,"end_line":63,"end_character":30},"updated":"2017-07-26 15:13:17.000000000","message":"heh fun copy/paste","commit_id":"ed058c46a1b016e53cf8312a69e13a0bc832dc2a"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"5d200d2ba0895f2f31e439924820abf2bc8f69d1","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        :param marker: Begin returning hypervisors that appear later in the"},{"line_number":66,"context_line":"                       hypervisors list than that represented by this"},{"line_number":67,"context_line":"                       hypervisor ID. Starting with microversion 2.53 the"},{"line_number":68,"context_line":"                       marker must be a UUID hypervisor ID."},{"line_number":69,"context_line":"                       (optional)."},{"line_number":70,"context_line":"        :param limit: maximum number of hypervisors to return (optional)."},{"line_number":71,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"ff346bd7_368c007e","line":68,"range":{"start_line":68,"start_character":40,"end_line":68,"end_character":59},"updated":"2017-07-26 15:13:17.000000000","message":"nit: \"must be a UUID corresponding to an hypervisor ID\" ?","commit_id":"5745beae5c456aafef82ab7af94b452875409760"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c75ebb9687129c4c07dcd2c2f28e07f8d5243146","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        :param marker: Begin returning hypervisors that appear later in the"},{"line_number":66,"context_line":"                       hypervisors list than that represented by this"},{"line_number":67,"context_line":"                       hypervisor ID. Starting with microversion 2.53 the"},{"line_number":68,"context_line":"                       marker must be a UUID hypervisor ID."},{"line_number":69,"context_line":"                       (optional)."},{"line_number":70,"context_line":"        :param limit: maximum number of hypervisors to return (optional)."},{"line_number":71,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"ff346bd7_912976e7","line":68,"range":{"start_line":68,"start_character":40,"end_line":68,"end_character":59},"in_reply_to":"ff346bd7_368c007e","updated":"2017-07-26 15:45:25.000000000","message":"That doesn\u0027t make this more clear to me.","commit_id":"5745beae5c456aafef82ab7af94b452875409760"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"5d200d2ba0895f2f31e439924820abf2bc8f69d1","unresolved":false,"context_lines":[{"line_number":67,"context_line":"                       hypervisor ID. Starting with microversion 2.53 the"},{"line_number":68,"context_line":"                       marker must be a UUID hypervisor ID."},{"line_number":69,"context_line":"                       (optional)."},{"line_number":70,"context_line":"        :param limit: maximum number of hypervisors to return (optional)."},{"line_number":71,"context_line":"        \"\"\""},{"line_number":72,"context_line":"        return self._list_base(detailed\u003ddetailed, marker\u003dmarker, limit\u003dlimit)"},{"line_number":73,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"ff346bd7_56b66440","line":70,"updated":"2017-07-26 15:13:17.000000000","message":"thanks for changing that, even if that\u0027s in the same change","commit_id":"5745beae5c456aafef82ab7af94b452875409760"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"5d200d2ba0895f2f31e439924820abf2bc8f69d1","unresolved":false,"context_lines":[{"line_number":99,"context_line":"        Get a specific hypervisor."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        :param hypervisor: Either a Hypervisor object or an ID. Starting with"},{"line_number":102,"context_line":"            microversion 2.53 the ID must be a UUID value."},{"line_number":103,"context_line":"        \"\"\""},{"line_number":104,"context_line":"        return self._get(\"/os-hypervisors/%s\" % base.getid(hypervisor),"},{"line_number":105,"context_line":"                         \"hypervisor\")"}],"source_content_type":"text/x-python","patch_set":6,"id":"ff346bd7_f67c3884","line":102,"updated":"2017-07-26 15:13:17.000000000","message":"that works because hypervisor.id becomes an UUID after microversion 2.53","commit_id":"5745beae5c456aafef82ab7af94b452875409760"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c75ebb9687129c4c07dcd2c2f28e07f8d5243146","unresolved":false,"context_lines":[{"line_number":99,"context_line":"        Get a specific hypervisor."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        :param hypervisor: Either a Hypervisor object or an ID. Starting with"},{"line_number":102,"context_line":"            microversion 2.53 the ID must be a UUID value."},{"line_number":103,"context_line":"        \"\"\""},{"line_number":104,"context_line":"        return self._get(\"/os-hypervisors/%s\" % base.getid(hypervisor),"},{"line_number":105,"context_line":"                         \"hypervisor\")"}],"source_content_type":"text/x-python","patch_set":6,"id":"ff346bd7_117b46f5","line":102,"in_reply_to":"ff346bd7_f67c3884","updated":"2017-07-26 15:45:25.000000000","message":"yup","commit_id":"5745beae5c456aafef82ab7af94b452875409760"}],"novaclient/v2/services.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"5d200d2ba0895f2f31e439924820abf2bc8f69d1","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        # name, otherwise use the UUID ID."},{"line_number":30,"context_line":"        if utils.is_integer_like(self.id):"},{"line_number":31,"context_line":"            return \"\u003cService: %s\u003e\" % self.binary"},{"line_number":32,"context_line":"        return \"\u003cService: %s\u003e\" % self.id"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def _add_details(self, info):"},{"line_number":35,"context_line":"        dico \u003d \u0027resource\u0027 in info and info[\u0027resource\u0027] or info"}],"source_content_type":"text/x-python","patch_set":6,"id":"ff346bd7_d63ed489","line":32,"updated":"2017-07-26 15:13:17.000000000","message":"that\u0027s not consistent, right?\nI mean, we\u0027re leaking the API microversion by having two different strings: \n* if \u003c2.53: \"Service foo\"\n* if \u003e\u003d2.52: \"Service aaad-bbbb-\u003c...\u003e\" \n\nright?\n\nI thought we were preferring to return the same representation for an object ?","commit_id":"5745beae5c456aafef82ab7af94b452875409760"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"410d9a9c2ac580facf35400cc49e56ab3715ebe5","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        # name, otherwise use the UUID ID."},{"line_number":30,"context_line":"        if utils.is_integer_like(self.id):"},{"line_number":31,"context_line":"            return \"\u003cService: %s\u003e\" % self.binary"},{"line_number":32,"context_line":"        return \"\u003cService: %s\u003e\" % self.id"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def _add_details(self, info):"},{"line_number":35,"context_line":"        dico \u003d \u0027resource\u0027 in info and info[\u0027resource\u0027] or info"}],"source_content_type":"text/x-python","patch_set":6,"id":"ff346bd7_bc9b3164","line":32,"in_reply_to":"ff346bd7_b15eba73","updated":"2017-07-26 16:01:52.000000000","message":"yeah, just changing it to self.id is cool with me. Anyway, looks like a follow-up change.","commit_id":"5745beae5c456aafef82ab7af94b452875409760"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"315212574f90ab1246aeaa45131749234a7b61c7","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        # name, otherwise use the UUID ID."},{"line_number":30,"context_line":"        if utils.is_integer_like(self.id):"},{"line_number":31,"context_line":"            return \"\u003cService: %s\u003e\" % self.binary"},{"line_number":32,"context_line":"        return \"\u003cService: %s\u003e\" % self.id"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def _add_details(self, info):"},{"line_number":35,"context_line":"        dico \u003d \u0027resource\u0027 in info and info[\u0027resource\u0027] or info"}],"source_content_type":"text/x-python","patch_set":6,"id":"ff346bd7_bcba116b","line":32,"in_reply_to":"ff346bd7_bc9b3164","updated":"2017-07-26 16:07:49.000000000","message":"I\u0027ll do it in a follow up.","commit_id":"5745beae5c456aafef82ab7af94b452875409760"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c75ebb9687129c4c07dcd2c2f28e07f8d5243146","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        # name, otherwise use the UUID ID."},{"line_number":30,"context_line":"        if utils.is_integer_like(self.id):"},{"line_number":31,"context_line":"            return \"\u003cService: %s\u003e\" % self.binary"},{"line_number":32,"context_line":"        return \"\u003cService: %s\u003e\" % self.id"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def _add_details(self, info):"},{"line_number":35,"context_line":"        dico \u003d \u0027resource\u0027 in info and info[\u0027resource\u0027] or info"}],"source_content_type":"text/x-python","patch_set":6,"id":"ff346bd7_b15eba73","line":32,"in_reply_to":"ff346bd7_d63ed489","updated":"2017-07-26 15:45:25.000000000","message":"I don\u0027t know how much this matters. I could change it back, but self.binary is not unique since you could have multiple \u0027nova-compute\u0027 service binaries, so if anything, I\u0027d just change this to self.id like the Hypervisor object and be done with it.","commit_id":"5745beae5c456aafef82ab7af94b452875409760"}],"releasenotes/notes/microversion-v2_53-3463b546a38c5f84.yaml":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"5d200d2ba0895f2f31e439924820abf2bc8f69d1","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    - The ``nova hypervisor-show`` and ``nova hypervisor-uptime`` commands and"},{"line_number":33,"context_line":"      APIs now take a UUID value for the hypervisor ID."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    .. _microversion 2.53: https://docs.openstack.org/nova/latest/api_microversion_history.html#id48"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"ff346bd7_f6d9d856","line":35,"updated":"2017-07-26 15:13:17.000000000","message":"should we also mention it\u0027s no longer possible to disable a non-compute service given it\u0027s meaningless for nova ?","commit_id":"5745beae5c456aafef82ab7af94b452875409760"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"410d9a9c2ac580facf35400cc49e56ab3715ebe5","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    - The ``nova hypervisor-show`` and ``nova hypervisor-uptime`` commands and"},{"line_number":33,"context_line":"      APIs now take a UUID value for the hypervisor ID."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    .. _microversion 2.53: https://docs.openstack.org/nova/latest/api_microversion_history.html#id48"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"ff346bd7_bcad719c","line":35,"in_reply_to":"ff346bd7_71b0528b","updated":"2017-07-26 16:01:52.000000000","message":"Well, you\u0027re right, it\u0027s a Nova API discussion, not a novaclient one.","commit_id":"5745beae5c456aafef82ab7af94b452875409760"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c75ebb9687129c4c07dcd2c2f28e07f8d5243146","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    - The ``nova hypervisor-show`` and ``nova hypervisor-uptime`` commands and"},{"line_number":33,"context_line":"      APIs now take a UUID value for the hypervisor ID."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    .. _microversion 2.53: https://docs.openstack.org/nova/latest/api_microversion_history.html#id48"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"ff346bd7_71b0528b","line":35,"in_reply_to":"ff346bd7_f6d9d856","updated":"2017-07-26 15:45:25.000000000","message":"That\u0027s totally dependent on the version of the server. It doesn\u0027t depend on the microversion. So if you\u0027re talking to an Ocata server, it\u0027s not a problem, but if you\u0027re talking to a Pike server, then it\u0027s a problem. That\u0027s why we deprecated the binary argument to the service CLIs:\n\nIdd0d2be960ca0ed59097c10c931da47a1a3e66fb\n\nBecause the end user shouldn\u0027t know which version of the server they are talking to, and this problem isn\u0027t dependent on microversion, it\u0027s dependent on the version of the server code.","commit_id":"5745beae5c456aafef82ab7af94b452875409760"}]}
