)]}'
{"nova/tests/functional/libvirt/test_machine_type.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"d5f8321a41e44a281610fcc2c19f58351ad04627","unresolved":true,"context_lines":[{"line_number":314,"context_line":"        self._assert_machine_type(server_with[\u0027id\u0027], \u0027q35\u0027)"},{"line_number":315,"context_line":"        self._assert_machine_type(server_without[\u0027id\u0027], \u0027pc\u0027)"},{"line_number":316,"context_line":""},{"line_number":317,"context_line":"        # Launch and shelve some additional instances"},{"line_number":318,"context_line":"        server_shelved_with, server_shelved_without \u003d self._create_servers()"},{"line_number":319,"context_line":"        self._shelve_server(server_shelved_with)"},{"line_number":320,"context_line":"        self._shelve_server(server_shelved_without)"}],"source_content_type":"text/x-python","patch_set":4,"id":"63a7e355_39b50de9","line":317,"range":{"start_line":317,"start_character":21,"end_line":317,"end_character":27},"updated":"2021-02-16 13:11:03.000000000","message":"it actually offloads the instance as well, isn\u0027t it?","commit_id":"03e3f6b3faa4166136636e3076b5c8640bdcd3af"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"624b268d2e587c015f839dcd32d3aeb6d257aba9","unresolved":true,"context_lines":[{"line_number":314,"context_line":"        self._assert_machine_type(server_with[\u0027id\u0027], \u0027q35\u0027)"},{"line_number":315,"context_line":"        self._assert_machine_type(server_without[\u0027id\u0027], \u0027pc\u0027)"},{"line_number":316,"context_line":""},{"line_number":317,"context_line":"        # Launch and shelve some additional instances"},{"line_number":318,"context_line":"        server_shelved_with, server_shelved_without \u003d self._create_servers()"},{"line_number":319,"context_line":"        self._shelve_server(server_shelved_with)"},{"line_number":320,"context_line":"        self._shelve_server(server_shelved_without)"}],"source_content_type":"text/x-python","patch_set":4,"id":"b3abfc06_cfbbd6e9","line":317,"range":{"start_line":317,"start_character":21,"end_line":317,"end_character":27},"in_reply_to":"63a7e355_39b50de9","updated":"2021-02-17 10:37:52.000000000","message":"Missed this yesterday, yes it also offloads.","commit_id":"03e3f6b3faa4166136636e3076b5c8640bdcd3af"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"22a0989210a3d5dbe530042a1e3e9b442c333d7f","unresolved":false,"context_lines":[{"line_number":314,"context_line":"        self._assert_machine_type(server_with[\u0027id\u0027], \u0027q35\u0027)"},{"line_number":315,"context_line":"        self._assert_machine_type(server_without[\u0027id\u0027], \u0027pc\u0027)"},{"line_number":316,"context_line":""},{"line_number":317,"context_line":"        # Launch and shelve some additional instances"},{"line_number":318,"context_line":"        server_shelved_with, server_shelved_without \u003d self._create_servers()"},{"line_number":319,"context_line":"        self._shelve_server(server_shelved_with)"},{"line_number":320,"context_line":"        self._shelve_server(server_shelved_without)"}],"source_content_type":"text/x-python","patch_set":4,"id":"e3315d3d_fe006335","line":317,"range":{"start_line":317,"start_character":21,"end_line":317,"end_character":27},"in_reply_to":"b3abfc06_cfbbd6e9","updated":"2021-03-03 13:48:50.000000000","message":"Ack","commit_id":"03e3f6b3faa4166136636e3076b5c8640bdcd3af"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"89176a7ea97a10d7aa0aa34dd33b823ab78fd97e","unresolved":false,"context_lines":[{"line_number":369,"context_line":"        self.flags(hw_machine_type\u003d\u0027x86_64\u003dpc-q35-1.2\u0027, group\u003d\u0027libvirt\u0027)"},{"line_number":370,"context_line":""},{"line_number":371,"context_line":"        # Assert the existing instances remain the same after being rebooted or"},{"line_number":372,"context_line":"        # unshelved, rebuilding their domain configs"},{"line_number":373,"context_line":"        self._reboot_server(server_with, hard\u003dTrue)"},{"line_number":374,"context_line":"        self._reboot_server(server_without, hard\u003dTrue)"},{"line_number":375,"context_line":"        self._assert_machine_type(server_with[\u0027id\u0027], \u0027q35\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"1bfda143_f0f928b2","line":372,"range":{"start_line":372,"start_character":10,"end_line":372,"end_character":19},"updated":"2021-02-16 12:49:10.000000000","message":"Forgot to leave this in and commented out due to a failure in the Glance fixture for the time being. I\u0027ll add it back in now and look into the failure some more.","commit_id":"03e3f6b3faa4166136636e3076b5c8640bdcd3af"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"9d50d42e3c17a84da88d93ca2fdfd94916075f00","unresolved":true,"context_lines":[{"line_number":376,"context_line":"        self._assert_machine_type(server_without[\u0027id\u0027], \u0027pc\u0027)"},{"line_number":377,"context_line":""},{"line_number":378,"context_line":"        # Assert that new instances are spawned with the expected machine types"},{"line_number":379,"context_line":"        server_with, server_without \u003d self._create_servers()"},{"line_number":380,"context_line":"        self._assert_machine_type(server_with[\u0027id\u0027], \u0027q35\u0027)"},{"line_number":381,"context_line":"        self._assert_machine_type(server_without[\u0027id\u0027], \u0027pc-q35-1.2\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"05912740_a27450e6","line":379,"updated":"2021-02-16 10:16:27.000000000","message":"Same comment as with a previous change RE: suffixing these to make it obvious that they\u0027re new entirely instances","commit_id":"03e3f6b3faa4166136636e3076b5c8640bdcd3af"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"89176a7ea97a10d7aa0aa34dd33b823ab78fd97e","unresolved":false,"context_lines":[{"line_number":376,"context_line":"        self._assert_machine_type(server_without[\u0027id\u0027], \u0027pc\u0027)"},{"line_number":377,"context_line":""},{"line_number":378,"context_line":"        # Assert that new instances are spawned with the expected machine types"},{"line_number":379,"context_line":"        server_with, server_without \u003d self._create_servers()"},{"line_number":380,"context_line":"        self._assert_machine_type(server_with[\u0027id\u0027], \u0027q35\u0027)"},{"line_number":381,"context_line":"        self._assert_machine_type(server_without[\u0027id\u0027], \u0027pc-q35-1.2\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"95618f82_90dbcc1b","line":379,"in_reply_to":"05912740_a27450e6","updated":"2021-02-16 12:49:10.000000000","message":"Done","commit_id":"03e3f6b3faa4166136636e3076b5c8640bdcd3af"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"84c98892faceed91774e5461db86ea47583870fb","unresolved":true,"context_lines":[{"line_number":382,"context_line":"        self._assert_machine_type(server_without[\u0027id\u0027], \u0027pc\u0027)"},{"line_number":383,"context_line":""},{"line_number":384,"context_line":"        # TODO(lyarwood): This currently fails due to unrelated issues within"},{"line_number":385,"context_line":"        # the glance fixture AFAICT."},{"line_number":386,"context_line":"        # self._unshelve_server(server_shelved_with)"},{"line_number":387,"context_line":"        # self._unsehlve_server(server_shelved_without)"},{"line_number":388,"context_line":"        # self._assert_machine_type(server_shelved_with[\u0027id\u0027], \u0027pc\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"0e5b2ca0_57ea4c62","line":385,"updated":"2021-03-01 17:39:13.000000000","message":"Yeah, I tried to add unshelve tests for image-based instances in the past. This is an ugly issue to fix","commit_id":"1d5e010b9f52499994c46656c0fee3c1fe35e835"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"05306d414346f092b08fb01f20685864960f0b35","unresolved":false,"context_lines":[{"line_number":382,"context_line":"        self._assert_machine_type(server_without[\u0027id\u0027], \u0027pc\u0027)"},{"line_number":383,"context_line":""},{"line_number":384,"context_line":"        # TODO(lyarwood): This currently fails due to unrelated issues within"},{"line_number":385,"context_line":"        # the glance fixture AFAICT."},{"line_number":386,"context_line":"        # self._unshelve_server(server_shelved_with)"},{"line_number":387,"context_line":"        # self._unsehlve_server(server_shelved_without)"},{"line_number":388,"context_line":"        # self._assert_machine_type(server_shelved_with[\u0027id\u0027], \u0027pc\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"fb2d8b1f_6bd5367f","line":385,"in_reply_to":"0e5b2ca0_57ea4c62","updated":"2021-03-01 22:10:55.000000000","message":"Ack","commit_id":"1d5e010b9f52499994c46656c0fee3c1fe35e835"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"84c98892faceed91774e5461db86ea47583870fb","unresolved":true,"context_lines":[{"line_number":384,"context_line":"        # TODO(lyarwood): This currently fails due to unrelated issues within"},{"line_number":385,"context_line":"        # the glance fixture AFAICT."},{"line_number":386,"context_line":"        # self._unshelve_server(server_shelved_with)"},{"line_number":387,"context_line":"        # self._unsehlve_server(server_shelved_without)"},{"line_number":388,"context_line":"        # self._assert_machine_type(server_shelved_with[\u0027id\u0027], \u0027pc\u0027)"},{"line_number":389,"context_line":"        # self._assert_machine_type(server_shelved_without[\u0027id\u0027], \u0027pc\u0027)"},{"line_number":390,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"6aa9f089_e0a5c679","line":387,"range":{"start_line":387,"start_character":16,"end_line":387,"end_character":24},"updated":"2021-03-01 17:39:13.000000000","message":"also, the typo.","commit_id":"1d5e010b9f52499994c46656c0fee3c1fe35e835"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"05306d414346f092b08fb01f20685864960f0b35","unresolved":false,"context_lines":[{"line_number":384,"context_line":"        # TODO(lyarwood): This currently fails due to unrelated issues within"},{"line_number":385,"context_line":"        # the glance fixture AFAICT."},{"line_number":386,"context_line":"        # self._unshelve_server(server_shelved_with)"},{"line_number":387,"context_line":"        # self._unsehlve_server(server_shelved_without)"},{"line_number":388,"context_line":"        # self._assert_machine_type(server_shelved_with[\u0027id\u0027], \u0027pc\u0027)"},{"line_number":389,"context_line":"        # self._assert_machine_type(server_shelved_without[\u0027id\u0027], \u0027pc\u0027)"},{"line_number":390,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"0039dcec_28498b15","line":387,"range":{"start_line":387,"start_character":16,"end_line":387,"end_character":24},"in_reply_to":"6aa9f089_e0a5c679","updated":"2021-03-01 22:10:55.000000000","message":"Done","commit_id":"1d5e010b9f52499994c46656c0fee3c1fe35e835"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"22a0989210a3d5dbe530042a1e3e9b442c333d7f","unresolved":true,"context_lines":[{"line_number":381,"context_line":"        self._assert_machine_type(server_with[\u0027id\u0027], \u0027q35\u0027)"},{"line_number":382,"context_line":"        self._assert_machine_type(server_without[\u0027id\u0027], \u0027pc\u0027)"},{"line_number":383,"context_line":""},{"line_number":384,"context_line":"        # TODO(lyarwood): This currently fails due to unrelated issues within"},{"line_number":385,"context_line":"        # the glance fixture AFAICT. If this is ever resolved test unshelve."},{"line_number":386,"context_line":"        # self._unshelve_server(server_shelved_with)"},{"line_number":387,"context_line":"        # self._unshelve_server(server_shelved_without)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9994a32d_17650900","line":384,"updated":"2021-03-03 13:48:50.000000000","message":"As far as I see why it fails is due to the ImageBackendFixture that mock disks and when the libvirt driver takes a snapshot of a disk for shelving an instance there will be a \u0027location\u0027: \u003cMagicMock name\u003d\u0027mock.direct_snapshot()\u0027 key added to the resulting image metadata dict. It is stored by the glance fixture. When the glance fixture try to return that metadata during unshelve it tries  to copy the stored dict, but MagicMock cannot be deep copied.\n\nDirect snapshot does not need to be implemented by the mocked disk as it is mostly not implemented in the real image backends. So I made it raise NotImplementedError from ImageBackendFixture. This makes the unshelve succeed here.\n\nI\u0027ve pushed a patch top of this to fix the fixture and re-enable this step of the test case. https://review.opendev.org/c/openstack/nova/+/778462","commit_id":"86b9ab3fc59329ea648b9a5590c6fd56fed783e7"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"1220bd6667ba18fc9e10b518daeb748bbbdc0c28","unresolved":false,"context_lines":[{"line_number":381,"context_line":"        self._assert_machine_type(server_with[\u0027id\u0027], \u0027q35\u0027)"},{"line_number":382,"context_line":"        self._assert_machine_type(server_without[\u0027id\u0027], \u0027pc\u0027)"},{"line_number":383,"context_line":""},{"line_number":384,"context_line":"        # TODO(lyarwood): This currently fails due to unrelated issues within"},{"line_number":385,"context_line":"        # the glance fixture AFAICT. If this is ever resolved test unshelve."},{"line_number":386,"context_line":"        # self._unshelve_server(server_shelved_with)"},{"line_number":387,"context_line":"        # self._unshelve_server(server_shelved_without)"}],"source_content_type":"text/x-python","patch_set":7,"id":"1e6d6c86_6bcfe81d","line":384,"in_reply_to":"9994a32d_17650900","updated":"2021-03-03 14:04:07.000000000","message":"Ack","commit_id":"86b9ab3fc59329ea648b9a5590c6fd56fed783e7"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"22a0989210a3d5dbe530042a1e3e9b442c333d7f","unresolved":true,"context_lines":[{"line_number":385,"context_line":"        # the glance fixture AFAICT. If this is ever resolved test unshelve."},{"line_number":386,"context_line":"        # self._unshelve_server(server_shelved_with)"},{"line_number":387,"context_line":"        # self._unshelve_server(server_shelved_without)"},{"line_number":388,"context_line":"        # self._assert_machine_type(server_shelved_with[\u0027id\u0027], \u0027pc\u0027)"},{"line_number":389,"context_line":"        # self._assert_machine_type(server_shelved_without[\u0027id\u0027], \u0027pc\u0027)"},{"line_number":390,"context_line":""},{"line_number":391,"context_line":"        # Assert that new instances are spawned with the expected machine types"}],"source_content_type":"text/x-python","patch_set":7,"id":"ee2c8d5e_bba22779","line":388,"range":{"start_line":388,"start_character":36,"end_line":388,"end_character":67},"updated":"2021-03-03 13:48:50.000000000","message":"shouldn\u0027t it be q35?","commit_id":"86b9ab3fc59329ea648b9a5590c6fd56fed783e7"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"1220bd6667ba18fc9e10b518daeb748bbbdc0c28","unresolved":false,"context_lines":[{"line_number":385,"context_line":"        # the glance fixture AFAICT. If this is ever resolved test unshelve."},{"line_number":386,"context_line":"        # self._unshelve_server(server_shelved_with)"},{"line_number":387,"context_line":"        # self._unshelve_server(server_shelved_without)"},{"line_number":388,"context_line":"        # self._assert_machine_type(server_shelved_with[\u0027id\u0027], \u0027pc\u0027)"},{"line_number":389,"context_line":"        # self._assert_machine_type(server_shelved_without[\u0027id\u0027], \u0027pc\u0027)"},{"line_number":390,"context_line":""},{"line_number":391,"context_line":"        # Assert that new instances are spawned with the expected machine types"}],"source_content_type":"text/x-python","patch_set":7,"id":"5cac0209_c73aefa0","line":388,"range":{"start_line":388,"start_character":36,"end_line":388,"end_character":67},"in_reply_to":"ee2c8d5e_bba22779","updated":"2021-03-03 14:04:07.000000000","message":"Done","commit_id":"86b9ab3fc59329ea648b9a5590c6fd56fed783e7"}]}
