)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"aae06b79ebb359b6cfe6a8fcfca9066d3eabd3ce","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"6a7f2ced_954e2836","updated":"2025-05-07 04:03:58.000000000","message":"recheck","commit_id":"6400e9f47de9730cc2345ef4198e57793d527da8"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"5997be94cb0744e7caad11cb8e8378c5f50c0bc6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"7b0c35ed_b6d1bc73","updated":"2025-05-07 05:42:53.000000000","message":"recheck","commit_id":"6400e9f47de9730cc2345ef4198e57793d527da8"},{"author":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"change_message_id":"b14d90e8f60bcc5759a0e1a29f671ca166fc7e8b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"cf2d8a7a_45ef8a99","updated":"2025-05-14 10:02:28.000000000","message":"We need a promotion in master including  https://review.opendev.org/c/openstack/watcher/+/948171for the podified job to pass","commit_id":"b91338265439087f195b95b3cd802fcb7c6f4950"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"2d96e26a6a46de317278bb4f869ca3f43c8968bb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"8c0a0532_457ba850","updated":"2025-05-16 14:47:18.000000000","message":"lgtm, we can see the test running and passing here [1]\n\n[1] https://5abecef1f3bb266f496f-fb8223838b5eb5d57b938bf62367a41b.ssl.cf2.rackcdn.com/openstack/b00a82d542434a74988980d131630cc2/testr_results.html","commit_id":"b91338265439087f195b95b3cd802fcb7c6f4950"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"a9c8042013b75eb178f8d0ba95d6a3e444b6ffca","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"5cbde86e_b21913ae","updated":"2025-05-12 07:22:11.000000000","message":"recheck","commit_id":"b91338265439087f195b95b3cd802fcb7c6f4950"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"810bebd5f53fa3a2fdc5f3f0311787fbda6e7ab7","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":9,"id":"2d3dc39c_f413dd32","in_reply_to":"cf2d8a7a_45ef8a99","updated":"2025-05-15 12:48:46.000000000","message":"so to avoid this going forward.\nlike the devstack job i think we may want to add watcher to required_project and ensure the metacontent provider alwasy builds form teh tip or master\nto remove the RDO promotion form the picture.\n\n\nin this case we also have a depend on agaisn the watcher review so the operator job is not really testing this properly since its not deploying the requested version.\n\nwether we choose to alwasy build form soruce or only do it when there is a depend on is up for debate but if there is a depend on we definetly should be buildign the watcher contianer from git","commit_id":"b91338265439087f195b95b3cd802fcb7c6f4950"}],"watcher_tempest_plugin/tests/scenario/test_execute_strategies.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"84d0262c4a876bc140fe90c61d45b366ba108b0e","unresolved":true,"context_lines":[{"line_number":111,"context_line":"        self.addCleanup(self.wait_delete_instances_from_model)"},{"line_number":112,"context_line":"        instances \u003d self._create_one_instance_per_host_with_statistic("},{"line_number":113,"context_line":"            inject\u003dINJECT_METRICS)"},{"line_number":114,"context_line":"        hostname \u003d instances[0].get(\u0027OS-EXT-SRV-ATTR:hypervisor_hostname\u0027)"},{"line_number":115,"context_line":"        # wait for compute model updates"},{"line_number":116,"context_line":"        self.wait_for_instances_in_model(instances)"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"        backup_node \u003d [hyp[\u0027hypervisor_hostname\u0027] for hyp"},{"line_number":119,"context_line":"                       in self.get_hypervisors_setup()"},{"line_number":120,"context_line":"                       if hyp[\u0027state\u0027] \u003d\u003d \u0027up\u0027"},{"line_number":121,"context_line":"                       and hyp[\u0027hypervisor_hostname\u0027] !\u003d hostname][0]"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"        goal_name \u003d \"cluster_maintaining\""},{"line_number":124,"context_line":"        strategy_name \u003d \"host_maintenance\""}],"source_content_type":"text/x-python","patch_set":5,"id":"70f88577_b2eee7ea","line":121,"range":{"start_line":114,"start_character":0,"end_line":121,"end_character":69},"updated":"2025-05-01 13:19:07.000000000","message":"this is incorrect.\n\nwe are passing the the compute service host not the hypervisor hostname\n\nthe two are not nessiarly the saem\n\nthey default to the same thing for libvirt but even then hypervior hostname_comes form libvirt which use a hlep funciton in glibc that trys to find the fqdn if possibel\n\nwhere as the service host value default to socket.gethostname() which does not\n\nin most env theyw will both be the short hostname. in our new installer they both sould be the FQDN\n\nbut they can be two entrily unrelated values if you want them to be.","commit_id":"fc4997982958dd5cc6a04c2c28a3c28c54130d1f"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"1256ce0969730b28d7b755883fc1c9fb9f97f45d","unresolved":true,"context_lines":[{"line_number":111,"context_line":"        self.addCleanup(self.wait_delete_instances_from_model)"},{"line_number":112,"context_line":"        instances \u003d self._create_one_instance_per_host_with_statistic("},{"line_number":113,"context_line":"            inject\u003dINJECT_METRICS)"},{"line_number":114,"context_line":"        hostname \u003d instances[0].get(\u0027OS-EXT-SRV-ATTR:hypervisor_hostname\u0027)"},{"line_number":115,"context_line":"        # wait for compute model updates"},{"line_number":116,"context_line":"        self.wait_for_instances_in_model(instances)"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"        backup_node \u003d [hyp[\u0027hypervisor_hostname\u0027] for hyp"},{"line_number":119,"context_line":"                       in self.get_hypervisors_setup()"},{"line_number":120,"context_line":"                       if hyp[\u0027state\u0027] \u003d\u003d \u0027up\u0027"},{"line_number":121,"context_line":"                       and hyp[\u0027hypervisor_hostname\u0027] !\u003d hostname][0]"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"        goal_name \u003d \"cluster_maintaining\""},{"line_number":124,"context_line":"        strategy_name \u003d \"host_maintenance\""}],"source_content_type":"text/x-python","patch_set":5,"id":"8aca342a_1a463e2a","line":121,"range":{"start_line":114,"start_character":0,"end_line":121,"end_character":69},"in_reply_to":"70f88577_b2eee7ea","updated":"2025-05-06 14:33:29.000000000","message":"Thank you @seanmooney8202@yahoo.ie for clearly explaining the different values of compute service host and hypervisor hostname.\n\nI have used `instances[0].get(\u0027OS-EXT-SRV-ATTR:host\u0027)` to get hypervisor hostname here. which I think is correct?","commit_id":"fc4997982958dd5cc6a04c2c28a3c28c54130d1f"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c25aafcff7e0ab39cdd01ebb1fe8956a20edea47","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        self.addCleanup(self.wait_delete_instances_from_model)"},{"line_number":112,"context_line":"        instances \u003d self._create_one_instance_per_host_with_statistic("},{"line_number":113,"context_line":"            inject\u003dINJECT_METRICS)"},{"line_number":114,"context_line":"        hostname \u003d instances[0].get(\u0027OS-EXT-SRV-ATTR:hypervisor_hostname\u0027)"},{"line_number":115,"context_line":"        # wait for compute model updates"},{"line_number":116,"context_line":"        self.wait_for_instances_in_model(instances)"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"        backup_node \u003d [hyp[\u0027hypervisor_hostname\u0027] for hyp"},{"line_number":119,"context_line":"                       in self.get_hypervisors_setup()"},{"line_number":120,"context_line":"                       if hyp[\u0027state\u0027] \u003d\u003d \u0027up\u0027"},{"line_number":121,"context_line":"                       and hyp[\u0027hypervisor_hostname\u0027] !\u003d hostname][0]"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"        goal_name \u003d \"cluster_maintaining\""},{"line_number":124,"context_line":"        strategy_name \u003d \"host_maintenance\""}],"source_content_type":"text/x-python","patch_set":5,"id":"573c41f6_ece0afb2","line":121,"range":{"start_line":114,"start_character":0,"end_line":121,"end_character":69},"in_reply_to":"8aca342a_1a463e2a","updated":"2025-05-08 11:04:45.000000000","message":"Acknowledged","commit_id":"fc4997982958dd5cc6a04c2c28a3c28c54130d1f"},{"author":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"change_message_id":"24ef2a6870c93946e7117a1d53bf322c439c6b47","unresolved":true,"context_lines":[{"line_number":129,"context_line":"            }"},{"line_number":130,"context_line":"        }"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"        self.execute_strategy(goal_name, strategy_name, **audit_kwargs)"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    def test_execute_storage_capacity_balance_strategy(self):"},{"line_number":135,"context_line":"        self.addCleanup(self.rollback_compute_nodes_status)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f3c6d43_1fce36e8","line":132,"updated":"2025-04-29 08:38:14.000000000","message":"I think, we should check that at least a migration is included in the action plan by adding expected_actions\u003d[\u0027migrate\u0027] parameter.","commit_id":"fc4997982958dd5cc6a04c2c28a3c28c54130d1f"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"1256ce0969730b28d7b755883fc1c9fb9f97f45d","unresolved":false,"context_lines":[{"line_number":129,"context_line":"            }"},{"line_number":130,"context_line":"        }"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"        self.execute_strategy(goal_name, strategy_name, **audit_kwargs)"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    def test_execute_storage_capacity_balance_strategy(self):"},{"line_number":135,"context_line":"        self.addCleanup(self.rollback_compute_nodes_status)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9b0a8e33_c853038f","line":132,"in_reply_to":"7f3c6d43_1fce36e8","updated":"2025-05-06 14:33:29.000000000","message":"Done","commit_id":"fc4997982958dd5cc6a04c2c28a3c28c54130d1f"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c25aafcff7e0ab39cdd01ebb1fe8956a20edea47","unresolved":true,"context_lines":[{"line_number":116,"context_line":"        self.addCleanup(self.wait_delete_instances_from_model)"},{"line_number":117,"context_line":"        instances \u003d self._create_one_instance_per_host_with_statistic("},{"line_number":118,"context_line":"            inject\u003dINJECT_METRICS)"},{"line_number":119,"context_line":"        hostname \u003d instances[0].get(\u0027OS-EXT-SRV-ATTR:host\u0027)"},{"line_number":120,"context_line":"        # wait for compute model updates"},{"line_number":121,"context_line":"        self.wait_for_instances_in_model(instances)"},{"line_number":122,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"d78bc7a2_fb74077b","line":119,"updated":"2025-05-08 11:04:45.000000000","message":"so by using this your now mixing host and hypervior_hostname again but in this code insted of in watcher\n\n\n        backup_node \u003d [hyp[\u0027hypervisor_hostname\u0027] for hyp\n                       in self.get_hypervisors_setup()\n                       if hyp[\u0027state\u0027] \u003d\u003d \u0027up\u0027\n                       and hyp[\u0027hypervisor_hostname\u0027] !\u003d hostname][0]\n                       \nif we are not going to change the loop to be over the compute services it might be better to revert this back to \u0027OS-EXT-SRV-ATTR:hypervisor_hostname\u0027 to be consitent iwht the ohter tests.\n\nlike line 96\n\n\nwe an decied if we are going to fix how we lookup the source later in a sperate pr.","commit_id":"ab6e39af13479c9a04ac6a587962c78a2e5b17c5"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"810bebd5f53fa3a2fdc5f3f0311787fbda6e7ab7","unresolved":true,"context_lines":[{"line_number":116,"context_line":"        self.addCleanup(self.wait_delete_instances_from_model)"},{"line_number":117,"context_line":"        instances \u003d self._create_one_instance_per_host_with_statistic("},{"line_number":118,"context_line":"            inject\u003dINJECT_METRICS)"},{"line_number":119,"context_line":"        hostname \u003d instances[0].get(\u0027OS-EXT-SRV-ATTR:host\u0027)"},{"line_number":120,"context_line":"        # wait for compute model updates"},{"line_number":121,"context_line":"        self.wait_for_instances_in_model(instances)"},{"line_number":122,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"e551f885_71291d89","line":119,"in_reply_to":"171efcf3_cfde0ae4","updated":"2025-05-15 12:48:46.000000000","message":"thanks ill reviw that sepreatly then.","commit_id":"ab6e39af13479c9a04ac6a587962c78a2e5b17c5"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"64c4b7923c74cc894a15b35a294e6e18ba1ab581","unresolved":true,"context_lines":[{"line_number":116,"context_line":"        self.addCleanup(self.wait_delete_instances_from_model)"},{"line_number":117,"context_line":"        instances \u003d self._create_one_instance_per_host_with_statistic("},{"line_number":118,"context_line":"            inject\u003dINJECT_METRICS)"},{"line_number":119,"context_line":"        hostname \u003d instances[0].get(\u0027OS-EXT-SRV-ATTR:host\u0027)"},{"line_number":120,"context_line":"        # wait for compute model updates"},{"line_number":121,"context_line":"        self.wait_for_instances_in_model(instances)"},{"line_number":122,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"fa84f1cb_a98969b2","line":119,"in_reply_to":"d78bc7a2_fb74077b","updated":"2025-05-12 06:21:45.000000000","message":"Thank you @seanmooney8202@yahoo.ie for the comment, \nBased on tempest https://github.com/openstack/tempest/blob/b72f28e6fc622f813e43a883ed57919dc748d8e9/tempest/scenario/manager.py#L1351 It get the hostname of a server.\n```\ndef get_host_for_server(cls, server_id):\n        \"\"\"Gets host of server\"\"\"\n\n        server_details \u003d cls.os_admin.servers_client.show_server(server_id)\n        return server_details[\u0027server\u0027][\u0027OS-EXT-SRV-ATTR:host\u0027]\n```\nand we also have https://github.com/openstack/tempest/blob/b72f28e6fc622f813e43a883ed57919dc748d8e9/tempest/api/compute/base.py#L716 to get other hosts.\n\nCurrently I will revert back and I will do a followup pr to make the changes as suggested.","commit_id":"ab6e39af13479c9a04ac6a587962c78a2e5b17c5"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"75897f25f1e9a082df37828c9ae89f6cf32b21cd","unresolved":true,"context_lines":[{"line_number":116,"context_line":"        self.addCleanup(self.wait_delete_instances_from_model)"},{"line_number":117,"context_line":"        instances \u003d self._create_one_instance_per_host_with_statistic("},{"line_number":118,"context_line":"            inject\u003dINJECT_METRICS)"},{"line_number":119,"context_line":"        hostname \u003d instances[0].get(\u0027OS-EXT-SRV-ATTR:host\u0027)"},{"line_number":120,"context_line":"        # wait for compute model updates"},{"line_number":121,"context_line":"        self.wait_for_instances_in_model(instances)"},{"line_number":122,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"171efcf3_cfde0ae4","line":119,"in_reply_to":"fa84f1cb_a98969b2","updated":"2025-05-13 09:15:05.000000000","message":"@seanmooney8202@yahoo.ie, I have addeed the same https://review.opendev.org/c/openstack/watcher-tempest-plugin/+/949557 here.","commit_id":"ab6e39af13479c9a04ac6a587962c78a2e5b17c5"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"7c21a3a35e2a5c2277f0781655aa40e63a3a1170","unresolved":true,"context_lines":[{"line_number":137,"context_line":"        self.execute_strategy(goal_name, strategy_name,"},{"line_number":138,"context_line":"                              expected_actions\u003d[\u0027change_nova_service_state\u0027,"},{"line_number":139,"context_line":"                                                \u0027migrate\u0027],"},{"line_number":140,"context_line":"                              **audit_kwargs)"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    @decorators.idempotent_id(\u00277e3a9195-acc5-40cf-96da-a0a2883294d3\u0027)"},{"line_number":143,"context_line":"    def test_execute_storage_capacity_balance_strategy(self):"}],"source_content_type":"text/x-python","patch_set":9,"id":"146b8837_1d3a9ae6","line":140,"updated":"2025-05-16 10:37:42.000000000","message":"this might be a stupid question, but could/should we check that the result of the audit is the desired? In this case, in addition to the existing check that we have a migration, should we check that the migration was done to the backup_node, to ensure the strategy worked properly?","commit_id":"b91338265439087f195b95b3cd802fcb7c6f4950"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"459ca5055409bd7bdc98922fffe85fc04b3f8183","unresolved":true,"context_lines":[{"line_number":137,"context_line":"        self.execute_strategy(goal_name, strategy_name,"},{"line_number":138,"context_line":"                              expected_actions\u003d[\u0027change_nova_service_state\u0027,"},{"line_number":139,"context_line":"                                                \u0027migrate\u0027],"},{"line_number":140,"context_line":"                              **audit_kwargs)"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    @decorators.idempotent_id(\u00277e3a9195-acc5-40cf-96da-a0a2883294d3\u0027)"},{"line_number":143,"context_line":"    def test_execute_storage_capacity_balance_strategy(self):"}],"source_content_type":"text/x-python","patch_set":9,"id":"5ad858f2_896b0772","line":140,"in_reply_to":"146b8837_1d3a9ae6","updated":"2025-05-18 11:35:35.000000000","message":"Thanks @jgilaber@redhat.com, It\u0027s a great suggestion, we can add an improvement to the test in a follow up cr.","commit_id":"b91338265439087f195b95b3cd802fcb7c6f4950"}]}
