)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"d70786a678eeeff27e416f9829c049ecc056cda7","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"functional: Make \u0027_IntegratedTestBase\u0027 subclass \u0027InstanceHelperMixin\u0027"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This means we can drop many duplicate implementations of things."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I0d21cb94c932e6e556eca964c57868c705b2d120"},{"line_number":12,"context_line":"Signed-off-by: Stephen Finucane \u003csfinucan@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"3fa7e38b_7e102e50","line":9,"range":{"start_line":9,"start_character":18,"end_line":9,"end_character":37},"updated":"2019-12-05 18:30:51.000000000","message":"Can we please enumerate them in the commit message? That\u0027ll make it a lot easier for future me to find \"the patch that removed\" a thing.\n\nAFAICT it\u0027s like this:\n- _wait_for_server_parameter and _wait_until_deleted were identical, so the override is dropped.\n- _build_minimal_create_server_request and _wait_for_state_change differ slightly in params, so the override is preserved as a thin shim.\n\nBut see inline for a way to get rid of the latter.","commit_id":"0572e2eb57b2b3cea6138d0aaed80c865e744d4c"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"af05bbcf4e4b09c7dc8aa679a9facf79d1226bb2","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"functional: Make \u0027_IntegratedTestBase\u0027 subclass \u0027InstanceHelperMixin\u0027"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This means we can drop many duplicate implementations of things."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I0d21cb94c932e6e556eca964c57868c705b2d120"},{"line_number":12,"context_line":"Signed-off-by: Stephen Finucane \u003csfinucan@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"3fa7e38b_9ef3aae7","line":9,"range":{"start_line":9,"start_character":18,"end_line":9,"end_character":37},"in_reply_to":"3fa7e38b_7e102e50","updated":"2019-12-05 18:34:04.000000000","message":"\u003e - _build_minimal_create_server_request\n\nLooks like you consolidated these further up the series.","commit_id":"0572e2eb57b2b3cea6138d0aaed80c865e744d4c"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ae8fe6e3136a4c39b0e264c2e2643df977cd0db1","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"functional: Make \u0027_IntegratedTestBase\u0027 subclass \u0027InstanceHelperMixin\u0027"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This means we can drop many duplicate implementations of things."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I0d21cb94c932e6e556eca964c57868c705b2d120"},{"line_number":12,"context_line":"Signed-off-by: Stephen Finucane \u003csfinucan@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"3fa7e38b_bbfea935","line":9,"range":{"start_line":9,"start_character":18,"end_line":9,"end_character":37},"in_reply_to":"3fa7e38b_9ef3aae7","updated":"2019-12-06 15:39:55.000000000","message":"Done","commit_id":"0572e2eb57b2b3cea6138d0aaed80c865e744d4c"}],"nova/tests/functional/api_sample_tests/api_sample_base.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"8f3cc4364209c426b50d03e685b94453bf706bcb","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"class ApiSampleTestBaseV21(testscenarios.WithScenarios,"},{"line_number":56,"context_line":"                           api_samples_test_base.ApiSampleTestBase):"},{"line_number":57,"context_line":"    SUPPORTS_CELLS \u003d False"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    api_major_version \u003d \u0027v2\u0027"}],"source_content_type":"text/x-python","patch_set":11,"id":"3fa7e38b_a6120dfc","line":56,"updated":"2019-12-06 18:32:33.000000000","message":"pre-commit?","commit_id":"d05fd530c7b060b87a8be30745aa37221c38744e"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f903ff7f7c4a28482cb42345493371561344b936","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"class ApiSampleTestBaseV21(testscenarios.WithScenarios,"},{"line_number":56,"context_line":"                           api_samples_test_base.ApiSampleTestBase):"},{"line_number":57,"context_line":"    SUPPORTS_CELLS \u003d False"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    api_major_version \u003d \u0027v2\u0027"}],"source_content_type":"text/x-python","patch_set":11,"id":"3fa7e38b_d4fc480d","line":56,"in_reply_to":"3fa7e38b_a6120dfc","updated":"2020-01-09 12:42:51.000000000","message":"missing flake check? :)","commit_id":"d05fd530c7b060b87a8be30745aa37221c38744e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1e09089b29426275c0117a33f7921cf9623013d7","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"class ApiSampleTestBaseV21(testscenarios.WithScenarios,"},{"line_number":56,"context_line":"                           api_samples_test_base.ApiSampleTestBase):"},{"line_number":57,"context_line":"    SUPPORTS_CELLS \u003d False"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    api_major_version \u003d \u0027v2\u0027"}],"source_content_type":"text/x-python","patch_set":11,"id":"3fa7e38b_36380b3b","line":56,"in_reply_to":"3fa7e38b_d4fc480d","updated":"2020-01-14 11:20:50.000000000","message":"\u003e missing flake check? :)\n\n^ this :)","commit_id":"d05fd530c7b060b87a8be30745aa37221c38744e"}],"nova/tests/functional/db/test_virtual_interface.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"8f3cc4364209c426b50d03e685b94453bf706bcb","unresolved":false,"context_lines":[{"line_number":54,"context_line":"    return cached_vif_ids \u003d\u003d db_vif_ids"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"class VirtualInterfaceListMigrationTestCase("},{"line_number":58,"context_line":"        integrated_helpers._IntegratedTestBase):"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    ADMIN_API \u003d True"}],"source_content_type":"text/x-python","patch_set":11,"id":"3fa7e38b_c6e4e910","line":57,"updated":"2019-12-06 18:32:33.000000000","message":"this could be joined","commit_id":"d05fd530c7b060b87a8be30745aa37221c38744e"}],"nova/tests/functional/integrated_helpers.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"d70786a678eeeff27e416f9829c049ecc056cda7","unresolved":false,"context_lines":[{"line_number":324,"context_line":"                                             az\u003dNone, host\u003dNone):"},{"line_number":325,"context_line":"        return super(_IntegratedTestBase,"},{"line_number":326,"context_line":"                     self)._build_minimal_create_server_request("},{"line_number":327,"context_line":"            self.api, name, image_uuid, flavor_id, networks, az, host)"},{"line_number":328,"context_line":""},{"line_number":329,"context_line":"    def _create_flavor_body(self, name, ram, vcpus, disk, ephemeral, id, swap,"},{"line_number":330,"context_line":"                            rxtx_factor, is_public):"}],"source_content_type":"text/x-python","patch_set":10,"id":"3fa7e38b_1e79fa91","line":327,"updated":"2019-12-05 18:30:51.000000000","message":"prefer naming kwargs\n\nThat said, can\u0027t we find a way to get rid of this override, since it doesn\u0027t add value? If we can\u0027t find a way to make the setup of self.api happen in the superclass, perhaps make the superclass impl do something like:\n\n def _build_...(self, api\u003dNone, ...):\n     # NOTE(stephenfin): Subclasses may define a self.api\n     api \u003d api or getattr(self, \u0027api\u0027)\n     if not api:\n         raise ValueError(\"Programmer error: No api in test\")\n     ...\n\nIt\u0027s not beautiful, but IMO it\u0027s the lesser evil when compared to this shim.","commit_id":"0572e2eb57b2b3cea6138d0aaed80c865e744d4c"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ae8fe6e3136a4c39b0e264c2e2643df977cd0db1","unresolved":false,"context_lines":[{"line_number":324,"context_line":"                                             az\u003dNone, host\u003dNone):"},{"line_number":325,"context_line":"        return super(_IntegratedTestBase,"},{"line_number":326,"context_line":"                     self)._build_minimal_create_server_request("},{"line_number":327,"context_line":"            self.api, name, image_uuid, flavor_id, networks, az, host)"},{"line_number":328,"context_line":""},{"line_number":329,"context_line":"    def _create_flavor_body(self, name, ram, vcpus, disk, ephemeral, id, swap,"},{"line_number":330,"context_line":"                            rxtx_factor, is_public):"}],"source_content_type":"text/x-python","patch_set":10,"id":"3fa7e38b_6c53a13b","line":327,"in_reply_to":"3fa7e38b_1e79fa91","updated":"2019-12-06 15:39:55.000000000","message":"Done (via a precursor patch)","commit_id":"0572e2eb57b2b3cea6138d0aaed80c865e744d4c"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"8f3cc4364209c426b50d03e685b94453bf706bcb","unresolved":false,"context_lines":[{"line_number":319,"context_line":"         flavor_ids.append(flavor[\u0027id\u0027]))"},{"line_number":320,"context_line":"         for flavor in flavors]"},{"line_number":321,"context_line":"        return (generate_new_element(flavor_names, \u0027flavor\u0027),"},{"line_number":322,"context_line":"                int(generate_new_element(flavor_ids, \u0027\u0027, True)))"},{"line_number":323,"context_line":""},{"line_number":324,"context_line":"    def _create_flavor_body(self, name, ram, vcpus, disk, ephemeral, id, swap,"},{"line_number":325,"context_line":"                            rxtx_factor, is_public):"}],"source_content_type":"text/x-python","patch_set":11,"id":"3fa7e38b_66bf35d0","line":322,"updated":"2019-12-06 18:32:33.000000000","message":"woot","commit_id":"d05fd530c7b060b87a8be30745aa37221c38744e"}],"nova/tests/functional/test_aggregates.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"8f3cc4364209c426b50d03e685b94453bf706bcb","unresolved":false,"context_lines":[{"line_number":838,"context_line":""},{"line_number":839,"context_line":""},{"line_number":840,"context_line":"class TestAggregateMultiTenancyIsolationFilter("},{"line_number":841,"context_line":"        test.TestCase, integrated_helpers.InstanceHelperMixin):"},{"line_number":842,"context_line":""},{"line_number":843,"context_line":"    def _start_compute(self, host):"},{"line_number":844,"context_line":"        self.start_service(\u0027compute\u0027, host\u003dhost)"}],"source_content_type":"text/x-python","patch_set":11,"id":"3fa7e38b_26b5bded","line":841,"updated":"2019-12-06 18:32:33.000000000","message":"unrelated","commit_id":"d05fd530c7b060b87a8be30745aa37221c38744e"}],"nova/tests/functional/test_boot_from_volume.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"8f3cc4364209c426b50d03e685b94453bf706bcb","unresolved":false,"context_lines":[{"line_number":117,"context_line":"        # Shelve"},{"line_number":118,"context_line":"        post_data \u003d {\u0027shelve\u0027: None}"},{"line_number":119,"context_line":"        self.api.post_server_action(server_id, post_data)"},{"line_number":120,"context_line":"        self._wait_for_state_change(created_server, \u0027SHELVED_OFFLOADED\u0027)"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"        # Check that hypervisor local disk reporting is still 0"},{"line_number":123,"context_line":"        self._verify_zero_local_gb_used()"}],"source_content_type":"text/x-python","patch_set":11,"id":"3fa7e38b_c6cdc986","line":120,"updated":"2019-12-06 18:32:33.000000000","message":"and this","commit_id":"d05fd530c7b060b87a8be30745aa37221c38744e"}],"nova/tests/functional/test_servers.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"0058382371d75aef84f4f2b85a21e1e659089d41","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        self.computes \u003d {}"},{"line_number":75,"context_line":"        super(ServersTestBase, self).setUp()"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def _wait_for_state_change(self, server, expected_status):"},{"line_number":78,"context_line":"        return super(ServersTestBase, self)._wait_for_state_change("},{"line_number":79,"context_line":"            self.api, server, expected_status)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    def _delete_server(self, server):"},{"line_number":82,"context_line":"        # Delete the server"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_3c9093ed","line":79,"range":{"start_line":77,"start_character":0,"end_line":79,"end_character":46},"updated":"2019-11-14 22:20:01.000000000","message":"Shouldn\u0027t we be able to get rid of this now, since it\u0027s defined (more or less identically) in InstanceHelperMixin?\n\nI would say a subsequent patch would be suitable, but it seems like just the thing this patch ought to be doing.","commit_id":"b6ef64e126abf71cb6c0af2a3832181e11f16400"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e76b649635e6440f9686e73f03076bed531b11b0","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        self.computes \u003d {}"},{"line_number":75,"context_line":"        super(ServersTestBase, self).setUp()"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def _wait_for_state_change(self, server, expected_status):"},{"line_number":78,"context_line":"        return super(ServersTestBase, self)._wait_for_state_change("},{"line_number":79,"context_line":"            self.api, server, expected_status)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    def _delete_server(self, server):"},{"line_number":82,"context_line":"        # Delete the server"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_5df77fd5","line":79,"range":{"start_line":77,"start_character":0,"end_line":79,"end_character":46},"in_reply_to":"3fa7e38b_3c9093ed","updated":"2019-11-15 16:32:31.000000000","message":"I can\u0027t because the signatures are different: one takes an API parameter, the other uses an instance attribute. I\u0027ll try to rework everything to use the latter but that\u0027s a much bigger change best left out of this, IMO","commit_id":"b6ef64e126abf71cb6c0af2a3832181e11f16400"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"8dcd0a4976c51645d75d5a7416efe3dc7ee5a79d","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        self.computes \u003d {}"},{"line_number":75,"context_line":"        super(ServersTestBase, self).setUp()"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def _wait_for_state_change(self, server, expected_status):"},{"line_number":78,"context_line":"        return super(ServersTestBase, self)._wait_for_state_change("},{"line_number":79,"context_line":"            self.api, server, expected_status)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    def _delete_server(self, server):"},{"line_number":82,"context_line":"        # Delete the server"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_68f87b7b","line":79,"range":{"start_line":77,"start_character":0,"end_line":79,"end_character":46},"in_reply_to":"3fa7e38b_5df77fd5","updated":"2019-11-15 17:41:51.000000000","message":"I noticed about the signatures, recognize the change would be pretty pervasive, but seems like this series is incomplete without it. Separate patch okay. If you\u0027re not going to propose that now/soon, though, would you mind at least adding a TODO if you respin?","commit_id":"b6ef64e126abf71cb6c0af2a3832181e11f16400"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"d70786a678eeeff27e416f9829c049ecc056cda7","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    def _wait_for_state_change(self, server, expected_status):"},{"line_number":77,"context_line":"        return super(ServersTestBase, self)._wait_for_state_change("},{"line_number":78,"context_line":"            self.api, server, expected_status)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    def _delete_server(self, server):"},{"line_number":81,"context_line":"        # Delete the server"}],"source_content_type":"text/x-python","patch_set":10,"id":"3fa7e38b_3e5dd615","line":78,"range":{"start_line":78,"start_character":12,"end_line":78,"end_character":20},"updated":"2019-12-05 18:30:51.000000000","message":"ditto here","commit_id":"0572e2eb57b2b3cea6138d0aaed80c865e744d4c"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ae8fe6e3136a4c39b0e264c2e2643df977cd0db1","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    def _wait_for_state_change(self, server, expected_status):"},{"line_number":77,"context_line":"        return super(ServersTestBase, self)._wait_for_state_change("},{"line_number":78,"context_line":"            self.api, server, expected_status)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    def _delete_server(self, server):"},{"line_number":81,"context_line":"        # Delete the server"}],"source_content_type":"text/x-python","patch_set":10,"id":"3fa7e38b_5bf7755b","line":78,"range":{"start_line":78,"start_character":12,"end_line":78,"end_character":20},"in_reply_to":"3fa7e38b_3e5dd615","updated":"2019-12-06 15:39:55.000000000","message":"Done","commit_id":"0572e2eb57b2b3cea6138d0aaed80c865e744d4c"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"8f3cc4364209c426b50d03e685b94453bf706bcb","unresolved":false,"context_lines":[{"line_number":72,"context_line":"    def setUp(self):"},{"line_number":73,"context_line":"        self.computes \u003d {}"},{"line_number":74,"context_line":"        super(ServersTestBase, self).setUp()"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    def _delete_server(self, server):"},{"line_number":77,"context_line":"        # Delete the server"},{"line_number":78,"context_line":"        self.api.delete_server(server[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":11,"id":"3fa7e38b_e6ca456c","line":75,"updated":"2019-12-06 18:32:33.000000000","message":"\\o/","commit_id":"d05fd530c7b060b87a8be30745aa37221c38744e"}]}
