)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"7762b2aee264dba3e482612bf3284e3fb9e2ce4c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"963fe060_4614574a","updated":"2024-06-12 00:07:33.000000000","message":"Great work! This would be good enough to merge as-is if there was any time pressure, and the inline comments could be follow ups. But since there\u0027s no time pressure, I figure we can make the improvement before merging :)","commit_id":"805ec87ba1220ea8e1bcd6c7120cb639dbf4686c"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"b00119de506ab03d955d64380296e1ba07bcce98","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"7169041d_6ed38bb7","updated":"2024-06-04 11:23:17.000000000","message":"recheck unrelated test failed\nfrequest failed to reach VERIFY_RESIZE status and task state \"None\"\nmay be because of inbuild serialization \nand this fix https://review.opendev.org/c/openstack/tempest/+/921076","commit_id":"805ec87ba1220ea8e1bcd6c7120cb639dbf4686c"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"0d4387aa7a018774c80d24ebc5b448352bed8fe2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"0febae59_2d35a781","updated":"2024-06-13 20:27:53.000000000","message":"Noice.","commit_id":"fd55f90eb69e96fbea609f3b6e736620c7189dc2"}],"whitebox_tempest_plugin/api/compute/test_watchdog_devices.py":[{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"7762b2aee264dba3e482612bf3284e3fb9e2ce4c","unresolved":true,"context_lines":[{"line_number":38,"context_line":"        self.assertIsNone(watchdog_dev)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    def test_rest_all_actions(self):"},{"line_number":41,"context_line":"        actions \u003d ["},{"line_number":42,"context_line":"            \u0027reset\u0027, \u0027poweroff\u0027, \u0027pause\u0027, \u0027none\u0027,"},{"line_number":43,"context_line":"        ]"},{"line_number":44,"context_line":"        # [shutdown, dump, inject-nmi] are not supported actions"}],"source_content_type":"text/x-python","patch_set":1,"id":"84a7ca39_72acf5f2","line":41,"updated":"2024-06-12 00:07:33.000000000","message":"This is the perfect use case for ddt [1]. tempest doesn\u0027t use it, but there are examples in various Nova unit tests. We\u0027ll also need to add it to our requirements.txt file.\n\nusing ddt rather than this sort of loop means we get one test per action (with descriptive name), which is easier to diagnose in case of failure.\n\n[1] https://ddt.readthedocs.io/en/latest/example.html","commit_id":"805ec87ba1220ea8e1bcd6c7120cb639dbf4686c"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"49a1c6e619d371f20707259f8165924201eccda2","unresolved":true,"context_lines":[{"line_number":38,"context_line":"        self.assertIsNone(watchdog_dev)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    def test_rest_all_actions(self):"},{"line_number":41,"context_line":"        actions \u003d ["},{"line_number":42,"context_line":"            \u0027reset\u0027, \u0027poweroff\u0027, \u0027pause\u0027, \u0027none\u0027,"},{"line_number":43,"context_line":"        ]"},{"line_number":44,"context_line":"        # [shutdown, dump, inject-nmi] are not supported actions"}],"source_content_type":"text/x-python","patch_set":1,"id":"687bf768_709bee54","line":41,"in_reply_to":"84a7ca39_72acf5f2","updated":"2024-06-12 12:52:21.000000000","message":"Done\n\nlooks like\n\n```\n[stack@amit-mns-devstack-1 whitebox-tempest-plugin]$ tempest run --regex WatchdogDeviceTest.test_actions                                     \n{0} whitebox_tempest_plugin.api.compute.test_watchdog_devices.WatchdogDeviceTest.test_actions_via_flavor_5_disabled [10.240385s] ... ok\n{0} whitebox_tempest_plugin.api.compute.test_watchdog_devices.WatchdogDeviceTest.test_actions_via_image_3_pause [11.975085s] ... ok          \n{5} whitebox_tempest_plugin.api.compute.test_watchdog_devices.WatchdogDeviceTest.test_actions_via_image_5_disabled [13.545715s] ... ok       \n{7} whitebox_tempest_plugin.api.compute.test_watchdog_devices.WatchdogDeviceTest.test_actions_via_flavor_1_reset [12.206684s] ... ok                                                                                                                                                      \n{2} whitebox_tempest_plugin.api.compute.test_watchdog_devices.WatchdogDeviceTest.test_actions_via_flavor_2_poweroff [10.610694s] ... ok      \n{1} whitebox_tempest_plugin.api.compute.test_watchdog_devices.WatchdogDeviceTest.test_actions_via_image_2_poweroff [11.919097s] ... ok       \n{4} whitebox_tempest_plugin.api.compute.test_watchdog_devices.WatchdogDeviceTest.test_actions_via_image_1_reset [12.047439s] ... ok                                                                                                                                                       \n{6} whitebox_tempest_plugin.api.compute.test_watchdog_devices.WatchdogDeviceTest.test_actions_via_image_4_none [13.516072s] ... ok           \n{8} whitebox_tempest_plugin.api.compute.test_watchdog_devices.WatchdogDeviceTest.test_actions_via_flavor_4_none [10.643166s] ... ok          \n{3} whitebox_tempest_plugin.api.compute.test_watchdog_devices.WatchdogDeviceTest.test_actions_via_flavor_3_pause [10.658747s] ... ok\n```","commit_id":"805ec87ba1220ea8e1bcd6c7120cb639dbf4686c"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"7762b2aee264dba3e482612bf3284e3fb9e2ce4c","unresolved":true,"context_lines":[{"line_number":53,"context_line":"                action, watchdog_dev.attrib[\u0027action\u0027])"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"class WatchdogDeviceTestViaImage(WatchdogDeviceTestViaFalvor):"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def _get_image_with_watchdog_property(self, action):"},{"line_number":59,"context_line":"        return self.copy_default_image(hw_watchdog_action\u003daction)"}],"source_content_type":"text/x-python","patch_set":1,"id":"4daede8a_3c1df085","line":56,"updated":"2024-06-12 00:07:33.000000000","message":"Why does this need a separate class? I feel like we can just have everything in the same class, and use test_image and test_flavor (or something similar but better) to distinguish.","commit_id":"805ec87ba1220ea8e1bcd6c7120cb639dbf4686c"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"49a1c6e619d371f20707259f8165924201eccda2","unresolved":false,"context_lines":[{"line_number":53,"context_line":"                action, watchdog_dev.attrib[\u0027action\u0027])"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"class WatchdogDeviceTestViaImage(WatchdogDeviceTestViaFalvor):"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def _get_image_with_watchdog_property(self, action):"},{"line_number":59,"context_line":"        return self.copy_default_image(hw_watchdog_action\u003daction)"}],"source_content_type":"text/x-python","patch_set":1,"id":"8120b952_d9601f0b","line":56,"in_reply_to":"4daede8a_3c1df085","updated":"2024-06-12 12:52:21.000000000","message":"Done","commit_id":"805ec87ba1220ea8e1bcd6c7120cb639dbf4686c"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"7762b2aee264dba3e482612bf3284e3fb9e2ce4c","unresolved":true,"context_lines":[{"line_number":69,"context_line":"        self.assertIsNone(watchdog_dev)"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    def test_rest_all_actions(self):"},{"line_number":72,"context_line":"        actions \u003d ["},{"line_number":73,"context_line":"            \u0027reset\u0027, \u0027poweroff\u0027, \u0027pause\u0027, \u0027none\u0027,"},{"line_number":74,"context_line":"        ]"},{"line_number":75,"context_line":"        # [shutdown, dump, inject-nmi] are not supported actions"}],"source_content_type":"text/x-python","patch_set":1,"id":"a73a9ade_6a3f55a2","line":72,"updated":"2024-06-12 00:07:33.000000000","message":"Ditto - re: ddt","commit_id":"805ec87ba1220ea8e1bcd6c7120cb639dbf4686c"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"49a1c6e619d371f20707259f8165924201eccda2","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        self.assertIsNone(watchdog_dev)"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    def test_rest_all_actions(self):"},{"line_number":72,"context_line":"        actions \u003d ["},{"line_number":73,"context_line":"            \u0027reset\u0027, \u0027poweroff\u0027, \u0027pause\u0027, \u0027none\u0027,"},{"line_number":74,"context_line":"        ]"},{"line_number":75,"context_line":"        # [shutdown, dump, inject-nmi] are not supported actions"}],"source_content_type":"text/x-python","patch_set":1,"id":"0508499d_6c9187b6","line":72,"in_reply_to":"a73a9ade_6a3f55a2","updated":"2024-06-12 12:52:21.000000000","message":"Done","commit_id":"805ec87ba1220ea8e1bcd6c7120cb639dbf4686c"}]}
