)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":28647,"name":"David","display_name":"morenod","email":"dsanzmor@redhat.com","username":"morenod"},"change_message_id":"84010df59f7370bc25de89c0c376ceee515739d3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"3d4525f2_d05022c0","updated":"2025-05-14 11:02:14.000000000","message":"recheck","commit_id":"014b9600c1ece962d66cb6ec5d58b86646a30213"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"7db070fbe984b519267bf979756362d6811c8361","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"70a27dbd_0523aed5","updated":"2025-05-16 12:58:59.000000000","message":"I think that you change makes sense, since some tests are calling this method after consolidating instances to a host. I have just some concerns in the code. But looks good","commit_id":"f195b37bf7f976e0fb1072ed74d741693cb14802"},{"author":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"change_message_id":"dc4a70e9f8e0d051bb7b64e9f095beea8f20cccd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"c13c3931_a0825edd","updated":"2025-05-14 15:23:39.000000000","message":"lgtm .\n\nI hit the issue where instances were in the model but not in the correct compute node in the past. This should fix it.","commit_id":"f195b37bf7f976e0fb1072ed74d741693cb14802"},{"author":{"_account_id":28647,"name":"David","display_name":"morenod","email":"dsanzmor@redhat.com","username":"morenod"},"change_message_id":"1e200c9b2357769c908053162a2fa7285da29a03","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"162db3b5_f1457443","updated":"2025-05-19 10:48:41.000000000","message":"recheck","commit_id":"048add090229ebbfb63a7268b013096ed9676ea0"},{"author":{"_account_id":28647,"name":"David","display_name":"morenod","email":"dsanzmor@redhat.com","username":"morenod"},"change_message_id":"b7fc5246111e16564b1d95a6c023ce80746e3433","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"2d89b6d6_0a4b32fd","updated":"2025-05-19 15:29:35.000000000","message":"recheck","commit_id":"048add090229ebbfb63a7268b013096ed9676ea0"},{"author":{"_account_id":28647,"name":"David","display_name":"morenod","email":"dsanzmor@redhat.com","username":"morenod"},"change_message_id":"04b9ab2714b94ebd117d93e9b816f8c715a6bafb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"81bb1804_1b9b4d0c","updated":"2025-05-19 12:02:24.000000000","message":"recheck","commit_id":"048add090229ebbfb63a7268b013096ed9676ea0"},{"author":{"_account_id":28647,"name":"David","display_name":"morenod","email":"dsanzmor@redhat.com","username":"morenod"},"change_message_id":"852f79d40f07fc6a386b698d05272fb10dedfdeb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"9333128c_cf0bf22f","updated":"2025-05-20 08:14:57.000000000","message":"recheck","commit_id":"048add090229ebbfb63a7268b013096ed9676ea0"},{"author":{"_account_id":28647,"name":"David","display_name":"morenod","email":"dsanzmor@redhat.com","username":"morenod"},"change_message_id":"4dda706c0f3e32ed8ee7ecb5dc9337573416421f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"a4444294_015c9ea3","updated":"2025-05-20 07:06:26.000000000","message":"recheck","commit_id":"048add090229ebbfb63a7268b013096ed9676ea0"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"4db3859fe4ed0c3c788190c99af15e823023502a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"ba3d95ca_4095a3d4","updated":"2025-05-20 09:52:08.000000000","message":"recheck","commit_id":"048add090229ebbfb63a7268b013096ed9676ea0"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"84a872cbe7a351fc6a4b7c04a70135d024f9fc5a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"2da099fa_0790d397","updated":"2025-05-20 09:54:07.000000000","message":"second tempest failure is a known flaky issue: https://bugs.launchpad.net/watcher-tempest-plugin/+bug/2110107","commit_id":"048add090229ebbfb63a7268b013096ed9676ea0"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"8d6351846765d3dd5cb40eafd24e42db38e59837","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"0349045d_c0a5bd4c","updated":"2025-05-20 09:51:46.000000000","message":"tempest tests failure not related to this change\nhttps://storage.bhs.cloud.ovh.net/v1/AUTH_dcaab5e32b234d56b626f72581e3644c/zuul_opendev_logs_849/openstack/8492c6dbe0314e618cbd3376f5bf4e5e/testr_results.html\n```\nTraceback (most recent call last):\n  File \"/opt/stack/tempest/.tox/tempest/lib/python3.12/site-packages/watcher_tempest_plugin/tests/scenario/base.py\", line 320, in create_resource\n    resp, body \u003d self.gnocchi.create_resource(**kwargs)\n                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/opt/stack/tempest/.tox/tempest/lib/python3.12/site-packages/watcher_tempest_plugin/services/base.py\", line 45, in wrapper\n    return f(*args, **kwargs)\n           ^^^^^^^^^^^^^^^^^^\n  File \"/opt/stack/tempest/.tox/tempest/lib/python3.12/site-packages/watcher_tempest_plugin/services/metric/v1/json/client.py\", line 46, in create_resource\n    return self._create_request(\u0027/resource/{type}\u0027.format(\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/opt/stack/tempest/.tox/tempest/lib/python3.12/site-packages/watcher_tempest_plugin/services/base.py\", line 158, in _create_request\n    resp, body \u003d self.post(uri, body\u003dbody, headers\u003dheaders)\n                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/opt/stack/tempest/tempest/lib/common/rest_client.py\", line 314, in post\n    resp_header, resp_body \u003d self.request(\n                             ^^^^^^^^^^^^^\n  File \"/opt/stack/tempest/tempest/lib/common/rest_client.py\", line 762, in request\n    self._error_checker(resp, resp_body)\n  File \"/opt/stack/tempest/tempest/lib/common/rest_client.py\", line 892, in _error_checker\n    raise exceptions.Conflict(resp_body, resp\u003dresp)\ntempest.lib.exceptions.Conflict: Conflict with state of target resource\nDetails: {\u0027code\u0027: 409, \u0027title\u0027: \u0027Conflict\u0027, \u0027description\u0027: \u0027Resource b8a8e7be-23ff-4cea-a416-900beee90b85 already exists\u0027}\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n  File \"/opt/stack/tempest/.tox/tempest/lib/python3.12/site-packages/watcher_tempest_plugin/tests/scenario/test_execute_strategies.py\", line 170, in test_execute_vm_workload_consolidation_strategy\n    instances \u003d self._create_one_instance_per_host_with_statistic(\n                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/opt/stack/tempest/.tox/tempest/lib/python3.12/site-packages/watcher_tempest_plugin/tests/scenario/base.py\", line 298, in _create_one_instance_per_host_with_statistic\n    self.make_instance_statistic(instance, metrics\u003dmetrics)\n  File \"/opt/stack/tempest/.tox/tempest/lib/python3.12/site-packages/watcher_tempest_plugin/tests/scenario/base.py\", line 440, in make_instance_statistic\n    self.make_instance_statistic_gnocchi(instance, metrics)\n  File \"/opt/stack/tempest/.tox/tempest/lib/python3.12/site-packages/watcher_tempest_plugin/tests/scenario/base.py\", line 476, in make_instance_statistic_gnocchi\n    _, res \u003d self.create_resource(**resource_params)\n             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/opt/stack/tempest/.tox/tempest/lib/python3.12/site-packages/watcher_tempest_plugin/tests/scenario/base.py\", line 336, in create_resource\n    self.gnocchi.create_metric(**metric_body)\n  File \"/opt/stack/tempest/.tox/tempest/lib/python3.12/site-packages/watcher_tempest_plugin/services/base.py\", line 45, in wrapper\n    return f(*args, **kwargs)\n           ^^^^^^^^^^^^^^^^^^\n  File \"/opt/stack/tempest/.tox/tempest/lib/python3.12/site-packages/watcher_tempest_plugin/services/metric/v1/json/client.py\", line 81, in create_metric\n    return self._create_request(\u0027/metric\u0027, body)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/opt/stack/tempest/.tox/tempest/lib/python3.12/site-packages/watcher_tempest_plugin/services/base.py\", line 158, in _create_request\n    resp, body \u003d self.post(uri, body\u003dbody, headers\u003dheaders)\n                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/opt/stack/tempest/tempest/lib/common/rest_client.py\", line 314, in post\n    resp_header, resp_body \u003d self.request(\n                             ^^^^^^^^^^^^^\n  File \"/opt/stack/tempest/tempest/lib/common/rest_client.py\", line 762, in request\n    self._error_checker(resp, resp_body)\n  File \"/opt/stack/tempest/tempest/lib/common/rest_client.py\", line 877, in _error_checker\n    raise exceptions.BadRequest(resp_body, resp\u003dresp)\ntempest.lib.exceptions.BadRequest: Bad request\nDetails: {\u0027code\u0027: 400, \u0027title\u0027: \u0027Bad Request\u0027, \u0027description\u0027: {\u0027cause\u0027: \u0027Named metric already exists\u0027, \u0027detail\u0027: \u0027disk.root.size\u0027}}\n\n```","commit_id":"048add090229ebbfb63a7268b013096ed9676ea0"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"05645b45424ec4f44fb098e0b8721ffefcbc348b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"d4d53261_e7498ad1","updated":"2025-05-19 17:11:16.000000000","message":"thanks for the improvements, lgtm.\ntests are also passing with this code change","commit_id":"048add090229ebbfb63a7268b013096ed9676ea0"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"dc1c61d97a71d872c608655ae7396f77bf8ee262","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"890fdb43_a3503bbc","updated":"2025-05-20 10:06:46.000000000","message":"waiting for the tempest tests to pass!","commit_id":"048add090229ebbfb63a7268b013096ed9676ea0"}],"watcher_tempest_plugin/tests/scenario/base.py":[{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"7db070fbe984b519267bf979756362d6811c8361","unresolved":true,"context_lines":[{"line_number":837,"context_line":""},{"line_number":838,"context_line":"        # Check all instances are in the model and any of pairs are empty"},{"line_number":839,"context_line":"        while ("},{"line_number":840,"context_line":"            not set(instances_pairs) \u003d\u003d set(model_pairs)"},{"line_number":841,"context_line":"            or not model_pairs or not instances_pairs"},{"line_number":842,"context_line":"        ):"},{"line_number":843,"context_line":"            time.sleep(15)"}],"source_content_type":"text/x-python","patch_set":4,"id":"c64e2811_26e8b57d","line":840,"range":{"start_line":840,"start_character":37,"end_line":840,"end_character":39},"updated":"2025-05-16 12:58:59.000000000","message":"You should keep the \"\u003c\u003d\" here, since instances can be a subset of the available in model, doesn\u0027t need to be the same set.","commit_id":"f195b37bf7f976e0fb1072ed74d741693cb14802"},{"author":{"_account_id":28647,"name":"David","display_name":"morenod","email":"dsanzmor@redhat.com","username":"morenod"},"change_message_id":"e8d8b0d0201a3fb064512c97c7406452f70cbc45","unresolved":false,"context_lines":[{"line_number":837,"context_line":""},{"line_number":838,"context_line":"        # Check all instances are in the model and any of pairs are empty"},{"line_number":839,"context_line":"        while ("},{"line_number":840,"context_line":"            not set(instances_pairs) \u003d\u003d set(model_pairs)"},{"line_number":841,"context_line":"            or not model_pairs or not instances_pairs"},{"line_number":842,"context_line":"        ):"},{"line_number":843,"context_line":"            time.sleep(15)"}],"source_content_type":"text/x-python","patch_set":4,"id":"094b5e51_6fa49df6","line":840,"range":{"start_line":840,"start_character":37,"end_line":840,"end_character":39},"in_reply_to":"c64e2811_26e8b57d","updated":"2025-05-19 10:48:30.000000000","message":"makes sense, restored the \u003c\u003d","commit_id":"f195b37bf7f976e0fb1072ed74d741693cb14802"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"7db070fbe984b519267bf979756362d6811c8361","unresolved":true,"context_lines":[{"line_number":838,"context_line":"        # Check all instances are in the model and any of pairs are empty"},{"line_number":839,"context_line":"        while ("},{"line_number":840,"context_line":"            not set(instances_pairs) \u003d\u003d set(model_pairs)"},{"line_number":841,"context_line":"            or not model_pairs or not instances_pairs"},{"line_number":842,"context_line":"        ):"},{"line_number":843,"context_line":"            time.sleep(15)"},{"line_number":844,"context_line":"            if time.time() \u003e\u003d timeout_end:"}],"source_content_type":"text/x-python","patch_set":4,"id":"d873859b_30f42a82","line":841,"range":{"start_line":841,"start_character":38,"end_line":841,"end_character":53},"updated":"2025-05-16 12:58:59.000000000","message":"I think that you should check before the loop, \u0027if not instances_pairs -\u003e return\u0027, and not as part of the loop, since you don\u0027t update \u0027instances_pairs\u0027 inside it. If there is no instances_pais at this point, there is nothing to do here. And I think that is very unlikely to happen too.","commit_id":"f195b37bf7f976e0fb1072ed74d741693cb14802"},{"author":{"_account_id":28647,"name":"David","display_name":"morenod","email":"dsanzmor@redhat.com","username":"morenod"},"change_message_id":"e8d8b0d0201a3fb064512c97c7406452f70cbc45","unresolved":false,"context_lines":[{"line_number":838,"context_line":"        # Check all instances are in the model and any of pairs are empty"},{"line_number":839,"context_line":"        while ("},{"line_number":840,"context_line":"            not set(instances_pairs) \u003d\u003d set(model_pairs)"},{"line_number":841,"context_line":"            or not model_pairs or not instances_pairs"},{"line_number":842,"context_line":"        ):"},{"line_number":843,"context_line":"            time.sleep(15)"},{"line_number":844,"context_line":"            if time.time() \u003e\u003d timeout_end:"}],"source_content_type":"text/x-python","patch_set":4,"id":"d82da61d_12020803","line":841,"range":{"start_line":841,"start_character":38,"end_line":841,"end_character":53},"in_reply_to":"d873859b_30f42a82","updated":"2025-05-19 10:48:30.000000000","message":"ok, so if there is no instance, I raise an exception, because or the parameter was empty and no instance were created, or the show_server is failing, and we cant get the host where they are running","commit_id":"f195b37bf7f976e0fb1072ed74d741693cb14802"}]}
