)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"5556e47a4f395023b0bc4c64e9d1078b9a0df5b9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"1e6f057a_e62266fa","updated":"2025-08-29 07:04:40.000000000","message":"recheck","commit_id":"9fa5f0b72613538278fbcb9c9c0543ad0ed2cc38"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"a29ebaaa380f865a452a657ccf3d6551980423e5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"77c0d08a_6d8664b7","updated":"2025-10-01 09:28:02.000000000","message":"recheck","commit_id":"b5292e77dc33af035adc5acb3ae6bcd2b4e81356"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"8d24937cbb21a7d40e4f38c3b08a821572993efb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"ec696771_8b44194c","updated":"2025-10-01 12:39:52.000000000","message":"recheck","commit_id":"b5292e77dc33af035adc5acb3ae6bcd2b4e81356"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"e3175226cd00db6fd21762510ddb57e341d57869","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"76ed11d9_308cbaa9","updated":"2025-10-06 09:04:08.000000000","message":"recheck unrelated `WorkloadBalance` test failed","commit_id":"0e76296f25ab4d8c6210213062402420c4f03cc0"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"322246dc25d1bdb8e4847bd13a9109f2d1c9b9c9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"d855fdf1_65bf55cc","updated":"2025-10-08 13:23:01.000000000","message":"check-rdo","commit_id":"3634a686fbbe62ad92892eceb846ddb2dc060386"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"f62fef0fe183be29171bf095a9cc5d7e34621403","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"28bbc7bf_1f672335","updated":"2025-10-08 16:40:53.000000000","message":"https://logserver.rdoproject.org/4a0/rdoproject.org/4a0b4adfac65473ead52382180d3650f/controller/ci-framework-data/tests/test_operator/tempest-tests-tempest/tempest_results.html shows the new test passing an environment that uses nfs as storage backend","commit_id":"1f6d4378f49f1565787a72bfe406283c4ae03355"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"7064aad895a410043e5658e469b68512f13ea7eb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"569c3d01_5e7739e7","updated":"2025-10-15 06:40:17.000000000","message":"Overall it looks good:\n - Volume retype test: PASSED - Both volumes properly retyped\n - Volume migrate test: PASSED - Volumes migrated to different pools\n - All volumes and servers are cleaned up during resource cleanup stage.","commit_id":"477983965a3fbdaaa2300b5ea0251b913cf70fb7"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"ed16153247b4e02ebd471c54887332f37aaf25f1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"8d1747cd_cc82b3db","updated":"2025-10-20 19:16:50.000000000","message":"-1: bacause the job is passing with 2 backends, not 2 pools within the same backend. I\u0027m not sure if LVM actually supports multiple pools per backend. But I think that the right thing is to have 2 different backend names, like [1].\n\n\n[1] https://opendev.org/openstack/cinder/src/commit/d02171164bdd702b12b59888b744d172f30d712d/.zuul.yaml#L324","commit_id":"2b4af10d5138ab86bd079276df81bdce23de2e75"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7b79d0ec99eeecbfb0376d2c83418858ddbd1ae1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"dd88d329_eabb0db8","updated":"2025-10-24 15:02:59.000000000","message":"im unsure what the current state of this stack of commits is based on the last irc conversation\n\nwould you mind commeitn on that","commit_id":"ddb3f3470621d6491b1c68098a6bb66946cff52b"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b76ff02d4b8e158042f500f005c634939d001e50","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"ed5e67db_222775ad","in_reply_to":"4a524a27_1bf84825","updated":"2025-10-24 15:09:33.000000000","message":"ok ya that makes sense to me would you mind adding a depend on against\n\n https://review.opendev.org/c/openstack/watcher/+/963857, \n and squsing in  https://review.opendev.org/c/openstack/watcher-tempest-plugin/+/963860\n \n ill go review https://review.opendev.org/c/openstack/watcher/+/963857 in the interim","commit_id":"ddb3f3470621d6491b1c68098a6bb66946cff52b"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"486d8ca5c6b7215e309acc058e18590754ef0173","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"4a524a27_1bf84825","in_reply_to":"dd88d329_eabb0db8","updated":"2025-10-24 15:06:13.000000000","message":"I think the path forward here is to merge the watcher bug fix https://review.opendev.org/c/openstack/watcher/+/963857, and then squash https://review.opendev.org/c/openstack/watcher-tempest-plugin/+/963860 on this patch and continue with the other two patches","commit_id":"ddb3f3470621d6491b1c68098a6bb66946cff52b"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"df680c60aa08ec7cd25bafbc880aaaf9dadc11be","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"7f53f1ea_ce128220","in_reply_to":"ed5e67db_222775ad","updated":"2025-10-24 15:20:12.000000000","message":"done! I\u0027ve abandoned https://review.opendev.org/c/openstack/watcher-tempest-plugin/+/963860 and squashed the changes here","commit_id":"ddb3f3470621d6491b1c68098a6bb66946cff52b"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"d7dc93993a48e15c9c898a064fd5459f0b679525","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"c1461217_d2649bc1","updated":"2025-12-10 12:47:57.000000000","message":"Not sure if this is going to break stable branches, since it depends on a fix on master only, so we should hold until we backport or protect with a config option.","commit_id":"a0a12dd8615b3735984e48711482fd37416e8157"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"3cda607d7e49c5e836fb302ed9ace897253871ae","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"91ed2509_6cf43a89","updated":"2025-11-12 14:52:08.000000000","message":"lgtm, but we still need to merge the bugfix first.","commit_id":"a0a12dd8615b3735984e48711482fd37416e8157"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"d88ef3469064ecb6ca74b0edf4e65f167c9d2cf5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"ef344dc5_1cc6e804","updated":"2025-11-07 06:08:31.000000000","message":"recheck stable jobs should be green now","commit_id":"a0a12dd8615b3735984e48711482fd37416e8157"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ed3a026c213672bee77fa99c464e6d2c63ed1b53","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"8fbbf513_fc18a47b","updated":"2025-11-05 10:51:37.000000000","message":"recheck test_execute_vm_workload_consolidation_strategy did not calulate the expected action. flaky?","commit_id":"a0a12dd8615b3735984e48711482fd37416e8157"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"6d928a7f33bbaff671ab36ae75b7c0a41995f83f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"6372828f_c1a172d3","updated":"2025-11-28 12:24:27.000000000","message":"waiting for the depends-on to merge!","commit_id":"a0a12dd8615b3735984e48711482fd37416e8157"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0e5f26ebefcc29c0147b02b93a00e0b5df12d2f0","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":24,"id":"66dcc6e6_e506cff4","in_reply_to":"6372828f_c1a172d3","updated":"2025-12-08 22:51:09.000000000","message":"the way zuul is ment to work if you list all your depencies proeprly then you shoudl never need to wait\n\nneedint to wait si a defect in tide/prow","commit_id":"a0a12dd8615b3735984e48711482fd37416e8157"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"fb981f2ce2f3020be00e8a27c6ac10e90a65cb76","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"a476f656_a60cea39","in_reply_to":"66dcc6e6_e506cff4","updated":"2026-03-09 15:08:14.000000000","message":"Acknowledged","commit_id":"a0a12dd8615b3735984e48711482fd37416e8157"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3f2a3b26f8e4c9298ec3574ce0eabf39b1a12aa7","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":24,"id":"c471605e_6776a3d5","in_reply_to":"c1461217_d2649bc1","updated":"2025-12-10 13:03:06.000000000","message":"sigh thats what the sable branch test are intened to protect agasint\nok ill drop -w lets ensure the test is runnign on the stable jobs before we proceed with adding the test to confirm it will not break anythign.\n\ntempest test really should not depend on bugfixes they are intened to test feature not bugs.\n\nbugs are intend to be vaildate by the unit and functional test.\nso your right if  a bug fix adds new functionality and we want to test that feature we need a feature flag to contol the test on older branches.\n\nthe orgianl intent of tempest was to test the interopatblity and functionaly of diffent openstack clodu with differnt version fo openstack to ensure the api behaivor does not change over tiem so it not intneded for bug verificaion in general.","commit_id":"a0a12dd8615b3735984e48711482fd37416e8157"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"993bf5f27047db6e8bb3dc80d47f2e257ede0f19","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"b634d815_4d90a490","in_reply_to":"c1461217_d2649bc1","updated":"2025-12-10 13:11:04.000000000","message":"you\u0027re right, once https://review.opendev.org/c/openstack/watcher-tempest-plugin/+/969244 merges it should be behind the `run_zone_migration_storage_tests` flag","commit_id":"a0a12dd8615b3735984e48711482fd37416e8157"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"d867888812848cc2e7f09b144719ddd28d270203","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":26,"id":"74de904c_172c02f3","updated":"2026-03-06 09:27:22.000000000","message":"Depends-On merged","commit_id":"a638097d4a9713a5ea84119c6c4ed29371f019ce"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"e43efc792b34ce5104636264f6eced2ae129b254","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":26,"id":"43f4023e_e93d3966","updated":"2026-03-06 09:33:49.000000000","message":"Dropping workflow, need to confirm with others regarding do we need to backport depends on stable branches before merging it","commit_id":"a638097d4a9713a5ea84119c6c4ed29371f019ce"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"c42eb0e13f127386e2f7ee0ae08a101718b390eb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":26,"id":"94ca7802_b91bf0e4","updated":"2025-12-19 17:30:19.000000000","message":"We can merge, but it is still missing enabling this TestClass in watcher master branch, is there any other change doing that?","commit_id":"a638097d4a9713a5ea84119c6c4ed29371f019ce"},{"author":{"_account_id":28647,"name":"David","display_name":"morenod","email":"dsanzmor@redhat.com","username":"morenod"},"change_message_id":"d5ad8c6a21f0c21481b1b9dea3818cb63afc8353","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":26,"id":"838d857c_57769476","updated":"2026-01-13 10:28:18.000000000","message":"lgtm","commit_id":"a638097d4a9713a5ea84119c6c4ed29371f019ce"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"2c2d2aa1ef2762a6c8d65580cdd688610c9ba34c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":26,"id":"8ecf4c27_823c5b5f","updated":"2026-03-06 08:19:24.000000000","message":"recheck","commit_id":"a638097d4a9713a5ea84119c6c4ed29371f019ce"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"e204253e7f2e2d8d9129d9ebcc25c12e76be6898","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":26,"id":"221004e5_5a7c3b11","updated":"2026-03-06 09:41:37.000000000","message":"thanks for confirming!","commit_id":"a638097d4a9713a5ea84119c6c4ed29371f019ce"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"fc2ec800061062bda570928e53ea8ba0928b40ee","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":26,"id":"a7682ec7_6e95cd32","in_reply_to":"43f4023e_e93d3966","updated":"2026-03-06 09:40:15.000000000","message":"it should be safe to merge, all the added tests are behind the `run_zone_migration_storage_tests` flag. Currently they will only run on master. Once the backport for the depends-on patch merges, I\u0027ll enable them on the stable branches as well","commit_id":"a638097d4a9713a5ea84119c6c4ed29371f019ce"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"ee778f9ddce6562defb657e81c4fde76c5afbdb8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":26,"id":"cfccecbd_7431be32","in_reply_to":"94ca7802_b91bf0e4","updated":"2025-12-22 07:33:06.000000000","message":"yes, https://review.opendev.org/c/openstack/watcher/+/970381 enables the tests, but for this to merge we need to merge the bug fix first","commit_id":"a638097d4a9713a5ea84119c6c4ed29371f019ce"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"dc426859d53f61bba2421ec770f384ca6256785e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":32,"id":"c1046674_15ec7ef8","updated":"2026-03-10 08:26:47.000000000","message":"recheck","commit_id":"5931d8d6e69fb6fa67320bbc508b3744b12bed85"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"eff6a4d5a1a1b88e028f93d5094494276bfb0a64","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":32,"id":"de67269f_4d9a7d9b","updated":"2026-03-09 15:07:37.000000000","message":"recheck","commit_id":"5931d8d6e69fb6fa67320bbc508b3744b12bed85"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"68dda6e3d4a412fd1d5086a18ef0aefb23d8ef22","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":32,"id":"fa6edf5e_f0cd3ea9","updated":"2026-03-09 15:21:57.000000000","message":"recheck","commit_id":"5931d8d6e69fb6fa67320bbc508b3744b12bed85"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"773edfee95c62e9b235436e21ffd0969a441bcf8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":34,"id":"b4673562_2f06c9c6","updated":"2026-03-10 20:38:10.000000000","message":"lgtm, running and passing in master: https://ee543f70ee712899d869-284808df0480792a2bc66ed6147fab6e.ssl.cf1.rackcdn.com/openstack/c67aa331b1c14a1686f4c6c3d4f5a942/testr_results.html","commit_id":"49e68f7556c35248d3c960e67ecbb927183031bc"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"e0bda8f9150abd551adaa1469becd85bcabc7366","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":34,"id":"fa5bd73b_a7408498","updated":"2026-03-11 12:05:14.000000000","message":"looks much better now!","commit_id":"49e68f7556c35248d3c960e67ecbb927183031bc"}],"watcher_tempest_plugin/tests/scenario/test_execute_zone_migration.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"9d043c45a8bd888072b93fe3ede192bd5f0cd839","unresolved":true,"context_lines":[{"line_number":228,"context_line":"        self.addCleanup(self.rollback_compute_nodes_status)"},{"line_number":229,"context_line":"        self.addCleanup(self.wait_delete_instances_from_model)"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"        backend_name \u003d self.check_multiple_pools_in_backend()"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"        # create a volume type to avoid using the default volume type"},{"line_number":234,"context_line":"        # since in some environments the default volume type might not"}],"source_content_type":"text/x-python","patch_set":10,"id":"d9f23c54_cd47477c","line":231,"range":{"start_line":231,"start_character":7,"end_line":231,"end_character":61},"updated":"2025-10-03 14:44:25.000000000","message":"nit this proably shoudl be the rist th8ing in the test before the cleanup funcitons since it will skip the test if the requirements are not met so we can avoid registerign the ohter fucntion and executing them","commit_id":"7a88e549bcff134f33cc1fcfd7537f2124b4d7df"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"d10d51fc73ab208b5893aa542719c542bc13b0d4","unresolved":false,"context_lines":[{"line_number":228,"context_line":"        self.addCleanup(self.rollback_compute_nodes_status)"},{"line_number":229,"context_line":"        self.addCleanup(self.wait_delete_instances_from_model)"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"        backend_name \u003d self.check_multiple_pools_in_backend()"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"        # create a volume type to avoid using the default volume type"},{"line_number":234,"context_line":"        # since in some environments the default volume type might not"}],"source_content_type":"text/x-python","patch_set":10,"id":"65e84593_60f4d7b9","line":231,"range":{"start_line":231,"start_character":7,"end_line":231,"end_character":61},"in_reply_to":"d9f23c54_cd47477c","updated":"2025-10-06 07:15:50.000000000","message":"Done","commit_id":"7a88e549bcff134f33cc1fcfd7537f2124b4d7df"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"9d043c45a8bd888072b93fe3ede192bd5f0cd839","unresolved":true,"context_lines":[{"line_number":234,"context_line":"        # since in some environments the default volume type might not"},{"line_number":235,"context_line":"        # be properly configured and prevent migrations"},{"line_number":236,"context_line":"        # use a backend name that has more than one pool"},{"line_number":237,"context_line":"        volume_type \u003d self.create_volume_type("},{"line_number":238,"context_line":"            backend_name\u003dbackend_name"},{"line_number":239,"context_line":"        )"},{"line_number":240,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"52d89c51_b81a4e12","line":237,"updated":"2025-10-03 14:44:25.000000000","message":"https://github.com/openstack/tempest/blob/93df2d2d3e73788db982be0f4b85e3451343c94c/tempest/scenario/manager.py#L550-L591\n\nthis is using the tempest defintion fo thsi function wich correctly registers it for cleanup\n\nhttps://github.com/openstack/tempest/blob/93df2d2d3e73788db982be0f4b85e3451343c94c/tempest/scenario/manager.py#L590","commit_id":"7a88e549bcff134f33cc1fcfd7537f2124b4d7df"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"d10d51fc73ab208b5893aa542719c542bc13b0d4","unresolved":false,"context_lines":[{"line_number":234,"context_line":"        # since in some environments the default volume type might not"},{"line_number":235,"context_line":"        # be properly configured and prevent migrations"},{"line_number":236,"context_line":"        # use a backend name that has more than one pool"},{"line_number":237,"context_line":"        volume_type \u003d self.create_volume_type("},{"line_number":238,"context_line":"            backend_name\u003dbackend_name"},{"line_number":239,"context_line":"        )"},{"line_number":240,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"302ae16c_7d6e7290","line":237,"in_reply_to":"52d89c51_b81a4e12","updated":"2025-10-06 07:15:50.000000000","message":"Acknowledged","commit_id":"7a88e549bcff134f33cc1fcfd7537f2124b4d7df"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"9d043c45a8bd888072b93fe3ede192bd5f0cd839","unresolved":true,"context_lines":[{"line_number":239,"context_line":"        )"},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"        # create a free volume"},{"line_number":242,"context_line":"        volume \u003d self.create_volume("},{"line_number":243,"context_line":"            name\u003d\"free_volume_migrate\","},{"line_number":244,"context_line":"            volume_type\u003dvolume_type[\u0027name\u0027]"},{"line_number":245,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":10,"id":"f7839c7d_74e9c1b9","line":242,"updated":"2025-10-03 14:44:25.000000000","message":"https://github.com/openstack/tempest/blob/93df2d2d3e73788db982be0f4b85e3451343c94c/tempest/scenario/manager.py#L363\n\nsame here","commit_id":"7a88e549bcff134f33cc1fcfd7537f2124b4d7df"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"d10d51fc73ab208b5893aa542719c542bc13b0d4","unresolved":false,"context_lines":[{"line_number":239,"context_line":"        )"},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"        # create a free volume"},{"line_number":242,"context_line":"        volume \u003d self.create_volume("},{"line_number":243,"context_line":"            name\u003d\"free_volume_migrate\","},{"line_number":244,"context_line":"            volume_type\u003dvolume_type[\u0027name\u0027]"},{"line_number":245,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":10,"id":"393cb644_3967bb12","line":242,"in_reply_to":"f7839c7d_74e9c1b9","updated":"2025-10-06 07:15:50.000000000","message":"Acknowledged","commit_id":"7a88e549bcff134f33cc1fcfd7537f2124b4d7df"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"9d043c45a8bd888072b93fe3ede192bd5f0cd839","unresolved":true,"context_lines":[{"line_number":246,"context_line":""},{"line_number":247,"context_line":"        # create a volume and attach it to an instance"},{"line_number":248,"context_line":"        instance \u003d self.create_server("},{"line_number":249,"context_line":"            image_id\u003dCONF.compute.image_ref, wait_until\u003d\u0027ACTIVE\u0027,"},{"line_number":250,"context_line":"            clients\u003dself.os_admin)"},{"line_number":251,"context_line":"        volume2 \u003d self.create_volume("},{"line_number":252,"context_line":"            name\u003d\"attached_volume_migrate\","}],"source_content_type":"text/x-python","patch_set":10,"id":"4a83fd2a_8f7e3a09","line":249,"range":{"start_line":249,"start_character":57,"end_line":249,"end_character":63},"updated":"2025-10-03 14:44:25.000000000","message":"when dealing with volume you shoudl wait for SSHABLE not ACTIVE\nthis is because attaching a volume when a cirros guest is still booting can cause a kernel panic in some cases.\n\nthis lead to flaky tests in ci so we alwasy wait for SSHABLE in thest that attach or detach volumes.\n\nyou coudl isntead create a vim with the volume initally isntead of attachign it after. in that case its fine to use ACTIVE buteither is fine.","commit_id":"7a88e549bcff134f33cc1fcfd7537f2124b4d7df"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"d10d51fc73ab208b5893aa542719c542bc13b0d4","unresolved":false,"context_lines":[{"line_number":246,"context_line":""},{"line_number":247,"context_line":"        # create a volume and attach it to an instance"},{"line_number":248,"context_line":"        instance \u003d self.create_server("},{"line_number":249,"context_line":"            image_id\u003dCONF.compute.image_ref, wait_until\u003d\u0027ACTIVE\u0027,"},{"line_number":250,"context_line":"            clients\u003dself.os_admin)"},{"line_number":251,"context_line":"        volume2 \u003d self.create_volume("},{"line_number":252,"context_line":"            name\u003d\"attached_volume_migrate\","}],"source_content_type":"text/x-python","patch_set":10,"id":"d76db425_50c5e0ef","line":249,"range":{"start_line":249,"start_character":57,"end_line":249,"end_character":63},"in_reply_to":"4a83fd2a_8f7e3a09","updated":"2025-10-06 07:15:50.000000000","message":"ack, I did not know that, thanks, changed to `SSHABLE`","commit_id":"7a88e549bcff134f33cc1fcfd7537f2124b4d7df"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"9d043c45a8bd888072b93fe3ede192bd5f0cd839","unresolved":true,"context_lines":[{"line_number":247,"context_line":"        # create a volume and attach it to an instance"},{"line_number":248,"context_line":"        instance \u003d self.create_server("},{"line_number":249,"context_line":"            image_id\u003dCONF.compute.image_ref, wait_until\u003d\u0027ACTIVE\u0027,"},{"line_number":250,"context_line":"            clients\u003dself.os_admin)"},{"line_number":251,"context_line":"        volume2 \u003d self.create_volume("},{"line_number":252,"context_line":"            name\u003d\"attached_volume_migrate\","},{"line_number":253,"context_line":"            volume_type\u003dvolume_type[\u0027name\u0027]"}],"source_content_type":"text/x-python","patch_set":10,"id":"809e6dcd_22d75683","line":250,"range":{"start_line":250,"start_character":0,"end_line":250,"end_character":2},"updated":"2025-10-03 14:44:25.000000000","message":"nit: we do not acutlly need a admin client for this test or at least not this part.\n\nits prefered to use the normal user client unless the api request need the admin credentials but thats not a hard blocker.\n\nwe dont want to acendtally write test that only pass because we are using admin when it should work for a normal user.","commit_id":"7a88e549bcff134f33cc1fcfd7537f2124b4d7df"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"d10d51fc73ab208b5893aa542719c542bc13b0d4","unresolved":true,"context_lines":[{"line_number":247,"context_line":"        # create a volume and attach it to an instance"},{"line_number":248,"context_line":"        instance \u003d self.create_server("},{"line_number":249,"context_line":"            image_id\u003dCONF.compute.image_ref, wait_until\u003d\u0027ACTIVE\u0027,"},{"line_number":250,"context_line":"            clients\u003dself.os_admin)"},{"line_number":251,"context_line":"        volume2 \u003d self.create_volume("},{"line_number":252,"context_line":"            name\u003d\"attached_volume_migrate\","},{"line_number":253,"context_line":"            volume_type\u003dvolume_type[\u0027name\u0027]"}],"source_content_type":"text/x-python","patch_set":10,"id":"e38d2fee_f4cd37cc","line":250,"range":{"start_line":250,"start_character":0,"end_line":250,"end_character":2},"in_reply_to":"809e6dcd_22d75683","updated":"2025-10-06 07:15:50.000000000","message":"based on https://docs.openstack.org/tempest/latest/write_tests.html#allocating-credentials I changed it to `os_primary` which should be a normal user. I also applied the same change to the retyp test that was already merged.","commit_id":"7a88e549bcff134f33cc1fcfd7537f2124b4d7df"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"4531ad23395da469cdac04a4d1bd84682606dd0a","unresolved":false,"context_lines":[{"line_number":247,"context_line":"        # create a volume and attach it to an instance"},{"line_number":248,"context_line":"        instance \u003d self.create_server("},{"line_number":249,"context_line":"            image_id\u003dCONF.compute.image_ref, wait_until\u003d\u0027ACTIVE\u0027,"},{"line_number":250,"context_line":"            clients\u003dself.os_admin)"},{"line_number":251,"context_line":"        volume2 \u003d self.create_volume("},{"line_number":252,"context_line":"            name\u003d\"attached_volume_migrate\","},{"line_number":253,"context_line":"            volume_type\u003dvolume_type[\u0027name\u0027]"}],"source_content_type":"text/x-python","patch_set":10,"id":"9cf2f4e9_bc9c85ad","line":250,"range":{"start_line":250,"start_character":0,"end_line":250,"end_character":2},"in_reply_to":"e38d2fee_f4cd37cc","updated":"2026-03-06 11:26:20.000000000","message":"Done","commit_id":"7a88e549bcff134f33cc1fcfd7537f2124b4d7df"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"9d043c45a8bd888072b93fe3ede192bd5f0cd839","unresolved":true,"context_lines":[{"line_number":248,"context_line":"        instance \u003d self.create_server("},{"line_number":249,"context_line":"            image_id\u003dCONF.compute.image_ref, wait_until\u003d\u0027ACTIVE\u0027,"},{"line_number":250,"context_line":"            clients\u003dself.os_admin)"},{"line_number":251,"context_line":"        volume2 \u003d self.create_volume("},{"line_number":252,"context_line":"            name\u003d\"attached_volume_migrate\","},{"line_number":253,"context_line":"            volume_type\u003dvolume_type[\u0027name\u0027]"},{"line_number":254,"context_line":"            )"},{"line_number":255,"context_line":"        self.nova_volume_attach("},{"line_number":256,"context_line":"            instance, volume2,"},{"line_number":257,"context_line":"            servers_client\u003dself.os_admin.servers_client)"},{"line_number":258,"context_line":"        # wait for compute model updates"},{"line_number":259,"context_line":"        self.wait_for_instances_in_model([instance])"},{"line_number":260,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"3e178da5_05e6a8c0","line":257,"range":{"start_line":251,"start_character":5,"end_line":257,"end_character":56},"updated":"2025-10-03 14:44:25.000000000","message":"nit:\nok so volume 2 is the data volume attached to the vm and volume is jsut a second volume in the same right so we can have 2 voluems to move on attached to the vm and one not\n\ncan we use more deciptive varable names like\n\nfree_volume and vm_volumes or soemthing like that to make that more apperent.\n\nthe comemnts help but they are far awar form where the vars are actully used so not as much as encodeing the usage in the varible name.","commit_id":"7a88e549bcff134f33cc1fcfd7537f2124b4d7df"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"d10d51fc73ab208b5893aa542719c542bc13b0d4","unresolved":false,"context_lines":[{"line_number":248,"context_line":"        instance \u003d self.create_server("},{"line_number":249,"context_line":"            image_id\u003dCONF.compute.image_ref, wait_until\u003d\u0027ACTIVE\u0027,"},{"line_number":250,"context_line":"            clients\u003dself.os_admin)"},{"line_number":251,"context_line":"        volume2 \u003d self.create_volume("},{"line_number":252,"context_line":"            name\u003d\"attached_volume_migrate\","},{"line_number":253,"context_line":"            volume_type\u003dvolume_type[\u0027name\u0027]"},{"line_number":254,"context_line":"            )"},{"line_number":255,"context_line":"        self.nova_volume_attach("},{"line_number":256,"context_line":"            instance, volume2,"},{"line_number":257,"context_line":"            servers_client\u003dself.os_admin.servers_client)"},{"line_number":258,"context_line":"        # wait for compute model updates"},{"line_number":259,"context_line":"        self.wait_for_instances_in_model([instance])"},{"line_number":260,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"20522528_03ae9e9e","line":257,"range":{"start_line":251,"start_character":5,"end_line":257,"end_character":56},"in_reply_to":"3e178da5_05e6a8c0","updated":"2025-10-06 07:15:50.000000000","message":"Done","commit_id":"7a88e549bcff134f33cc1fcfd7537f2124b4d7df"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"9d043c45a8bd888072b93fe3ede192bd5f0cd839","unresolved":true,"context_lines":[{"line_number":264,"context_line":"        src_pools \u003d ["},{"line_number":265,"context_line":"            self.get_host_for_volume(vol[\u0027id\u0027]) for vol in [volume, volume2]"},{"line_number":266,"context_line":"            ]"},{"line_number":267,"context_line":"        # DNM jgilaber debug"},{"line_number":268,"context_line":"        LOG.debug(\"Src pools %s\", src_pools)"},{"line_number":269,"context_line":"        dst_pools \u003d [(all_pools - {src_pool}).pop() for src_pool in src_pools]"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"        audit_parameters \u003d {"}],"source_content_type":"text/x-python","patch_set":10,"id":"f5dead04_5a3f354a","line":268,"range":{"start_line":267,"start_character":8,"end_line":268,"end_character":44},"updated":"2025-10-03 14:44:25.000000000","message":":) ok","commit_id":"7a88e549bcff134f33cc1fcfd7537f2124b4d7df"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"d10d51fc73ab208b5893aa542719c542bc13b0d4","unresolved":false,"context_lines":[{"line_number":264,"context_line":"        src_pools \u003d ["},{"line_number":265,"context_line":"            self.get_host_for_volume(vol[\u0027id\u0027]) for vol in [volume, volume2]"},{"line_number":266,"context_line":"            ]"},{"line_number":267,"context_line":"        # DNM jgilaber debug"},{"line_number":268,"context_line":"        LOG.debug(\"Src pools %s\", src_pools)"},{"line_number":269,"context_line":"        dst_pools \u003d [(all_pools - {src_pool}).pop() for src_pool in src_pools]"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"        audit_parameters \u003d {"}],"source_content_type":"text/x-python","patch_set":10,"id":"16d29f67_9501fe05","line":268,"range":{"start_line":267,"start_character":8,"end_line":268,"end_character":44},"in_reply_to":"f5dead04_5a3f354a","updated":"2025-10-06 07:15:50.000000000","message":"Done","commit_id":"7a88e549bcff134f33cc1fcfd7537f2124b4d7df"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"9d043c45a8bd888072b93fe3ede192bd5f0cd839","unresolved":true,"context_lines":[{"line_number":281,"context_line":"        audit_kwargs \u003d {\"parameters\": audit_parameters}"},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"        LOG.debug(\"Executing strategy\")"},{"line_number":284,"context_line":"        self.execute_strategy(goal_name, strategy_name,"},{"line_number":285,"context_line":"                              expected_actions\u003d[\u0027volume_migrate\u0027],"},{"line_number":286,"context_line":"                              **audit_kwargs)"},{"line_number":287,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"5f295668_d9ad0f51","line":284,"updated":"2025-10-03 14:44:25.000000000","message":"this however is leakign the audit and audit template\n\nso we shoudl either fix that in https://review.opendev.org/c/openstack/watcher-tempest-plugin/+/956004\n\nor we shoudl fix it in a sperate patch and have both you patch and chandans be based on the \"resource cleanup\" patch.\n\ni mentioned this to chandan but ill say it again here, if a test create a api resouce in any service it shoudl ensure it is clena up when the test compelte\n\nwe follow the the tempest coding gudilens where possible in thei repo and not cleaing up resouces like this can cause name colition or other bugs that only present if test run in a specific order.\n\nhttps://docs.openstack.org/tempest/latest/HACKING.html#test-fixtures-and-resources\n\nsuch bugs are very hard to debug so se shoudl not knowing add any test that does not ensure all resocue it creates are clenaed up.","commit_id":"7a88e549bcff134f33cc1fcfd7537f2124b4d7df"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"4531ad23395da469cdac04a4d1bd84682606dd0a","unresolved":false,"context_lines":[{"line_number":281,"context_line":"        audit_kwargs \u003d {\"parameters\": audit_parameters}"},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"        LOG.debug(\"Executing strategy\")"},{"line_number":284,"context_line":"        self.execute_strategy(goal_name, strategy_name,"},{"line_number":285,"context_line":"                              expected_actions\u003d[\u0027volume_migrate\u0027],"},{"line_number":286,"context_line":"                              **audit_kwargs)"},{"line_number":287,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"8a29b467_8720d68a","line":284,"in_reply_to":"40164b04_db44291b","updated":"2026-03-06 11:26:20.000000000","message":"Done","commit_id":"7a88e549bcff134f33cc1fcfd7537f2124b4d7df"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"11210e2c9610eb7c81ef7158b2de7652035adc11","unresolved":true,"context_lines":[{"line_number":281,"context_line":"        audit_kwargs \u003d {\"parameters\": audit_parameters}"},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"        LOG.debug(\"Executing strategy\")"},{"line_number":284,"context_line":"        self.execute_strategy(goal_name, strategy_name,"},{"line_number":285,"context_line":"                              expected_actions\u003d[\u0027volume_migrate\u0027],"},{"line_number":286,"context_line":"                              **audit_kwargs)"},{"line_number":287,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"7f616413_c64e9b2c","line":284,"in_reply_to":"407115a6_34f85b0c","updated":"2025-10-14 13:07:56.000000000","message":"I just went back and double check this and it seems that we already have a cleanup scheduled for both audit and audit template in https://opendev.org/openstack/watcher-tempest-plugin/src/commit/db37debb167cbfe162ee6ef4338d6aa3bb106f12/watcher_tempest_plugin/tests/scenario/base.py#L867 and https://opendev.org/openstack/watcher-tempest-plugin/src/commit/db37debb167cbfe162ee6ef4338d6aa3bb106f12/watcher_tempest_plugin/tests/scenario/base.py#L900. After the recent refactor, we use the `create_audit_and_wait` and `create_audit_template_for_strategy` method to create them https://opendev.org/openstack/watcher-tempest-plugin/src/branch/master/watcher_tempest_plugin/tests/scenario/base.py#L969-L1008 and they call the `create_audit` and `create_audit_template` which already schedule the cleanup","commit_id":"7a88e549bcff134f33cc1fcfd7537f2124b4d7df"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"7db3cd79cefbe26991975e4bd5a706cb21ab72d9","unresolved":true,"context_lines":[{"line_number":281,"context_line":"        audit_kwargs \u003d {\"parameters\": audit_parameters}"},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"        LOG.debug(\"Executing strategy\")"},{"line_number":284,"context_line":"        self.execute_strategy(goal_name, strategy_name,"},{"line_number":285,"context_line":"                              expected_actions\u003d[\u0027volume_migrate\u0027],"},{"line_number":286,"context_line":"                              **audit_kwargs)"},{"line_number":287,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"407115a6_34f85b0c","line":284,"in_reply_to":"47d75798_48e7174b","updated":"2025-10-06 07:20:56.000000000","message":"I see Chandan added the cleanups in the last PS of https://review.opendev.org/c/openstack/watcher-tempest-plugin/+/956004","commit_id":"7a88e549bcff134f33cc1fcfd7537f2124b4d7df"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"d10d51fc73ab208b5893aa542719c542bc13b0d4","unresolved":true,"context_lines":[{"line_number":281,"context_line":"        audit_kwargs \u003d {\"parameters\": audit_parameters}"},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"        LOG.debug(\"Executing strategy\")"},{"line_number":284,"context_line":"        self.execute_strategy(goal_name, strategy_name,"},{"line_number":285,"context_line":"                              expected_actions\u003d[\u0027volume_migrate\u0027],"},{"line_number":286,"context_line":"                              **audit_kwargs)"},{"line_number":287,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"47d75798_48e7174b","line":284,"in_reply_to":"5f295668_d9ad0f51","updated":"2025-10-06 07:15:50.000000000","message":"good point, I\u0027d missed that. I\u0027ll create a new patch to add those cleanups","commit_id":"7a88e549bcff134f33cc1fcfd7537f2124b4d7df"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"ed16153247b4e02ebd471c54887332f37aaf25f1","unresolved":true,"context_lines":[{"line_number":281,"context_line":"        audit_kwargs \u003d {\"parameters\": audit_parameters}"},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"        LOG.debug(\"Executing strategy\")"},{"line_number":284,"context_line":"        self.execute_strategy(goal_name, strategy_name,"},{"line_number":285,"context_line":"                              expected_actions\u003d[\u0027volume_migrate\u0027],"},{"line_number":286,"context_line":"                              **audit_kwargs)"},{"line_number":287,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"40164b04_db44291b","line":284,"in_reply_to":"7f616413_c64e9b2c","updated":"2025-10-20 19:16:50.000000000","message":"We are mixing API and Scenario test implementation here I think. The problem is that API and Scenario have different base class implementations, and one has a Cleanup (scenario) while the other don\u0027t (API). Chandan is working on the API side changes, so it is not the same thing as this patch. As Joan pointed, both create_audit and audit_template have a call to cleanup already.","commit_id":"7a88e549bcff134f33cc1fcfd7537f2124b4d7df"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"ed16153247b4e02ebd471c54887332f37aaf25f1","unresolved":true,"context_lines":[{"line_number":135,"context_line":"            )"},{"line_number":136,"context_line":"        return volume_details[\u0027volume\u0027][\u0027volume_type\u0027]"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    def check_multiple_pools_in_backend(self):"},{"line_number":139,"context_line":"        \"\"\"Checks if there is at least one cinder backend with multiple pools."},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"        Get the list of pools from cinder scheduler stats API. Collect the"}],"source_content_type":"text/x-python","patch_set":20,"id":"2de72220_a982c7de","line":138,"range":{"start_line":138,"start_character":0,"end_line":138,"end_character":46},"updated":"2025-10-20 19:16:50.000000000","message":"I think that you build a method that does 2 things at the same time, while would be more interesting to have one that always returns a dict with backends and pools, and other that only validates the minimal number of pools that a test requires. So we may reuse that method in other places, when needed. But this is fine for now, and we can split in a future patch when needed. Not a blocker for me.","commit_id":"2b4af10d5138ab86bd079276df81bdce23de2e75"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"aac03293e47a4d1cc2d3ae09f8095c7e46af6036","unresolved":true,"context_lines":[{"line_number":135,"context_line":"            )"},{"line_number":136,"context_line":"        return volume_details[\u0027volume\u0027][\u0027volume_type\u0027]"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    def check_multiple_pools_in_backend(self):"},{"line_number":139,"context_line":"        \"\"\"Checks if there is at least one cinder backend with multiple pools."},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"        Get the list of pools from cinder scheduler stats API. Collect the"}],"source_content_type":"text/x-python","patch_set":20,"id":"d2822324_a4e3b86c","line":138,"range":{"start_line":138,"start_character":0,"end_line":138,"end_character":46},"in_reply_to":"2de72220_a982c7de","updated":"2025-10-21 08:28:30.000000000","message":"fair point, I have a follow-up patch in the chain that simplifies this method https://review.opendev.org/c/openstack/watcher-tempest-plugin/+/963860. As pointed out, this method is essentially a workaround for a bug that I later discovered in the volume migrate action, if we fix that bug first, the problem with this method will also go away since we won\u0027t need to check for the backend name","commit_id":"2b4af10d5138ab86bd079276df81bdce23de2e75"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"4531ad23395da469cdac04a4d1bd84682606dd0a","unresolved":false,"context_lines":[{"line_number":135,"context_line":"            )"},{"line_number":136,"context_line":"        return volume_details[\u0027volume\u0027][\u0027volume_type\u0027]"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    def check_multiple_pools_in_backend(self):"},{"line_number":139,"context_line":"        \"\"\"Checks if there is at least one cinder backend with multiple pools."},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"        Get the list of pools from cinder scheduler stats API. Collect the"}],"source_content_type":"text/x-python","patch_set":20,"id":"3f355cee_90043829","line":138,"range":{"start_line":138,"start_character":0,"end_line":138,"end_character":46},"in_reply_to":"d2822324_a4e3b86c","updated":"2026-03-06 11:26:20.000000000","message":"Done","commit_id":"2b4af10d5138ab86bd079276df81bdce23de2e75"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"ed16153247b4e02ebd471c54887332f37aaf25f1","unresolved":true,"context_lines":[{"line_number":144,"context_line":""},{"line_number":145,"context_line":"        Returns:"},{"line_number":146,"context_line":"            str: The name of one backend with multiple pools."},{"line_number":147,"context_line":"            list: The list of pools asociated with the chosen backend"},{"line_number":148,"context_line":"        \"\"\""},{"line_number":149,"context_line":"        pools \u003d self.os_admin.volume_scheduler_stats_client_latest.list_pools("},{"line_number":150,"context_line":"            detail\u003dTrue"}],"source_content_type":"text/x-python","patch_set":20,"id":"4cf645a5_498a8347","line":147,"range":{"start_line":147,"start_character":36,"end_line":147,"end_character":45},"updated":"2025-10-20 19:16:50.000000000","message":"associated?","commit_id":"2b4af10d5138ab86bd079276df81bdce23de2e75"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"aac03293e47a4d1cc2d3ae09f8095c7e46af6036","unresolved":false,"context_lines":[{"line_number":144,"context_line":""},{"line_number":145,"context_line":"        Returns:"},{"line_number":146,"context_line":"            str: The name of one backend with multiple pools."},{"line_number":147,"context_line":"            list: The list of pools asociated with the chosen backend"},{"line_number":148,"context_line":"        \"\"\""},{"line_number":149,"context_line":"        pools \u003d self.os_admin.volume_scheduler_stats_client_latest.list_pools("},{"line_number":150,"context_line":"            detail\u003dTrue"}],"source_content_type":"text/x-python","patch_set":20,"id":"0a92b915_9bfe8001","line":147,"range":{"start_line":147,"start_character":36,"end_line":147,"end_character":45},"in_reply_to":"4cf645a5_498a8347","updated":"2025-10-21 08:28:30.000000000","message":"fixed, thanks!","commit_id":"2b4af10d5138ab86bd079276df81bdce23de2e75"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"ed16153247b4e02ebd471c54887332f37aaf25f1","unresolved":true,"context_lines":[{"line_number":150,"context_line":"            detail\u003dTrue"},{"line_number":151,"context_line":"        )"},{"line_number":152,"context_line":"        backend_pools \u003d defaultdict(list)"},{"line_number":153,"context_line":"        for pool in pools[\u0027pools\u0027]:"},{"line_number":154,"context_line":"            pool_name \u003d pool[\u0027name\u0027]"},{"line_number":155,"context_line":"            backend_name \u003d pool[\u0027capabilities\u0027][\u0027volume_backend_name\u0027]"},{"line_number":156,"context_line":"            backend_pools[backend_name].append(pool_name)"},{"line_number":157,"context_line":"        for backend_name, pools in backend_pools.items():"},{"line_number":158,"context_line":"            if len(pools) \u003e 1:"},{"line_number":159,"context_line":"                return backend_name, pools"},{"line_number":160,"context_line":"        raise self.skipException("},{"line_number":161,"context_line":"            \"Need at least one backend with multiple pools to \""},{"line_number":162,"context_line":"            \"test volume migration\""},{"line_number":163,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":20,"id":"a081ec2e_c35d284e","line":160,"range":{"start_line":153,"start_character":0,"end_line":160,"end_character":33},"updated":"2025-10-20 19:16:50.000000000","message":"Looking at the logs, I saw that the job actually has 2 backends, with the same backend_name, and not a single backend with 2 pools. So I believe that the job is actually not properly configured. We can have 2 backends, with one pool each, but they should have 2 different names.","commit_id":"2b4af10d5138ab86bd079276df81bdce23de2e75"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"4e629439ba3dbea01431b6c983290c0d00c34b26","unresolved":true,"context_lines":[{"line_number":150,"context_line":"            detail\u003dTrue"},{"line_number":151,"context_line":"        )"},{"line_number":152,"context_line":"        backend_pools \u003d defaultdict(list)"},{"line_number":153,"context_line":"        for pool in pools[\u0027pools\u0027]:"},{"line_number":154,"context_line":"            pool_name \u003d pool[\u0027name\u0027]"},{"line_number":155,"context_line":"            backend_name \u003d pool[\u0027capabilities\u0027][\u0027volume_backend_name\u0027]"},{"line_number":156,"context_line":"            backend_pools[backend_name].append(pool_name)"},{"line_number":157,"context_line":"        for backend_name, pools in backend_pools.items():"},{"line_number":158,"context_line":"            if len(pools) \u003e 1:"},{"line_number":159,"context_line":"                return backend_name, pools"},{"line_number":160,"context_line":"        raise self.skipException("},{"line_number":161,"context_line":"            \"Need at least one backend with multiple pools to \""},{"line_number":162,"context_line":"            \"test volume migration\""},{"line_number":163,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":20,"id":"9c3129f6_01a43a78","line":160,"range":{"start_line":153,"start_character":0,"end_line":160,"end_character":33},"in_reply_to":"6ce47d96_302799b4","updated":"2025-10-21 13:01:51.000000000","message":"thanks for the link! I did not know about that, but I\u0027ll open a new patch to fix that configuration","commit_id":"2b4af10d5138ab86bd079276df81bdce23de2e75"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"d7582d1db350f905d44a18899be55f709441fe67","unresolved":true,"context_lines":[{"line_number":150,"context_line":"            detail\u003dTrue"},{"line_number":151,"context_line":"        )"},{"line_number":152,"context_line":"        backend_pools \u003d defaultdict(list)"},{"line_number":153,"context_line":"        for pool in pools[\u0027pools\u0027]:"},{"line_number":154,"context_line":"            pool_name \u003d pool[\u0027name\u0027]"},{"line_number":155,"context_line":"            backend_name \u003d pool[\u0027capabilities\u0027][\u0027volume_backend_name\u0027]"},{"line_number":156,"context_line":"            backend_pools[backend_name].append(pool_name)"},{"line_number":157,"context_line":"        for backend_name, pools in backend_pools.items():"},{"line_number":158,"context_line":"            if len(pools) \u003e 1:"},{"line_number":159,"context_line":"                return backend_name, pools"},{"line_number":160,"context_line":"        raise self.skipException("},{"line_number":161,"context_line":"            \"Need at least one backend with multiple pools to \""},{"line_number":162,"context_line":"            \"test volume migration\""},{"line_number":163,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":20,"id":"6ce47d96_302799b4","line":160,"range":{"start_line":153,"start_character":0,"end_line":160,"end_character":33},"in_reply_to":"9a8f5f59_8ff6dc35","updated":"2025-10-21 11:47:46.000000000","message":"Cinder docs about active-active and active-passive: https://docs.openstack.org/cinder/latest/contributor/high_availability.html#cinder-volume\nIn the end, I don\u0027t think that we need any of these 2, we should only have 1 c-vol in this deployment.","commit_id":"2b4af10d5138ab86bd079276df81bdce23de2e75"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"4531ad23395da469cdac04a4d1bd84682606dd0a","unresolved":false,"context_lines":[{"line_number":150,"context_line":"            detail\u003dTrue"},{"line_number":151,"context_line":"        )"},{"line_number":152,"context_line":"        backend_pools \u003d defaultdict(list)"},{"line_number":153,"context_line":"        for pool in pools[\u0027pools\u0027]:"},{"line_number":154,"context_line":"            pool_name \u003d pool[\u0027name\u0027]"},{"line_number":155,"context_line":"            backend_name \u003d pool[\u0027capabilities\u0027][\u0027volume_backend_name\u0027]"},{"line_number":156,"context_line":"            backend_pools[backend_name].append(pool_name)"},{"line_number":157,"context_line":"        for backend_name, pools in backend_pools.items():"},{"line_number":158,"context_line":"            if len(pools) \u003e 1:"},{"line_number":159,"context_line":"                return backend_name, pools"},{"line_number":160,"context_line":"        raise self.skipException("},{"line_number":161,"context_line":"            \"Need at least one backend with multiple pools to \""},{"line_number":162,"context_line":"            \"test volume migration\""},{"line_number":163,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":20,"id":"a5ae4e28_ececf655","line":160,"range":{"start_line":153,"start_character":0,"end_line":160,"end_character":33},"in_reply_to":"9c3129f6_01a43a78","updated":"2026-03-06 11:26:20.000000000","message":"Done","commit_id":"2b4af10d5138ab86bd079276df81bdce23de2e75"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"aac03293e47a4d1cc2d3ae09f8095c7e46af6036","unresolved":true,"context_lines":[{"line_number":150,"context_line":"            detail\u003dTrue"},{"line_number":151,"context_line":"        )"},{"line_number":152,"context_line":"        backend_pools \u003d defaultdict(list)"},{"line_number":153,"context_line":"        for pool in pools[\u0027pools\u0027]:"},{"line_number":154,"context_line":"            pool_name \u003d pool[\u0027name\u0027]"},{"line_number":155,"context_line":"            backend_name \u003d pool[\u0027capabilities\u0027][\u0027volume_backend_name\u0027]"},{"line_number":156,"context_line":"            backend_pools[backend_name].append(pool_name)"},{"line_number":157,"context_line":"        for backend_name, pools in backend_pools.items():"},{"line_number":158,"context_line":"            if len(pools) \u003e 1:"},{"line_number":159,"context_line":"                return backend_name, pools"},{"line_number":160,"context_line":"        raise self.skipException("},{"line_number":161,"context_line":"            \"Need at least one backend with multiple pools to \""},{"line_number":162,"context_line":"            \"test volume migration\""},{"line_number":163,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":20,"id":"de3f668d_715cb389","line":160,"range":{"start_line":153,"start_character":0,"end_line":160,"end_character":33},"in_reply_to":"a081ec2e_c35d284e","updated":"2025-10-21 08:28:30.000000000","message":"see my reply in another comment  https://review.opendev.org/c/openstack/watcher-tempest-plugin/+/958644/comment/cef98c87_5033b580/ this due to a long standing bug in Watcher, as a follow we can change the cinder configuration in the job. I don\u0027t think the current configuration is wrong, it uses the default cinder configuration in devstack, which creates a `lvmdriver-1` backend in each host. The problem I think is that existing Watcher code mixes up backends and pools and it seems to be tailored to only work with a setup like the one we have in  the job, with all backends configured with the same `volume_backend_name` and a volume type that is created with and extra_spec with the same `volume_backend_name`","commit_id":"2b4af10d5138ab86bd079276df81bdce23de2e75"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"5c201c4a4b7c0027bf7d0855b5764c1fd8c6da6f","unresolved":true,"context_lines":[{"line_number":150,"context_line":"            detail\u003dTrue"},{"line_number":151,"context_line":"        )"},{"line_number":152,"context_line":"        backend_pools \u003d defaultdict(list)"},{"line_number":153,"context_line":"        for pool in pools[\u0027pools\u0027]:"},{"line_number":154,"context_line":"            pool_name \u003d pool[\u0027name\u0027]"},{"line_number":155,"context_line":"            backend_name \u003d pool[\u0027capabilities\u0027][\u0027volume_backend_name\u0027]"},{"line_number":156,"context_line":"            backend_pools[backend_name].append(pool_name)"},{"line_number":157,"context_line":"        for backend_name, pools in backend_pools.items():"},{"line_number":158,"context_line":"            if len(pools) \u003e 1:"},{"line_number":159,"context_line":"                return backend_name, pools"},{"line_number":160,"context_line":"        raise self.skipException("},{"line_number":161,"context_line":"            \"Need at least one backend with multiple pools to \""},{"line_number":162,"context_line":"            \"test volume migration\""},{"line_number":163,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":20,"id":"9a8f5f59_8ff6dc35","line":160,"range":{"start_line":153,"start_character":0,"end_line":160,"end_character":33},"in_reply_to":"de3f668d_715cb389","updated":"2025-10-21 11:40:09.000000000","message":"I think that the job configuration is wrong yes. We should not have 2 c-vol services, unless we pan yo test an active-active scenario here. We should disable c-vol in the subnode, since only one is required. Devstack creates by default 1 lvmdriver backend with the same name, but in the end, they are 2 different backends, and this loop is returning that \u0027lvmdriver-1\u0027 has 2 pools, which is not correct. So in my understanding, the job is correct, but is passing due to a wrong cinder configuration. We may need then to fix the bug that you mentioned in the other comment to have the job/test fixed.","commit_id":"2b4af10d5138ab86bd079276df81bdce23de2e75"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"ed16153247b4e02ebd471c54887332f37aaf25f1","unresolved":true,"context_lines":[{"line_number":232,"context_line":"    def test_execute_zone_migration_volume_migrate(self):"},{"line_number":233,"context_line":"        # check that there are multiple cinder pools configured"},{"line_number":234,"context_line":"        # on the same backend to be able to test migrations between them"},{"line_number":235,"context_line":"        backend_name, backend_pools \u003d self.check_multiple_pools_in_backend()"},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"        self.check_min_enabled_compute_nodes(2)"},{"line_number":238,"context_line":"        self.addCleanup(self.wait_delete_instances_from_model)"}],"source_content_type":"text/x-python","patch_set":20,"id":"cef98c87_5033b580","line":235,"range":{"start_line":235,"start_character":0,"end_line":235,"end_character":76},"updated":"2025-10-20 19:16:50.000000000","message":"The job has two backends with the same name[1]:\n\n```{\"pools\": [{\"name\": \"npedb29789a5c04@lvmdriver-1#lvmdriver-1\", \"capabilities\": {\"pool_name\": \"lvmdriver-1\", \"total_capacity_gb\": 28.5, \"free_capacity_gb\": 28.5, \"reserved_percentage\": 0, \"location_info\": \"LVMVolumeDriver:npedb29789a5c04:stack-volumes-lvmdriver-1:thin:0\", \"QoS_support\": false, \"provisioned_capacity_gb\": 0.0, \"max_over_subscription_ratio\": \"20.0\", \"thin_provisioning_support\": true, \"thick_provisioning_support\": false, \"total_volumes\": 1, \"filter_function\": null, \"goodness_function\": null, \"multiattach\": true, \"backend_state\": \"up\", \"allocated_capacity_gb\": 0, \"cacheable\": true, \"volume_backend_name\": \"lvmdriver-1\", \"storage_protocol\": \"iSCSI\", \"vendor_name\": \"Open Source\", \"driver_version\": \"3.0.0\", \"timestamp\": \"2025-10-17T12:40:26.949236\"}}, {\"name\": \"np8cbdef33cd834@lvmdriver-1#lvmdriver-1\", \"capabilities\": {\"pool_name\": \"lvmdriver-1\", \"total_capacity_gb\": 28.5, \"free_capacity_gb\": 28.5, \"reserved_percentage\": 0, \"location_info\": \"LVMVolumeDriver:np8cbdef33cd834:stack-volumes-lvmdriver-1:thin:0\", \"QoS_support\": false, \"provisioned_capacity_gb\": 0.0, \"max_over_subscription_ratio\": \"20.0\", \"thin_provisioning_support\": true, \"thick_provisioning_support\": false, \"total_volumes\": 1, \"filter_function\": null, \"goodness_function\": null, \"multiattach\": true, \"backend_state\": \"up\", \"allocated_capacity_gb\": 0, \"cacheable\": true, \"volume_backend_name\": \"lvmdriver-1\", \"storage_protocol\": \"iSCSI\", \"vendor_name\": \"Open Source\", \"driver_version\": \"3.0.0\", \"timestamp\": \"2025-10-17T12:40:14.214026\"}}]}```\n\nnpedb29789a5c04@lvmdriver-1#lvmdriver-1 and np8cbdef33cd834@lvmdriver-1#lvmdriver-1\nIf we fix the job, the test will not pass, because there is no backend with 2 pools. But we still can migrate across backends, which has 1 pool each\n\n[1] https://storage.gra.cloud.ovh.net/v1/AUTH_dcaab5e32b234d56b626f72581e3644c/zuul_opendev_logs_5b6/openstack/5b602992527440c2beee405f0a4cd3bd/controller/logs/tempest_log.txt","commit_id":"2b4af10d5138ab86bd079276df81bdce23de2e75"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"4531ad23395da469cdac04a4d1bd84682606dd0a","unresolved":false,"context_lines":[{"line_number":232,"context_line":"    def test_execute_zone_migration_volume_migrate(self):"},{"line_number":233,"context_line":"        # check that there are multiple cinder pools configured"},{"line_number":234,"context_line":"        # on the same backend to be able to test migrations between them"},{"line_number":235,"context_line":"        backend_name, backend_pools \u003d self.check_multiple_pools_in_backend()"},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"        self.check_min_enabled_compute_nodes(2)"},{"line_number":238,"context_line":"        self.addCleanup(self.wait_delete_instances_from_model)"}],"source_content_type":"text/x-python","patch_set":20,"id":"c8756f8f_ac9d01df","line":235,"range":{"start_line":235,"start_character":0,"end_line":235,"end_character":76},"in_reply_to":"c56edc94_ecbc8c68","updated":"2026-03-06 11:26:20.000000000","message":"Done","commit_id":"2b4af10d5138ab86bd079276df81bdce23de2e75"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"aac03293e47a4d1cc2d3ae09f8095c7e46af6036","unresolved":true,"context_lines":[{"line_number":232,"context_line":"    def test_execute_zone_migration_volume_migrate(self):"},{"line_number":233,"context_line":"        # check that there are multiple cinder pools configured"},{"line_number":234,"context_line":"        # on the same backend to be able to test migrations between them"},{"line_number":235,"context_line":"        backend_name, backend_pools \u003d self.check_multiple_pools_in_backend()"},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"        self.check_min_enabled_compute_nodes(2)"},{"line_number":238,"context_line":"        self.addCleanup(self.wait_delete_instances_from_model)"}],"source_content_type":"text/x-python","patch_set":20,"id":"e68afc90_c5b253ab","line":235,"range":{"start_line":235,"start_character":0,"end_line":235,"end_character":76},"in_reply_to":"cef98c87_5033b580","updated":"2025-10-21 08:28:30.000000000","message":"I don\u0027t think we can do what you suggest because of https://bugs.launchpad.net/watcher/+bug/2127485. The volume migration action has a wrong check that assumes that the volume_type will be associated with the backend_name, so if we change the cinder configuration in the current job it won\u0027t work. I created https://review.opendev.org/c/openstack/watcher-tempest-plugin/+/963860 as a followup to this change that removes the check introduced in this patch. There it only checks that there is more than one cinder pool, which should be the only requirement for volume migrations. What we can do is to go with https://review.opendev.org/c/openstack/watcher/+/963857 before this series. That patch tries to fix the bug, and then I can squash https://review.opendev.org/c/openstack/watcher-tempest-plugin/+/963860 with this change, which should simplify it greatly","commit_id":"2b4af10d5138ab86bd079276df81bdce23de2e75"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"4e629439ba3dbea01431b6c983290c0d00c34b26","unresolved":true,"context_lines":[{"line_number":232,"context_line":"    def test_execute_zone_migration_volume_migrate(self):"},{"line_number":233,"context_line":"        # check that there are multiple cinder pools configured"},{"line_number":234,"context_line":"        # on the same backend to be able to test migrations between them"},{"line_number":235,"context_line":"        backend_name, backend_pools \u003d self.check_multiple_pools_in_backend()"},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"        self.check_min_enabled_compute_nodes(2)"},{"line_number":238,"context_line":"        self.addCleanup(self.wait_delete_instances_from_model)"}],"source_content_type":"text/x-python","patch_set":20,"id":"c56edc94_ecbc8c68","line":235,"range":{"start_line":235,"start_character":0,"end_line":235,"end_character":76},"in_reply_to":"d094feb2_c6b44e6e","updated":"2025-10-21 13:01:51.000000000","message":"yes, we\u0027ll need to fix the bug, fix the job config and then we can come back to this series","commit_id":"2b4af10d5138ab86bd079276df81bdce23de2e75"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"5c201c4a4b7c0027bf7d0855b5764c1fd8c6da6f","unresolved":true,"context_lines":[{"line_number":232,"context_line":"    def test_execute_zone_migration_volume_migrate(self):"},{"line_number":233,"context_line":"        # check that there are multiple cinder pools configured"},{"line_number":234,"context_line":"        # on the same backend to be able to test migrations between them"},{"line_number":235,"context_line":"        backend_name, backend_pools \u003d self.check_multiple_pools_in_backend()"},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"        self.check_min_enabled_compute_nodes(2)"},{"line_number":238,"context_line":"        self.addCleanup(self.wait_delete_instances_from_model)"}],"source_content_type":"text/x-python","patch_set":20,"id":"d094feb2_c6b44e6e","line":235,"range":{"start_line":235,"start_character":0,"end_line":235,"end_character":76},"in_reply_to":"e68afc90_c5b253ab","updated":"2025-10-21 11:40:09.000000000","message":"As mentioned in the other comment, this job configuration is not correct and the test is also assuming something that is not correct (a backend with 2 pools). We may need to fix/merge the bugfix first then? I already reviewed and will get back there.","commit_id":"2b4af10d5138ab86bd079276df81bdce23de2e75"},{"author":{"_account_id":28647,"name":"David","display_name":"morenod","email":"dsanzmor@redhat.com","username":"morenod"},"change_message_id":"d5ad8c6a21f0c21481b1b9dea3818cb63afc8353","unresolved":true,"context_lines":[{"line_number":153,"context_line":"        return {pool[\u0027name\u0027] for pool in pools[\u0027pools\u0027]}"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"    def check_multiple_pools(self):"},{"line_number":156,"context_line":"        \"\"\"Checks if there is more than cinder pool."},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"        Get the list of pool names from cinder scheduler stats API. If there"},{"line_number":159,"context_line":"        aren\u0027t at least two pools, raises an skipException."}],"source_content_type":"text/x-python","patch_set":26,"id":"4ba3149f_1ab04921","line":156,"updated":"2026-01-13 10:28:18.000000000","message":"more than one","commit_id":"a638097d4a9713a5ea84119c6c4ed29371f019ce"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"4531ad23395da469cdac04a4d1bd84682606dd0a","unresolved":false,"context_lines":[{"line_number":153,"context_line":"        return {pool[\u0027name\u0027] for pool in pools[\u0027pools\u0027]}"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"    def check_multiple_pools(self):"},{"line_number":156,"context_line":"        \"\"\"Checks if there is more than cinder pool."},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"        Get the list of pool names from cinder scheduler stats API. If there"},{"line_number":159,"context_line":"        aren\u0027t at least two pools, raises an skipException."}],"source_content_type":"text/x-python","patch_set":26,"id":"30dc2457_decc6e40","line":156,"in_reply_to":"4ba3149f_1ab04921","updated":"2026-03-06 11:26:20.000000000","message":"Done","commit_id":"a638097d4a9713a5ea84119c6c4ed29371f019ce"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e1cd9c4184958c3a3a14392ad11aa76a3886d678","unresolved":false,"context_lines":[{"line_number":125,"context_line":"                \"Storage tests for zone migration are not enabled.\""},{"line_number":126,"context_line":"            )"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"    def get_host_for_volume(self, volume_id):"},{"line_number":129,"context_line":"        \"\"\"Gets host of volume\"\"\""},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"        volume_details \u003d self.os_admin.volumes_client_latest.show_volume("}],"source_content_type":"text/x-python","patch_set":30,"id":"6f3c9488_6b5a31ae","line":128,"in_reply_to":"5b3816d0_7560e2e0","updated":"2026-03-06 18:32:05.000000000","message":"it could\n\n\nif we wehre not dealing with dictionaires adn isntead objct i woudl replace this with a single get_volume  function and just deference the adtibute but that out of scoep for now","commit_id":"4962225e44ace4731faf4cf31d6f735f7dc2d618"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e1cd9c4184958c3a3a14392ad11aa76a3886d678","unresolved":false,"context_lines":[{"line_number":151,"context_line":"        # host@backend@pool"},{"line_number":152,"context_line":"        return {pool[\u0027name\u0027] for pool in pools[\u0027pools\u0027]}"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"    def check_multiple_pools(self):"},{"line_number":155,"context_line":"        \"\"\"Checks if there is more than one cinder pool."},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"        Get the list of pool names from cinder scheduler stats API. If there"}],"source_content_type":"text/x-python","patch_set":30,"id":"7e45d4e9_115b575d","line":154,"in_reply_to":"303bcf97_fd5e7200","updated":"2026-03-06 18:32:05.000000000","message":"this is a nit but yes it could\n\nno action is requried but it would not hurt to include it","commit_id":"4962225e44ace4731faf4cf31d6f735f7dc2d618"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e1cd9c4184958c3a3a14392ad11aa76a3886d678","unresolved":true,"context_lines":[{"line_number":183,"context_line":"        instance \u003d self.create_server("},{"line_number":184,"context_line":"            image_id\u003dCONF.compute.image_ref,"},{"line_number":185,"context_line":"            wait_until\u003d\u0027SSHABLE\u0027,"},{"line_number":186,"context_line":"            clients\u003dself.os_primary,"},{"line_number":187,"context_line":"        )"},{"line_number":188,"context_line":"        vm_volume \u003d self.create_volume("},{"line_number":189,"context_line":"            name\u003d\"attached_volume_retype\","}],"source_content_type":"text/x-python","patch_set":30,"id":"a373d53c_d84a1428","line":186,"updated":"2026-03-06 18:32:05.000000000","message":"+1 sshable is very impornat for ci stablity when dealing with volume attachments.","commit_id":"4962225e44ace4731faf4cf31d6f735f7dc2d618"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"fb981f2ce2f3020be00e8a27c6ac10e90a65cb76","unresolved":false,"context_lines":[{"line_number":183,"context_line":"        instance \u003d self.create_server("},{"line_number":184,"context_line":"            image_id\u003dCONF.compute.image_ref,"},{"line_number":185,"context_line":"            wait_until\u003d\u0027SSHABLE\u0027,"},{"line_number":186,"context_line":"            clients\u003dself.os_primary,"},{"line_number":187,"context_line":"        )"},{"line_number":188,"context_line":"        vm_volume \u003d self.create_volume("},{"line_number":189,"context_line":"            name\u003d\"attached_volume_retype\","}],"source_content_type":"text/x-python","patch_set":30,"id":"c42f6114_d4962878","line":186,"in_reply_to":"a373d53c_d84a1428","updated":"2026-03-09 15:08:14.000000000","message":"Acknowledged","commit_id":"4962225e44ace4731faf4cf31d6f735f7dc2d618"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"720b152ea88b4f335ab2418aa4486f49d225bb8f","unresolved":false,"context_lines":[{"line_number":247,"context_line":"        )"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"        # create a volume and attach it to an instance"},{"line_number":250,"context_line":"        instance \u003d self.create_server("},{"line_number":251,"context_line":"            image_id\u003dCONF.compute.image_ref,"},{"line_number":252,"context_line":"            wait_until\u003d\u0027SSHABLE\u0027,"},{"line_number":253,"context_line":"            clients\u003dself.os_primary,"}],"source_content_type":"text/x-python","patch_set":30,"id":"01d7924c_f93c8b99","line":250,"in_reply_to":"52760777_5a179f3c","updated":"2026-03-09 10:50:53.000000000","message":"I\u0027ve added a comment there with the reasoning","commit_id":"4962225e44ace4731faf4cf31d6f735f7dc2d618"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e1cd9c4184958c3a3a14392ad11aa76a3886d678","unresolved":false,"context_lines":[{"line_number":247,"context_line":"        )"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"        # create a volume and attach it to an instance"},{"line_number":250,"context_line":"        instance \u003d self.create_server("},{"line_number":251,"context_line":"            image_id\u003dCONF.compute.image_ref,"},{"line_number":252,"context_line":"            wait_until\u003d\u0027SSHABLE\u0027,"},{"line_number":253,"context_line":"            clients\u003dself.os_primary,"}],"source_content_type":"text/x-python","patch_set":30,"id":"52760777_5a179f3c","line":250,"in_reply_to":"9baf0e83_f676a9f9","updated":"2026-03-06 18:32:05.000000000","message":"valid observation but the comment shoudl live on line \nhttps://review.opendev.org/c/openstack/watcher-tempest-plugin/+/958644/30/watcher_tempest_plugin/tests/scenario/test_execute_zone_migration.py#148\n\ni dont think thre is a permsion issue here but we coudl note why we are using admin so that we can validate the pools info.","commit_id":"4962225e44ace4731faf4cf31d6f735f7dc2d618"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"36a9464ef31331d595851c951b3505d5fad8a0e1","unresolved":false,"context_lines":[{"line_number":267,"context_line":"        ]"},{"line_number":268,"context_line":"        all_pools \u003d self.get_pool_names()"},{"line_number":269,"context_line":"        dst_pools \u003d []"},{"line_number":270,"context_line":"        for src_pool in src_pools:"},{"line_number":271,"context_line":"            try:"},{"line_number":272,"context_line":"                dst_pools.append((all_pools - {src_pool}).pop())"},{"line_number":273,"context_line":"            except KeyError:"}],"source_content_type":"text/x-python","patch_set":30,"id":"319c861f_07d55a2b","line":270,"in_reply_to":"56638636_8ea37acd","updated":"2026-03-10 16:03:27.000000000","message":"using the SameBackendFilter is only valid if we had a config option to enable this test only when its used.","commit_id":"4962225e44ace4731faf4cf31d6f735f7dc2d618"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"3b44bc450995b263e260bc30a9d0d5194dc3fd2e","unresolved":true,"context_lines":[{"line_number":267,"context_line":"        ]"},{"line_number":268,"context_line":"        all_pools \u003d self.get_pool_names()"},{"line_number":269,"context_line":"        dst_pools \u003d []"},{"line_number":270,"context_line":"        for src_pool in src_pools:"},{"line_number":271,"context_line":"            try:"},{"line_number":272,"context_line":"                dst_pools.append((all_pools - {src_pool}).pop())"},{"line_number":273,"context_line":"            except KeyError:"}],"source_content_type":"text/x-python","patch_set":30,"id":"56638636_8ea37acd","line":270,"in_reply_to":"770aeba9_fb05c7b3","updated":"2026-03-10 14:00:31.000000000","message":"I\u0027ve tried with https://review.opendev.org/c/openstack/watcher/+/979643 to use the `SameBackendFilter` of the cinder scheduler to ensure both volumes would be scheduled in the same host. However, that only ensures that both volumes are scheduled in the same backend. That does not work for our current jobs, since they create two hosts in the same storage backend. That would make this test unreliable, since it would work or not depending on the storage configuration deployed. I\u0027m reverting the scheduler hints change, but I tried to make the code more explicit so its clearer what it\u0027s doing. With the new patchset if the volumes are scheduled in the same pool it only adds it once. Also the test creates a volume type and uses that to create the volumes and it\u0027s passed to the audit parameters, so only the volumes created in the test would be migrated.","commit_id":"4962225e44ace4731faf4cf31d6f735f7dc2d618"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"720b152ea88b4f335ab2418aa4486f49d225bb8f","unresolved":true,"context_lines":[{"line_number":267,"context_line":"        ]"},{"line_number":268,"context_line":"        all_pools \u003d self.get_pool_names()"},{"line_number":269,"context_line":"        dst_pools \u003d []"},{"line_number":270,"context_line":"        for src_pool in src_pools:"},{"line_number":271,"context_line":"            try:"},{"line_number":272,"context_line":"                dst_pools.append((all_pools - {src_pool}).pop())"},{"line_number":273,"context_line":"            except KeyError:"}],"source_content_type":"text/x-python","patch_set":30,"id":"770aeba9_fb05c7b3","line":270,"in_reply_to":"aba2bec0_a825898e","updated":"2026-03-09 10:50:53.000000000","message":"I agree the current mechanism is a bit brittle. I know that the cinder volume creation API supports scheduler hints (`OS-SCH-HNT:scheduler_hints` in https://docs.openstack.org/api-ref/block-storage/v3/index.html?expanded\u003ddetach-volume-from-server-detail#create-a-volume). I\u0027ll try that locally and upload a new patchset once I got it working","commit_id":"4962225e44ace4731faf4cf31d6f735f7dc2d618"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e1cd9c4184958c3a3a14392ad11aa76a3886d678","unresolved":true,"context_lines":[{"line_number":267,"context_line":"        ]"},{"line_number":268,"context_line":"        all_pools \u003d self.get_pool_names()"},{"line_number":269,"context_line":"        dst_pools \u003d []"},{"line_number":270,"context_line":"        for src_pool in src_pools:"},{"line_number":271,"context_line":"            try:"},{"line_number":272,"context_line":"                dst_pools.append((all_pools - {src_pool}).pop())"},{"line_number":273,"context_line":"            except KeyError:"}],"source_content_type":"text/x-python","patch_set":30,"id":"aba2bec0_a825898e","line":270,"in_reply_to":"b9375f28_1a9625f9","updated":"2026-03-06 18:32:05.000000000","message":"so this is how we are using it\n\n\n        audit_parameters \u003d {\n            \u0027storage_pools\u0027: [\n                {\n                    \u0027src_pool\u0027: src_pool, \u0027src_type\u0027: volume_type[\u0027name\u0027],\n                    \u0027dst_pool\u0027: dst_pool\n                }\n                for src_pool, dst_pool in zip(src_pools, dst_pools)\n                ]\n        }\n\n\nso if booth voluems are in one pools we will have a list with repeaded elements\n\nmoving a -\u003e b twice.\nif they are in dieffent pools and we have only 2 pools hten  we will move all voluems from a-\u003eb and b-\u003ea\n\nim not really a fan of the behvior of this test being non deterministac based on the cinder schduler decsion\nso we proably shoudl retink this","commit_id":"4962225e44ace4731faf4cf31d6f735f7dc2d618"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e1cd9c4184958c3a3a14392ad11aa76a3886d678","unresolved":true,"context_lines":[{"line_number":269,"context_line":"        dst_pools \u003d []"},{"line_number":270,"context_line":"        for src_pool in src_pools:"},{"line_number":271,"context_line":"            try:"},{"line_number":272,"context_line":"                dst_pools.append((all_pools - {src_pool}).pop())"},{"line_number":273,"context_line":"            except KeyError:"},{"line_number":274,"context_line":"                self.fail("},{"line_number":275,"context_line":"                    \"could not find a destination pool for volumes \""}],"source_content_type":"text/x-python","patch_set":30,"id":"48370633_9a7e66d6","line":272,"range":{"start_line":272,"start_character":15,"end_line":272,"end_character":64},"updated":"2026-03-06 18:32:05.000000000","message":"this is very very dense code and non obvious \n\n Breaking it down from inside out:                                                                                                                        \n                                                                                                                                                           \n  1. {src_pool} — creates a temporary set containing just the single element src_pool                                                                      \n  2. all_pools - {src_pool} — set difference: returns a new set with every element from all_pools except src_pool\n  3. (...).pop() — removes and returns an arbitrary element from that resulting set. Because sets are unordered, which element you get is                  \n  implementation-defined (not random, but not guaranteed either). This is only predictable if the set has exactly one element.                             \n  4. dst_pools.append(...) — appends that chosen element to the dst_pools list.\n\n  In plain English: \"Pick some pool from all_pools that isn\u0027t src_pool, and add it to dst_pools.\"","commit_id":"4962225e44ace4731faf4cf31d6f735f7dc2d618"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"fb981f2ce2f3020be00e8a27c6ac10e90a65cb76","unresolved":false,"context_lines":[{"line_number":269,"context_line":"        dst_pools \u003d []"},{"line_number":270,"context_line":"        for src_pool in src_pools:"},{"line_number":271,"context_line":"            try:"},{"line_number":272,"context_line":"                dst_pools.append((all_pools - {src_pool}).pop())"},{"line_number":273,"context_line":"            except KeyError:"},{"line_number":274,"context_line":"                self.fail("},{"line_number":275,"context_line":"                    \"could not find a destination pool for volumes \""}],"source_content_type":"text/x-python","patch_set":30,"id":"6f1bd8b2_5150320f","line":272,"range":{"start_line":272,"start_character":15,"end_line":272,"end_character":64},"in_reply_to":"48370633_9a7e66d6","updated":"2026-03-09 15:08:14.000000000","message":"Acknowledged","commit_id":"4962225e44ace4731faf4cf31d6f735f7dc2d618"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e1cd9c4184958c3a3a14392ad11aa76a3886d678","unresolved":true,"context_lines":[{"line_number":261,"context_line":"        # wait for compute model updates"},{"line_number":262,"context_line":"        self.wait_for_instances_in_model([instance])"},{"line_number":263,"context_line":""},{"line_number":264,"context_line":"        src_pools \u003d ["},{"line_number":265,"context_line":"            self.get_host_for_volume(vol[\u0027id\u0027])"},{"line_number":266,"context_line":"            for vol in [free_volume, vm_volume]"},{"line_number":267,"context_line":"        ]"},{"line_number":268,"context_line":"        all_pools \u003d self.get_pool_names()"},{"line_number":269,"context_line":"        dst_pools \u003d []"},{"line_number":270,"context_line":"        for src_pool in src_pools:"},{"line_number":271,"context_line":"            try:"},{"line_number":272,"context_line":"                dst_pools.append((all_pools - {src_pool}).pop())"},{"line_number":273,"context_line":"            except KeyError:"},{"line_number":274,"context_line":"                self.fail("},{"line_number":275,"context_line":"                    \"could not find a destination pool for volumes \""},{"line_number":276,"context_line":"                    f\"in {src_pool}\""},{"line_number":277,"context_line":"                )"},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"        audit_parameters \u003d {"},{"line_number":280,"context_line":"            \u0027storage_pools\u0027: ["}],"source_content_type":"text/x-python","patch_set":30,"id":"5122b390_98628c20","line":277,"range":{"start_line":264,"start_character":8,"end_line":277,"end_character":17},"updated":"2026-03-06 18:32:05.000000000","message":"```suggestion\n      src_pools \u003d [\n          self.get_host_for_volume(vol[\u0027id\u0027])\n          for vol in [free_volume, vm_volume]\n      ]\n      all_pools \u003d self.get_pool_names()\n      dst_pools \u003d []\n      for src_pool in src_pools:\n          other_pools \u003d all_pools - {src_pool}\n          if not other_pools:\n              self.fail(\n                  \"could not find a destination pool for volumes \"\n                  f\"in {src_pool}\"\n              )\n          dst_pools.append(other_pools.pop())\n```\n\nthis is a littel easer to read","commit_id":"4962225e44ace4731faf4cf31d6f735f7dc2d618"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"6ee2b607b23ef2a9e98775f24094ecca4f484f48","unresolved":false,"context_lines":[{"line_number":261,"context_line":"        # wait for compute model updates"},{"line_number":262,"context_line":"        self.wait_for_instances_in_model([instance])"},{"line_number":263,"context_line":""},{"line_number":264,"context_line":"        src_pools \u003d ["},{"line_number":265,"context_line":"            self.get_host_for_volume(vol[\u0027id\u0027])"},{"line_number":266,"context_line":"            for vol in [free_volume, vm_volume]"},{"line_number":267,"context_line":"        ]"},{"line_number":268,"context_line":"        all_pools \u003d self.get_pool_names()"},{"line_number":269,"context_line":"        dst_pools \u003d []"},{"line_number":270,"context_line":"        for src_pool in src_pools:"},{"line_number":271,"context_line":"            try:"},{"line_number":272,"context_line":"                dst_pools.append((all_pools - {src_pool}).pop())"},{"line_number":273,"context_line":"            except KeyError:"},{"line_number":274,"context_line":"                self.fail("},{"line_number":275,"context_line":"                    \"could not find a destination pool for volumes \""},{"line_number":276,"context_line":"                    f\"in {src_pool}\""},{"line_number":277,"context_line":"                )"},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"        audit_parameters \u003d {"},{"line_number":280,"context_line":"            \u0027storage_pools\u0027: ["}],"source_content_type":"text/x-python","patch_set":30,"id":"ee13bd3a_99cb78eb","line":277,"range":{"start_line":264,"start_character":8,"end_line":277,"end_character":17},"in_reply_to":"5122b390_98628c20","updated":"2026-03-09 10:51:33.000000000","message":"thanks, that is a bit more readable, I\u0027ve done the change","commit_id":"4962225e44ace4731faf4cf31d6f735f7dc2d618"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"fb981f2ce2f3020be00e8a27c6ac10e90a65cb76","unresolved":false,"context_lines":[{"line_number":300,"context_line":""},{"line_number":301,"context_line":"        self.execute_action_plan_and_validate_states(action_plan[\u0027uuid\u0027])"},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"        # check that the available volume was migrated"},{"line_number":304,"context_line":"        self.assertEqual("},{"line_number":305,"context_line":"            self.get_host_for_volume(free_volume[\u0027id\u0027]), dst_pools[0]"},{"line_number":306,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":30,"id":"b2eb4a0b_401bd229","line":303,"in_reply_to":"0027d4a4_65250090","updated":"2026-03-09 15:08:14.000000000","message":"Done","commit_id":"4962225e44ace4731faf4cf31d6f735f7dc2d618"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e1cd9c4184958c3a3a14392ad11aa76a3886d678","unresolved":true,"context_lines":[{"line_number":300,"context_line":""},{"line_number":301,"context_line":"        self.execute_action_plan_and_validate_states(action_plan[\u0027uuid\u0027])"},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"        # check that the available volume was migrated"},{"line_number":304,"context_line":"        self.assertEqual("},{"line_number":305,"context_line":"            self.get_host_for_volume(free_volume[\u0027id\u0027]), dst_pools[0]"},{"line_number":306,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":30,"id":"a8c4b355_7abe8f87","line":303,"in_reply_to":"7e0a992c_4696aef9","updated":"2026-03-06 18:32:05.000000000","message":"ya that is not a bad suggestion in general although that woudl only not be true fi there was a bug in watcher but its valid ot consider adding","commit_id":"4962225e44ace4731faf4cf31d6f735f7dc2d618"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"720b152ea88b4f335ab2418aa4486f49d225bb8f","unresolved":true,"context_lines":[{"line_number":300,"context_line":""},{"line_number":301,"context_line":"        self.execute_action_plan_and_validate_states(action_plan[\u0027uuid\u0027])"},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"        # check that the available volume was migrated"},{"line_number":304,"context_line":"        self.assertEqual("},{"line_number":305,"context_line":"            self.get_host_for_volume(free_volume[\u0027id\u0027]), dst_pools[0]"},{"line_number":306,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":30,"id":"0027d4a4_65250090","line":303,"in_reply_to":"a8c4b355_7abe8f87","updated":"2026-03-09 10:50:53.000000000","message":"that case should never happen because the way the test selects the dst_pools prevents it from being equal to src_pool. However it\u0027s trivial to a add an assert for it, so I\u0027ve done it for clarity","commit_id":"4962225e44ace4731faf4cf31d6f735f7dc2d618"}]}
