)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"5fce6b8cc5a3390cbc3ab0ce77c5b1b7916eefe7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"778c5ef5_2a9936a0","updated":"2022-08-10 19:12:02.000000000","message":"This fix is correctly failing due to the mdev leak when used against the Smoketest class, will expand to resize/migration and move off WIP.\n\nTraceback (most recent call last):\n  File \"/home/stack/plugins/whitebox_plugin/whitebox_tempest_plugin/api/compute/test_vgpu.py\", line 314, in test_boot_instance_with_vgpu\n    self.assertEqual(\n  File \"/usr/lib/python3.9/site-packages/testtools/testcase.py\", line 391, in assertEqual\n    self.assertThat(observed, matcher, message)\n  File \"/usr/lib/python3.9/site-packages/testtools/testcase.py\", line 478, in assertThat\n    raise mismatch_error\ntesttools.matchers._impl.MismatchError: !\u003d:\nreference \u003d {\u0027VGPU\u0027: {\u0027allocation_ratio\u0027: 1.0,\n          \u0027max_unit\u0027: 2,\n          \u0027min_unit\u0027: 1,\n          \u0027reserved\u0027: 0,\n          \u0027step_size\u0027: 1,\n          \u0027total\u0027: 2}}\nactual    \u003d {\u0027VGPU\u0027: {\u0027allocation_ratio\u0027: 1.0,\n          \u0027max_unit\u0027: 1,\n          \u0027min_unit\u0027: 1,\n          \u0027reserved\u0027: 0,\n          \u0027step_size\u0027: 1,\n          \u0027total\u0027: 1}}\n: The inventories have changed for RP 37e78eab-4898-4d8c-b49a-0d391a80d672 between the start {\u0027VGPU\u0027: {\u0027total\u0027: 2, \u0027reserved\u0027: 0, \u0027min_unit\u0027: 1, \u0027max_unit\u0027: 2, \u0027step_size\u0027: 1, \u0027allocation_ratio\u0027: 1.0}} and the end {\u0027VGPU\u0027: {\u0027total\u0027: 1, \u0027reserved\u0027: 0, \u0027min_unit\u0027: 1, \u0027max_unit\u0027: 1, \u0027step_size\u0027: 1, \u0027allocation_ratio\u0027: 1.0}}\n\nRan 1 test in 44.862s\nFAILED (failures\u003d1)\n","commit_id":"5ca4948a9f9f1f0a09c4d4c33cf21a7e447eedb6"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"eaa3049d38b0398b07c8b77da27f8790513efadd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"dac82ea3_e6fd7c90","updated":"2022-08-11 18:58:44.000000000","message":"Results hitting mdev link for cold migration tests:\n\nTraceback (most recent call last):\n  File \"/home/stack/plugins/whitebox_plugin/whitebox_tempest_plugin/api/compute/test_vgpu.py\", line 458, in test_revert_vgpu_cold_migration\n    self._validate_final_vgpu_rp_inventory(\n  File \"/home/stack/plugins/whitebox_plugin/whitebox_tempest_plugin/api/compute/test_vgpu.py\", line 299, in _validate_final_vgpu_rp_inventory\n    self.assertEqual(\n  File \"/usr/lib/python3.9/site-packages/testtools/testcase.py\", line 391, in assertEqual\n    self.assertThat(observed, matcher, message)\n  File \"/usr/lib/python3.9/site-packages/testtools/testcase.py\", line 478, in assertThat\n    raise mismatch_error\ntesttools.matchers._impl.MismatchError: !\u003d:\nreference \u003d {\u0027VGPU\u0027: {\u0027allocation_ratio\u0027: 1.0,\n          \u0027max_unit\u0027: 3,\n          \u0027min_unit\u0027: 1,\n          \u0027reserved\u0027: 0,\n          \u0027step_size\u0027: 1,\n          \u0027total\u0027: 3}}\nactual    \u003d {\u0027VGPU\u0027: {\u0027allocation_ratio\u0027: 1.0,\n          \u0027max_unit\u0027: 2,\n          \u0027min_unit\u0027: 1,\n          \u0027reserved\u0027: 0,\n          \u0027step_size\u0027: 1,\n          \u0027total\u0027: 2}}\n: The inventories have changed for RP 37e78eab-4898-4d8c-b49a-0d391a80d672 between the start {\u0027VGPU\u0027: {\u0027total\u0027: 3, \u0027reserved\u0027: 0, \u0027min_unit\u0027: 1, \u0027max_unit\u0027: 3, \u0027step_size\u0027: 1, \u0027allocation_ratio\u0027: 1.0}} and the end {\u0027VGPU\u0027: {\u0027total\u0027: 2, \u0027reserved\u0027: 0, \u0027min_unit\u0027: 1, \u0027max_unit\u0027: 2, \u0027step_size\u0027: 1, \u0027allocation_ratio\u0027: 1.0}}\n\nRan 1 test in 69.101s\nFAILED (failures\u003d1)\n\n\nTraceback (most recent call last):\n  File \"/home/stack/plugins/whitebox_plugin/whitebox_tempest_plugin/api/compute/test_vgpu.py\", line 396, in test_vgpu_cold_migration\n    self._validate_final_vgpu_rp_inventory(\n  File \"/home/stack/plugins/whitebox_plugin/whitebox_tempest_plugin/api/compute/test_vgpu.py\", line 299, in _validate_final_vgpu_rp_inventory\n    self.assertEqual(\n  File \"/usr/lib/python3.9/site-packages/testtools/testcase.py\", line 391, in assertEqual\n    self.assertThat(observed, matcher, message)\n  File \"/usr/lib/python3.9/site-packages/testtools/testcase.py\", line 478, in assertThat\n    raise mismatch_error\ntesttools.matchers._impl.MismatchError: !\u003d:\nreference \u003d {\u0027VGPU\u0027: {\u0027allocation_ratio\u0027: 1.0,\n          \u0027max_unit\u0027: 4,\n          \u0027min_unit\u0027: 1,\n          \u0027reserved\u0027: 0,\n          \u0027step_size\u0027: 1,\n          \u0027total\u0027: 4}}\nactual    \u003d {\u0027VGPU\u0027: {\u0027allocation_ratio\u0027: 1.0,\n          \u0027max_unit\u0027: 3,\n          \u0027min_unit\u0027: 1,\n          \u0027reserved\u0027: 0,\n          \u0027step_size\u0027: 1,\n          \u0027total\u0027: 3}}\n: The inventories have changed for RP 37e78eab-4898-4d8c-b49a-0d391a80d672 between the start {\u0027VGPU\u0027: {\u0027total\u0027: 4, \u0027reserved\u0027: 0, \u0027min_unit\u0027: 1, \u0027max_unit\u0027: 4, \u0027step_size\u0027: 1, \u0027allocation_ratio\u0027: 1.0}} and the end {\u0027VGPU\u0027: {\u0027total\u0027: 3, \u0027reserved\u0027: 0, \u0027min_unit\u0027: 1, \u0027max_unit\u0027: 3, \u0027step_size\u0027: 1, \u0027allocation_ratio\u0027: 1.0}}\nRan 1 test in 74.211s\nFAILED (failures\u003d1)\n\n\n","commit_id":"7554958c63ea6aae62edf4c05c3cf3247dbfa1d9"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"367ea4a3a46ae0c43be72b9ac367860d3651af24","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"f1b9ab2f_281b3d51","updated":"2022-08-17 19:37:11.000000000","message":"Small comment inline","commit_id":"3c476887a216dfe12bef23c8f53a314f75b14b64"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"31ad5bbd92c01527e155db6f7d1400adc3c07c94","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"a0f51c71_699e3cdd","updated":"2022-08-25 20:50:43.000000000","message":"Catching mdev leak with ps5:\n\n(overcloud) [stack@undercloud-0 tempest-dir]$ python3 -m testtools.run whitebox_tempest_plugin.api.compute.test_vgpu.VGPUSmoke.test_boot_instance_with_vgpu\nTraceback (most recent call last):\n  File \"/home/stack/plugins/whitebox_plugin/whitebox_tempest_plugin/api/compute/test_vgpu.py\", line 336, in test_boot_instance_with_vgpu\n    self._validate_final_vgpu_rp_inventory(\n  File \"/home/stack/plugins/whitebox_plugin/whitebox_tempest_plugin/api/compute/test_vgpu.py\", line 302, in _validate_final_vgpu_rp_inventory\n    self.assertEqual(\n  File \"/usr/lib/python3.9/site-packages/testtools/testcase.py\", line 391, in assertEqual\n    self.assertThat(observed, matcher, message)\n  File \"/usr/lib/python3.9/site-packages/testtools/testcase.py\", line 478, in assertThat\n    raise mismatch_error\ntesttools.matchers._impl.MismatchError: !\u003d:\nreference \u003d {\u0027VGPU\u0027: {\u0027allocation_ratio\u0027: 1.0,\n          \u0027max_unit\u0027: 1,\n          \u0027min_unit\u0027: 1,\n          \u0027reserved\u0027: 0,\n          \u0027step_size\u0027: 1,\n          \u0027total\u0027: 1}}\nactual    \u003d {\u0027VGPU\u0027: {\u0027allocation_ratio\u0027: 1.0,\n          \u0027max_unit\u0027: 3,\n          \u0027min_unit\u0027: 1,\n          \u0027reserved\u0027: 0,\n          \u0027step_size\u0027: 1,\n          \u0027total\u0027: 3}}\n: The inventories have changed for RP 44d75ca2-8ebe-42c0-b7a3-fbd082c415aa between the start {\u0027VGPU\u0027: {\u0027total\u0027: 1, \u0027reserved\u0027: 0, \u0027min_unit\u0027: 1, \u0027max_unit\u0027: 1, \u0027step_size\u0027: 1, \u0027allocation_ratio\u0027: 1.0}} and the end {\u0027VGPU\u0027: {\u0027total\u0027: 3, \u0027reserved\u0027: 0, \u0027min_unit\u0027: 1, \u0027max_unit\u0027: 3, \u0027step_size\u0027: 1, \u0027allocation_ratio\u0027: 1.0}}\n\n(overcloud) [stack@undercloud-0 tempest-dir]$ tempest run --serial --regex whitebox_tempest_plugin.api.compute.test_vgpu.VGPUColdMigration.test_vgpu_cold_migration\n{0} whitebox_tempest_plugin.api.compute.test_vgpu.VGPUColdMigration.test_vgpu_cold_migration [46.645847s] ... FAILED\n\nCaptured traceback:\n~~~~~~~~~~~~~~~~~~~\n    Traceback (most recent call last):\n      File \"/home/stack/plugins/whitebox_plugin/whitebox_tempest_plugin/api/compute/test_vgpu.py\", line 414, in test_vgpu_cold_migration\n        self._validate_final_vgpu_rp_inventory(\n      File \"/home/stack/plugins/whitebox_plugin/whitebox_tempest_plugin/api/compute/test_vgpu.py\", line 302, in _validate_final_vgpu_rp_inventory\n        self.assertEqual(\n      File \"/usr/lib/python3.9/site-packages/testtools/testcase.py\", line 391, in assertEqual\n        self.assertThat(observed, matcher, message)\n      File \"/usr/lib/python3.9/site-packages/testtools/testcase.py\", line 478, in assertThat\n        raise mismatch_error\n    testtools.matchers._impl.MismatchError: !\u003d:\n    reference \u003d {\u0027VGPU\u0027: {\u0027allocation_ratio\u0027: 1.0,\n              \u0027max_unit\u0027: 2,\n              \u0027min_unit\u0027: 1,\n              \u0027reserved\u0027: 0,\n              \u0027step_size\u0027: 1,\n              \u0027total\u0027: 2}}\n    actual    \u003d {\u0027VGPU\u0027: {\u0027allocation_ratio\u0027: 1.0,\n              \u0027max_unit\u0027: 1,\n              \u0027min_unit\u0027: 1,\n              \u0027reserved\u0027: 0,\n              \u0027step_size\u0027: 1,\n              \u0027total\u0027: 1}}\n    : The inventories have changed for RP 050091f6-8c58-42b8-bf94-ab9920bfba3e between the start {\u0027VGPU\u0027: {\u0027total\u0027: 2, \u0027reserved\u0027: 0, \u0027min_unit\u0027: 1, \u0027max_unit\u0027: 2, \u0027step_size\u0027: 1, \u0027allocation_ratio\u0027: 1.0}} and the end {\u0027VGPU\u0027: {\u0027total\u0027: 1, \u0027reserved\u0027: 0, \u0027min_unit\u0027: 1, \u0027max_unit\u0027: 1, \u0027step_size\u0027: 1, \u0027allocation_ratio\u0027: 1.0}}\n","commit_id":"1a598590f033fe9994b9af2a983ab6b12fbb335a"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"7bafce177598d18f96130b02d8d0f1540c8f75f7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"edb4453f_888849ef","updated":"2022-08-26 16:07:53.000000000","message":"Sorry, one last potential simplication inline.","commit_id":"1a598590f033fe9994b9af2a983ab6b12fbb335a"}],"whitebox_tempest_plugin/api/compute/test_vgpu.py":[{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"367ea4a3a46ae0c43be72b9ac367860d3651af24","unresolved":true,"context_lines":[{"line_number":294,"context_line":"        testing"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":"        \"\"\""},{"line_number":297,"context_line":"        self.os_admin.servers_client.delete_server(server_id)"},{"line_number":298,"context_line":"        waiters.wait_for_server_termination("},{"line_number":299,"context_line":"            self.os_admin.servers_client, server_id)"},{"line_number":300,"context_line":"        end_rp_vgpu_inventory \u003d self._get_vgpu_inventories_for_deployment()"}],"source_content_type":"text/x-python","patch_set":4,"id":"dfa094f1_0cdeb5f8","line":297,"updated":"2022-08-17 19:37:11.000000000","message":"I\u0027m not a fan of doing the delete inline, especially since the method name gives no indication. Could we at least rename it to something like delete_and_validate_inventory()?","commit_id":"3c476887a216dfe12bef23c8f53a314f75b14b64"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"15cbcdd2bb4eda2cee66263631a454c386b02064","unresolved":false,"context_lines":[{"line_number":294,"context_line":"        testing"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":"        \"\"\""},{"line_number":297,"context_line":"        self.os_admin.servers_client.delete_server(server_id)"},{"line_number":298,"context_line":"        waiters.wait_for_server_termination("},{"line_number":299,"context_line":"            self.os_admin.servers_client, server_id)"},{"line_number":300,"context_line":"        end_rp_vgpu_inventory \u003d self._get_vgpu_inventories_for_deployment()"}],"source_content_type":"text/x-python","patch_set":4,"id":"95de8d7d_387da474","line":297,"in_reply_to":"1d70403c_4d63c078","updated":"2022-08-17 19:46:23.000000000","message":"Words are hard:\n#2) Instead of deleting the guest, record the inventory of the source host before migration.  After migration confirm inventory increases accordingly on the source after the guest lands on the destination host.","commit_id":"3c476887a216dfe12bef23c8f53a314f75b14b64"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"ead56562769f337ee38f95e6975daee6a2617baf","unresolved":false,"context_lines":[{"line_number":294,"context_line":"        testing"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":"        \"\"\""},{"line_number":297,"context_line":"        self.os_admin.servers_client.delete_server(server_id)"},{"line_number":298,"context_line":"        waiters.wait_for_server_termination("},{"line_number":299,"context_line":"            self.os_admin.servers_client, server_id)"},{"line_number":300,"context_line":"        end_rp_vgpu_inventory \u003d self._get_vgpu_inventories_for_deployment()"}],"source_content_type":"text/x-python","patch_set":4,"id":"c59d2638_14b0996d","line":297,"in_reply_to":"2c394e29_b7abde88","updated":"2022-08-17 20:43:52.000000000","message":"Yup that makes sense and keeps things more readable.  I\u0027ll make 2 and 3 inline for each test and 4 will be its own method check.","commit_id":"3c476887a216dfe12bef23c8f53a314f75b14b64"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"c64919c92d70b74302cbab853e5e3658ed920eab","unresolved":false,"context_lines":[{"line_number":294,"context_line":"        testing"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":"        \"\"\""},{"line_number":297,"context_line":"        self.os_admin.servers_client.delete_server(server_id)"},{"line_number":298,"context_line":"        waiters.wait_for_server_termination("},{"line_number":299,"context_line":"            self.os_admin.servers_client, server_id)"},{"line_number":300,"context_line":"        end_rp_vgpu_inventory \u003d self._get_vgpu_inventories_for_deployment()"}],"source_content_type":"text/x-python","patch_set":4,"id":"2c394e29_b7abde88","line":297,"in_reply_to":"95de8d7d_387da474","updated":"2022-08-17 20:33:09.000000000","message":"The test logic itself is fine, though we can add the cold migrate case as well for completeness. It\u0027s more of a style thing that we have a method that purports to verify inventory, and oh btw lemme just delete the server too.\n\nI know in the other review I argued for not copy-pasting code, but I think in this case it wouldn\u0027t be so bad if we explicitly:\n\n1. get the VGPU inventories before the test (you already do this)\n2. after the test, explicitly delete the server\n3. get the VGPU inventories after the test\n4. assert inventories from step 1 and 3 are the same.\n\n2, 3 and 4 are currently done inline by this method, and I don\u0027t think it\u0027d be a bad idea to have 2 and 3 in the test method themselves as separate steps, and have 4 be this method converted into a assert_vgpu_inventories_equal() or something, that gets passed the inventories from 1 and 3 by the main test method.\n\nMakes sense?","commit_id":"3c476887a216dfe12bef23c8f53a314f75b14b64"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"0e4bc06686b01e82e992878eece940f6ed0b37f0","unresolved":false,"context_lines":[{"line_number":294,"context_line":"        testing"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":"        \"\"\""},{"line_number":297,"context_line":"        self.os_admin.servers_client.delete_server(server_id)"},{"line_number":298,"context_line":"        waiters.wait_for_server_termination("},{"line_number":299,"context_line":"            self.os_admin.servers_client, server_id)"},{"line_number":300,"context_line":"        end_rp_vgpu_inventory \u003d self._get_vgpu_inventories_for_deployment()"}],"source_content_type":"text/x-python","patch_set":4,"id":"1d70403c_4d63c078","line":297,"in_reply_to":"dfa094f1_0cdeb5f8","updated":"2022-08-17 19:43:30.000000000","message":"Yea I\u0027m not crazy about this either.  Thinking about it some more the issue can be hit after cold migration so I can think of two options:\n#1) Update the method name so its more specific and this allow testing inventory after the basic smoke test as well as migration.\n#2) Instead of deleting monitor the inventory of the source host before and after migration and confirm inventory increases accordingly after the guest lands on the source.  The tradeoff is inventory checks can only be done around migration/resize tests and not basic vgpu creation.","commit_id":"3c476887a216dfe12bef23c8f53a314f75b14b64"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"7bafce177598d18f96130b02d8d0f1540c8f75f7","unresolved":true,"context_lines":[{"line_number":288,"context_line":""},{"line_number":289,"context_line":"        return server"},{"line_number":290,"context_line":""},{"line_number":291,"context_line":"    def _validate_final_vgpu_rp_inventory("},{"line_number":292,"context_line":"            self, starting_rp_vgpu_inventory, end_rp_vgpu_inventory):"},{"line_number":293,"context_line":"        \"\"\"Validate that starting rp vgpu inventory matches the inventory after"},{"line_number":294,"context_line":"        testing"}],"source_content_type":"text/x-python","patch_set":5,"id":"ab8ac66a_7206185f","line":291,"updated":"2022-08-26 16:07:53.000000000","message":"So hold on - wouldn\u0027t a simple assertDictEqual() now replace this entire method?","commit_id":"1a598590f033fe9994b9af2a983ab6b12fbb335a"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"517b57fe53146fec9167f370cd6af75a6dc02332","unresolved":true,"context_lines":[{"line_number":288,"context_line":""},{"line_number":289,"context_line":"        return server"},{"line_number":290,"context_line":""},{"line_number":291,"context_line":"    def _validate_final_vgpu_rp_inventory("},{"line_number":292,"context_line":"            self, starting_rp_vgpu_inventory, end_rp_vgpu_inventory):"},{"line_number":293,"context_line":"        \"\"\"Validate that starting rp vgpu inventory matches the inventory after"},{"line_number":294,"context_line":"        testing"}],"source_content_type":"text/x-python","patch_set":5,"id":"da60ec28_018abc57","line":291,"in_reply_to":"07589438_c97d5779","updated":"2022-08-26 17:00:04.000000000","message":"Yeah, that\u0027s not great. Let\u0027s keep this current form, then. If we start doing hax (like setting maxDiff) to get a readable output from assertDictEqual, why even use it in the first place?","commit_id":"1a598590f033fe9994b9af2a983ab6b12fbb335a"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"73ea62bb5b971dde674385a6e53ca8c198b861d9","unresolved":true,"context_lines":[{"line_number":288,"context_line":""},{"line_number":289,"context_line":"        return server"},{"line_number":290,"context_line":""},{"line_number":291,"context_line":"    def _validate_final_vgpu_rp_inventory("},{"line_number":292,"context_line":"            self, starting_rp_vgpu_inventory, end_rp_vgpu_inventory):"},{"line_number":293,"context_line":"        \"\"\"Validate that starting rp vgpu inventory matches the inventory after"},{"line_number":294,"context_line":"        testing"}],"source_content_type":"text/x-python","patch_set":5,"id":"07589438_c97d5779","line":291,"in_reply_to":"7dd72504_27684799","updated":"2022-08-26 16:41:11.000000000","message":"Trying it now I wonder if the readability for when it fails is very clear with regards to the actual difference in Dicts, wdyt?:\n\n# Using the new assert:\n        self.assertDictEqual(starting_rp_vgpu_inventory, end_rp_vgpu_inventory)\n\n\nTraceback (most recent call last):\n  File \"/home/stack/plugins/whitebox_plugin/whitebox_tempest_plugin/api/compute/test_vgpu.py\", line 316, in test_boot_instance_with_vgpu\n    self.assertDictEqual(starting_rp_vgpu_inventory, end_rp_vgpu_inventory)\n  File \"/usr/lib64/python3.9/unittest/case.py\", line 1136, in assertDictEqual\n    self.fail(self._formatMessage(msg, standardMsg))\n  File \"/usr/lib64/python3.9/unittest/case.py\", line 676, in fail\n    raise self.failureException(msg)\nAssertionError: {\u0027050[350 chars]al\u0027: 4, \u0027reserved\u0027: 0, \u0027min_unit\u0027: 1, \u0027max_uni[194 chars].0}}} !\u003d {\u0027050[350 chars]al\u0027: 3, \u0027reserved\u0027: 0, \u0027min_unit\u0027: 1, \u0027max_uni[194 chars].0}}}\nDiff is 2073 characters long. Set self.maxDiff to None to see it.","commit_id":"1a598590f033fe9994b9af2a983ab6b12fbb335a"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"41121b4e7c25f45528e065817c44f932f2084446","unresolved":false,"context_lines":[{"line_number":288,"context_line":""},{"line_number":289,"context_line":"        return server"},{"line_number":290,"context_line":""},{"line_number":291,"context_line":"    def _validate_final_vgpu_rp_inventory("},{"line_number":292,"context_line":"            self, starting_rp_vgpu_inventory, end_rp_vgpu_inventory):"},{"line_number":293,"context_line":"        \"\"\"Validate that starting rp vgpu inventory matches the inventory after"},{"line_number":294,"context_line":"        testing"}],"source_content_type":"text/x-python","patch_set":5,"id":"7dd72504_27684799","line":291,"in_reply_to":"ab8ac66a_7206185f","updated":"2022-08-26 16:11:01.000000000","message":"Yes I think so, let me confirm and I\u0027ll just update it inline for the test methods.","commit_id":"1a598590f033fe9994b9af2a983ab6b12fbb335a"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"ce8df3cee5c79e0b88c4ecc01707aa4d9044de90","unresolved":true,"context_lines":[{"line_number":405,"context_line":""},{"line_number":406,"context_line":"        # Delete the guest and confirm the inventory reverts back to the"},{"line_number":407,"context_line":"        # original amount"},{"line_number":408,"context_line":"        self.os_admin.servers_client.delete_server(server[\u0027id\u0027])"},{"line_number":409,"context_line":"        waiters.wait_for_server_termination("},{"line_number":410,"context_line":"            self.os_admin.servers_client, server[\u0027id\u0027])"},{"line_number":411,"context_line":"        end_rp_vgpu_inventory \u003d self._get_vgpu_inventories_for_deployment()"}],"source_content_type":"text/x-python","patch_set":5,"id":"2088194f_4e6c4570","line":408,"updated":"2022-08-25 20:53:07.000000000","message":"This results in a 404 later during cleanup that is caught by [1]. Is that acceptable or should there be a conditional cleanup around [1] in the future?\n\n\n[1] https://opendev.org/openstack/whitebox-tempest-plugin/src/branch/master/whitebox_tempest_plugin/api/compute/base.py#L58","commit_id":"1a598590f033fe9994b9af2a983ab6b12fbb335a"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"7bafce177598d18f96130b02d8d0f1540c8f75f7","unresolved":true,"context_lines":[{"line_number":405,"context_line":""},{"line_number":406,"context_line":"        # Delete the guest and confirm the inventory reverts back to the"},{"line_number":407,"context_line":"        # original amount"},{"line_number":408,"context_line":"        self.os_admin.servers_client.delete_server(server[\u0027id\u0027])"},{"line_number":409,"context_line":"        waiters.wait_for_server_termination("},{"line_number":410,"context_line":"            self.os_admin.servers_client, server[\u0027id\u0027])"},{"line_number":411,"context_line":"        end_rp_vgpu_inventory \u003d self._get_vgpu_inventories_for_deployment()"}],"source_content_type":"text/x-python","patch_set":5,"id":"b4515e6a_8d2734dc","line":408,"in_reply_to":"2088194f_4e6c4570","updated":"2022-08-26 16:07:53.000000000","message":"That\u0027s fine, the cleanup calls delete() then waits for a 404 to confirm deletion, so it\u0027s not a big deal.","commit_id":"1a598590f033fe9994b9af2a983ab6b12fbb335a"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"41121b4e7c25f45528e065817c44f932f2084446","unresolved":false,"context_lines":[{"line_number":405,"context_line":""},{"line_number":406,"context_line":"        # Delete the guest and confirm the inventory reverts back to the"},{"line_number":407,"context_line":"        # original amount"},{"line_number":408,"context_line":"        self.os_admin.servers_client.delete_server(server[\u0027id\u0027])"},{"line_number":409,"context_line":"        waiters.wait_for_server_termination("},{"line_number":410,"context_line":"            self.os_admin.servers_client, server[\u0027id\u0027])"},{"line_number":411,"context_line":"        end_rp_vgpu_inventory \u003d self._get_vgpu_inventories_for_deployment()"}],"source_content_type":"text/x-python","patch_set":5,"id":"60246c80_09ea4f12","line":408,"in_reply_to":"b4515e6a_8d2734dc","updated":"2022-08-26 16:11:01.000000000","message":"Ack","commit_id":"1a598590f033fe9994b9af2a983ab6b12fbb335a"}]}
