)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":30674,"name":"Lukas Piwowarski","email":"lpiwowar@redhat.com","username":"lukas-piwowarski"},"change_message_id":"2191811bdd8226a73ed12eb29169b94e2100ede1","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     Luigi Dino Tamagnone \u003cltamagno@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2023-04-09 15:24:45 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Avoinding the clean of not tempest created resources"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"I add a warning in command description of run cleanup first with dry-run"},{"line_number":10,"context_line":"I add a new options prefix with default value tempest-"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"b32a4bdc_07fbbbac","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":9},"updated":"2023-04-11 16:43:22.000000000","message":"A typo","commit_id":"d4caab206ae4b12a371d3754a070a2afd80a6acd"},{"author":{"_account_id":33983,"name":"Luigi Dino Tamagnone","display_name":"luigi","email":"ltamagno@redhat.com","username":"ltamagno"},"change_message_id":"8ac475a128207f385c2e7b9387c19eca8dba581c","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Luigi Dino Tamagnone \u003cltamagno@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2023-04-09 15:24:45 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Avoinding the clean of not tempest created resources"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"I add a warning in command description of run cleanup first with dry-run"},{"line_number":10,"context_line":"I add a new options prefix with default value tempest-"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"220c249f_4cc22ad8","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":9},"in_reply_to":"b32a4bdc_07fbbbac","updated":"2023-04-19 14:50:17.000000000","message":"thanks to see it","commit_id":"d4caab206ae4b12a371d3754a070a2afd80a6acd"},{"author":{"_account_id":30674,"name":"Lukas Piwowarski","email":"lpiwowar@redhat.com","username":"lukas-piwowarski"},"change_message_id":"7a2ad9c4eba4e1c32b5c0230bca5882f7fdf3542","unresolved":true,"context_lines":[{"line_number":13,"context_line":"This change should help avoiding remove resource not created by tempest"},{"line_number":14,"context_line":"and not present on saved_state.json."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Closes-Bug:   #1945082"},{"line_number":17,"context_line":"Change-Id: I65dfe051c891b3679538acec713e8616746c47f6"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3cd8d951_6dc47d2e","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":22},"updated":"2023-04-24 15:01:15.000000000","message":"Can we put the \"Closes-Bug\" here? The bug report seems to be about the cleanup script removing ports but it seems that we did not change much when it comes to the ports [1].\n\n[1] https://review.opendev.org/c/openstack/tempest/+/879923/3/tempest/cmd/cleanup_service.py#633","commit_id":"867491f3bfbb065acc4b6a0a5bead1b29f997bab"},{"author":{"_account_id":33983,"name":"Luigi Dino Tamagnone","display_name":"luigi","email":"ltamagno@redhat.com","username":"ltamagno"},"change_message_id":"a0c19d351e08181317f0155160296d4cdcf56bff","unresolved":false,"context_lines":[{"line_number":13,"context_line":"This change should help avoiding remove resource not created by tempest"},{"line_number":14,"context_line":"and not present on saved_state.json."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Closes-Bug:   #1945082"},{"line_number":17,"context_line":"Change-Id: I65dfe051c891b3679538acec713e8616746c47f6"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"30ef7f10_df6f0c96","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":22},"in_reply_to":"373e19b3_b405ec10","updated":"2023-04-28 13:26:57.000000000","message":"thanks for the advice. I added it.","commit_id":"867491f3bfbb065acc4b6a0a5bead1b29f997bab"},{"author":{"_account_id":33983,"name":"Luigi Dino Tamagnone","display_name":"luigi","email":"ltamagno@redhat.com","username":"ltamagno"},"change_message_id":"260be66d9bf892a725bea7b47d21e2a042afb9c7","unresolved":false,"context_lines":[{"line_number":13,"context_line":"This change should help avoiding remove resource not created by tempest"},{"line_number":14,"context_line":"and not present on saved_state.json."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Closes-Bug:   #1945082"},{"line_number":17,"context_line":"Change-Id: I65dfe051c891b3679538acec713e8616746c47f6"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"6e0d26ba_c8805ae3","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":22},"in_reply_to":"3cd8d951_6dc47d2e","updated":"2023-04-27 15:14:00.000000000","message":"You are right I should remove it, I will take care of it in a next update","commit_id":"867491f3bfbb065acc4b6a0a5bead1b29f997bab"},{"author":{"_account_id":30674,"name":"Lukas Piwowarski","email":"lpiwowar@redhat.com","username":"lukas-piwowarski"},"change_message_id":"7bd339343b81fe2e42504f3076b2d7296368cccc","unresolved":true,"context_lines":[{"line_number":13,"context_line":"This change should help avoiding remove resource not created by tempest"},{"line_number":14,"context_line":"and not present on saved_state.json."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Closes-Bug:   #1945082"},{"line_number":17,"context_line":"Change-Id: I65dfe051c891b3679538acec713e8616746c47f6"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"373e19b3_b405ec10","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":22},"in_reply_to":"6e0d26ba_c8805ae3","updated":"2023-04-27 15:27:58.000000000","message":"I\u0027m sorry for not mentioning that there is an alternative to \"Closes-Bug\" - \"Related-Bug\" (example here [1]). I think that it might be good to have it here as the patch is related to this bug.\n\n[1] https://review.opendev.org/c/openstack/tempest/+/881575","commit_id":"867491f3bfbb065acc4b6a0a5bead1b29f997bab"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"00c4376929f90329b69f71e8bd6c0e7e3b3e5d24","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"6f420f68_ea6d409d","updated":"2023-04-13 10:20:13.000000000","message":"I\u0027ll build on Lukas\u0027 comments, based on this output\n\nhttps://a4882fb7db4c401136c2-acad0afc1440c186988309ce1e0a4290.ssl.cf5.rackcdn.com/879923/1/check/openstack-tox-cover/39097cd/testr_results.html\n\nyou need to add the new kwarg you added (prefix) here in the unit tests too:\nhttps://opendev.org/openstack/tempest/src/commit/3c7eebaaf35c9e8a3f00c76cd1741457bdec9fab/tempest/tests/cmd/test_cleanup_services.py#L29","commit_id":"d4caab206ae4b12a371d3754a070a2afd80a6acd"},{"author":{"_account_id":30674,"name":"Lukas Piwowarski","email":"lpiwowar@redhat.com","username":"lukas-piwowarski"},"change_message_id":"2191811bdd8226a73ed12eb29169b94e2100ede1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"87c301cf_9977c7e0","updated":"2023-04-11 16:43:22.000000000","message":"Thank you for working on this! :) This will be really helpful once it will be merged.\n \nI added a few comments. If you are still working on this it is better to mark this as work in progress (\"three dots in the upper right corner\" -\u003e \"Mark as work in progress\").","commit_id":"d4caab206ae4b12a371d3754a070a2afd80a6acd"},{"author":{"_account_id":33983,"name":"Luigi Dino Tamagnone","display_name":"luigi","email":"ltamagno@redhat.com","username":"ltamagno"},"change_message_id":"8ac475a128207f385c2e7b9387c19eca8dba581c","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"bafce741_1aa9598a","updated":"2023-04-19 14:50:17.000000000","message":"still working on this","commit_id":"3c32bff9f0ec43b22705362a7e1d21d342a20ce7"},{"author":{"_account_id":33983,"name":"Luigi Dino Tamagnone","display_name":"luigi","email":"ltamagno@redhat.com","username":"ltamagno"},"change_message_id":"43f063e550e60e08ff813ea2c025d71d31f731b4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"af4dbe51_b4dec8c0","in_reply_to":"bafce741_1aa9598a","updated":"2023-04-21 14:27:32.000000000","message":"Done","commit_id":"3c32bff9f0ec43b22705362a7e1d21d342a20ce7"},{"author":{"_account_id":30674,"name":"Lukas Piwowarski","email":"lpiwowar@redhat.com","username":"lukas-piwowarski"},"change_message_id":"7a2ad9c4eba4e1c32b5c0230bca5882f7fdf3542","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"77b8caec_87b0f787","updated":"2023-04-24 15:01:15.000000000","message":"Thank you for the fixes!","commit_id":"867491f3bfbb065acc4b6a0a5bead1b29f997bab"},{"author":{"_account_id":30674,"name":"Lukas Piwowarski","email":"lpiwowar@redhat.com","username":"lukas-piwowarski"},"change_message_id":"589b48c885efc01cd4b4bd083363d856398ad120","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"df3d8d0f_c2594c06","updated":"2023-12-07 17:01:25.000000000","message":"I added a few comments.","commit_id":"ec0017e81e2feb58ee833d0450f937f61e6045e3"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"f0d1d5c0747268dd33f14c9b3b1dd332d1d29612","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"aeebf532_ad3c40a3","updated":"2023-12-11 13:26:05.000000000","message":"oh, i found 2 little details and 1 question to the design we need to find answers for","commit_id":"9e3c70c9924ee8690575ab992012aafab236d619"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"d09e1d3b3bdb0ef7b35b1b53f873c98a75f643cb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"4cc281a3_231f6b83","updated":"2023-12-11 12:29:28.000000000","message":"recheck timeout","commit_id":"9e3c70c9924ee8690575ab992012aafab236d619"},{"author":{"_account_id":30674,"name":"Lukas Piwowarski","email":"lpiwowar@redhat.com","username":"lukas-piwowarski"},"change_message_id":"9b6be65c4451c7b9119ab0e4dc117fe7ad9fb82f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"0f8c1c08_9a3c630c","updated":"2023-12-14 14:58:20.000000000","message":"Looks good to me! There is still a question mark hanging around the unit tests but except that it looks good.","commit_id":"a2207afd6308752974daf2c7d0a0102a7bfff830"},{"author":{"_account_id":30674,"name":"Lukas Piwowarski","email":"lpiwowar@redhat.com","username":"lukas-piwowarski"},"change_message_id":"a8333a70ee262952ad198f5c702a3c8c37e39550","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"d3560f95_e2c9fa33","updated":"2023-12-14 10:55:02.000000000","message":"Overall looks good to me. I\u0027ve only updated the comment thread for the RegionService.","commit_id":"a2207afd6308752974daf2c7d0a0102a7bfff830"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"32acbda3f1c24d5f5a5ff0a1b7efa02bccbb5556","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"36867f5d_280ce861","updated":"2023-12-15 00:23:11.000000000","message":"check experimental","commit_id":"a2207afd6308752974daf2c7d0a0102a7bfff830"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"233b615ee4d0a468deb5d60a82df8c516de8e2f6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"83082941_803f57f4","updated":"2023-12-15 00:23:04.000000000","message":"lgtm but as cleanup run in tempest-full-parallel job only let\u0027s test it","commit_id":"a2207afd6308752974daf2c7d0a0102a7bfff830"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"1ad15b1ea143b322884da00a1619d9a957a8fcb3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"cc2cc3d7_7154eae6","updated":"2023-12-15 04:58:42.000000000","message":"seems it is not running anywhere. we only enable the cleanup in tempest-full-parallel and there we run cleanup with init-saved-state[1] so that the cleanup list of resources are taken from saved state not via prefix.\n- https://zuul.opendev.org/t/openstack/build/3023357927974175b31e554e4f66b1b9/log/job-output.txt#23104\n\nWe should run tempest cleanup in some job without init-saved-state maybe in tempest-all but for that you might need to have a new var to run the init-saved-state as currently it is based on run/dry-run cleanup var only. or maybe define a new var run-cleanup-up-with-prefix and do not run init-saved-state if that is set to true -   https://github.com/openstack/tempest/blob/master/playbooks/devstack-tempest.yaml#L29\n\n[1] https://github.com/openstack/tempest/blob/master/playbooks/devstack-tempest.yaml#L23C33-L23C49","commit_id":"a2207afd6308752974daf2c7d0a0102a7bfff830"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"d1a08261465c0aef02ca3bd87ec520da20035d3b","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":16,"id":"82b63249_26e31a81","in_reply_to":"cc2cc3d7_7154eae6","updated":"2023-12-18 11:20:21.000000000","message":"sure, let me take a look","commit_id":"a2207afd6308752974daf2c7d0a0102a7bfff830"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"85c89dbdb0c8ff561807153612ff3adec4214eb2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"d4574d26_4e33f474","updated":"2024-01-04 21:21:50.000000000","message":"I think we need to make all three way to run tempest cleanup explicitly separate process otherwise cleanup of resources will be confusing.\n\nI am commenting the overall pic of cleanup with this + proposal in https://review.opendev.org/c/openstack/tempest/+/897847","commit_id":"5416535ec0b741f9a7c00286bacc6822666809a9"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"2c020386fc6b7d3481f78c3c636fa756ab99d373","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"6572bdad_faf5bc27","updated":"2023-12-21 18:55:33.000000000","message":"going in good direction. a few comment","commit_id":"5416535ec0b741f9a7c00286bacc6822666809a9"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"26d6450f49c2ee44153551f4ca4cbcd515ed5295","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":22,"id":"0530534a_176845bf","updated":"2024-01-25 03:32:01.000000000","message":"Martin, I added my reply. maybe we should discuss it in detail in PTG or meeting as this design thing is little complex.","commit_id":"91a5c220fb4f1710de75ea8eea113eb94e91664c"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"7f598b9361697dd2553ec101e3a95509068d05fc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"c61e55dc_864fd81c","updated":"2024-01-26 18:48:16.000000000","message":"My previous concern is still not resolved. I see two main issue in this design\n\n1. We are providing two ways to enable and disable the same feature --prefix\n2. We are mixing the different ways of cleanup in code and ignoring the what users actually wanted cleanup to run","commit_id":"fec647d29de92dcfb3f0856cdb8668c365ffb0c6"},{"author":{"_account_id":30674,"name":"Lukas Piwowarski","email":"lpiwowar@redhat.com","username":"lukas-piwowarski"},"change_message_id":"9fbad407423d4d7017a676058d362430c0775408","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":25,"id":"d78967c2_ac9fe431","updated":"2024-03-05 10:54:59.000000000","message":"Just one small comment.","commit_id":"f6940fdf7c24c0530d7332b09cb438173a61ac6e"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"c51eec7406f87f8449e59f025bacdaac0a387489","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":27,"id":"5ed9a5b4_899ad8ef","updated":"2024-03-13 11:01:15.000000000","message":"check experimental","commit_id":"cc56539c23a082fa093e5bf10aa8e03aac97b18b"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"8fd24372b2a41bd54f7e6698253a06df42e51e01","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":27,"id":"37dc97f5_cd756d48","updated":"2024-03-15 04:21:26.000000000","message":"thanks for updating, a few comments. overall direction lgtm as we discussed.","commit_id":"cc56539c23a082fa093e5bf10aa8e03aac97b18b"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"e73666fde02b6cb6b4ae5935187ba7696f886f24","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":28,"id":"77fd050f_0d6f6924","updated":"2024-03-22 05:26:56.000000000","message":"I think only thing I am -1 is about help msg improvement rest all good. running the tempest-full-py3-ipv6 job to check the result","commit_id":"7409fabb2fab8ea91bebe525af007e8eb5eb9815"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"960d9f7399b9590bd1f3844669fd3fcb3431e6d9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":28,"id":"41ef7db1_225714ae","updated":"2024-03-22 05:27:05.000000000","message":"check experimental","commit_id":"7409fabb2fab8ea91bebe525af007e8eb5eb9815"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"1a458d91cf8c70590a2f079c24c460d4399136d8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":30,"id":"aeffb8d7_7648eedd","updated":"2024-03-29 13:46:17.000000000","message":"check experimental","commit_id":"985eab78fafa8e77bbb4c1e6a775d5af652bda17"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"3c1d251c6cb5fbb918214841aff0a60d7cc2fa11","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":30,"id":"bbe6460a_7fd5e28f","updated":"2024-03-29 18:22:06.000000000","message":"lgtm. Thanks a lot for the patient on this and all the updates. \n\nThis is all working fine now tempest-cleanup: Run tempest cleanup with tempest prefix\n\n\nI missed to add previously that we should add a releasenotes about it. I am ok with doing it in this or in follow up, let me know and I will +w accordingly.","commit_id":"985eab78fafa8e77bbb4c1e6a775d5af652bda17"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"affbfb739c4dd5fee809f16258357cd6ddd654d8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":30,"id":"50427ffd_ecc1ba48","in_reply_to":"bbe6460a_7fd5e28f","updated":"2024-03-29 19:15:55.000000000","message":"I can add it in this patch, the same number of jobs will need to be run either way.","commit_id":"985eab78fafa8e77bbb4c1e6a775d5af652bda17"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"579339ab8c8d1f2c81a2386e857bcc3770c825c5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":31,"id":"13c16014_bba04ac9","updated":"2024-03-31 19:38:54.000000000","message":"recheck tempest-full request time out tempest.api.volume.test_volumes_backup.VolumesBackupsTest","commit_id":"9052dfcc851097c9c75782bf7b70310d5a559e49"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"53f09691c9002bac6b0ef336815bb93017a926b9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":31,"id":"36eb05a8_c6035387","updated":"2024-03-30 18:25:27.000000000","message":"recheck test_image_glance_direct_import[id-32ca0c20-e16f-44ac-8590-07869c9b4cc2] timed out","commit_id":"9052dfcc851097c9c75782bf7b70310d5a559e49"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"6def1630ca1afbcd50770e4799064c731999fbb9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":31,"id":"9bfed215_19311e22","updated":"2024-03-29 19:45:10.000000000","message":"thanks. lgtm","commit_id":"9052dfcc851097c9c75782bf7b70310d5a559e49"}],"playbooks/devstack-tempest.yaml":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"f146199506c17b7b078152d2fbcf4a54d618b972","unresolved":true,"context_lines":[{"line_number":20,"context_line":"      include_role:"},{"line_number":21,"context_line":"        name: acl-devstack-files"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    - name: Run tempest cleanup init-saved-state"},{"line_number":24,"context_line":"      include_role:"},{"line_number":25,"context_line":"        name: tempest-cleanup"},{"line_number":26,"context_line":"      vars:"},{"line_number":27,"context_line":"        init_saved_state: true"},{"line_number":28,"context_line":"      when: (run_tempest_dry_cleanup is defined and run_tempest_dry_cleanup | bool) or"},{"line_number":29,"context_line":"            (run_tempest_cleanup is defined and run_tempest_cleanup | bool) or"},{"line_number":30,"context_line":"            (run_tempest_fail_if_leaked_resources is defined and run_tempest_fail_if_leaked_resources | bool) or"},{"line_number":31,"context_line":"            (run_tempest_cleanup_prefix is defined and run_tempest_cleanup_prefix | bool)"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    - name: Run Tempest version \u003c\u003d 26.0.0"},{"line_number":34,"context_line":"      include_role:"}],"source_content_type":"text/x-yaml","patch_set":28,"id":"2f0d24f9_0e7df5fb","line":31,"range":{"start_line":23,"start_character":0,"end_line":31,"end_character":89},"updated":"2024-03-25 18:03:11.000000000","message":"we do have prefix variable condition here but not sure why this is also not running in tempest-full-py3-ipv6. are we missing some more var setting in that job?\n\n-https://zuul.opendev.org/t/openstack/build/67b5757bb3824838bc8032e9c7054b07/console","commit_id":"7409fabb2fab8ea91bebe525af007e8eb5eb9815"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"ae85883b8bc4b4af70cc4304958a74d31e33ab69","unresolved":false,"context_lines":[{"line_number":20,"context_line":"      include_role:"},{"line_number":21,"context_line":"        name: acl-devstack-files"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    - name: Run tempest cleanup init-saved-state"},{"line_number":24,"context_line":"      include_role:"},{"line_number":25,"context_line":"        name: tempest-cleanup"},{"line_number":26,"context_line":"      vars:"},{"line_number":27,"context_line":"        init_saved_state: true"},{"line_number":28,"context_line":"      when: (run_tempest_dry_cleanup is defined and run_tempest_dry_cleanup | bool) or"},{"line_number":29,"context_line":"            (run_tempest_cleanup is defined and run_tempest_cleanup | bool) or"},{"line_number":30,"context_line":"            (run_tempest_fail_if_leaked_resources is defined and run_tempest_fail_if_leaked_resources | bool) or"},{"line_number":31,"context_line":"            (run_tempest_cleanup_prefix is defined and run_tempest_cleanup_prefix | bool)"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    - name: Run Tempest version \u003c\u003d 26.0.0"},{"line_number":34,"context_line":"      include_role:"}],"source_content_type":"text/x-yaml","patch_set":28,"id":"c4aff92f_39a5d5a2","line":31,"range":{"start_line":23,"start_character":0,"end_line":31,"end_character":89},"in_reply_to":"2f0d24f9_0e7df5fb","updated":"2024-03-29 11:15:30.000000000","message":"this is wrong playbook, this needs to go to devstack-tempest-ipv6.yaml if we wanna run it in a *-ipv6 job ..","commit_id":"7409fabb2fab8ea91bebe525af007e8eb5eb9815"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"f0f122834d5484767e5076fe49bd6af0902129f1","unresolved":false,"context_lines":[{"line_number":20,"context_line":"      include_role:"},{"line_number":21,"context_line":"        name: acl-devstack-files"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    - name: Run tempest cleanup init-saved-state"},{"line_number":24,"context_line":"      include_role:"},{"line_number":25,"context_line":"        name: tempest-cleanup"},{"line_number":26,"context_line":"      vars:"},{"line_number":27,"context_line":"        init_saved_state: true"},{"line_number":28,"context_line":"      when: (run_tempest_dry_cleanup is defined and run_tempest_dry_cleanup | bool) or"},{"line_number":29,"context_line":"            (run_tempest_cleanup is defined and run_tempest_cleanup | bool) or"},{"line_number":30,"context_line":"            (run_tempest_fail_if_leaked_resources is defined and run_tempest_fail_if_leaked_resources | bool) or"},{"line_number":31,"context_line":"            (run_tempest_cleanup_prefix is defined and run_tempest_cleanup_prefix | bool)"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    - name: Run Tempest version \u003c\u003d 26.0.0"},{"line_number":34,"context_line":"      include_role:"}],"source_content_type":"text/x-yaml","patch_set":28,"id":"d1c2b5be_88850b19","line":31,"range":{"start_line":23,"start_character":0,"end_line":31,"end_character":89},"in_reply_to":"c4aff92f_39a5d5a2","updated":"2024-03-29 18:17:12.000000000","message":"ah, how can I forget about that. thanks for checking and update","commit_id":"7409fabb2fab8ea91bebe525af007e8eb5eb9815"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"f146199506c17b7b078152d2fbcf4a54d618b972","unresolved":true,"context_lines":[{"line_number":41,"context_line":"        name: run-tempest"},{"line_number":42,"context_line":"      when: (zuul.branch is defined and zuul.branch not in [\"stable/ocata\", \"stable/pike\", \"stable/queens\", \"stable/rocky\", \"stable/stein\"] and zuul.override_checkout is not defined) or"},{"line_number":43,"context_line":"            (zuul.override_checkout is defined and zuul.override_checkout not in [\"stable/ocata\", \"stable/pike\", \"stable/queens\", \"stable/rocky\", \"stable/stein\"])"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    - name: Run tempest cleanup dry-run"},{"line_number":46,"context_line":"      include_role:"},{"line_number":47,"context_line":"        name: tempest-cleanup"},{"line_number":48,"context_line":"      vars:"},{"line_number":49,"context_line":"        dry_run: true"},{"line_number":50,"context_line":"      when: run_tempest_dry_cleanup is defined and run_tempest_dry_cleanup | bool"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    - name: Run tempest cleanup"},{"line_number":53,"context_line":"      include_role:"}],"source_content_type":"text/x-yaml","patch_set":28,"id":"e6f9af74_d7658d3f","line":50,"range":{"start_line":44,"start_character":0,"end_line":50,"end_character":81},"updated":"2024-03-25 18:03:11.000000000","message":"ditto","commit_id":"7409fabb2fab8ea91bebe525af007e8eb5eb9815"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"3c1d251c6cb5fbb918214841aff0a60d7cc2fa11","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        name: run-tempest"},{"line_number":42,"context_line":"      when: (zuul.branch is defined and zuul.branch not in [\"stable/ocata\", \"stable/pike\", \"stable/queens\", \"stable/rocky\", \"stable/stein\"] and zuul.override_checkout is not defined) or"},{"line_number":43,"context_line":"            (zuul.override_checkout is defined and zuul.override_checkout not in [\"stable/ocata\", \"stable/pike\", \"stable/queens\", \"stable/rocky\", \"stable/stein\"])"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    - name: Run tempest cleanup dry-run"},{"line_number":46,"context_line":"      include_role:"},{"line_number":47,"context_line":"        name: tempest-cleanup"},{"line_number":48,"context_line":"      vars:"},{"line_number":49,"context_line":"        dry_run: true"},{"line_number":50,"context_line":"      when: run_tempest_dry_cleanup is defined and run_tempest_dry_cleanup | bool"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    - name: Run tempest cleanup"},{"line_number":53,"context_line":"      include_role:"}],"source_content_type":"text/x-yaml","patch_set":28,"id":"f7a6a985_c4c8d572","line":50,"range":{"start_line":44,"start_character":0,"end_line":50,"end_character":81},"in_reply_to":"e6f9af74_d7658d3f","updated":"2024-03-29 18:22:06.000000000","message":"Done","commit_id":"7409fabb2fab8ea91bebe525af007e8eb5eb9815"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"f146199506c17b7b078152d2fbcf4a54d618b972","unresolved":true,"context_lines":[{"line_number":49,"context_line":"        dry_run: true"},{"line_number":50,"context_line":"      when: run_tempest_dry_cleanup is defined and run_tempest_dry_cleanup | bool"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    - name: Run tempest cleanup"},{"line_number":53,"context_line":"      include_role:"},{"line_number":54,"context_line":"        name: tempest-cleanup"},{"line_number":55,"context_line":"      when: run_tempest_cleanup is defined and run_tempest_cleanup | bool"}],"source_content_type":"text/x-yaml","patch_set":28,"id":"37f41c0c_7aea8b30","line":55,"range":{"start_line":52,"start_character":0,"end_line":55,"end_character":73},"updated":"2024-03-25 18:03:11.000000000","message":"run tempest is not running in new job where prefix is enabled. we need to add those variable here too?\n\nhttps://zuul.opendev.org/t/openstack/build/67b5757bb3824838bc8032e9c7054b07/console","commit_id":"7409fabb2fab8ea91bebe525af007e8eb5eb9815"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"3c1d251c6cb5fbb918214841aff0a60d7cc2fa11","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        dry_run: true"},{"line_number":50,"context_line":"      when: run_tempest_dry_cleanup is defined and run_tempest_dry_cleanup | bool"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    - name: Run tempest cleanup"},{"line_number":53,"context_line":"      include_role:"},{"line_number":54,"context_line":"        name: tempest-cleanup"},{"line_number":55,"context_line":"      when: run_tempest_cleanup is defined and run_tempest_cleanup | bool"}],"source_content_type":"text/x-yaml","patch_set":28,"id":"4d75a84e_6021990e","line":55,"range":{"start_line":52,"start_character":0,"end_line":55,"end_character":73},"in_reply_to":"37f41c0c_7aea8b30","updated":"2024-03-29 18:22:06.000000000","message":"Done","commit_id":"7409fabb2fab8ea91bebe525af007e8eb5eb9815"}],"tempest/cmd/cleanup.py":[{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"00c4376929f90329b69f71e8bd6c0e7e3b3e5d24","unresolved":true,"context_lines":[{"line_number":286,"context_line":"            sys.exit(ex)"},{"line_number":287,"context_line":"        except Exception as ex:"},{"line_number":288,"context_line":"            LOG.exception(\"Exception parsing saved state json : %s\", ex)"},{"line_number":289,"context_line":"            sys.exit(ex)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff166e2b_ab3ab82d","side":"PARENT","line":289,"range":{"start_line":289,"start_character":12,"end_line":289,"end_character":24},"updated":"2023-04-13 10:20:13.000000000","message":"is this change really needed?","commit_id":"94649e792e08fcfb3859a4f7cf314070287f985c"},{"author":{"_account_id":33983,"name":"Luigi Dino Tamagnone","display_name":"luigi","email":"ltamagno@redhat.com","username":"ltamagno"},"change_message_id":"8ac475a128207f385c2e7b9387c19eca8dba581c","unresolved":false,"context_lines":[{"line_number":286,"context_line":"            sys.exit(ex)"},{"line_number":287,"context_line":"        except Exception as ex:"},{"line_number":288,"context_line":"            LOG.exception(\"Exception parsing saved state json : %s\", ex)"},{"line_number":289,"context_line":"            sys.exit(ex)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ea9647dd_dae1b488","side":"PARENT","line":289,"range":{"start_line":289,"start_character":12,"end_line":289,"end_character":24},"in_reply_to":"ff166e2b_ab3ab82d","updated":"2023-04-19 14:50:17.000000000","message":"Probably my mistake","commit_id":"94649e792e08fcfb3859a4f7cf314070287f985c"},{"author":{"_account_id":30674,"name":"Lukas Piwowarski","email":"lpiwowar@redhat.com","username":"lukas-piwowarski"},"change_message_id":"2191811bdd8226a73ed12eb29169b94e2100ede1","unresolved":true,"context_lines":[{"line_number":209,"context_line":"        project_id \u003d project[\u0027id\u0027]"},{"line_number":210,"context_line":"        project_name \u003d project[\u0027name\u0027]"},{"line_number":211,"context_line":"        project_data \u003d None"},{"line_number":212,"context_line":"        cprefix \u003d self.options.prefix"},{"line_number":213,"context_line":"        if is_dry_run:"},{"line_number":214,"context_line":"            project_data \u003d dry_run_data[\"_projects_to_clean\"][project_id] \u003d {}"},{"line_number":215,"context_line":"            project_data[\u0027name\u0027] \u003d project_name"}],"source_content_type":"text/x-python","patch_set":1,"id":"8a644224_ceb54097","line":212,"range":{"start_line":212,"start_character":8,"end_line":212,"end_character":15},"updated":"2023-04-11 16:43:22.000000000","message":"Nit: What does cprefix stand for? \"cprefix\" \u003d\u003d \"cleanup_prefix\"? Maybe it might be better to use \"cleanup_prefix\" instead. Being more descriptive might be better in my opinion. But this is just an idea.","commit_id":"d4caab206ae4b12a371d3754a070a2afd80a6acd"},{"author":{"_account_id":33983,"name":"Luigi Dino Tamagnone","display_name":"luigi","email":"ltamagno@redhat.com","username":"ltamagno"},"change_message_id":"8ac475a128207f385c2e7b9387c19eca8dba581c","unresolved":false,"context_lines":[{"line_number":209,"context_line":"        project_id \u003d project[\u0027id\u0027]"},{"line_number":210,"context_line":"        project_name \u003d project[\u0027name\u0027]"},{"line_number":211,"context_line":"        project_data \u003d None"},{"line_number":212,"context_line":"        cprefix \u003d self.options.prefix"},{"line_number":213,"context_line":"        if is_dry_run:"},{"line_number":214,"context_line":"            project_data \u003d dry_run_data[\"_projects_to_clean\"][project_id] \u003d {}"},{"line_number":215,"context_line":"            project_data[\u0027name\u0027] \u003d project_name"}],"source_content_type":"text/x-python","patch_set":1,"id":"67a9dd6e_3d26b4b4","line":212,"range":{"start_line":212,"start_character":8,"end_line":212,"end_character":15},"in_reply_to":"8a644224_ceb54097","updated":"2023-04-19 14:50:17.000000000","message":"Ack","commit_id":"d4caab206ae4b12a371d3754a070a2afd80a6acd"},{"author":{"_account_id":30674,"name":"Lukas Piwowarski","email":"lpiwowar@redhat.com","username":"lukas-piwowarski"},"change_message_id":"2191811bdd8226a73ed12eb29169b94e2100ede1","unresolved":true,"context_lines":[{"line_number":249,"context_line":"                            \", that reports the objects that would have \""},{"line_number":250,"context_line":"                            \"been deleted had a full cleanup been run.\")"},{"line_number":251,"context_line":"        parser.add_argument(\u0027--prefix\u0027, dest\u003d\u0027prefix\u0027, default\u003d\"tempest-\","},{"line_number":252,"context_line":"                            help\u003d\"Define the default prefix name \" "},{"line_number":253,"context_line":"                            \"for the resources to delete. Default is tempest-. \""},{"line_number":254,"context_line":"                            \"Void string \\\"\\\" to delete all.\") "},{"line_number":255,"context_line":"        return parser"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"a97114df_c6509f78","line":254,"range":{"start_line":252,"start_character":34,"end_line":254,"end_character":62},"updated":"2023-04-11 16:43:22.000000000","message":"This needs a little bit of polishing and also the white characters need to be removed. Will it also delete resources that are listed in the saved_state.json? How does this parameter behave when it is used in combination with the --init-saved-state?","commit_id":"d4caab206ae4b12a371d3754a070a2afd80a6acd"},{"author":{"_account_id":33983,"name":"Luigi Dino Tamagnone","display_name":"luigi","email":"ltamagno@redhat.com","username":"ltamagno"},"change_message_id":"e0ade31f5ccccb65cb280dcbbe5e1a564f4c6ab1","unresolved":false,"context_lines":[{"line_number":249,"context_line":"                            \", that reports the objects that would have \""},{"line_number":250,"context_line":"                            \"been deleted had a full cleanup been run.\")"},{"line_number":251,"context_line":"        parser.add_argument(\u0027--prefix\u0027, dest\u003d\u0027prefix\u0027, default\u003d\"tempest-\","},{"line_number":252,"context_line":"                            help\u003d\"Define the default prefix name \" "},{"line_number":253,"context_line":"                            \"for the resources to delete. Default is tempest-. \""},{"line_number":254,"context_line":"                            \"Void string \\\"\\\" to delete all.\") "},{"line_number":255,"context_line":"        return parser"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"dbd5a268_afe235b5","line":254,"range":{"start_line":252,"start_character":34,"end_line":254,"end_character":62},"in_reply_to":"a97114df_c6509f78","updated":"2023-04-21 14:26:54.000000000","message":"I think should be better now. Let me know","commit_id":"d4caab206ae4b12a371d3754a070a2afd80a6acd"},{"author":{"_account_id":30674,"name":"Lukas Piwowarski","email":"lpiwowar@redhat.com","username":"lukas-piwowarski"},"change_message_id":"2191811bdd8226a73ed12eb29169b94e2100ede1","unresolved":true,"context_lines":[{"line_number":267,"context_line":"                  \u0027saved_state_json\u0027: data,"},{"line_number":268,"context_line":"                  \u0027is_preserve\u0027: False,"},{"line_number":269,"context_line":"                  \u0027is_save_state\u0027: True,"},{"line_number":270,"context_line":"                  \u0027prefix\u0027: \"\","},{"line_number":271,"context_line":"                  \u0027got_exceptions\u0027: self.GOT_EXCEPTIONS}"},{"line_number":272,"context_line":"        for service in self.global_services:"},{"line_number":273,"context_line":"            svc \u003d service(admin_mgr, **kwargs)"}],"source_content_type":"text/x-python","patch_set":1,"id":"f6eee4a4_9aa387dc","line":270,"range":{"start_line":270,"start_character":18,"end_line":270,"end_character":31},"updated":"2023-04-11 16:43:22.000000000","message":"It might be nice to be able to specify a prefix which will specify resources that should be ignored during the init saved state phase (?).","commit_id":"d4caab206ae4b12a371d3754a070a2afd80a6acd"},{"author":{"_account_id":30674,"name":"Lukas Piwowarski","email":"lpiwowar@redhat.com","username":"lukas-piwowarski"},"change_message_id":"7a2ad9c4eba4e1c32b5c0230bca5882f7fdf3542","unresolved":false,"context_lines":[{"line_number":267,"context_line":"                  \u0027saved_state_json\u0027: data,"},{"line_number":268,"context_line":"                  \u0027is_preserve\u0027: False,"},{"line_number":269,"context_line":"                  \u0027is_save_state\u0027: True,"},{"line_number":270,"context_line":"                  \u0027prefix\u0027: \"\","},{"line_number":271,"context_line":"                  \u0027got_exceptions\u0027: self.GOT_EXCEPTIONS}"},{"line_number":272,"context_line":"        for service in self.global_services:"},{"line_number":273,"context_line":"            svc \u003d service(admin_mgr, **kwargs)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ce8eb00e_ca9a8c2e","line":270,"range":{"start_line":270,"start_character":18,"end_line":270,"end_character":31},"in_reply_to":"9755d5bd_31b88ef9","updated":"2023-04-24 15:01:15.000000000","message":"Yes, I agree. Let\u0027s leave it for another commit. I think that it might be nice to have.","commit_id":"d4caab206ae4b12a371d3754a070a2afd80a6acd"},{"author":{"_account_id":33983,"name":"Luigi Dino Tamagnone","display_name":"luigi","email":"ltamagno@redhat.com","username":"ltamagno"},"change_message_id":"e0ade31f5ccccb65cb280dcbbe5e1a564f4c6ab1","unresolved":false,"context_lines":[{"line_number":267,"context_line":"                  \u0027saved_state_json\u0027: data,"},{"line_number":268,"context_line":"                  \u0027is_preserve\u0027: False,"},{"line_number":269,"context_line":"                  \u0027is_save_state\u0027: True,"},{"line_number":270,"context_line":"                  \u0027prefix\u0027: \"\","},{"line_number":271,"context_line":"                  \u0027got_exceptions\u0027: self.GOT_EXCEPTIONS}"},{"line_number":272,"context_line":"        for service in self.global_services:"},{"line_number":273,"context_line":"            svc \u003d service(admin_mgr, **kwargs)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9755d5bd_31b88ef9","line":270,"range":{"start_line":270,"start_character":18,"end_line":270,"end_character":31},"in_reply_to":"c03f57de_261698c1","updated":"2023-04-21 14:26:54.000000000","message":"I think we should do it in another commit. This is more for avoiding deleting not tempest resources.","commit_id":"d4caab206ae4b12a371d3754a070a2afd80a6acd"},{"author":{"_account_id":33983,"name":"Luigi Dino Tamagnone","display_name":"luigi","email":"ltamagno@redhat.com","username":"ltamagno"},"change_message_id":"8ac475a128207f385c2e7b9387c19eca8dba581c","unresolved":true,"context_lines":[{"line_number":267,"context_line":"                  \u0027saved_state_json\u0027: data,"},{"line_number":268,"context_line":"                  \u0027is_preserve\u0027: False,"},{"line_number":269,"context_line":"                  \u0027is_save_state\u0027: True,"},{"line_number":270,"context_line":"                  \u0027prefix\u0027: \"\","},{"line_number":271,"context_line":"                  \u0027got_exceptions\u0027: self.GOT_EXCEPTIONS}"},{"line_number":272,"context_line":"        for service in self.global_services:"},{"line_number":273,"context_line":"            svc \u003d service(admin_mgr, **kwargs)"}],"source_content_type":"text/x-python","patch_set":1,"id":"c03f57de_261698c1","line":270,"range":{"start_line":270,"start_character":18,"end_line":270,"end_character":31},"in_reply_to":"f6eee4a4_9aa387dc","updated":"2023-04-19 14:50:17.000000000","message":"I\u0027m not sure about it. This will make strange situation. \nFor my point of view, it should be used only during cleanup.\nWhy do you want to have it also in the init save phase?","commit_id":"d4caab206ae4b12a371d3754a070a2afd80a6acd"},{"author":{"_account_id":30674,"name":"Lukas Piwowarski","email":"lpiwowar@redhat.com","username":"lukas-piwowarski"},"change_message_id":"7a2ad9c4eba4e1c32b5c0230bca5882f7fdf3542","unresolved":true,"context_lines":[{"line_number":248,"context_line":"                            help\u003d\"Generate JSON file:\" + DRY_RUN_JSON +"},{"line_number":249,"context_line":"                            \", that reports the objects that would have \""},{"line_number":250,"context_line":"                            \"been deleted had a full cleanup been run.\")"},{"line_number":251,"context_line":"        parser.add_argument(\u0027--prefix\u0027, dest\u003d\u0027prefix\u0027, default\u003d\"tempest-\","},{"line_number":252,"context_line":"                            help\u003d\"Define the prefix name for the resources to delete. \""},{"line_number":253,"context_line":"                            \"Default is tempest-. Void string \\\"\\\" to delete all. \""},{"line_number":254,"context_line":"                            \"Not used in case of --init-saved-state\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"3cadea15_b76c7c9c","line":251,"range":{"start_line":251,"start_character":55,"end_line":251,"end_character":73},"updated":"2023-04-24 15:01:15.000000000","message":"I\u0027m just thinking aloud here. Should we set the default value to be equal to \"\" just to be sure that we are backward compatible? I do not know how critical the behaviour of the cleanup script is for others. Maybe someone else is using the script in different cases we did not think about (?).","commit_id":"867491f3bfbb065acc4b6a0a5bead1b29f997bab"},{"author":{"_account_id":30674,"name":"Lukas Piwowarski","email":"lpiwowar@redhat.com","username":"lukas-piwowarski"},"change_message_id":"7bd339343b81fe2e42504f3076b2d7296368cccc","unresolved":true,"context_lines":[{"line_number":248,"context_line":"                            help\u003d\"Generate JSON file:\" + DRY_RUN_JSON +"},{"line_number":249,"context_line":"                            \", that reports the objects that would have \""},{"line_number":250,"context_line":"                            \"been deleted had a full cleanup been run.\")"},{"line_number":251,"context_line":"        parser.add_argument(\u0027--prefix\u0027, dest\u003d\u0027prefix\u0027, default\u003d\"tempest-\","},{"line_number":252,"context_line":"                            help\u003d\"Define the prefix name for the resources to delete. \""},{"line_number":253,"context_line":"                            \"Default is tempest-. Void string \\\"\\\" to delete all. \""},{"line_number":254,"context_line":"                            \"Not used in case of --init-saved-state\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"424b8e9e_68b56eb9","line":251,"range":{"start_line":251,"start_character":55,"end_line":251,"end_character":73},"in_reply_to":"10197742_f5bbe8b0","updated":"2023-04-27 15:27:58.000000000","message":"I agree with this reasoning. I\u0027m just not sure about it. Let\u0027s see what others think:).","commit_id":"867491f3bfbb065acc4b6a0a5bead1b29f997bab"},{"author":{"_account_id":33983,"name":"Luigi Dino Tamagnone","display_name":"luigi","email":"ltamagno@redhat.com","username":"ltamagno"},"change_message_id":"260be66d9bf892a725bea7b47d21e2a042afb9c7","unresolved":true,"context_lines":[{"line_number":248,"context_line":"                            help\u003d\"Generate JSON file:\" + DRY_RUN_JSON +"},{"line_number":249,"context_line":"                            \", that reports the objects that would have \""},{"line_number":250,"context_line":"                            \"been deleted had a full cleanup been run.\")"},{"line_number":251,"context_line":"        parser.add_argument(\u0027--prefix\u0027, dest\u003d\u0027prefix\u0027, default\u003d\"tempest-\","},{"line_number":252,"context_line":"                            help\u003d\"Define the prefix name for the resources to delete. \""},{"line_number":253,"context_line":"                            \"Default is tempest-. Void string \\\"\\\" to delete all. \""},{"line_number":254,"context_line":"                            \"Not used in case of --init-saved-state\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"10197742_f5bbe8b0","line":251,"range":{"start_line":251,"start_character":55,"end_line":251,"end_character":73},"in_reply_to":"3cadea15_b76c7c9c","updated":"2023-04-27 15:14:00.000000000","message":"It\u0027s a good question, I thought a lot about it. The idea was to avoid removing resources not created by tempest. So I think we should set tempest as the default.","commit_id":"867491f3bfbb065acc4b6a0a5bead1b29f997bab"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"575a9337f551e133071304239aa30ad9e67de850","unresolved":false,"context_lines":[{"line_number":248,"context_line":"                            help\u003d\"Generate JSON file:\" + DRY_RUN_JSON +"},{"line_number":249,"context_line":"                            \", that reports the objects that would have \""},{"line_number":250,"context_line":"                            \"been deleted had a full cleanup been run.\")"},{"line_number":251,"context_line":"        parser.add_argument(\u0027--prefix\u0027, dest\u003d\u0027prefix\u0027, default\u003d\"tempest-\","},{"line_number":252,"context_line":"                            help\u003d\"Define the prefix name for the resources to delete. \""},{"line_number":253,"context_line":"                            \"Default is tempest-. Void string \\\"\\\" to delete all. \""},{"line_number":254,"context_line":"                            \"Not used in case of --init-saved-state\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"497992a4_84fb2d2c","line":251,"range":{"start_line":251,"start_character":55,"end_line":251,"end_character":73},"in_reply_to":"424b8e9e_68b56eb9","updated":"2023-12-07 11:39:43.000000000","message":"Done","commit_id":"867491f3bfbb065acc4b6a0a5bead1b29f997bab"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"8ed70a67f7b22ec25808643e8060139395d3cf52","unresolved":true,"context_lines":[{"line_number":255,"context_line":"                            \"Not used in case of --init-saved-state\")"},{"line_number":256,"context_line":"        return parser"},{"line_number":257,"context_line":""},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"    def get_description(self):"},{"line_number":260,"context_line":"        return (\u0027Cleanup after tempest run, \u0027"},{"line_number":261,"context_line":"               \u0027we advice using --dry-run on production before cleaning\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3d73310e_0f0512bd","line":258,"updated":"2023-05-02 09:38:41.000000000","message":"only one empty line is allowed to be between class methods","commit_id":"5711e6be48f1ae9cc21f5215a579f16bbceecbc8"},{"author":{"_account_id":33983,"name":"Luigi Dino Tamagnone","display_name":"luigi","email":"ltamagno@redhat.com","username":"ltamagno"},"change_message_id":"1e34b6113a85a27be35f3b3f7646d894a133dc9c","unresolved":false,"context_lines":[{"line_number":255,"context_line":"                            \"Not used in case of --init-saved-state\")"},{"line_number":256,"context_line":"        return parser"},{"line_number":257,"context_line":""},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"    def get_description(self):"},{"line_number":260,"context_line":"        return (\u0027Cleanup after tempest run, \u0027"},{"line_number":261,"context_line":"               \u0027we advice using --dry-run on production before cleaning\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"16721988_49709f5d","line":258,"in_reply_to":"3d73310e_0f0512bd","updated":"2023-05-02 14:59:38.000000000","message":"Done","commit_id":"5711e6be48f1ae9cc21f5215a579f16bbceecbc8"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"8ed70a67f7b22ec25808643e8060139395d3cf52","unresolved":true,"context_lines":[{"line_number":258,"context_line":""},{"line_number":259,"context_line":"    def get_description(self):"},{"line_number":260,"context_line":"        return (\u0027Cleanup after tempest run, \u0027"},{"line_number":261,"context_line":"               \u0027we advice using --dry-run on production before cleaning\u0027)"},{"line_number":262,"context_line":""},{"line_number":263,"context_line":"    def _init_state(self):"},{"line_number":264,"context_line":"        LOG.info(\"Initializing saved state.\")"}],"source_content_type":"text/x-python","patch_set":5,"id":"f3940ba8_f62bf6d1","line":261,"range":{"start_line":261,"start_character":14,"end_line":261,"end_character":15},"updated":"2023-05-02 09:38:41.000000000","message":"this needs to be shifted one space right so that it\u0027s aligned with the string on line 260","commit_id":"5711e6be48f1ae9cc21f5215a579f16bbceecbc8"},{"author":{"_account_id":33983,"name":"Luigi Dino Tamagnone","display_name":"luigi","email":"ltamagno@redhat.com","username":"ltamagno"},"change_message_id":"1e34b6113a85a27be35f3b3f7646d894a133dc9c","unresolved":false,"context_lines":[{"line_number":258,"context_line":""},{"line_number":259,"context_line":"    def get_description(self):"},{"line_number":260,"context_line":"        return (\u0027Cleanup after tempest run, \u0027"},{"line_number":261,"context_line":"               \u0027we advice using --dry-run on production before cleaning\u0027)"},{"line_number":262,"context_line":""},{"line_number":263,"context_line":"    def _init_state(self):"},{"line_number":264,"context_line":"        LOG.info(\"Initializing saved state.\")"}],"source_content_type":"text/x-python","patch_set":5,"id":"381e21a7_ed38d498","line":261,"range":{"start_line":261,"start_character":14,"end_line":261,"end_character":15},"in_reply_to":"f3940ba8_f62bf6d1","updated":"2023-05-02 14:59:38.000000000","message":"Done","commit_id":"5711e6be48f1ae9cc21f5215a579f16bbceecbc8"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"adc5386ec3f335944511f4674be682b0ea9d9464","unresolved":true,"context_lines":[{"line_number":248,"context_line":"                            help\u003d\"Generate JSON file:\" + DRY_RUN_JSON +"},{"line_number":249,"context_line":"                            \", that reports the objects that would have \""},{"line_number":250,"context_line":"                            \"been deleted had a full cleanup been run.\")"},{"line_number":251,"context_line":"        parser.add_argument(\u0027--prefix\u0027, dest\u003d\u0027prefix\u0027, default\u003d\"tempest-\","},{"line_number":252,"context_line":"                            help\u003d\"Define the prefix name for the resources \""},{"line_number":253,"context_line":"                            \"to delete. Default is tempest-. \""},{"line_number":254,"context_line":"                            \"Void string \\\"\\\" to delete all. \""},{"line_number":255,"context_line":"                            \"Not used in case of --init-saved-state\")"},{"line_number":256,"context_line":"        return parser"},{"line_number":257,"context_line":""},{"line_number":258,"context_line":"    def get_description(self):"}],"source_content_type":"text/x-python","patch_set":9,"id":"56b8595f_14aa81af","line":255,"range":{"start_line":251,"start_character":0,"end_line":255,"end_character":69},"updated":"2023-05-16 01:11:02.000000000","message":"This is more than that. Tempest does not create the resources with \u0027Tempest-\u0027 prefix, A few tests might be doing those but that is just random basis. So this change will leave many of the tempest resource created by tests.\n\nWe had a nice proposal to solve this issue by creating all the tempest resource with the configured prefix and then use that prefix in cleanup scripts also.\n\nThis is the spec proposed in past but it could not move further due to less involvement from author side\n- https://review.opendev.org/c/openstack/qa-specs/+/595277","commit_id":"f515da8c62e8eaa7c5f085fe0be39b4dad6116a9"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"7378d98fe1c7073c85243c3c42c2de08e9c10c0a","unresolved":true,"context_lines":[{"line_number":248,"context_line":"                            help\u003d\"Generate JSON file:\" + DRY_RUN_JSON +"},{"line_number":249,"context_line":"                            \", that reports the objects that would have \""},{"line_number":250,"context_line":"                            \"been deleted had a full cleanup been run.\")"},{"line_number":251,"context_line":"        parser.add_argument(\u0027--prefix\u0027, dest\u003d\u0027prefix\u0027, default\u003d\"tempest-\","},{"line_number":252,"context_line":"                            help\u003d\"Define the prefix name for the resources \""},{"line_number":253,"context_line":"                            \"to delete. Default is tempest-. \""},{"line_number":254,"context_line":"                            \"Void string \\\"\\\" to delete all. \""},{"line_number":255,"context_line":"                            \"Not used in case of --init-saved-state\")"},{"line_number":256,"context_line":"        return parser"},{"line_number":257,"context_line":""},{"line_number":258,"context_line":"    def get_description(self):"}],"source_content_type":"text/x-python","patch_set":9,"id":"a0129e30_377bc46a","line":255,"range":{"start_line":251,"start_character":0,"end_line":255,"end_character":69},"in_reply_to":"0a2c52cd_a840b15d","updated":"2023-06-08 10:32:26.000000000","message":"I\u0027ve added this topic to the etherpad if we wanna discuss in person during the summit:\nhttps://etherpad.opendev.org/p/vancouver-june2023-qa\n\nThe spec you shared (https://review.opendev.org/c/openstack/qa-specs/+/595277) mentions a purge list to avoid saved_state.json, but I don\u0027t see how that list is supposed to be generated.","commit_id":"f515da8c62e8eaa7c5f085fe0be39b4dad6116a9"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"6b0fff8ad7ee39822e800d5ff6f7ef905fbbca8c","unresolved":true,"context_lines":[{"line_number":248,"context_line":"                            help\u003d\"Generate JSON file:\" + DRY_RUN_JSON +"},{"line_number":249,"context_line":"                            \", that reports the objects that would have \""},{"line_number":250,"context_line":"                            \"been deleted had a full cleanup been run.\")"},{"line_number":251,"context_line":"        parser.add_argument(\u0027--prefix\u0027, dest\u003d\u0027prefix\u0027, default\u003d\"tempest-\","},{"line_number":252,"context_line":"                            help\u003d\"Define the prefix name for the resources \""},{"line_number":253,"context_line":"                            \"to delete. Default is tempest-. \""},{"line_number":254,"context_line":"                            \"Void string \\\"\\\" to delete all. \""},{"line_number":255,"context_line":"                            \"Not used in case of --init-saved-state\")"},{"line_number":256,"context_line":"        return parser"},{"line_number":257,"context_line":""},{"line_number":258,"context_line":"    def get_description(self):"}],"source_content_type":"text/x-python","patch_set":9,"id":"0a2c52cd_a840b15d","line":255,"range":{"start_line":251,"start_character":0,"end_line":255,"end_character":69},"in_reply_to":"17076286_6c4380dc","updated":"2023-05-30 17:52:20.000000000","message":"Need to check but there are possibility. But main idea here is not to use the hard coded prefix to cleanup It should be configured one like discussed in the QA spec. image if there are actual resources created with \u0027tempest-\u0027 name as one of deployment tenant.","commit_id":"f515da8c62e8eaa7c5f085fe0be39b4dad6116a9"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"8f59ae85ff58b6ec63cb8cc5bc41aecfcb2b5538","unresolved":true,"context_lines":[{"line_number":248,"context_line":"                            help\u003d\"Generate JSON file:\" + DRY_RUN_JSON +"},{"line_number":249,"context_line":"                            \", that reports the objects that would have \""},{"line_number":250,"context_line":"                            \"been deleted had a full cleanup been run.\")"},{"line_number":251,"context_line":"        parser.add_argument(\u0027--prefix\u0027, dest\u003d\u0027prefix\u0027, default\u003d\"tempest-\","},{"line_number":252,"context_line":"                            help\u003d\"Define the prefix name for the resources \""},{"line_number":253,"context_line":"                            \"to delete. Default is tempest-. \""},{"line_number":254,"context_line":"                            \"Void string \\\"\\\" to delete all. \""},{"line_number":255,"context_line":"                            \"Not used in case of --init-saved-state\")"},{"line_number":256,"context_line":"        return parser"},{"line_number":257,"context_line":""},{"line_number":258,"context_line":"    def get_description(self):"}],"source_content_type":"text/x-python","patch_set":9,"id":"17076286_6c4380dc","line":255,"range":{"start_line":251,"start_character":0,"end_line":255,"end_character":69},"in_reply_to":"56b8595f_14aa81af","updated":"2023-05-26 12:19:45.000000000","message":"well, I think tempest does prefix all (most) of the resources it creates -\u003e https://opendev.org/openstack/tempest/src/commit/c3a950b7fe8cc6420c2f320535559340de683bc8/tempest/lib/common/utils/data_utils.py#L42\n\nOn a quick glance, I didn\u0027t find any method overriding the prefix argument (by default set to \u0027tempest-\u0027) of the rand_name method. I think there will be only a handful of methods (if any) which create resources and don\u0027t name them by using the rand_name method.","commit_id":"f515da8c62e8eaa7c5f085fe0be39b4dad6116a9"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"2fc9ec1c2397d8137840a8f2b40f235cd3bb672e","unresolved":true,"context_lines":[{"line_number":248,"context_line":"                            help\u003d\"Generate JSON file:\" + DRY_RUN_JSON +"},{"line_number":249,"context_line":"                            \", that reports the objects that would have \""},{"line_number":250,"context_line":"                            \"been deleted had a full cleanup been run.\")"},{"line_number":251,"context_line":"        parser.add_argument(\u0027--prefix\u0027, dest\u003d\u0027prefix\u0027, default\u003d\"tempest-\","},{"line_number":252,"context_line":"                            help\u003d\"Define the prefix name for the resources \""},{"line_number":253,"context_line":"                            \"to delete. Default is tempest-. \""},{"line_number":254,"context_line":"                            \"Void string \\\"\\\" to delete all. \""},{"line_number":255,"context_line":"                            \"Not used in case of --init-saved-state\")"},{"line_number":256,"context_line":"        return parser"},{"line_number":257,"context_line":""},{"line_number":258,"context_line":"    def get_description(self):"}],"source_content_type":"text/x-python","patch_set":9,"id":"63e3a523_a27ba2e0","line":255,"range":{"start_line":251,"start_character":0,"end_line":255,"end_character":69},"in_reply_to":"58bc09dc_452568ec","updated":"2023-11-02 19:02:20.000000000","message":"yes, we cannot use config option in tempest/lib files but that is what we can pass it from test cases.\n\nso the steps would be:\n\n1. Make default value of tempest.lib.common.utils.data_utils.rand_name() method pass \u0027prefix\u0027 arg as as \u0027tempest-test\u0027\n2. Add a new config option called \u0027resource_name_prefix\u0027 with default value of \u0027tempest-test\u0027\n3. Test cases using tempest.lib.common.utils.data_utils.rand_name() method pass \u0027prefix\u0027 arg as CONF.resource_name_prefix. This will help if anyone configured resource_name_prefix to other value than \u0027tempest-test\u0027\n4. In cleanup tool, clean all the resources with name prefixed with CONF.resource_name_prefix.\n\nThis way we will be able to delete all the resources created by tests (either using CONF.resource_name_prefix or not) because it is \u0027tempest-test\u0027 prefixed. If any one overriden the CONF.resource_name_prefix then there are possibility that cleanup miss a few of them from tests not using CONF.resource_name_prefix but that is bug and we can keep fixes those tests.","commit_id":"f515da8c62e8eaa7c5f085fe0be39b4dad6116a9"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"4704945760afa5357510a65c8cf37832f085975f","unresolved":true,"context_lines":[{"line_number":248,"context_line":"                            help\u003d\"Generate JSON file:\" + DRY_RUN_JSON +"},{"line_number":249,"context_line":"                            \", that reports the objects that would have \""},{"line_number":250,"context_line":"                            \"been deleted had a full cleanup been run.\")"},{"line_number":251,"context_line":"        parser.add_argument(\u0027--prefix\u0027, dest\u003d\u0027prefix\u0027, default\u003d\"tempest-\","},{"line_number":252,"context_line":"                            help\u003d\"Define the prefix name for the resources \""},{"line_number":253,"context_line":"                            \"to delete. Default is tempest-. \""},{"line_number":254,"context_line":"                            \"Void string \\\"\\\" to delete all. \""},{"line_number":255,"context_line":"                            \"Not used in case of --init-saved-state\")"},{"line_number":256,"context_line":"        return parser"},{"line_number":257,"context_line":""},{"line_number":258,"context_line":"    def get_description(self):"}],"source_content_type":"text/x-python","patch_set":9,"id":"7988a729_800fa157","line":255,"range":{"start_line":251,"start_character":0,"end_line":255,"end_character":69},"in_reply_to":"63e3a523_a27ba2e0","updated":"2023-11-07 15:36:30.000000000","message":"I guess that we need to ask ourselves whether we want to allow users to customize the prefix. If not, we can skip point 3 and in point 4, we can use \u0027tempest-test\u0027.","commit_id":"f515da8c62e8eaa7c5f085fe0be39b4dad6116a9"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"321d10667fd57d9c6be10ca356d3d38fa561bbb0","unresolved":true,"context_lines":[{"line_number":248,"context_line":"                            help\u003d\"Generate JSON file:\" + DRY_RUN_JSON +"},{"line_number":249,"context_line":"                            \", that reports the objects that would have \""},{"line_number":250,"context_line":"                            \"been deleted had a full cleanup been run.\")"},{"line_number":251,"context_line":"        parser.add_argument(\u0027--prefix\u0027, dest\u003d\u0027prefix\u0027, default\u003d\"tempest-\","},{"line_number":252,"context_line":"                            help\u003d\"Define the prefix name for the resources \""},{"line_number":253,"context_line":"                            \"to delete. Default is tempest-. \""},{"line_number":254,"context_line":"                            \"Void string \\\"\\\" to delete all. \""},{"line_number":255,"context_line":"                            \"Not used in case of --init-saved-state\")"},{"line_number":256,"context_line":"        return parser"},{"line_number":257,"context_line":""},{"line_number":258,"context_line":"    def get_description(self):"}],"source_content_type":"text/x-python","patch_set":9,"id":"abd69b87_fa2811c7","line":255,"range":{"start_line":251,"start_character":0,"end_line":255,"end_character":69},"in_reply_to":"7988a729_800fa157","updated":"2023-11-08 17:33:18.000000000","message":"it is better to have it configure as it depends on the cloud how they want tempest to run and how eaisly they want to detect the tempest created resource. having it hardcoded can have same issue as we have today","commit_id":"f515da8c62e8eaa7c5f085fe0be39b4dad6116a9"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"790dd9da3cda38bf2d71459e315dc55d005004d7","unresolved":true,"context_lines":[{"line_number":248,"context_line":"                            help\u003d\"Generate JSON file:\" + DRY_RUN_JSON +"},{"line_number":249,"context_line":"                            \", that reports the objects that would have \""},{"line_number":250,"context_line":"                            \"been deleted had a full cleanup been run.\")"},{"line_number":251,"context_line":"        parser.add_argument(\u0027--prefix\u0027, dest\u003d\u0027prefix\u0027, default\u003d\"tempest-\","},{"line_number":252,"context_line":"                            help\u003d\"Define the prefix name for the resources \""},{"line_number":253,"context_line":"                            \"to delete. Default is tempest-. \""},{"line_number":254,"context_line":"                            \"Void string \\\"\\\" to delete all. \""},{"line_number":255,"context_line":"                            \"Not used in case of --init-saved-state\")"},{"line_number":256,"context_line":"        return parser"},{"line_number":257,"context_line":""},{"line_number":258,"context_line":"    def get_description(self):"}],"source_content_type":"text/x-python","patch_set":9,"id":"d11da1a0_e15d1b0a","line":255,"range":{"start_line":251,"start_character":0,"end_line":255,"end_character":69},"in_reply_to":"a0129e30_377bc46a","updated":"2023-06-14 22:21:22.000000000","message":"I checked the previous spec discussion and refreshed my memory.\n\nI am ok with the resource prefix solution which is:\n\n* A new config option in tempest.conf resource_name_prefix, default to tempest-test\n* use that config option in rand_name() method to default the \u0027prefix\u0027 param to the resource_name_prefix config value\n* Delete all the left over resources with the resource_name_prefix prefix in cleanup CLI","commit_id":"f515da8c62e8eaa7c5f085fe0be39b4dad6116a9"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"2c020386fc6b7d3481f78c3c636fa756ab99d373","unresolved":false,"context_lines":[{"line_number":248,"context_line":"                            help\u003d\"Generate JSON file:\" + DRY_RUN_JSON +"},{"line_number":249,"context_line":"                            \", that reports the objects that would have \""},{"line_number":250,"context_line":"                            \"been deleted had a full cleanup been run.\")"},{"line_number":251,"context_line":"        parser.add_argument(\u0027--prefix\u0027, dest\u003d\u0027prefix\u0027, default\u003d\"tempest-\","},{"line_number":252,"context_line":"                            help\u003d\"Define the prefix name for the resources \""},{"line_number":253,"context_line":"                            \"to delete. Default is tempest-. \""},{"line_number":254,"context_line":"                            \"Void string \\\"\\\" to delete all. \""},{"line_number":255,"context_line":"                            \"Not used in case of --init-saved-state\")"},{"line_number":256,"context_line":"        return parser"},{"line_number":257,"context_line":""},{"line_number":258,"context_line":"    def get_description(self):"}],"source_content_type":"text/x-python","patch_set":9,"id":"c8d20f6a_c3d6f803","line":255,"range":{"start_line":251,"start_character":0,"end_line":255,"end_character":69},"in_reply_to":"abd69b87_fa2811c7","updated":"2023-12-21 18:55:33.000000000","message":"Done","commit_id":"f515da8c62e8eaa7c5f085fe0be39b4dad6116a9"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"6e06bd15d640967e83acd9a64bff5a8cc984d377","unresolved":true,"context_lines":[{"line_number":248,"context_line":"                            help\u003d\"Generate JSON file:\" + DRY_RUN_JSON +"},{"line_number":249,"context_line":"                            \", that reports the objects that would have \""},{"line_number":250,"context_line":"                            \"been deleted had a full cleanup been run.\")"},{"line_number":251,"context_line":"        parser.add_argument(\u0027--prefix\u0027, dest\u003d\u0027prefix\u0027, default\u003d\"tempest-\","},{"line_number":252,"context_line":"                            help\u003d\"Define the prefix name for the resources \""},{"line_number":253,"context_line":"                            \"to delete. Default is tempest-. \""},{"line_number":254,"context_line":"                            \"Void string \\\"\\\" to delete all. \""},{"line_number":255,"context_line":"                            \"Not used in case of --init-saved-state\")"},{"line_number":256,"context_line":"        return parser"},{"line_number":257,"context_line":""},{"line_number":258,"context_line":"    def get_description(self):"}],"source_content_type":"text/x-python","patch_set":9,"id":"58bc09dc_452568ec","line":255,"range":{"start_line":251,"start_character":0,"end_line":255,"end_character":69},"in_reply_to":"d11da1a0_e15d1b0a","updated":"2023-10-31 13:47:38.000000000","message":"it turns out we can\u0027t read resource_name_prefix or any other tempest.conf option in tempest/lib due to our custom pep8 rules - T112 and T114 , see https://review.opendev.org/c/openstack/tempest/+/897231/comment/916bc983_580f9c9f/\n\nhowever, that changes only one thing, well, it brings a question we need to answer, do we still want the resource_name_prefix option and read it at least in the cleanup? Or are we fine with hardcoding \u0027tempest-test\u0027 prefix as that\u0027s the prefix that has to be hardcoded and can\u0027t be read from CONF in tempest/lib where rand_name is defined?\n\nI\u0027m personally fine with taking \u0027tempest-test\u0027 as the default prefix used by tempest and thus hardcoding it (not reading it from CONF) in the cleanup.\n\nLet\u0027s not forget the main goal of this change is to prevent a user from accidentally removing resources that were not created by tempest - unless that\u0027s the intention of the user. The only functionality I\u0027m looking for in this change is to make the cleanup remove only resources with \u0027tempest-test\u0027 prefix by default.","commit_id":"f515da8c62e8eaa7c5f085fe0be39b4dad6116a9"},{"author":{"_account_id":30674,"name":"Lukas Piwowarski","email":"lpiwowar@redhat.com","username":"lukas-piwowarski"},"change_message_id":"589b48c885efc01cd4b4bd083363d856398ad120","unresolved":true,"context_lines":[{"line_number":63,"context_line":"* ``--prefix``: Only resources that match the prefix will be deleted. Void"},{"line_number":64,"context_line":"  string \\\"\\\" to proceed without filtering based on the prefix and honoring"},{"line_number":65,"context_line":"  init_saved_state.json. Note that some resources are not named thus they will"},{"line_number":66,"context_line":"  not be deleted when filtering based on the prefix. Can\u0027t be used with"},{"line_number":67,"context_line":"  ``--init-saved-state``."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"* ``--help``: Print the help text for the command and parameters."},{"line_number":70,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"09cf4f73_ec188466","line":67,"range":{"start_line":66,"start_character":53,"end_line":67,"end_character":25},"updated":"2023-12-07 17:01:25.000000000","message":"I\u0027m not sure how important it is. But right now if I run \n```\ntempest cleanup --init-saved-state --prefix \"tempest\"\n```\nthen I get no error. Is it something we want?","commit_id":"ec0017e81e2feb58ee833d0450f937f61e6045e3"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"779b6952ba9861d99414b1480345e7f9ea8f4d16","unresolved":false,"context_lines":[{"line_number":63,"context_line":"* ``--prefix``: Only resources that match the prefix will be deleted. Void"},{"line_number":64,"context_line":"  string \\\"\\\" to proceed without filtering based on the prefix and honoring"},{"line_number":65,"context_line":"  init_saved_state.json. Note that some resources are not named thus they will"},{"line_number":66,"context_line":"  not be deleted when filtering based on the prefix. Can\u0027t be used with"},{"line_number":67,"context_line":"  ``--init-saved-state``."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"* ``--help``: Print the help text for the command and parameters."},{"line_number":70,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"30437e72_191ac651","line":67,"range":{"start_line":66,"start_character":53,"end_line":67,"end_character":25},"in_reply_to":"09cf4f73_ec188466","updated":"2023-12-11 07:49:27.000000000","message":"even if a user specifies that, the value will be ignored .. see the newer patchset where I already rephrased that.","commit_id":"ec0017e81e2feb58ee833d0450f937f61e6045e3"},{"author":{"_account_id":30674,"name":"Lukas Piwowarski","email":"lpiwowar@redhat.com","username":"lukas-piwowarski"},"change_message_id":"589b48c885efc01cd4b4bd083363d856398ad120","unresolved":false,"context_lines":[{"line_number":267,"context_line":""},{"line_number":268,"context_line":"    def get_description(self):"},{"line_number":269,"context_line":"        return (\u0027Cleanup after tempest run, \u0027"},{"line_number":270,"context_line":"                \u0027we advice using --dry-run on production before cleaning\u0027)"},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"    def _init_state(self):"},{"line_number":273,"context_line":"        LOG.info(\"Initializing saved state.\")"}],"source_content_type":"text/x-python","patch_set":12,"id":"ce06bd0e_e0a92ac1","line":270,"range":{"start_line":270,"start_character":16,"end_line":270,"end_character":74},"updated":"2023-12-07 17:01:25.000000000","message":"nice! I think that this single sentence will help a lot of people.","commit_id":"ec0017e81e2feb58ee833d0450f937f61e6045e3"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"1ad15b1ea143b322884da00a1619d9a957a8fcb3","unresolved":true,"context_lines":[{"line_number":63,"context_line":"* ``--prefix``: Only resources that match the prefix will be deleted. Void"},{"line_number":64,"context_line":"  string \\\"\\\" to proceed without filtering based on the prefix and honoring"},{"line_number":65,"context_line":"  init_saved_state.json. Note that some resources are not named thus they will"},{"line_number":66,"context_line":"  not be deleted when filtering based on the prefix. This option will be"},{"line_number":67,"context_line":"  ignored when ``--init-saved-state`` is used so that it can capture the true"},{"line_number":68,"context_line":"  init state - all resources present at that moment."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"* ``--help``: Print the help text for the command and parameters."},{"line_number":71,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"8ceb5e82_aed32ba9","line":68,"range":{"start_line":66,"start_character":53,"end_line":68,"end_character":52},"updated":"2023-12-15 04:58:42.000000000","message":"++","commit_id":"a2207afd6308752974daf2c7d0a0102a7bfff830"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"2c020386fc6b7d3481f78c3c636fa756ab99d373","unresolved":false,"context_lines":[{"line_number":63,"context_line":"* ``--prefix``: Only resources that match the prefix will be deleted. Void"},{"line_number":64,"context_line":"  string \\\"\\\" to proceed without filtering based on the prefix and honoring"},{"line_number":65,"context_line":"  init_saved_state.json. Note that some resources are not named thus they will"},{"line_number":66,"context_line":"  not be deleted when filtering based on the prefix. This option will be"},{"line_number":67,"context_line":"  ignored when ``--init-saved-state`` is used so that it can capture the true"},{"line_number":68,"context_line":"  init state - all resources present at that moment."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"* ``--help``: Print the help text for the command and parameters."},{"line_number":71,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"1f0e00b6_ff875897","line":68,"range":{"start_line":66,"start_character":53,"end_line":68,"end_character":52},"in_reply_to":"8ceb5e82_aed32ba9","updated":"2023-12-21 18:55:33.000000000","message":"Done","commit_id":"a2207afd6308752974daf2c7d0a0102a7bfff830"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"2c020386fc6b7d3481f78c3c636fa756ab99d373","unresolved":true,"context_lines":[{"line_number":67,"context_line":"  ignored when ``--init-saved-state`` is used so that it can capture the true"},{"line_number":68,"context_line":"  init state - all resources present at that moment."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"* ``--ignore-saved-state``: Ignore saved_state.json file. This is handy when"},{"line_number":71,"context_line":"  used with --prefix. E.g. when a user wants to delete resources with a certain"},{"line_number":72,"context_line":"  name prefix but doesn\u0027t have saved_state.json file. USE WITH CAUTION."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"* ``--help``: Print the help text for the command and parameters."},{"line_number":75,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"5e01e4d3_e70209da","line":72,"range":{"start_line":70,"start_character":0,"end_line":72,"end_character":71},"updated":"2023-12-21 18:55:33.000000000","message":"I do not think this is needed. If anyone do not want to use/honor the saved file then they just do not run --init-saved-state and use only prefix that will achieve the same thing you want to achieve with this new arg? or is there any other purpose of it.","commit_id":"5416535ec0b741f9a7c00286bacc6822666809a9"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"cb57ff69766fe690831cf03d99a509f350619e2b","unresolved":true,"context_lines":[{"line_number":67,"context_line":"  ignored when ``--init-saved-state`` is used so that it can capture the true"},{"line_number":68,"context_line":"  init state - all resources present at that moment."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"* ``--ignore-saved-state``: Ignore saved_state.json file. This is handy when"},{"line_number":71,"context_line":"  used with --prefix. E.g. when a user wants to delete resources with a certain"},{"line_number":72,"context_line":"  name prefix but doesn\u0027t have saved_state.json file. USE WITH CAUTION."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"* ``--help``: Print the help text for the command and parameters."},{"line_number":75,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"96596758_7b93424b","line":72,"range":{"start_line":70,"start_character":0,"end_line":72,"end_character":71},"in_reply_to":"104e8fb2_a8dafe9c","updated":"2024-01-04 10:10:53.000000000","message":"yes, and that\u0027s what --ignore-saved-state is for. First, I wanted to ignore saved_state file when --prefix is defined, however, it has (to be very cautious) a default value (\"tempest\") and thus it\u0027s always defined - therefore we can\u0027t ignore saved_state based on --prefix. We also can\u0027t make saved_state entirely optional because if --prefix is not passed, then the cleanup tool has to access saved_state file (that\u0027s the previous logic which is maintained). I saw only one option how to resolve that, create another opt (--ignore-saved-state) which allows us to ignore saved_state and makes it very clear to the user that saved_state won\u0027t be taken into account so they should be very careful with the --prefix","commit_id":"5416535ec0b741f9a7c00286bacc6822666809a9"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"26d6450f49c2ee44153551f4ca4cbcd515ed5295","unresolved":true,"context_lines":[{"line_number":67,"context_line":"  ignored when ``--init-saved-state`` is used so that it can capture the true"},{"line_number":68,"context_line":"  init state - all resources present at that moment."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"* ``--ignore-saved-state``: Ignore saved_state.json file. This is handy when"},{"line_number":71,"context_line":"  used with --prefix. E.g. when a user wants to delete resources with a certain"},{"line_number":72,"context_line":"  name prefix but doesn\u0027t have saved_state.json file. USE WITH CAUTION."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"* ``--help``: Print the help text for the command and parameters."},{"line_number":75,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"34116738_85e6964d","line":72,"range":{"start_line":70,"start_character":0,"end_line":72,"end_character":71},"in_reply_to":"17972c0c_7f3e820b","updated":"2024-01-25 03:32:01.000000000","message":"\u003e The idea of --prefix came up when I wanted to prevent users who don\u0027t pay enough attention (too all the warnings and the whole cleanup doc) from removing important resources on production environments where multiple users create various of them (so the saved_state.json doesn\u0027t really help).\n\nhumm, I am not clear why saved_state.json does not help. This should save all the resource exist before Tempest run right irrespective of how many users create resources.\n\nIf this is not working in some cases then it is bug in save-state way and we should fix that.\n\nMy main concern is do not mix the multiple way to run a thing into one. User should know which they are running and Tempest should just execute the same. If user does not know or ready doc then solution is read the doc instead of making the code handle it for them. Imagine who read the doc and want Tempest only cleanup the things by only single way they commanded and current code will not do that right?","commit_id":"5416535ec0b741f9a7c00286bacc6822666809a9"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"7901b5d5a113250c7060184ecdbca44af89d755a","unresolved":true,"context_lines":[{"line_number":67,"context_line":"  ignored when ``--init-saved-state`` is used so that it can capture the true"},{"line_number":68,"context_line":"  init state - all resources present at that moment."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"* ``--ignore-saved-state``: Ignore saved_state.json file. This is handy when"},{"line_number":71,"context_line":"  used with --prefix. E.g. when a user wants to delete resources with a certain"},{"line_number":72,"context_line":"  name prefix but doesn\u0027t have saved_state.json file. USE WITH CAUTION."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"* ``--help``: Print the help text for the command and parameters."},{"line_number":75,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"17972c0c_7f3e820b","line":72,"range":{"start_line":70,"start_character":0,"end_line":72,"end_character":71},"in_reply_to":"24b57c4b_fe1876e6","updated":"2024-01-07 16:07:47.000000000","message":"The idea of --prefix came up when I wanted to prevent users who don\u0027t pay enough attention (too all the warnings and the whole cleanup doc) from removing important resources on production environments where multiple users create various of them (so the saved_state.json doesn\u0027t really help). It really did happen. Someone, who didn\u0027t go through the documentation, ran the cleanup trusting the saved_state.json that nothing unwanted will be deleted. Well, that would be true for environments used by only one user.\n\nThis initial problem pretty much guided the whole design of the prefix feature.\n\nok, we could remove the default value from the --prefix opt:\nhttps://review.opendev.org/c/openstack/tempest/+/879923/20/tempest/cmd/cleanup.py#266\n\nThat way, based on whether a user specifies --prefix we can tell (because --prefix won\u0027t be set all the time) whether they wanna run classic (with saved_state) cleanup or the one filtering based on the prefix. Moreover, I would add a hardcoded prefix (the default one from the CONF) to the classic cleanup to resolve the situation all this started with (a user who runs this on production). For disabling the prefix on the classic cleanup, I\u0027ll add an opt (rename --ignore-saved-state), something like --no-prefix (boolean opt).\n\nThis way, we would end up with the solution you proposed (option 1, 2 and 3) with only one small edition - the hardcoded prefix in the classic cleanup run unless --no-prefix is passed too.\n\nWdyt?","commit_id":"5416535ec0b741f9a7c00286bacc6822666809a9"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"088d16ad255035f921da14a3b4a377dbae5ec7b4","unresolved":true,"context_lines":[{"line_number":67,"context_line":"  ignored when ``--init-saved-state`` is used so that it can capture the true"},{"line_number":68,"context_line":"  init state - all resources present at that moment."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"* ``--ignore-saved-state``: Ignore saved_state.json file. This is handy when"},{"line_number":71,"context_line":"  used with --prefix. E.g. when a user wants to delete resources with a certain"},{"line_number":72,"context_line":"  name prefix but doesn\u0027t have saved_state.json file. USE WITH CAUTION."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"* ``--help``: Print the help text for the command and parameters."},{"line_number":75,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"104e8fb2_a8dafe9c","line":72,"range":{"start_line":70,"start_character":0,"end_line":72,"end_character":71},"in_reply_to":"31cf8d2b_7c23ee64","updated":"2024-01-03 19:32:10.000000000","message":"I see, in that case we should allow cleanup run without saved_state file also. As you mentioned, current design not to run cleanup if no saved_state file was because that was the only way to run cleanup but as we are adding a few more then we should make saved-init thing options not mandatory.","commit_id":"5416535ec0b741f9a7c00286bacc6822666809a9"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"bc92e7449a17613766b7d5e8e2b3df680778a206","unresolved":false,"context_lines":[{"line_number":67,"context_line":"  ignored when ``--init-saved-state`` is used so that it can capture the true"},{"line_number":68,"context_line":"  init state - all resources present at that moment."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"* ``--ignore-saved-state``: Ignore saved_state.json file. This is handy when"},{"line_number":71,"context_line":"  used with --prefix. E.g. when a user wants to delete resources with a certain"},{"line_number":72,"context_line":"  name prefix but doesn\u0027t have saved_state.json file. USE WITH CAUTION."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"* ``--help``: Print the help text for the command and parameters."},{"line_number":75,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"db8219bf_4dfec84d","line":72,"range":{"start_line":70,"start_character":0,"end_line":72,"end_character":71},"in_reply_to":"34116738_85e6964d","updated":"2024-01-25 10:14:55.000000000","message":"\u003e humm, I am not clear why saved_state.json does not help. This should save all the resource exist before Tempest run right irrespective of how many users create resources.\n\nThe keyword is \"production\", the whole design of saved state only works if only tempest creates resources on that system after the saved_state.json was created - there can\u0027t be anything else running on the system that can potentially create resources, if it does, those resources will be cleaned.\n \n\u003e If this is not working in some cases then it is bug in save-state way and we should fix that.\nThat\u0027s exactly what this does\n\nI\u0027m marking this comment as resolved as were discussing things that are 2 patchsets old, there\u0027s no point in that, the next 2 patchsets changed the logic.","commit_id":"5416535ec0b741f9a7c00286bacc6822666809a9"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"7e161993f1f50e397d25dc59f96e5f7535782b14","unresolved":true,"context_lines":[{"line_number":67,"context_line":"  ignored when ``--init-saved-state`` is used so that it can capture the true"},{"line_number":68,"context_line":"  init state - all resources present at that moment."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"* ``--ignore-saved-state``: Ignore saved_state.json file. This is handy when"},{"line_number":71,"context_line":"  used with --prefix. E.g. when a user wants to delete resources with a certain"},{"line_number":72,"context_line":"  name prefix but doesn\u0027t have saved_state.json file. USE WITH CAUTION."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"* ``--help``: Print the help text for the command and parameters."},{"line_number":75,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"31cf8d2b_7c23ee64","line":72,"range":{"start_line":70,"start_character":0,"end_line":72,"end_character":71},"in_reply_to":"5e01e4d3_e70209da","updated":"2024-01-02 10:38:15.000000000","message":"The reason I added this opt is that we can\u0027t run cleanup tool without a saved_state.json (without previously running cleanup with --init-saved-state). If someone doesn\u0027t want to honor saved_state file and want to run the cleanup with --prefix, they won\u0027t be able to if they don\u0027t have saved_state file - the tool complains that the file is missing, which is ok with the previous cleanup design. With --prefix though, having saved_state file is not required, therefore this opt can disable the check whether the saved_state file exists.","commit_id":"5416535ec0b741f9a7c00286bacc6822666809a9"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"85c89dbdb0c8ff561807153612ff3adec4214eb2","unresolved":true,"context_lines":[{"line_number":67,"context_line":"  ignored when ``--init-saved-state`` is used so that it can capture the true"},{"line_number":68,"context_line":"  init state - all resources present at that moment."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"* ``--ignore-saved-state``: Ignore saved_state.json file. This is handy when"},{"line_number":71,"context_line":"  used with --prefix. E.g. when a user wants to delete resources with a certain"},{"line_number":72,"context_line":"  name prefix but doesn\u0027t have saved_state.json file. USE WITH CAUTION."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"* ``--help``: Print the help text for the command and parameters."},{"line_number":75,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"24b57c4b_fe1876e6","line":72,"range":{"start_line":70,"start_character":0,"end_line":72,"end_character":71},"in_reply_to":"96596758_7b93424b","updated":"2024-01-04 21:21:50.000000000","message":"because prefix is always defined it should work if anyone not running --cleanup with --init-saved-state. With all changes up for cleanup I am seeing the below ways to run cleanup, let me know if I am missing something:\n\nOption 1: cleanup with saved state:\n\n- run \u0027tempest cleanup --init-saved-state\u0027 (just save state and no actual cleaup)\n- run \u0027tempest --cleanup\u0027 : because we have saved-state file so cleanup will honor that instead of --prefix. we need to make saved state and --prefix in if else condition (commenting in next file)\n \nOption 2: cleanup with prefix\n\n- run \u0027tempest cleanup --prefix\u0027 : because there is no saved-state file so cleanup will honor the --prefix. we need to make saved state and --prefix in if else condition (commenting in next file)\n\nOption 3: cleanup with record_resources: another change https://review.opendev.org/c/openstack/tempest/+/897847\n\n- run \u0027tempest cleanup --resource-list\u0027 : this will honor the resource_list.json and will cleanup only resources present there and no honor of --prefix or --saved-state we need to make saved state, --prefix, and resource-list in if else condition (commenting in 897847 change)\n\nWe can make order in any ways how we want to give priority on either of these and as per their default value. like below:\n\nif saved-state defined then do cleanup as per saved-state (because this is current way so let\u0027s keep it priority over other way and running saved-state is explicit process to tell user want to run cleanup with saved-state)\n\nelif run with --resource-list (because its default value false so if anyone explicitly set it then let\u0027s priority it over --prefix)\n\nelif run with --prefix () now it is clear that user want to run cleanup only with --prefix so run it and as it has default value so it will work.","commit_id":"5416535ec0b741f9a7c00286bacc6822666809a9"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"7f598b9361697dd2553ec101e3a95509068d05fc","unresolved":true,"context_lines":[{"line_number":66,"context_line":"  is used so that it can capture the true init state - all resources present"},{"line_number":67,"context_line":"  at that moment."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"* ``--no-prefix``: As a precaution, the cleanup by default deletes only"},{"line_number":70,"context_line":"  resources that are named with the prefix set in CONF.resource_name_prefix"},{"line_number":71,"context_line":"  opt. This prevents from unintentional deletion of non-tempest resources"},{"line_number":72,"context_line":"  on e.g. a production env. Use this, --no-prefix, opt to turn off this"},{"line_number":73,"context_line":"  precaution mechanism. USE WITH CAUTION."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"* ``--help``: Print the help text for the command and parameters."},{"line_number":76,"context_line":""}],"source_content_type":"text/x-python","patch_set":24,"id":"f88d0f09_56f4e661","line":73,"range":{"start_line":69,"start_character":0,"end_line":73,"end_character":41},"updated":"2024-01-26 18:48:16.000000000","message":"this is same thing as providing the ``--ignore-saved-state` option. here we are providing 1. option to enable the --prefix 2. a new 2nd option to disable it ? it does not make sense, there should be one option/flag to enable or disable the --prefix cleanup way","commit_id":"fec647d29de92dcfb3f0856cdb8668c365ffb0c6"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"51fac5b70f23dbcc3b38110e2b06a7a7dfbeb363","unresolved":true,"context_lines":[{"line_number":66,"context_line":"  is used so that it can capture the true init state - all resources present"},{"line_number":67,"context_line":"  at that moment."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"* ``--no-prefix``: As a precaution, the cleanup by default deletes only"},{"line_number":70,"context_line":"  resources that are named with the prefix set in CONF.resource_name_prefix"},{"line_number":71,"context_line":"  opt. This prevents from unintentional deletion of non-tempest resources"},{"line_number":72,"context_line":"  on e.g. a production env. Use this, --no-prefix, opt to turn off this"},{"line_number":73,"context_line":"  precaution mechanism. USE WITH CAUTION."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"* ``--help``: Print the help text for the command and parameters."},{"line_number":76,"context_line":""}],"source_content_type":"text/x-python","patch_set":24,"id":"5baa77d3_5167181b","line":73,"range":{"start_line":69,"start_character":0,"end_line":73,"end_character":41},"in_reply_to":"3453ff9c_ea2b06d8","updated":"2024-01-31 10:44:14.000000000","message":"\u0027--prefix\u0027 controls the cleanup based on prefix, if set, saved state is ignored and the cleanup cleans the resources that match the prefix, if it\u0027s not set, the classic cleanup (saved state etc) proceeds.\n\ndoc for \u0027--no-prefix\u0027 clearly states:\n\"As a precaution, the cleanup by default deletes only resources that are named with the prefix set in the tempest.conf\" .. to disable this *precaution* use \u0027--no-prefix\u0027 .. i don\u0027t understand how this can be misinterpreted .. anyway, if it is misinterpreted, we\u0027ll at least protected the environment where the cleanup was executed on from a user who doesn\u0027t read the documentation which is the intention","commit_id":"fec647d29de92dcfb3f0856cdb8668c365ffb0c6"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"7d1c68de61768987ab4f1d36625d508bfdee7ff2","unresolved":false,"context_lines":[{"line_number":66,"context_line":"  is used so that it can capture the true init state - all resources present"},{"line_number":67,"context_line":"  at that moment."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"* ``--no-prefix``: As a precaution, the cleanup by default deletes only"},{"line_number":70,"context_line":"  resources that are named with the prefix set in CONF.resource_name_prefix"},{"line_number":71,"context_line":"  opt. This prevents from unintentional deletion of non-tempest resources"},{"line_number":72,"context_line":"  on e.g. a production env. Use this, --no-prefix, opt to turn off this"},{"line_number":73,"context_line":"  precaution mechanism. USE WITH CAUTION."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"* ``--help``: Print the help text for the command and parameters."},{"line_number":76,"context_line":""}],"source_content_type":"text/x-python","patch_set":24,"id":"ee1ef3ed_e346531c","line":73,"range":{"start_line":69,"start_character":0,"end_line":73,"end_character":41},"in_reply_to":"5baa77d3_5167181b","updated":"2024-03-05 10:47:07.000000000","message":"we agreed on not pursuing --no-prefix or similar option that would implicitly filter resources based on their name in order to prevent users from their accidental removal","commit_id":"fec647d29de92dcfb3f0856cdb8668c365ffb0c6"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"d483e7285ceecd1d5fc1dd115739c1c4088ab2da","unresolved":true,"context_lines":[{"line_number":66,"context_line":"  is used so that it can capture the true init state - all resources present"},{"line_number":67,"context_line":"  at that moment."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"* ``--no-prefix``: As a precaution, the cleanup by default deletes only"},{"line_number":70,"context_line":"  resources that are named with the prefix set in CONF.resource_name_prefix"},{"line_number":71,"context_line":"  opt. This prevents from unintentional deletion of non-tempest resources"},{"line_number":72,"context_line":"  on e.g. a production env. Use this, --no-prefix, opt to turn off this"},{"line_number":73,"context_line":"  precaution mechanism. USE WITH CAUTION."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"* ``--help``: Print the help text for the command and parameters."},{"line_number":76,"context_line":""}],"source_content_type":"text/x-python","patch_set":24,"id":"3453ff9c_ea2b06d8","line":73,"range":{"start_line":69,"start_character":0,"end_line":73,"end_character":41},"in_reply_to":"8c71d287_d124aba8","updated":"2024-01-31 05:22:30.000000000","message":"which is what confusion is what we are saying here is \n1. enable the prefix way of cleanup via flag --prefix\n2. You want to disable the prefix way of deletion then use another flag --no-prefix\n\nA simple way is there is a flag \u0027--prefix\u0027 to enable or disable the prefix way of cleanup. If that is set to True it means enable otherwise disable.","commit_id":"fec647d29de92dcfb3f0856cdb8668c365ffb0c6"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"dee8fb0236013f15275db06991e7e5cd41c43c17","unresolved":true,"context_lines":[{"line_number":66,"context_line":"  is used so that it can capture the true init state - all resources present"},{"line_number":67,"context_line":"  at that moment."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"* ``--no-prefix``: As a precaution, the cleanup by default deletes only"},{"line_number":70,"context_line":"  resources that are named with the prefix set in CONF.resource_name_prefix"},{"line_number":71,"context_line":"  opt. This prevents from unintentional deletion of non-tempest resources"},{"line_number":72,"context_line":"  on e.g. a production env. Use this, --no-prefix, opt to turn off this"},{"line_number":73,"context_line":"  precaution mechanism. USE WITH CAUTION."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"* ``--help``: Print the help text for the command and parameters."},{"line_number":76,"context_line":""}],"source_content_type":"text/x-python","patch_set":24,"id":"8c71d287_d124aba8","line":73,"range":{"start_line":69,"start_character":0,"end_line":73,"end_character":41},"in_reply_to":"f88d0f09_56f4e661","updated":"2024-01-29 11:17:28.000000000","message":"Even after reading the description it still does not make sense?","commit_id":"fec647d29de92dcfb3f0856cdb8668c365ffb0c6"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"7f598b9361697dd2553ec101e3a95509068d05fc","unresolved":true,"context_lines":[{"line_number":182,"context_line":"                  \u0027saved_state_json\u0027: self.json_data,"},{"line_number":183,"context_line":"                  \u0027is_preserve\u0027: False,"},{"line_number":184,"context_line":"                  \u0027is_save_state\u0027: is_save_state,"},{"line_number":185,"context_line":"                  \u0027prefix\u0027: cleanup_prefix,"},{"line_number":186,"context_line":"                  \u0027no_prefix\u0027: self.options.no_prefix}"},{"line_number":187,"context_line":"        project_service \u003d cleanup_service.ProjectService(admin_mgr, **kwargs)"},{"line_number":188,"context_line":"        projects \u003d project_service.list()"},{"line_number":189,"context_line":"        LOG.info(\"Processing %s projects\", len(projects))"}],"source_content_type":"text/x-python","patch_set":24,"id":"27bb171b_b7639c53","line":186,"range":{"start_line":185,"start_character":0,"end_line":186,"end_character":54},"updated":"2024-01-26 18:48:16.000000000","message":"passing two separate arg for one thing seems confusing here. here it should be single flag telling if cleanup needs to be done via prefix or not","commit_id":"fec647d29de92dcfb3f0856cdb8668c365ffb0c6"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"dee8fb0236013f15275db06991e7e5cd41c43c17","unresolved":true,"context_lines":[{"line_number":182,"context_line":"                  \u0027saved_state_json\u0027: self.json_data,"},{"line_number":183,"context_line":"                  \u0027is_preserve\u0027: False,"},{"line_number":184,"context_line":"                  \u0027is_save_state\u0027: is_save_state,"},{"line_number":185,"context_line":"                  \u0027prefix\u0027: cleanup_prefix,"},{"line_number":186,"context_line":"                  \u0027no_prefix\u0027: self.options.no_prefix}"},{"line_number":187,"context_line":"        project_service \u003d cleanup_service.ProjectService(admin_mgr, **kwargs)"},{"line_number":188,"context_line":"        projects \u003d project_service.list()"},{"line_number":189,"context_line":"        LOG.info(\"Processing %s projects\", len(projects))"}],"source_content_type":"text/x-python","patch_set":24,"id":"e19fed21_078268e4","line":186,"range":{"start_line":185,"start_character":0,"end_line":186,"end_character":54},"in_reply_to":"27bb171b_b7639c53","updated":"2024-01-29 11:17:28.000000000","message":"see the description of the each argument","commit_id":"fec647d29de92dcfb3f0856cdb8668c365ffb0c6"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"7d1c68de61768987ab4f1d36625d508bfdee7ff2","unresolved":false,"context_lines":[{"line_number":182,"context_line":"                  \u0027saved_state_json\u0027: self.json_data,"},{"line_number":183,"context_line":"                  \u0027is_preserve\u0027: False,"},{"line_number":184,"context_line":"                  \u0027is_save_state\u0027: is_save_state,"},{"line_number":185,"context_line":"                  \u0027prefix\u0027: cleanup_prefix,"},{"line_number":186,"context_line":"                  \u0027no_prefix\u0027: self.options.no_prefix}"},{"line_number":187,"context_line":"        project_service \u003d cleanup_service.ProjectService(admin_mgr, **kwargs)"},{"line_number":188,"context_line":"        projects \u003d project_service.list()"},{"line_number":189,"context_line":"        LOG.info(\"Processing %s projects\", len(projects))"}],"source_content_type":"text/x-python","patch_set":24,"id":"a2c34049_de422886","line":186,"range":{"start_line":185,"start_character":0,"end_line":186,"end_character":54},"in_reply_to":"e19fed21_078268e4","updated":"2024-03-05 10:47:07.000000000","message":"Done","commit_id":"fec647d29de92dcfb3f0856cdb8668c365ffb0c6"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"8fd24372b2a41bd54f7e6698253a06df42e51e01","unresolved":true,"context_lines":[{"line_number":49,"context_line":"* ``--init-saved-state``: Initializes the saved state of the OpenStack"},{"line_number":50,"context_line":"  deployment and will output a ``saved_state.json`` file containing resources"},{"line_number":51,"context_line":"  from your deployment that will be preserved from the cleanup command. This"},{"line_number":52,"context_line":"  should be done prior to running Tempest tests. Note, that if other users of"},{"line_number":53,"context_line":"  your cloud could have created resources after running ``--init-saved-state``,"},{"line_number":54,"context_line":"  it would not protect those resources as they wouldn\u0027t be present in the"},{"line_number":55,"context_line":"  saved_state.json file."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"* ``--delete-tempest-conf-objects``: If option is present, then the command"},{"line_number":58,"context_line":"  will delete the admin project in addition to the resources associated with"}],"source_content_type":"text/x-python","patch_set":27,"id":"dab97969_7c8dbe5b","line":55,"range":{"start_line":52,"start_character":48,"end_line":55,"end_character":24},"updated":"2024-03-15 04:21:26.000000000","message":"++ on this note.","commit_id":"cc56539c23a082fa093e5bf10aa8e03aac97b18b"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"c253142ec6150e3f58d6b0973072ad02795f753e","unresolved":false,"context_lines":[{"line_number":49,"context_line":"* ``--init-saved-state``: Initializes the saved state of the OpenStack"},{"line_number":50,"context_line":"  deployment and will output a ``saved_state.json`` file containing resources"},{"line_number":51,"context_line":"  from your deployment that will be preserved from the cleanup command. This"},{"line_number":52,"context_line":"  should be done prior to running Tempest tests. Note, that if other users of"},{"line_number":53,"context_line":"  your cloud could have created resources after running ``--init-saved-state``,"},{"line_number":54,"context_line":"  it would not protect those resources as they wouldn\u0027t be present in the"},{"line_number":55,"context_line":"  saved_state.json file."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"* ``--delete-tempest-conf-objects``: If option is present, then the command"},{"line_number":58,"context_line":"  will delete the admin project in addition to the resources associated with"}],"source_content_type":"text/x-python","patch_set":27,"id":"ebf4c7c2_bb5222b0","line":55,"range":{"start_line":52,"start_character":48,"end_line":55,"end_character":24},"in_reply_to":"dab97969_7c8dbe5b","updated":"2024-03-18 00:07:02.000000000","message":"Acknowledged","commit_id":"cc56539c23a082fa093e5bf10aa8e03aac97b18b"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"8fd24372b2a41bd54f7e6698253a06df42e51e01","unresolved":true,"context_lines":[{"line_number":71,"context_line":""},{"line_number":72,"context_line":"* ``--prefix``: Only resources that match the prefix will be deleted. When this"},{"line_number":73,"context_line":"  option is used, ``saved_state.json`` file is not needed (no need to run with"},{"line_number":74,"context_line":"  ``--init-saved-state`` first). Note, that some resources are not named thus"},{"line_number":75,"context_line":"  they will not be deleted when filtering based on the prefix. This option will"},{"line_number":76,"context_line":"  be ignored when ``--init-saved-state`` is used so that it can capture the"},{"line_number":77,"context_line":"  true init state - all resources present at that moment."},{"line_number":78,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"ca6b36d8_dce39732","line":75,"range":{"start_line":74,"start_character":32,"end_line":75,"end_character":62},"updated":"2024-03-15 04:21:26.000000000","message":"is this that some test case does not create the resource with name and prefix ? or some other case? If former one then let\u0027s not add this line as that case will be something we need to fix in tempest.","commit_id":"cc56539c23a082fa093e5bf10aa8e03aac97b18b"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"c253142ec6150e3f58d6b0973072ad02795f753e","unresolved":true,"context_lines":[{"line_number":71,"context_line":""},{"line_number":72,"context_line":"* ``--prefix``: Only resources that match the prefix will be deleted. When this"},{"line_number":73,"context_line":"  option is used, ``saved_state.json`` file is not needed (no need to run with"},{"line_number":74,"context_line":"  ``--init-saved-state`` first). Note, that some resources are not named thus"},{"line_number":75,"context_line":"  they will not be deleted when filtering based on the prefix. This option will"},{"line_number":76,"context_line":"  be ignored when ``--init-saved-state`` is used so that it can capture the"},{"line_number":77,"context_line":"  true init state - all resources present at that moment."},{"line_number":78,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"fe062004_bcfeb630","line":75,"range":{"start_line":74,"start_character":32,"end_line":75,"end_character":62},"in_reply_to":"ca6b36d8_dce39732","updated":"2024-03-18 00:07:02.000000000","message":"e.g. quotas are not named - Volume, Nova and Networks quotas don\u0027t have a name, what we do in case of regular (init_saved_state.json) cleanup, we delete the quota for a particular project, see the code in https://review.opendev.org/c/openstack/tempest/+/879923/27/tempest/cmd/cleanup_service.py\nThus, these resources (the quotas) can\u0027t be deleted when cleaning with --prefix, hence the note.","commit_id":"cc56539c23a082fa093e5bf10aa8e03aac97b18b"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"e73666fde02b6cb6b4ae5935187ba7696f886f24","unresolved":false,"context_lines":[{"line_number":71,"context_line":""},{"line_number":72,"context_line":"* ``--prefix``: Only resources that match the prefix will be deleted. When this"},{"line_number":73,"context_line":"  option is used, ``saved_state.json`` file is not needed (no need to run with"},{"line_number":74,"context_line":"  ``--init-saved-state`` first). Note, that some resources are not named thus"},{"line_number":75,"context_line":"  they will not be deleted when filtering based on the prefix. This option will"},{"line_number":76,"context_line":"  be ignored when ``--init-saved-state`` is used so that it can capture the"},{"line_number":77,"context_line":"  true init state - all resources present at that moment."},{"line_number":78,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"f43a7930_fae66229","line":75,"range":{"start_line":74,"start_character":32,"end_line":75,"end_character":62},"in_reply_to":"fe062004_bcfeb630","updated":"2024-03-22 05:26:56.000000000","message":"yeah, I think leaving quota as it is make sense.","commit_id":"cc56539c23a082fa093e5bf10aa8e03aac97b18b"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"8fd24372b2a41bd54f7e6698253a06df42e51e01","unresolved":true,"context_lines":[{"line_number":74,"context_line":"  ``--init-saved-state`` first). Note, that some resources are not named thus"},{"line_number":75,"context_line":"  they will not be deleted when filtering based on the prefix. This option will"},{"line_number":76,"context_line":"  be ignored when ``--init-saved-state`` is used so that it can capture the"},{"line_number":77,"context_line":"  true init state - all resources present at that moment."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"* ``--help``: Print the help text for the command and parameters."},{"line_number":80,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"330aa958_659e870b","line":77,"range":{"start_line":77,"start_character":55,"end_line":77,"end_character":57},"updated":"2024-03-15 04:21:26.000000000","message":"Commenting about default value below but here also we can say that its default value is \u0027tempest\u0027 and mention that its value should match with config option \u0027resource_name_prefix\u0027 value present in tempest.conf","commit_id":"cc56539c23a082fa093e5bf10aa8e03aac97b18b"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"8fd24372b2a41bd54f7e6698253a06df42e51e01","unresolved":true,"context_lines":[{"line_number":74,"context_line":"  ``--init-saved-state`` first). Note, that some resources are not named thus"},{"line_number":75,"context_line":"  they will not be deleted when filtering based on the prefix. This option will"},{"line_number":76,"context_line":"  be ignored when ``--init-saved-state`` is used so that it can capture the"},{"line_number":77,"context_line":"  true init state - all resources present at that moment."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"* ``--help``: Print the help text for the command and parameters."},{"line_number":80,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"ab061eaa_4647946e","line":77,"range":{"start_line":77,"start_character":50,"end_line":77,"end_character":57},"updated":"2024-03-15 04:21:26.000000000","message":"let\u0027s add one more thing here\n\n- if there is any ``saved_state.json`` file present (if you ran the tempest cleanup with --init-saved-state) and you run tempest cleanup with ``--prefix`` then ``saved_state.json`` file will be ignored and cleanup will be done by --prefix based only.","commit_id":"cc56539c23a082fa093e5bf10aa8e03aac97b18b"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"c253142ec6150e3f58d6b0973072ad02795f753e","unresolved":true,"context_lines":[{"line_number":74,"context_line":"  ``--init-saved-state`` first). Note, that some resources are not named thus"},{"line_number":75,"context_line":"  they will not be deleted when filtering based on the prefix. This option will"},{"line_number":76,"context_line":"  be ignored when ``--init-saved-state`` is used so that it can capture the"},{"line_number":77,"context_line":"  true init state - all resources present at that moment."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"* ``--help``: Print the help text for the command and parameters."},{"line_number":80,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"ce5fc163_00697546","line":77,"range":{"start_line":77,"start_character":55,"end_line":77,"end_character":57},"in_reply_to":"330aa958_659e870b","updated":"2024-03-18 00:07:02.000000000","message":"I would leave this one to the user. I explained the reason why we don\u0027t want to use the default value for --prefix in the other comment. I also think that the --prefix is documented well enough, the value passed with it doesn\u0027t have to match the prefix set in tempest.conf, it\u0027s up to the user - theoretically, they could use the cleanup to delete resources they created while debugging etc (assuming they followed some naming rule).","commit_id":"cc56539c23a082fa093e5bf10aa8e03aac97b18b"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"ae85883b8bc4b4af70cc4304958a74d31e33ab69","unresolved":false,"context_lines":[{"line_number":74,"context_line":"  ``--init-saved-state`` first). Note, that some resources are not named thus"},{"line_number":75,"context_line":"  they will not be deleted when filtering based on the prefix. This option will"},{"line_number":76,"context_line":"  be ignored when ``--init-saved-state`` is used so that it can capture the"},{"line_number":77,"context_line":"  true init state - all resources present at that moment."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"* ``--help``: Print the help text for the command and parameters."},{"line_number":80,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"f69b9675_d3148d09","line":77,"range":{"start_line":77,"start_character":55,"end_line":77,"end_character":57},"in_reply_to":"86a7acb9_6d6b0d5e","updated":"2024-03-29 11:15:30.000000000","message":"that\u0027s part of the tempest.conf documentation (sample):\nhttps://docs.openstack.org/tempest/latest/sampleconf.html\n\nI can add it here, too.","commit_id":"cc56539c23a082fa093e5bf10aa8e03aac97b18b"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"c253142ec6150e3f58d6b0973072ad02795f753e","unresolved":false,"context_lines":[{"line_number":74,"context_line":"  ``--init-saved-state`` first). Note, that some resources are not named thus"},{"line_number":75,"context_line":"  they will not be deleted when filtering based on the prefix. This option will"},{"line_number":76,"context_line":"  be ignored when ``--init-saved-state`` is used so that it can capture the"},{"line_number":77,"context_line":"  true init state - all resources present at that moment."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"* ``--help``: Print the help text for the command and parameters."},{"line_number":80,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"f01a699c_fa6e4aa3","line":77,"range":{"start_line":77,"start_character":50,"end_line":77,"end_character":57},"in_reply_to":"ab061eaa_4647946e","updated":"2024-03-18 00:07:02.000000000","message":"Done","commit_id":"cc56539c23a082fa093e5bf10aa8e03aac97b18b"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"e73666fde02b6cb6b4ae5935187ba7696f886f24","unresolved":true,"context_lines":[{"line_number":74,"context_line":"  ``--init-saved-state`` first). Note, that some resources are not named thus"},{"line_number":75,"context_line":"  they will not be deleted when filtering based on the prefix. This option will"},{"line_number":76,"context_line":"  be ignored when ``--init-saved-state`` is used so that it can capture the"},{"line_number":77,"context_line":"  true init state - all resources present at that moment."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"* ``--help``: Print the help text for the command and parameters."},{"line_number":80,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"86a7acb9_6d6b0d5e","line":77,"range":{"start_line":77,"start_character":55,"end_line":77,"end_character":57},"in_reply_to":"ce5fc163_00697546","updated":"2024-03-22 05:26:56.000000000","message":"ok, agree for default value things.\n\nbut I do not find where we tell about tempest config opion. At least let\u0027s add that so that user knows about it.\n\n\"All tempest resources are created with the prefix value from the config option \u0027resource_name_prefix\u0027 in tempest.conf and to cleanup the Tempest created resources you should run cleanup with --prefix as same value of config option \u0027resource_name_prefix\u0027.","commit_id":"cc56539c23a082fa093e5bf10aa8e03aac97b18b"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"8fd24372b2a41bd54f7e6698253a06df42e51e01","unresolved":true,"context_lines":[{"line_number":264,"context_line":"                            help\u003d\"Generate JSON file:\" + DRY_RUN_JSON +"},{"line_number":265,"context_line":"                            \", that reports the objects that would have \""},{"line_number":266,"context_line":"                            \"been deleted had a full cleanup been run.\")"},{"line_number":267,"context_line":"        parser.add_argument(\u0027--prefix\u0027, dest\u003d\u0027prefix\u0027, default\u003dNone,"},{"line_number":268,"context_line":"                            help\u003d\"Only resources that match the prefix will \""},{"line_number":269,"context_line":"                            \"be deleted (resources in saved_state.json are \""},{"line_number":270,"context_line":"                            \"not taken into account). Note that some \""}],"source_content_type":"text/x-python","patch_set":27,"id":"5605bb38_fc6733ba","line":267,"range":{"start_line":267,"start_character":63,"end_line":267,"end_character":67},"updated":"2024-03-15 04:21:26.000000000","message":"let\u0027s default it also with \u0027tempest\u0027\n\nalso, let\u0027s in help msg that this value should match with config option \u0027resource_name_prefix\u0027 value present in tempest.conf","commit_id":"cc56539c23a082fa093e5bf10aa8e03aac97b18b"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"ae85883b8bc4b4af70cc4304958a74d31e33ab69","unresolved":false,"context_lines":[{"line_number":264,"context_line":"                            help\u003d\"Generate JSON file:\" + DRY_RUN_JSON +"},{"line_number":265,"context_line":"                            \", that reports the objects that would have \""},{"line_number":266,"context_line":"                            \"been deleted had a full cleanup been run.\")"},{"line_number":267,"context_line":"        parser.add_argument(\u0027--prefix\u0027, dest\u003d\u0027prefix\u0027, default\u003dNone,"},{"line_number":268,"context_line":"                            help\u003d\"Only resources that match the prefix will \""},{"line_number":269,"context_line":"                            \"be deleted (resources in saved_state.json are \""},{"line_number":270,"context_line":"                            \"not taken into account). Note that some \""}],"source_content_type":"text/x-python","patch_set":27,"id":"56f3259a_1abb7058","line":267,"range":{"start_line":267,"start_character":63,"end_line":267,"end_character":67},"in_reply_to":"0b331383_fd6311cc","updated":"2024-03-29 11:15:30.000000000","message":"Done","commit_id":"cc56539c23a082fa093e5bf10aa8e03aac97b18b"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"c253142ec6150e3f58d6b0973072ad02795f753e","unresolved":true,"context_lines":[{"line_number":264,"context_line":"                            help\u003d\"Generate JSON file:\" + DRY_RUN_JSON +"},{"line_number":265,"context_line":"                            \", that reports the objects that would have \""},{"line_number":266,"context_line":"                            \"been deleted had a full cleanup been run.\")"},{"line_number":267,"context_line":"        parser.add_argument(\u0027--prefix\u0027, dest\u003d\u0027prefix\u0027, default\u003dNone,"},{"line_number":268,"context_line":"                            help\u003d\"Only resources that match the prefix will \""},{"line_number":269,"context_line":"                            \"be deleted (resources in saved_state.json are \""},{"line_number":270,"context_line":"                            \"not taken into account). Note that some \""}],"source_content_type":"text/x-python","patch_set":27,"id":"589d29f0_fea2997f","line":267,"range":{"start_line":267,"start_character":63,"end_line":267,"end_character":67},"in_reply_to":"5605bb38_fc6733ba","updated":"2024-03-18 00:07:02.000000000","message":"why? if a user wants to use --prefix they have to also pass some value. The default makes no difference then. Plus, if I set a default value here, I won\u0027t be able to do \"if self.prefix\" in the other file, as the prefix would be set all the time.","commit_id":"cc56539c23a082fa093e5bf10aa8e03aac97b18b"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"e73666fde02b6cb6b4ae5935187ba7696f886f24","unresolved":true,"context_lines":[{"line_number":264,"context_line":"                            help\u003d\"Generate JSON file:\" + DRY_RUN_JSON +"},{"line_number":265,"context_line":"                            \", that reports the objects that would have \""},{"line_number":266,"context_line":"                            \"been deleted had a full cleanup been run.\")"},{"line_number":267,"context_line":"        parser.add_argument(\u0027--prefix\u0027, dest\u003d\u0027prefix\u0027, default\u003dNone,"},{"line_number":268,"context_line":"                            help\u003d\"Only resources that match the prefix will \""},{"line_number":269,"context_line":"                            \"be deleted (resources in saved_state.json are \""},{"line_number":270,"context_line":"                            \"not taken into account). Note that some \""}],"source_content_type":"text/x-python","patch_set":27,"id":"0b331383_fd6311cc","line":267,"range":{"start_line":267,"start_character":63,"end_line":267,"end_character":67},"in_reply_to":"589d29f0_fea2997f","updated":"2024-03-22 05:26:56.000000000","message":"agree for not having a default value which makes sense.\n\nBut for help msg we can add the statement that \"All tempest resources are created with the prefix value from the config option \u0027resource_name_prefix\u0027 in tempest.conf and to cleanup the Tempest created resources you should run cleanup with --prefix as same value of config option \u0027resource_name_prefix\u0027.","commit_id":"cc56539c23a082fa093e5bf10aa8e03aac97b18b"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"8fd24372b2a41bd54f7e6698253a06df42e51e01","unresolved":true,"context_lines":[{"line_number":267,"context_line":"        parser.add_argument(\u0027--prefix\u0027, dest\u003d\u0027prefix\u0027, default\u003dNone,"},{"line_number":268,"context_line":"                            help\u003d\"Only resources that match the prefix will \""},{"line_number":269,"context_line":"                            \"be deleted (resources in saved_state.json are \""},{"line_number":270,"context_line":"                            \"not taken into account). Note that some \""},{"line_number":271,"context_line":"                            \"resources are not named thus they will not be \""},{"line_number":272,"context_line":"                            \"deleted when filtering based on the prefix. This \""},{"line_number":273,"context_line":"                            \"opt will be ignored when --init-saved-state is \""},{"line_number":274,"context_line":"                            \"used so that it can capture the true init state \""},{"line_number":275,"context_line":"                            \"- all resources present at that moment.\")"}],"source_content_type":"text/x-python","patch_set":27,"id":"44c6ccf1_11e1e619","line":272,"range":{"start_line":270,"start_character":54,"end_line":272,"end_character":72},"updated":"2024-03-15 04:21:26.000000000","message":"ditto","commit_id":"cc56539c23a082fa093e5bf10aa8e03aac97b18b"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"c253142ec6150e3f58d6b0973072ad02795f753e","unresolved":true,"context_lines":[{"line_number":267,"context_line":"        parser.add_argument(\u0027--prefix\u0027, dest\u003d\u0027prefix\u0027, default\u003dNone,"},{"line_number":268,"context_line":"                            help\u003d\"Only resources that match the prefix will \""},{"line_number":269,"context_line":"                            \"be deleted (resources in saved_state.json are \""},{"line_number":270,"context_line":"                            \"not taken into account). Note that some \""},{"line_number":271,"context_line":"                            \"resources are not named thus they will not be \""},{"line_number":272,"context_line":"                            \"deleted when filtering based on the prefix. This \""},{"line_number":273,"context_line":"                            \"opt will be ignored when --init-saved-state is \""},{"line_number":274,"context_line":"                            \"used so that it can capture the true init state \""},{"line_number":275,"context_line":"                            \"- all resources present at that moment.\")"}],"source_content_type":"text/x-python","patch_set":27,"id":"a43882d4_e46c8504","line":272,"range":{"start_line":270,"start_character":54,"end_line":272,"end_character":72},"in_reply_to":"44c6ccf1_11e1e619","updated":"2024-03-18 00:07:02.000000000","message":"e.g. quotas are not named.","commit_id":"cc56539c23a082fa093e5bf10aa8e03aac97b18b"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"ae85883b8bc4b4af70cc4304958a74d31e33ab69","unresolved":false,"context_lines":[{"line_number":267,"context_line":"        parser.add_argument(\u0027--prefix\u0027, dest\u003d\u0027prefix\u0027, default\u003dNone,"},{"line_number":268,"context_line":"                            help\u003d\"Only resources that match the prefix will \""},{"line_number":269,"context_line":"                            \"be deleted (resources in saved_state.json are \""},{"line_number":270,"context_line":"                            \"not taken into account). Note that some \""},{"line_number":271,"context_line":"                            \"resources are not named thus they will not be \""},{"line_number":272,"context_line":"                            \"deleted when filtering based on the prefix. This \""},{"line_number":273,"context_line":"                            \"opt will be ignored when --init-saved-state is \""},{"line_number":274,"context_line":"                            \"used so that it can capture the true init state \""},{"line_number":275,"context_line":"                            \"- all resources present at that moment.\")"}],"source_content_type":"text/x-python","patch_set":27,"id":"8d7de139_f3dda8b5","line":272,"range":{"start_line":270,"start_character":54,"end_line":272,"end_character":72},"in_reply_to":"a43882d4_e46c8504","updated":"2024-03-29 11:15:30.000000000","message":"Done","commit_id":"cc56539c23a082fa093e5bf10aa8e03aac97b18b"}],"tempest/cmd/cleanup_service.py":[{"author":{"_account_id":30674,"name":"Lukas Piwowarski","email":"lpiwowar@redhat.com","username":"lukas-piwowarski"},"change_message_id":"2191811bdd8226a73ed12eb29169b94e2100ede1","unresolved":true,"context_lines":[{"line_number":1024,"context_line":"                        for project in projects"},{"line_number":1025,"context_line":"                        if (project[\u0027id\u0027] not in project_ids and"},{"line_number":1026,"context_line":"                            project[\u0027name\u0027] !\u003d CONF.auth.admin_project_name)]"},{"line_number":1027,"context_line":"            projects \u003d [project for project in projects if project[\u0027name\u0027].startswith(self.prefix)]"},{"line_number":1028,"context_line":""},{"line_number":1029,"context_line":"        if self.is_preserve:"},{"line_number":1030,"context_line":"            projects \u003d [project"}],"source_content_type":"text/x-python","patch_set":1,"id":"58dbeb10_183bae7f","line":1027,"range":{"start_line":1027,"start_character":0,"end_line":1027,"end_character":27},"updated":"2023-04-11 16:43:22.000000000","message":"Why is this inside the \"if not self.is_saves_state\" while the other filtering of the resources based on the prefix is done outside of \"if not self.is_save_state\" (for example line 980)? Can we unify the behaviour of the list function?","commit_id":"d4caab206ae4b12a371d3754a070a2afd80a6acd"},{"author":{"_account_id":33983,"name":"Luigi Dino Tamagnone","display_name":"luigi","email":"ltamagno@redhat.com","username":"ltamagno"},"change_message_id":"8ac475a128207f385c2e7b9387c19eca8dba581c","unresolved":false,"context_lines":[{"line_number":1024,"context_line":"                        for project in projects"},{"line_number":1025,"context_line":"                        if (project[\u0027id\u0027] not in project_ids and"},{"line_number":1026,"context_line":"                            project[\u0027name\u0027] !\u003d CONF.auth.admin_project_name)]"},{"line_number":1027,"context_line":"            projects \u003d [project for project in projects if project[\u0027name\u0027].startswith(self.prefix)]"},{"line_number":1028,"context_line":""},{"line_number":1029,"context_line":"        if self.is_preserve:"},{"line_number":1030,"context_line":"            projects \u003d [project"}],"source_content_type":"text/x-python","patch_set":1,"id":"88141064_0bf2cbbb","line":1027,"range":{"start_line":1027,"start_character":0,"end_line":1027,"end_character":27},"in_reply_to":"58dbeb10_183bae7f","updated":"2023-04-19 14:50:17.000000000","message":"My mistake","commit_id":"d4caab206ae4b12a371d3754a070a2afd80a6acd"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"8ed70a67f7b22ec25808643e8060139395d3cf52","unresolved":true,"context_lines":[{"line_number":156,"context_line":"    def list(self):"},{"line_number":157,"context_line":"        client \u003d self.client"},{"line_number":158,"context_line":"        snaps \u003d client.list_snapshots()[\u0027snapshots\u0027]"},{"line_number":159,"context_line":"        snaps \u003d [snap for snap in snaps if snap[\u0027name\u0027].startswith(self.prefix)]"},{"line_number":160,"context_line":"        if not self.is_save_state:"},{"line_number":161,"context_line":"            # recreate list removing saved snapshots"},{"line_number":162,"context_line":"            snaps \u003d [snap for snap in snaps if snap[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":5,"id":"9660f8af_92fe0665","line":159,"range":{"start_line":159,"start_character":8,"end_line":159,"end_character":13},"updated":"2023-05-02 09:38:41.000000000","message":"line too long, break it like this:\n\nsnaps \u003d [snap for snap in snaps\n         if snap[\u0027name\u0027].startswith(self.prefix)]","commit_id":"5711e6be48f1ae9cc21f5215a579f16bbceecbc8"},{"author":{"_account_id":33983,"name":"Luigi Dino Tamagnone","display_name":"luigi","email":"ltamagno@redhat.com","username":"ltamagno"},"change_message_id":"1e34b6113a85a27be35f3b3f7646d894a133dc9c","unresolved":false,"context_lines":[{"line_number":156,"context_line":"    def list(self):"},{"line_number":157,"context_line":"        client \u003d self.client"},{"line_number":158,"context_line":"        snaps \u003d client.list_snapshots()[\u0027snapshots\u0027]"},{"line_number":159,"context_line":"        snaps \u003d [snap for snap in snaps if snap[\u0027name\u0027].startswith(self.prefix)]"},{"line_number":160,"context_line":"        if not self.is_save_state:"},{"line_number":161,"context_line":"            # recreate list removing saved snapshots"},{"line_number":162,"context_line":"            snaps \u003d [snap for snap in snaps if snap[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":5,"id":"9eba67f9_fe9253e0","line":159,"range":{"start_line":159,"start_character":8,"end_line":159,"end_character":13},"in_reply_to":"9660f8af_92fe0665","updated":"2023-05-02 14:59:38.000000000","message":"Done","commit_id":"5711e6be48f1ae9cc21f5215a579f16bbceecbc8"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"8ed70a67f7b22ec25808643e8060139395d3cf52","unresolved":true,"context_lines":[{"line_number":470,"context_line":"        client \u003d self.floating_ips_client"},{"line_number":471,"context_line":"        flips \u003d client.list_floatingips(**self.tenant_filter)"},{"line_number":472,"context_line":"        flips \u003d flips[\u0027floatingips\u0027]"},{"line_number":473,"context_line":"        #TODO:Floating ip don\u0027t have a prefix now"},{"line_number":474,"context_line":"        #flips \u003d [flip for flip in flips if flip[\u0027id\u0027].startswith(self.prefix)]"},{"line_number":475,"context_line":""},{"line_number":476,"context_line":"        if not self.is_save_state:"},{"line_number":477,"context_line":"            # recreate list removing saved flips"}],"source_content_type":"text/x-python","patch_set":5,"id":"0b29df5b_dbc71da1","line":474,"range":{"start_line":473,"start_character":7,"end_line":474,"end_character":12},"updated":"2023-05-02 09:38:41.000000000","message":"there has to be a space after the # sign","commit_id":"5711e6be48f1ae9cc21f5215a579f16bbceecbc8"},{"author":{"_account_id":33983,"name":"Luigi Dino Tamagnone","display_name":"luigi","email":"ltamagno@redhat.com","username":"ltamagno"},"change_message_id":"1e34b6113a85a27be35f3b3f7646d894a133dc9c","unresolved":false,"context_lines":[{"line_number":470,"context_line":"        client \u003d self.floating_ips_client"},{"line_number":471,"context_line":"        flips \u003d client.list_floatingips(**self.tenant_filter)"},{"line_number":472,"context_line":"        flips \u003d flips[\u0027floatingips\u0027]"},{"line_number":473,"context_line":"        #TODO:Floating ip don\u0027t have a prefix now"},{"line_number":474,"context_line":"        #flips \u003d [flip for flip in flips if flip[\u0027id\u0027].startswith(self.prefix)]"},{"line_number":475,"context_line":""},{"line_number":476,"context_line":"        if not self.is_save_state:"},{"line_number":477,"context_line":"            # recreate list removing saved flips"}],"source_content_type":"text/x-python","patch_set":5,"id":"f51fc75b_e1e258a8","line":474,"range":{"start_line":473,"start_character":7,"end_line":474,"end_character":12},"in_reply_to":"0b29df5b_dbc71da1","updated":"2023-05-02 14:59:38.000000000","message":"Done","commit_id":"5711e6be48f1ae9cc21f5215a579f16bbceecbc8"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"8ed70a67f7b22ec25808643e8060139395d3cf52","unresolved":true,"context_lines":[{"line_number":643,"context_line":"                 client.list_ports(**self.tenant_filter)[\u0027ports\u0027]"},{"line_number":644,"context_line":"                 if port[\"device_owner\"] \u003d\u003d \"\" or"},{"line_number":645,"context_line":"                 port[\"device_owner\"].startswith(\"compute:\")]"},{"line_number":646,"context_line":"        #TODO:port don\u0027t have a prefix now"},{"line_number":647,"context_line":"        #ports \u003d [port for port in ports if port[\u0027name\u0027].startswith(self.prefix)]"},{"line_number":648,"context_line":""},{"line_number":649,"context_line":"        if not self.is_save_state:"},{"line_number":650,"context_line":"            # recreate list removing saved ports"}],"source_content_type":"text/x-python","patch_set":5,"id":"eb4c979a_d19e7c0f","line":647,"range":{"start_line":646,"start_character":8,"end_line":647,"end_character":20},"updated":"2023-05-02 09:38:41.000000000","message":"there has to be a space after the # sign","commit_id":"5711e6be48f1ae9cc21f5215a579f16bbceecbc8"},{"author":{"_account_id":33983,"name":"Luigi Dino Tamagnone","display_name":"luigi","email":"ltamagno@redhat.com","username":"ltamagno"},"change_message_id":"1e34b6113a85a27be35f3b3f7646d894a133dc9c","unresolved":false,"context_lines":[{"line_number":643,"context_line":"                 client.list_ports(**self.tenant_filter)[\u0027ports\u0027]"},{"line_number":644,"context_line":"                 if port[\"device_owner\"] \u003d\u003d \"\" or"},{"line_number":645,"context_line":"                 port[\"device_owner\"].startswith(\"compute:\")]"},{"line_number":646,"context_line":"        #TODO:port don\u0027t have a prefix now"},{"line_number":647,"context_line":"        #ports \u003d [port for port in ports if port[\u0027name\u0027].startswith(self.prefix)]"},{"line_number":648,"context_line":""},{"line_number":649,"context_line":"        if not self.is_save_state:"},{"line_number":650,"context_line":"            # recreate list removing saved ports"}],"source_content_type":"text/x-python","patch_set":5,"id":"2f7173cb_a8e27838","line":647,"range":{"start_line":646,"start_character":8,"end_line":647,"end_character":20},"in_reply_to":"eb4c979a_d19e7c0f","updated":"2023-05-02 14:59:38.000000000","message":"Done","commit_id":"5711e6be48f1ae9cc21f5215a579f16bbceecbc8"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"8ed70a67f7b22ec25808643e8060139395d3cf52","unresolved":true,"context_lines":[{"line_number":685,"context_line":"        secgroups \u003d [secgroup for secgroup in"},{"line_number":686,"context_line":"                     client.list_security_groups(**filter)[\u0027security_groups\u0027]"},{"line_number":687,"context_line":"                     if secgroup[\u0027name\u0027] !\u003d \u0027default\u0027"},{"line_number":688,"context_line":"                     and secgroup[\"name\"].startswith(self.prefix)]"},{"line_number":689,"context_line":""},{"line_number":690,"context_line":"        if not self.is_save_state:"},{"line_number":691,"context_line":"            # recreate list removing saved security_groups"}],"source_content_type":"text/x-python","patch_set":5,"id":"aa250b44_d85c1731","line":688,"range":{"start_line":688,"start_character":34,"end_line":688,"end_character":40},"updated":"2023-05-02 09:38:41.000000000","message":"use single quotes (\u0027name\u0027)","commit_id":"5711e6be48f1ae9cc21f5215a579f16bbceecbc8"},{"author":{"_account_id":33983,"name":"Luigi Dino Tamagnone","display_name":"luigi","email":"ltamagno@redhat.com","username":"ltamagno"},"change_message_id":"1e34b6113a85a27be35f3b3f7646d894a133dc9c","unresolved":false,"context_lines":[{"line_number":685,"context_line":"        secgroups \u003d [secgroup for secgroup in"},{"line_number":686,"context_line":"                     client.list_security_groups(**filter)[\u0027security_groups\u0027]"},{"line_number":687,"context_line":"                     if secgroup[\u0027name\u0027] !\u003d \u0027default\u0027"},{"line_number":688,"context_line":"                     and secgroup[\"name\"].startswith(self.prefix)]"},{"line_number":689,"context_line":""},{"line_number":690,"context_line":"        if not self.is_save_state:"},{"line_number":691,"context_line":"            # recreate list removing saved security_groups"}],"source_content_type":"text/x-python","patch_set":5,"id":"0e4b4038_9a1f72fe","line":688,"range":{"start_line":688,"start_character":34,"end_line":688,"end_character":40},"in_reply_to":"aa250b44_d85c1731","updated":"2023-05-02 14:59:38.000000000","message":"Done","commit_id":"5711e6be48f1ae9cc21f5215a579f16bbceecbc8"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"8ed70a67f7b22ec25808643e8060139395d3cf52","unresolved":true,"context_lines":[{"line_number":727,"context_line":"        client \u003d self.subnets_client"},{"line_number":728,"context_line":"        subnets \u003d client.list_subnets(**self.tenant_filter)"},{"line_number":729,"context_line":"        subnets \u003d subnets[\u0027subnets\u0027]"},{"line_number":730,"context_line":"        #TODO: subnet don\u0027t have a prefix now"},{"line_number":731,"context_line":"        #subnets \u003d [subnet for subnet in subnets"},{"line_number":732,"context_line":"        #           if subnet[\u0027name\u0027].startswith(self.prefix)]"},{"line_number":733,"context_line":"        if not self.is_save_state:"},{"line_number":734,"context_line":"            # recreate list removing saved subnets"}],"source_content_type":"text/x-python","patch_set":5,"id":"90b4d53a_5e3199b5","line":731,"range":{"start_line":730,"start_character":7,"end_line":731,"end_character":11},"updated":"2023-05-02 09:38:41.000000000","message":"there has to be a space after the # sign","commit_id":"5711e6be48f1ae9cc21f5215a579f16bbceecbc8"},{"author":{"_account_id":33983,"name":"Luigi Dino Tamagnone","display_name":"luigi","email":"ltamagno@redhat.com","username":"ltamagno"},"change_message_id":"1e34b6113a85a27be35f3b3f7646d894a133dc9c","unresolved":false,"context_lines":[{"line_number":727,"context_line":"        client \u003d self.subnets_client"},{"line_number":728,"context_line":"        subnets \u003d client.list_subnets(**self.tenant_filter)"},{"line_number":729,"context_line":"        subnets \u003d subnets[\u0027subnets\u0027]"},{"line_number":730,"context_line":"        #TODO: subnet don\u0027t have a prefix now"},{"line_number":731,"context_line":"        #subnets \u003d [subnet for subnet in subnets"},{"line_number":732,"context_line":"        #           if subnet[\u0027name\u0027].startswith(self.prefix)]"},{"line_number":733,"context_line":"        if not self.is_save_state:"},{"line_number":734,"context_line":"            # recreate list removing saved subnets"}],"source_content_type":"text/x-python","patch_set":5,"id":"232ff905_cfd12d10","line":731,"range":{"start_line":730,"start_character":7,"end_line":731,"end_character":11},"in_reply_to":"90b4d53a_5e3199b5","updated":"2023-05-02 14:59:38.000000000","message":"Done","commit_id":"5711e6be48f1ae9cc21f5215a579f16bbceecbc8"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"21f3f59f9f4ca1bd42cfdda1ae7f637925eba7e9","unresolved":true,"context_lines":[{"line_number":157,"context_line":"        client \u003d self.client"},{"line_number":158,"context_line":"        snaps \u003d client.list_snapshots()[\u0027snapshots\u0027]"},{"line_number":159,"context_line":"        snaps \u003d [snap for snap in snaps"},{"line_number":160,"context_line":"                if snap[\u0027name\u0027].startswith(self.prefix)]"},{"line_number":161,"context_line":"        if not self.is_save_state:"},{"line_number":162,"context_line":"            # recreate list removing saved snapshots"},{"line_number":163,"context_line":"            snaps \u003d [snap for snap in snaps if snap[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":7,"id":"88a3d81c_236ed7c3","line":160,"range":{"start_line":160,"start_character":16,"end_line":160,"end_character":18},"updated":"2023-05-10 12:34:51.000000000","message":"shift this one space right to comply with pep8, it\u0027s better shown in the output of the job - https://db1b21e002606f46c53f-9c4d070fefbaa4f90a8a69af5ec07c7e.ssl.cf2.rackcdn.com/879923/7/check/openstack-tox-pep8/f2e3ddc/job-output.txt:\n\n\n2023-05-03 13:05:43.332071 | ubuntu-jammy |          client \u003d self.client\n2023-05-03 13:05:43.332090 | ubuntu-jammy |          snaps \u003d client.list_snapshots()[\u0027snapshots\u0027]\n2023-05-03 13:05:43.332110 | ubuntu-jammy |          snaps \u003d [snap for snap in snaps\n2023-05-03 13:05:43.332129 | ubuntu-jammy | -                if snap[\u0027name\u0027].startswith(self.prefix)]\n2023-05-03 13:05:43.332148 | ubuntu-jammy | +                 if snap[\u0027name\u0027].startswith(self.prefix)]\n2023-05-03 13:05:43.332167 | ubuntu-jammy |          if not self.is_save_state:\n2023-05-03 13:05:43.332186 | ubuntu-jammy |              # recreate list removing saved snapshots\n2023-05-03 13:05:43.332204 | ubuntu-jammy |              snaps \u003d [snap for snap in snaps if snap[\u0027id\u0027]","commit_id":"0f051ee938467cc374deeab215fb349d347b259b"},{"author":{"_account_id":33983,"name":"Luigi Dino Tamagnone","display_name":"luigi","email":"ltamagno@redhat.com","username":"ltamagno"},"change_message_id":"f33361480203d023d3128ef058eb96d93ef6ff4f","unresolved":false,"context_lines":[{"line_number":157,"context_line":"        client \u003d self.client"},{"line_number":158,"context_line":"        snaps \u003d client.list_snapshots()[\u0027snapshots\u0027]"},{"line_number":159,"context_line":"        snaps \u003d [snap for snap in snaps"},{"line_number":160,"context_line":"                if snap[\u0027name\u0027].startswith(self.prefix)]"},{"line_number":161,"context_line":"        if not self.is_save_state:"},{"line_number":162,"context_line":"            # recreate list removing saved snapshots"},{"line_number":163,"context_line":"            snaps \u003d [snap for snap in snaps if snap[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":7,"id":"8a06ee4e_6b6ef958","line":160,"range":{"start_line":160,"start_character":16,"end_line":160,"end_character":18},"in_reply_to":"88a3d81c_236ed7c3","updated":"2023-05-15 10:32:21.000000000","message":"ok","commit_id":"0f051ee938467cc374deeab215fb349d347b259b"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"21f3f59f9f4ca1bd42cfdda1ae7f637925eba7e9","unresolved":true,"context_lines":[{"line_number":688,"context_line":"        secgroups \u003d [secgroup for secgroup in"},{"line_number":689,"context_line":"                     client.list_security_groups(**filter)[\u0027security_groups\u0027]"},{"line_number":690,"context_line":"                     if secgroup[\u0027name\u0027] !\u003d \u0027default\u0027"},{"line_number":691,"context_line":"                     and secgroup[\u0027name\u0027].startswith(self.prefix)]"},{"line_number":692,"context_line":""},{"line_number":693,"context_line":"        if not self.is_save_state:"},{"line_number":694,"context_line":"            # recreate list removing saved security_groups"}],"source_content_type":"text/x-python","patch_set":7,"id":"472789fd_f66eab66","line":691,"range":{"start_line":691,"start_character":21,"end_line":691,"end_character":24},"updated":"2023-05-10 12:34:51.000000000","message":"put this on the previous line - checkout the output of the job https://db1b21e002606f46c53f-9c4d070fefbaa4f90a8a69af5ec07c7e.ssl.cf2.rackcdn.com/879923/7/check/openstack-tox-pep8/f2e3ddc/job-output.txt:\n\n2023-05-03 13:05:43.332242 | ubuntu-jammy |          # cannot delete default sec group so never show it.\n2023-05-03 13:05:43.332260 | ubuntu-jammy |          secgroups \u003d [secgroup for secgroup in\n2023-05-03 13:05:43.332279 | ubuntu-jammy |                       client.list_security_groups(**filter)[\u0027security_groups\u0027]\n2023-05-03 13:05:43.332298 | ubuntu-jammy | -                     if secgroup[\u0027name\u0027] !\u003d \u0027default\u0027\n2023-05-03 13:05:43.332317 | ubuntu-jammy | -                     and secgroup[\u0027name\u0027].startswith(self.prefix)]\n2023-05-03 13:05:43.332335 | ubuntu-jammy | +                     if secgroup[\u0027name\u0027] !\u003d \u0027default\u0027 and\n2023-05-03 13:05:43.332354 | ubuntu-jammy | +                     secgroup[\u0027name\u0027].startswith(self.prefix)]","commit_id":"0f051ee938467cc374deeab215fb349d347b259b"},{"author":{"_account_id":33983,"name":"Luigi Dino Tamagnone","display_name":"luigi","email":"ltamagno@redhat.com","username":"ltamagno"},"change_message_id":"f33361480203d023d3128ef058eb96d93ef6ff4f","unresolved":false,"context_lines":[{"line_number":688,"context_line":"        secgroups \u003d [secgroup for secgroup in"},{"line_number":689,"context_line":"                     client.list_security_groups(**filter)[\u0027security_groups\u0027]"},{"line_number":690,"context_line":"                     if secgroup[\u0027name\u0027] !\u003d \u0027default\u0027"},{"line_number":691,"context_line":"                     and secgroup[\u0027name\u0027].startswith(self.prefix)]"},{"line_number":692,"context_line":""},{"line_number":693,"context_line":"        if not self.is_save_state:"},{"line_number":694,"context_line":"            # recreate list removing saved security_groups"}],"source_content_type":"text/x-python","patch_set":7,"id":"a2e15c4e_fe0064db","line":691,"range":{"start_line":691,"start_character":21,"end_line":691,"end_character":24},"in_reply_to":"472789fd_f66eab66","updated":"2023-05-15 10:32:21.000000000","message":"If I move and to previous line","commit_id":"0f051ee938467cc374deeab215fb349d347b259b"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"575a9337f551e133071304239aa30ad9e67de850","unresolved":true,"context_lines":[{"line_number":471,"context_line":"        client \u003d self.floating_ips_client"},{"line_number":472,"context_line":"        flips \u003d client.list_floatingips(**self.tenant_filter)"},{"line_number":473,"context_line":"        flips \u003d flips[\u0027floatingips\u0027]"},{"line_number":474,"context_line":"        # TODO(luigi): Floating ip don\u0027t have a prefix now"},{"line_number":475,"context_line":"        # flips \u003d [flip for flip in flips"},{"line_number":476,"context_line":"        #          if flip[\u0027id\u0027].startswith(self.prefix)]"},{"line_number":477,"context_line":""},{"line_number":478,"context_line":"        if not self.is_save_state:"}],"source_content_type":"text/x-python","patch_set":11,"id":"05dbc8cd_60b876ea","line":475,"range":{"start_line":474,"start_character":7,"end_line":475,"end_character":19},"updated":"2023-12-07 11:39:43.000000000","message":"if a resource doesn\u0027t have a name, there is nothing we can do, this prefix filtering won\u0027t affect those .. luckily, there aren\u0027t that many of them, so the feature is still useful\nI think we can delete these comments","commit_id":"f3befbf7e430c69ffa0297b5bff03f2ec9d60984"},{"author":{"_account_id":30674,"name":"Lukas Piwowarski","email":"lpiwowar@redhat.com","username":"lukas-piwowarski"},"change_message_id":"589b48c885efc01cd4b4bd083363d856398ad120","unresolved":true,"context_lines":[{"line_number":471,"context_line":"        client \u003d self.floating_ips_client"},{"line_number":472,"context_line":"        flips \u003d client.list_floatingips(**self.tenant_filter)"},{"line_number":473,"context_line":"        flips \u003d flips[\u0027floatingips\u0027]"},{"line_number":474,"context_line":"        # TODO(luigi): Floating ip don\u0027t have a prefix now"},{"line_number":475,"context_line":"        # flips \u003d [flip for flip in flips"},{"line_number":476,"context_line":"        #          if flip[\u0027id\u0027].startswith(self.prefix)]"},{"line_number":477,"context_line":""},{"line_number":478,"context_line":"        if not self.is_save_state:"}],"source_content_type":"text/x-python","patch_set":11,"id":"e85a8fdb_cbed3078","line":475,"range":{"start_line":474,"start_character":7,"end_line":475,"end_character":19},"in_reply_to":"05dbc8cd_60b876ea","updated":"2023-12-07 17:01:25.000000000","message":"+1","commit_id":"f3befbf7e430c69ffa0297b5bff03f2ec9d60984"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"779b6952ba9861d99414b1480345e7f9ea8f4d16","unresolved":false,"context_lines":[{"line_number":471,"context_line":"        client \u003d self.floating_ips_client"},{"line_number":472,"context_line":"        flips \u003d client.list_floatingips(**self.tenant_filter)"},{"line_number":473,"context_line":"        flips \u003d flips[\u0027floatingips\u0027]"},{"line_number":474,"context_line":"        # TODO(luigi): Floating ip don\u0027t have a prefix now"},{"line_number":475,"context_line":"        # flips \u003d [flip for flip in flips"},{"line_number":476,"context_line":"        #          if flip[\u0027id\u0027].startswith(self.prefix)]"},{"line_number":477,"context_line":""},{"line_number":478,"context_line":"        if not self.is_save_state:"}],"source_content_type":"text/x-python","patch_set":11,"id":"82717e2a_7b647eb5","line":475,"range":{"start_line":474,"start_character":7,"end_line":475,"end_character":19},"in_reply_to":"e85a8fdb_cbed3078","updated":"2023-12-11 07:49:27.000000000","message":"Done","commit_id":"f3befbf7e430c69ffa0297b5bff03f2ec9d60984"},{"author":{"_account_id":30674,"name":"Lukas Piwowarski","email":"lpiwowar@redhat.com","username":"lukas-piwowarski"},"change_message_id":"589b48c885efc01cd4b4bd083363d856398ad120","unresolved":true,"context_lines":[{"line_number":828,"context_line":"            # recreate list removing saved flavors"},{"line_number":829,"context_line":"            flavors \u003d [flavor for flavor in flavors if flavor[\u0027id\u0027]"},{"line_number":830,"context_line":"                       not in self.saved_state_json[\u0027flavors\u0027].keys()]"},{"line_number":831,"context_line":""},{"line_number":832,"context_line":"        if self.is_preserve:"},{"line_number":833,"context_line":"            flavors \u003d [flavor for flavor in flavors"},{"line_number":834,"context_line":"                       if flavor[\u0027id\u0027] not in CONF_FLAVORS]"}],"source_content_type":"text/x-python","patch_set":12,"id":"15c140a0_b142aff7","side":"PARENT","line":831,"updated":"2023-12-07 17:01:25.000000000","message":"Nit: We can leave this line as it is (no removal).","commit_id":"213d0a4c686fc99a730f7774b935bed0dd9a8ce4"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"779b6952ba9861d99414b1480345e7f9ea8f4d16","unresolved":false,"context_lines":[{"line_number":828,"context_line":"            # recreate list removing saved flavors"},{"line_number":829,"context_line":"            flavors \u003d [flavor for flavor in flavors if flavor[\u0027id\u0027]"},{"line_number":830,"context_line":"                       not in self.saved_state_json[\u0027flavors\u0027].keys()]"},{"line_number":831,"context_line":""},{"line_number":832,"context_line":"        if self.is_preserve:"},{"line_number":833,"context_line":"            flavors \u003d [flavor for flavor in flavors"},{"line_number":834,"context_line":"                       if flavor[\u0027id\u0027] not in CONF_FLAVORS]"}],"source_content_type":"text/x-python","patch_set":12,"id":"da493cd1_7684c6b7","side":"PARENT","line":831,"in_reply_to":"15c140a0_b142aff7","updated":"2023-12-11 07:49:27.000000000","message":"Done","commit_id":"213d0a4c686fc99a730f7774b935bed0dd9a8ce4"},{"author":{"_account_id":30674,"name":"Lukas Piwowarski","email":"lpiwowar@redhat.com","username":"lukas-piwowarski"},"change_message_id":"589b48c885efc01cd4b4bd083363d856398ad120","unresolved":true,"context_lines":[{"line_number":645,"context_line":"                 client.list_ports(**self.tenant_filter)[\u0027ports\u0027]"},{"line_number":646,"context_line":"                 if port[\"device_owner\"] \u003d\u003d \"\" or"},{"line_number":647,"context_line":"                 port[\"device_owner\"].startswith(\"compute:\")]"},{"line_number":648,"context_line":"        # TODO(luigi): port don\u0027t have a prefix now"},{"line_number":649,"context_line":"        # ports \u003d [port for port in ports if"},{"line_number":650,"context_line":"        #         port[\u0027name\u0027].startswith(self.prefix)]"},{"line_number":651,"context_line":""},{"line_number":652,"context_line":"        if not self.is_save_state:"},{"line_number":653,"context_line":"            # recreate list removing saved ports"}],"source_content_type":"text/x-python","patch_set":12,"id":"dba90f54_9a2678aa","line":650,"range":{"start_line":648,"start_character":7,"end_line":650,"end_character":55},"updated":"2023-12-07 17:01:25.000000000","message":"ditto","commit_id":"ec0017e81e2feb58ee833d0450f937f61e6045e3"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"779b6952ba9861d99414b1480345e7f9ea8f4d16","unresolved":false,"context_lines":[{"line_number":645,"context_line":"                 client.list_ports(**self.tenant_filter)[\u0027ports\u0027]"},{"line_number":646,"context_line":"                 if port[\"device_owner\"] \u003d\u003d \"\" or"},{"line_number":647,"context_line":"                 port[\"device_owner\"].startswith(\"compute:\")]"},{"line_number":648,"context_line":"        # TODO(luigi): port don\u0027t have a prefix now"},{"line_number":649,"context_line":"        # ports \u003d [port for port in ports if"},{"line_number":650,"context_line":"        #         port[\u0027name\u0027].startswith(self.prefix)]"},{"line_number":651,"context_line":""},{"line_number":652,"context_line":"        if not self.is_save_state:"},{"line_number":653,"context_line":"            # recreate list removing saved ports"}],"source_content_type":"text/x-python","patch_set":12,"id":"31b231b4_e501210e","line":650,"range":{"start_line":648,"start_character":7,"end_line":650,"end_character":55},"in_reply_to":"dba90f54_9a2678aa","updated":"2023-12-11 07:49:27.000000000","message":"Done","commit_id":"ec0017e81e2feb58ee833d0450f937f61e6045e3"},{"author":{"_account_id":30674,"name":"Lukas Piwowarski","email":"lpiwowar@redhat.com","username":"lukas-piwowarski"},"change_message_id":"589b48c885efc01cd4b4bd083363d856398ad120","unresolved":true,"context_lines":[{"line_number":730,"context_line":"        client \u003d self.subnets_client"},{"line_number":731,"context_line":"        subnets \u003d client.list_subnets(**self.tenant_filter)"},{"line_number":732,"context_line":"        subnets \u003d subnets[\u0027subnets\u0027]"},{"line_number":733,"context_line":"        # TODO(luigi): subnet don\u0027t have a prefix now"},{"line_number":734,"context_line":"        # subnets \u003d [subnet for subnet in subnets"},{"line_number":735,"context_line":"        #           if subnet[\u0027name\u0027].startswith(self.prefix)]"},{"line_number":736,"context_line":"        if not self.is_save_state:"},{"line_number":737,"context_line":"            # recreate list removing saved subnets"},{"line_number":738,"context_line":"            subnets \u003d [subnet for subnet in subnets if subnet[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":12,"id":"e8661c98_d02950bb","line":735,"range":{"start_line":733,"start_character":7,"end_line":735,"end_character":62},"updated":"2023-12-07 17:01:25.000000000","message":"ditto","commit_id":"ec0017e81e2feb58ee833d0450f937f61e6045e3"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"779b6952ba9861d99414b1480345e7f9ea8f4d16","unresolved":false,"context_lines":[{"line_number":730,"context_line":"        client \u003d self.subnets_client"},{"line_number":731,"context_line":"        subnets \u003d client.list_subnets(**self.tenant_filter)"},{"line_number":732,"context_line":"        subnets \u003d subnets[\u0027subnets\u0027]"},{"line_number":733,"context_line":"        # TODO(luigi): subnet don\u0027t have a prefix now"},{"line_number":734,"context_line":"        # subnets \u003d [subnet for subnet in subnets"},{"line_number":735,"context_line":"        #           if subnet[\u0027name\u0027].startswith(self.prefix)]"},{"line_number":736,"context_line":"        if not self.is_save_state:"},{"line_number":737,"context_line":"            # recreate list removing saved subnets"},{"line_number":738,"context_line":"            subnets \u003d [subnet for subnet in subnets if subnet[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":12,"id":"8b1f586c_200e085b","line":735,"range":{"start_line":733,"start_character":7,"end_line":735,"end_character":62},"in_reply_to":"e8661c98_d02950bb","updated":"2023-12-11 07:49:27.000000000","message":"Done","commit_id":"ec0017e81e2feb58ee833d0450f937f61e6045e3"},{"author":{"_account_id":30674,"name":"Lukas Piwowarski","email":"lpiwowar@redhat.com","username":"lukas-piwowarski"},"change_message_id":"589b48c885efc01cd4b4bd083363d856398ad120","unresolved":true,"context_lines":[{"line_number":811,"context_line":"    def list(self):"},{"line_number":812,"context_line":"        client \u003d self.client"},{"line_number":813,"context_line":"        regions \u003d client.list_regions()"},{"line_number":814,"context_line":"        regions \u003d [region for region in regions[\u0027regions\u0027]"},{"line_number":815,"context_line":"                   if region[\u0027id\u0027].startswith(self.prefix)]"},{"line_number":816,"context_line":"        if not self.is_save_state:"},{"line_number":817,"context_line":"            regions \u003d [region for region in regions if region[\u0027id\u0027]"},{"line_number":818,"context_line":"                       not in self.saved_state_json[\u0027regions\u0027].keys()]"}],"source_content_type":"text/x-python","patch_set":12,"id":"18411a47_2fc88afa","line":815,"range":{"start_line":814,"start_character":7,"end_line":815,"end_character":59},"updated":"2023-12-07 17:01:25.000000000","message":"If we add this it will break the line 823. Because we strip the response from the \"region\" section and then when we again call on line 823 regions[\u0027regions\u0027] we might get an error.\n\nSo maybe something like this (?):\n\n```\n if not self.is_save_state:\n            regions \u003d [region for region in regions if region[\u0027id\u0027]\n                       not in self.saved_state_json[\u0027regions\u0027].keys()]\n            LOG.debug(\"List count, %s Regions\", len(regions))\n            return regions\n        else:\n            LOG.debug(\"List count, %s Regions\", len(regions)) # \u003c- Here as well\n            return regions # \u003c- lets remove the [\"regions\u0027]\n```","commit_id":"ec0017e81e2feb58ee833d0450f937f61e6045e3"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"779b6952ba9861d99414b1480345e7f9ea8f4d16","unresolved":true,"context_lines":[{"line_number":811,"context_line":"    def list(self):"},{"line_number":812,"context_line":"        client \u003d self.client"},{"line_number":813,"context_line":"        regions \u003d client.list_regions()"},{"line_number":814,"context_line":"        regions \u003d [region for region in regions[\u0027regions\u0027]"},{"line_number":815,"context_line":"                   if region[\u0027id\u0027].startswith(self.prefix)]"},{"line_number":816,"context_line":"        if not self.is_save_state:"},{"line_number":817,"context_line":"            regions \u003d [region for region in regions if region[\u0027id\u0027]"},{"line_number":818,"context_line":"                       not in self.saved_state_json[\u0027regions\u0027].keys()]"}],"source_content_type":"text/x-python","patch_set":12,"id":"90493193_76e54a74","line":815,"range":{"start_line":814,"start_character":7,"end_line":815,"end_character":59},"in_reply_to":"18411a47_2fc88afa","updated":"2023-12-11 07:49:27.000000000","message":"please check the newer patchset if the problem still persists","commit_id":"ec0017e81e2feb58ee833d0450f937f61e6045e3"},{"author":{"_account_id":30674,"name":"Lukas Piwowarski","email":"lpiwowar@redhat.com","username":"lukas-piwowarski"},"change_message_id":"9b6be65c4451c7b9119ab0e4dc117fe7ad9fb82f","unresolved":false,"context_lines":[{"line_number":811,"context_line":"    def list(self):"},{"line_number":812,"context_line":"        client \u003d self.client"},{"line_number":813,"context_line":"        regions \u003d client.list_regions()"},{"line_number":814,"context_line":"        regions \u003d [region for region in regions[\u0027regions\u0027]"},{"line_number":815,"context_line":"                   if region[\u0027id\u0027].startswith(self.prefix)]"},{"line_number":816,"context_line":"        if not self.is_save_state:"},{"line_number":817,"context_line":"            regions \u003d [region for region in regions if region[\u0027id\u0027]"},{"line_number":818,"context_line":"                       not in self.saved_state_json[\u0027regions\u0027].keys()]"}],"source_content_type":"text/x-python","patch_set":12,"id":"b30ba3b5_8d6192eb","line":815,"range":{"start_line":814,"start_character":7,"end_line":815,"end_character":59},"in_reply_to":"8ae0b025_44923a5b","updated":"2023-12-14 14:58:20.000000000","message":"I disagree a super tiny bit :D. But I like the last update. It seems to be a good compromise.","commit_id":"ec0017e81e2feb58ee833d0450f937f61e6045e3"},{"author":{"_account_id":30674,"name":"Lukas Piwowarski","email":"lpiwowar@redhat.com","username":"lukas-piwowarski"},"change_message_id":"ced5bdf1c4d3bde19c22ec704dd8dc027865181d","unresolved":true,"context_lines":[{"line_number":811,"context_line":"    def list(self):"},{"line_number":812,"context_line":"        client \u003d self.client"},{"line_number":813,"context_line":"        regions \u003d client.list_regions()"},{"line_number":814,"context_line":"        regions \u003d [region for region in regions[\u0027regions\u0027]"},{"line_number":815,"context_line":"                   if region[\u0027id\u0027].startswith(self.prefix)]"},{"line_number":816,"context_line":"        if not self.is_save_state:"},{"line_number":817,"context_line":"            regions \u003d [region for region in regions if region[\u0027id\u0027]"},{"line_number":818,"context_line":"                       not in self.saved_state_json[\u0027regions\u0027].keys()]"}],"source_content_type":"text/x-python","patch_set":12,"id":"b43e358d_df55ea07","line":815,"range":{"start_line":814,"start_character":7,"end_line":815,"end_character":59},"in_reply_to":"90493193_76e54a74","updated":"2023-12-11 10:05:31.000000000","message":"Hmmm ... I\u0027m not sure. We got rid of the issue but the line was just remobed and we are not taking advantage of the self.prefix in the list() function no more for regions, don\u0027t we? The same applies for the NetworkMeteringLabelRuleService. I guess there was a reason behind this change but I do not see it right now.","commit_id":"ec0017e81e2feb58ee833d0450f937f61e6045e3"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"370ab88b7600efbd4956797552388c823b19060b","unresolved":true,"context_lines":[{"line_number":811,"context_line":"    def list(self):"},{"line_number":812,"context_line":"        client \u003d self.client"},{"line_number":813,"context_line":"        regions \u003d client.list_regions()"},{"line_number":814,"context_line":"        regions \u003d [region for region in regions[\u0027regions\u0027]"},{"line_number":815,"context_line":"                   if region[\u0027id\u0027].startswith(self.prefix)]"},{"line_number":816,"context_line":"        if not self.is_save_state:"},{"line_number":817,"context_line":"            regions \u003d [region for region in regions if region[\u0027id\u0027]"},{"line_number":818,"context_line":"                       not in self.saved_state_json[\u0027regions\u0027].keys()]"}],"source_content_type":"text/x-python","patch_set":12,"id":"fe86c228_73ffcb47","line":815,"range":{"start_line":814,"start_character":7,"end_line":815,"end_character":59},"in_reply_to":"b43e358d_df55ea07","updated":"2023-12-11 10:57:58.000000000","message":"correct, unit tests were failing for them, it appears those resources don\u0027t have names (I made a quick search only, so correct me if i\u0027m wrong)","commit_id":"ec0017e81e2feb58ee833d0450f937f61e6045e3"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"0150146bf29318d6f33186c85e1796a499400fab","unresolved":true,"context_lines":[{"line_number":811,"context_line":"    def list(self):"},{"line_number":812,"context_line":"        client \u003d self.client"},{"line_number":813,"context_line":"        regions \u003d client.list_regions()"},{"line_number":814,"context_line":"        regions \u003d [region for region in regions[\u0027regions\u0027]"},{"line_number":815,"context_line":"                   if region[\u0027id\u0027].startswith(self.prefix)]"},{"line_number":816,"context_line":"        if not self.is_save_state:"},{"line_number":817,"context_line":"            regions \u003d [region for region in regions if region[\u0027id\u0027]"},{"line_number":818,"context_line":"                       not in self.saved_state_json[\u0027regions\u0027].keys()]"}],"source_content_type":"text/x-python","patch_set":12,"id":"8ae0b025_44923a5b","line":815,"range":{"start_line":814,"start_character":7,"end_line":815,"end_character":59},"in_reply_to":"f9ad9493_e1652fba","updated":"2023-12-14 13:57:54.000000000","message":"I don\u0027t see a \"name\" parameter in the request for creating a region in the documentation \u003d it doesn\u0027t have a name, the prefix works only with names. According to my logic, regions don\u0027t have names thus can\u0027t be filtered based on a prefix, similarly to floating ips and others.\n\nThe name parameter that can be seen in https://opendev.org/openstack/tempest/src/commit/ab3686d28d2728001e3bd2fd543575087bf00137/tempest/api/identity/admin/v3/test_regions.py#L96 is meant for the rand_name function that generates a random string usually (and originally meant) to get a unique name of a resource, but in this case, for some reason, it\u0027s used to generate a unique description.","commit_id":"ec0017e81e2feb58ee833d0450f937f61e6045e3"},{"author":{"_account_id":30674,"name":"Lukas Piwowarski","email":"lpiwowar@redhat.com","username":"lukas-piwowarski"},"change_message_id":"a8333a70ee262952ad198f5c702a3c8c37e39550","unresolved":true,"context_lines":[{"line_number":811,"context_line":"    def list(self):"},{"line_number":812,"context_line":"        client \u003d self.client"},{"line_number":813,"context_line":"        regions \u003d client.list_regions()"},{"line_number":814,"context_line":"        regions \u003d [region for region in regions[\u0027regions\u0027]"},{"line_number":815,"context_line":"                   if region[\u0027id\u0027].startswith(self.prefix)]"},{"line_number":816,"context_line":"        if not self.is_save_state:"},{"line_number":817,"context_line":"            regions \u003d [region for region in regions if region[\u0027id\u0027]"},{"line_number":818,"context_line":"                       not in self.saved_state_json[\u0027regions\u0027].keys()]"}],"source_content_type":"text/x-python","patch_set":12,"id":"f9ad9493_e1652fba","line":815,"range":{"start_line":814,"start_character":7,"end_line":815,"end_character":59},"in_reply_to":"fe86c228_73ffcb47","updated":"2023-12-14 10:55:02.000000000","message":"Regions seem to have something like ID and name in one. The API enables the user to specify the name/ID of the resource [1][2]. This means that it is possible to identify resources which were generated by tempest by including prefix in the Name/ID during their creation. The thing is that we are currently adding the prefix to a description [3]. I think that if we want to do this correctly then we should filter out the regions based on their description (?).\n\n[1] https://docs.openstack.org/api-ref/identity/v3/#create-region\n[2] https://opendev.org/openstack/tempest/src/commit/ab3686d28d2728001e3bd2fd543575087bf00137/tempest/api/identity/admin/v3/test_regions.py#L94\n[3] https://opendev.org/openstack/tempest/src/commit/ab3686d28d2728001e3bd2fd543575087bf00137/tempest/api/identity/admin/v3/test_regions.py#L96","commit_id":"ec0017e81e2feb58ee833d0450f937f61e6045e3"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"f0d1d5c0747268dd33f14c9b3b1dd332d1d29612","unresolved":true,"context_lines":[{"line_number":465,"context_line":"            self.data[\u0027networks\u0027][network[\u0027id\u0027]] \u003d network"},{"line_number":466,"context_line":""},{"line_number":467,"context_line":""},{"line_number":468,"context_line":"class NetworkFloatingIpService(BaseNetworkService):"},{"line_number":469,"context_line":""},{"line_number":470,"context_line":"    def list(self):"},{"line_number":471,"context_line":"        client \u003d self.floating_ips_client"}],"source_content_type":"text/x-python","patch_set":15,"id":"7af370f5_5a7e2379","line":468,"range":{"start_line":468,"start_character":6,"end_line":468,"end_character":30},"updated":"2023-12-11 13:26:05.000000000","message":"hmm, if a resource doesn\u0027t have name, like this one, then it shouldn\u0027t be deleted based on prefix filtering - at least me as a user would expect that the cleanup deletes only the resources that match my prefix criteria, if a resource doesn\u0027t have name, it shouldn\u0027t be deleted - it may be important for another user using different prefix","commit_id":"9e3c70c9924ee8690575ab992012aafab236d619"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"bcdb1e21c61a327e29bd3cd505eb8a369e7c3f44","unresolved":false,"context_lines":[{"line_number":465,"context_line":"            self.data[\u0027networks\u0027][network[\u0027id\u0027]] \u003d network"},{"line_number":466,"context_line":""},{"line_number":467,"context_line":""},{"line_number":468,"context_line":"class NetworkFloatingIpService(BaseNetworkService):"},{"line_number":469,"context_line":""},{"line_number":470,"context_line":"    def list(self):"},{"line_number":471,"context_line":"        client \u003d self.floating_ips_client"}],"source_content_type":"text/x-python","patch_set":15,"id":"4ab91188_14845012","line":468,"range":{"start_line":468,"start_character":6,"end_line":468,"end_character":30},"in_reply_to":"5a45125a_f715435c","updated":"2023-12-12 16:25:30.000000000","message":"Done","commit_id":"9e3c70c9924ee8690575ab992012aafab236d619"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"e08687ba086c2cb24b8d4590e09f888fdcd2b03a","unresolved":true,"context_lines":[{"line_number":465,"context_line":"            self.data[\u0027networks\u0027][network[\u0027id\u0027]] \u003d network"},{"line_number":466,"context_line":""},{"line_number":467,"context_line":""},{"line_number":468,"context_line":"class NetworkFloatingIpService(BaseNetworkService):"},{"line_number":469,"context_line":""},{"line_number":470,"context_line":"    def list(self):"},{"line_number":471,"context_line":"        client \u003d self.floating_ips_client"}],"source_content_type":"text/x-python","patch_set":15,"id":"5a45125a_f715435c","line":468,"range":{"start_line":468,"start_character":6,"end_line":468,"end_character":30},"in_reply_to":"7af370f5_5a7e2379","updated":"2023-12-12 16:24:56.000000000","message":"in other words, if the prefix isn\u0027t \"\" (empty string) then the list shouldn\u0027t return anything as that\u0027s the scenario we\u0027re filtering based on the prefix","commit_id":"9e3c70c9924ee8690575ab992012aafab236d619"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"f0d1d5c0747268dd33f14c9b3b1dd332d1d29612","unresolved":true,"context_lines":[{"line_number":633,"context_line":"            self.data[\u0027metering_labels\u0027][label[\u0027id\u0027]] \u003d label[\u0027name\u0027]"},{"line_number":634,"context_line":""},{"line_number":635,"context_line":""},{"line_number":636,"context_line":"class NetworkPortService(BaseNetworkService):"},{"line_number":637,"context_line":""},{"line_number":638,"context_line":"    def list(self):"},{"line_number":639,"context_line":"        client \u003d self.ports_client"}],"source_content_type":"text/x-python","patch_set":15,"id":"ceeaf8b8_3902fc7c","line":636,"range":{"start_line":636,"start_character":6,"end_line":636,"end_character":24},"updated":"2023-12-11 13:26:05.000000000","message":"this service is missing the prefix filtration feature\n```\nports \u003d [port for port in ports\n         if port[\u0027name\u0027].startswith(self.prefix)]\n```","commit_id":"9e3c70c9924ee8690575ab992012aafab236d619"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"bcdb1e21c61a327e29bd3cd505eb8a369e7c3f44","unresolved":false,"context_lines":[{"line_number":633,"context_line":"            self.data[\u0027metering_labels\u0027][label[\u0027id\u0027]] \u003d label[\u0027name\u0027]"},{"line_number":634,"context_line":""},{"line_number":635,"context_line":""},{"line_number":636,"context_line":"class NetworkPortService(BaseNetworkService):"},{"line_number":637,"context_line":""},{"line_number":638,"context_line":"    def list(self):"},{"line_number":639,"context_line":"        client \u003d self.ports_client"}],"source_content_type":"text/x-python","patch_set":15,"id":"62c0e4b7_bd3352b0","line":636,"range":{"start_line":636,"start_character":6,"end_line":636,"end_character":24},"in_reply_to":"ceeaf8b8_3902fc7c","updated":"2023-12-12 16:25:30.000000000","message":"Done","commit_id":"9e3c70c9924ee8690575ab992012aafab236d619"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"f0d1d5c0747268dd33f14c9b3b1dd332d1d29612","unresolved":true,"context_lines":[{"line_number":717,"context_line":"            self.data[\u0027security_groups\u0027][secgroup[\u0027id\u0027]] \u003d secgroup[\u0027name\u0027]"},{"line_number":718,"context_line":""},{"line_number":719,"context_line":""},{"line_number":720,"context_line":"class NetworkSubnetService(BaseNetworkService):"},{"line_number":721,"context_line":""},{"line_number":722,"context_line":"    def list(self):"},{"line_number":723,"context_line":"        client \u003d self.subnets_client"}],"source_content_type":"text/x-python","patch_set":15,"id":"621ec670_579df3b1","line":720,"range":{"start_line":720,"start_character":6,"end_line":720,"end_character":26},"updated":"2023-12-11 13:26:05.000000000","message":"this service is missing the prefix filtering feature\n```\n subnets \u003d [subnet for subnet in subnets\n            if subnet[\u0027name\u0027].startswith(self.prefix)]\n```","commit_id":"9e3c70c9924ee8690575ab992012aafab236d619"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"bcdb1e21c61a327e29bd3cd505eb8a369e7c3f44","unresolved":false,"context_lines":[{"line_number":717,"context_line":"            self.data[\u0027security_groups\u0027][secgroup[\u0027id\u0027]] \u003d secgroup[\u0027name\u0027]"},{"line_number":718,"context_line":""},{"line_number":719,"context_line":""},{"line_number":720,"context_line":"class NetworkSubnetService(BaseNetworkService):"},{"line_number":721,"context_line":""},{"line_number":722,"context_line":"    def list(self):"},{"line_number":723,"context_line":"        client \u003d self.subnets_client"}],"source_content_type":"text/x-python","patch_set":15,"id":"70fb8c20_4e0cedf7","line":720,"range":{"start_line":720,"start_character":6,"end_line":720,"end_character":26},"in_reply_to":"621ec670_579df3b1","updated":"2023-12-12 16:25:30.000000000","message":"Done","commit_id":"9e3c70c9924ee8690575ab992012aafab236d619"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"233b615ee4d0a468deb5d60a82df8c516de8e2f6","unresolved":true,"context_lines":[{"line_number":157,"context_line":"        client \u003d self.client"},{"line_number":158,"context_line":"        snaps \u003d client.list_snapshots()[\u0027snapshots\u0027]"},{"line_number":159,"context_line":"        snaps \u003d [snap for snap in snaps"},{"line_number":160,"context_line":"                 if snap[\u0027name\u0027].startswith(self.prefix)]"},{"line_number":161,"context_line":"        if not self.is_save_state:"},{"line_number":162,"context_line":"            # recreate list removing saved snapshots"},{"line_number":163,"context_line":"            snaps \u003d [snap for snap in snaps if snap[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":16,"id":"47e74ea8_0c2a1ef3","line":160,"range":{"start_line":160,"start_character":33,"end_line":160,"end_character":43},"updated":"2023-12-15 00:23:04.000000000","message":"++, I was thinking to pass the self.prefix in list API query param but that can return resource having that string in name and not always name start with the prefix.","commit_id":"a2207afd6308752974daf2c7d0a0102a7bfff830"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"2c020386fc6b7d3481f78c3c636fa756ab99d373","unresolved":false,"context_lines":[{"line_number":157,"context_line":"        client \u003d self.client"},{"line_number":158,"context_line":"        snaps \u003d client.list_snapshots()[\u0027snapshots\u0027]"},{"line_number":159,"context_line":"        snaps \u003d [snap for snap in snaps"},{"line_number":160,"context_line":"                 if snap[\u0027name\u0027].startswith(self.prefix)]"},{"line_number":161,"context_line":"        if not self.is_save_state:"},{"line_number":162,"context_line":"            # recreate list removing saved snapshots"},{"line_number":163,"context_line":"            snaps \u003d [snap for snap in snaps if snap[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":16,"id":"bf4eb66c_34c26bc1","line":160,"range":{"start_line":160,"start_character":33,"end_line":160,"end_character":43},"in_reply_to":"47e74ea8_0c2a1ef3","updated":"2023-12-21 18:55:33.000000000","message":"Done","commit_id":"a2207afd6308752974daf2c7d0a0102a7bfff830"},{"author":{"_account_id":33983,"name":"Luigi Dino Tamagnone","display_name":"luigi","email":"ltamagno@redhat.com","username":"ltamagno"},"change_message_id":"9baead41b65ac00d25e20ca0093bbefdd1c93e52","unresolved":true,"context_lines":[{"line_number":674,"context_line":"                 if port[\"device_owner\"] \u003d\u003d \"\" or"},{"line_number":675,"context_line":"                 port[\"device_owner\"].startswith(\"compute:\")]"},{"line_number":676,"context_line":"        ports \u003d [port for port in ports"},{"line_number":677,"context_line":"                 if port[\u0027name\u0027].startswith(self.prefix)]"},{"line_number":678,"context_line":""},{"line_number":679,"context_line":"        if not self.is_save_state:"},{"line_number":680,"context_line":"            # recreate list removing saved ports"}],"source_content_type":"text/x-python","patch_set":16,"id":"625ea559_96b2a426","line":677,"updated":"2023-12-16 16:08:15.000000000","message":"It seems to me tempest doesn\u0027t give the port a name.\nA ports can be created with an instance and it will not get any name. But in this case it will removed with the instance I think","commit_id":"a2207afd6308752974daf2c7d0a0102a7bfff830"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"e915a1741da0c11fc6b536f1aaa2eceb3611c2f0","unresolved":false,"context_lines":[{"line_number":674,"context_line":"                 if port[\"device_owner\"] \u003d\u003d \"\" or"},{"line_number":675,"context_line":"                 port[\"device_owner\"].startswith(\"compute:\")]"},{"line_number":676,"context_line":"        ports \u003d [port for port in ports"},{"line_number":677,"context_line":"                 if port[\u0027name\u0027].startswith(self.prefix)]"},{"line_number":678,"context_line":""},{"line_number":679,"context_line":"        if not self.is_save_state:"},{"line_number":680,"context_line":"            # recreate list removing saved ports"}],"source_content_type":"text/x-python","patch_set":16,"id":"642f6210_d446917c","line":677,"in_reply_to":"01d570c4_c85414a1","updated":"2023-12-21 13:17:51.000000000","message":"Done","commit_id":"a2207afd6308752974daf2c7d0a0102a7bfff830"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"d1a08261465c0aef02ca3bd87ec520da20035d3b","unresolved":true,"context_lines":[{"line_number":674,"context_line":"                 if port[\"device_owner\"] \u003d\u003d \"\" or"},{"line_number":675,"context_line":"                 port[\"device_owner\"].startswith(\"compute:\")]"},{"line_number":676,"context_line":"        ports \u003d [port for port in ports"},{"line_number":677,"context_line":"                 if port[\u0027name\u0027].startswith(self.prefix)]"},{"line_number":678,"context_line":""},{"line_number":679,"context_line":"        if not self.is_save_state:"},{"line_number":680,"context_line":"            # recreate list removing saved ports"}],"source_content_type":"text/x-python","patch_set":16,"id":"01d570c4_c85414a1","line":677,"in_reply_to":"625ea559_96b2a426","updated":"2023-12-18 11:20:21.000000000","message":"The ports tempest create are created with the prefix, see this (that patch is already merged):\nhttps://review.opendev.org/c/openstack/tempest/+/902252/6/tempest/api/network/admin/test_ports.py\nor this:\nhttps://review.opendev.org/c/openstack/tempest/+/902252/6/tempest/api/network/test_ports.py","commit_id":"a2207afd6308752974daf2c7d0a0102a7bfff830"},{"author":{"_account_id":33983,"name":"Luigi Dino Tamagnone","display_name":"luigi","email":"ltamagno@redhat.com","username":"ltamagno"},"change_message_id":"9baead41b65ac00d25e20ca0093bbefdd1c93e52","unresolved":true,"context_lines":[{"line_number":758,"context_line":"        subnets \u003d client.list_subnets(**self.tenant_filter)"},{"line_number":759,"context_line":"        subnets \u003d subnets[\u0027subnets\u0027]"},{"line_number":760,"context_line":"        subnets \u003d [subnet for subnet in subnets"},{"line_number":761,"context_line":"                   if subnet[\u0027name\u0027].startswith(self.prefix)]"},{"line_number":762,"context_line":"        if not self.is_save_state:"},{"line_number":763,"context_line":"            # recreate list removing saved subnets"},{"line_number":764,"context_line":"            subnets \u003d [subnet for subnet in subnets if subnet[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":16,"id":"9ef40a2e_6e333367","line":761,"updated":"2023-12-16 16:08:15.000000000","message":"It seems to me tempest did not create the subnet with a name","commit_id":"a2207afd6308752974daf2c7d0a0102a7bfff830"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"e915a1741da0c11fc6b536f1aaa2eceb3611c2f0","unresolved":false,"context_lines":[{"line_number":758,"context_line":"        subnets \u003d client.list_subnets(**self.tenant_filter)"},{"line_number":759,"context_line":"        subnets \u003d subnets[\u0027subnets\u0027]"},{"line_number":760,"context_line":"        subnets \u003d [subnet for subnet in subnets"},{"line_number":761,"context_line":"                   if subnet[\u0027name\u0027].startswith(self.prefix)]"},{"line_number":762,"context_line":"        if not self.is_save_state:"},{"line_number":763,"context_line":"            # recreate list removing saved subnets"},{"line_number":764,"context_line":"            subnets \u003d [subnet for subnet in subnets if subnet[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":16,"id":"9dc74c2d_3372dc7d","line":761,"in_reply_to":"02162eba_dc803158","updated":"2023-12-21 13:17:51.000000000","message":"Done","commit_id":"a2207afd6308752974daf2c7d0a0102a7bfff830"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"d1a08261465c0aef02ca3bd87ec520da20035d3b","unresolved":true,"context_lines":[{"line_number":758,"context_line":"        subnets \u003d client.list_subnets(**self.tenant_filter)"},{"line_number":759,"context_line":"        subnets \u003d subnets[\u0027subnets\u0027]"},{"line_number":760,"context_line":"        subnets \u003d [subnet for subnet in subnets"},{"line_number":761,"context_line":"                   if subnet[\u0027name\u0027].startswith(self.prefix)]"},{"line_number":762,"context_line":"        if not self.is_save_state:"},{"line_number":763,"context_line":"            # recreate list removing saved subnets"},{"line_number":764,"context_line":"            subnets \u003d [subnet for subnet in subnets if subnet[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":16,"id":"02162eba_dc803158","line":761,"in_reply_to":"9ef40a2e_6e333367","updated":"2023-12-18 11:20:21.000000000","message":"they should be, in the previous patch we added the prefix to all methods that create a resource and used rand_name to generate a name for it.\nE.g. here we can see that a subnet created here is created and named with the prefix:\nhttps://review.opendev.org/c/openstack/tempest/+/902252/6/tempest/api/network/test_networks.py","commit_id":"a2207afd6308752974daf2c7d0a0102a7bfff830"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"85c89dbdb0c8ff561807153612ff3adec4214eb2","unresolved":true,"context_lines":[{"line_number":156,"context_line":"    def list(self):"},{"line_number":157,"context_line":"        client \u003d self.client"},{"line_number":158,"context_line":"        snaps \u003d client.list_snapshots()[\u0027snapshots\u0027]"},{"line_number":159,"context_line":"        snaps \u003d [snap for snap in snaps"},{"line_number":160,"context_line":"                 if snap[\u0027name\u0027].startswith(self.prefix)]"},{"line_number":161,"context_line":"        if not self.is_save_state:"},{"line_number":162,"context_line":"            # recreate list removing saved snapshots"},{"line_number":163,"context_line":"            snaps \u003d [snap for snap in snaps if snap[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":20,"id":"d1199f78_eb8e89db","line":160,"range":{"start_line":159,"start_character":0,"end_line":160,"end_character":57},"updated":"2024-01-04 21:21:50.000000000","message":"is this not wrong ?\n\nIf tempest cleanup run with --init-saved-state then it will save only resource with self.prefix instead of saving the existing resources in the env/cloud. Which is totally wrong as --init-saved-state supposed to save all the resources present in cloud before running tempest cleanup so that tempest cleanup can avoid deleting those resources.","commit_id":"5416535ec0b741f9a7c00286bacc6822666809a9"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"26d6450f49c2ee44153551f4ca4cbcd515ed5295","unresolved":true,"context_lines":[{"line_number":156,"context_line":"    def list(self):"},{"line_number":157,"context_line":"        client \u003d self.client"},{"line_number":158,"context_line":"        snaps \u003d client.list_snapshots()[\u0027snapshots\u0027]"},{"line_number":159,"context_line":"        snaps \u003d [snap for snap in snaps"},{"line_number":160,"context_line":"                 if snap[\u0027name\u0027].startswith(self.prefix)]"},{"line_number":161,"context_line":"        if not self.is_save_state:"},{"line_number":162,"context_line":"            # recreate list removing saved snapshots"},{"line_number":163,"context_line":"            snaps \u003d [snap for snap in snaps if snap[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":20,"id":"c3aaea07_9ef453ff","line":160,"range":{"start_line":159,"start_character":0,"end_line":160,"end_character":57},"in_reply_to":"3dc105fa_c1b8fc58","updated":"2024-01-25 03:32:01.000000000","message":"ohk, that seems little hacky instead we should make it in if else state to make it more readable and less error prone, I mean clear case of 1. save state only if running with save-state option (do not even filter with --prefix or so) 2. delete the resources as per set options","commit_id":"5416535ec0b741f9a7c00286bacc6822666809a9"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"7f598b9361697dd2553ec101e3a95509068d05fc","unresolved":false,"context_lines":[{"line_number":156,"context_line":"    def list(self):"},{"line_number":157,"context_line":"        client \u003d self.client"},{"line_number":158,"context_line":"        snaps \u003d client.list_snapshots()[\u0027snapshots\u0027]"},{"line_number":159,"context_line":"        snaps \u003d [snap for snap in snaps"},{"line_number":160,"context_line":"                 if snap[\u0027name\u0027].startswith(self.prefix)]"},{"line_number":161,"context_line":"        if not self.is_save_state:"},{"line_number":162,"context_line":"            # recreate list removing saved snapshots"},{"line_number":163,"context_line":"            snaps \u003d [snap for snap in snaps if snap[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":20,"id":"6a7b0fda_a2bd3fc1","line":160,"range":{"start_line":159,"start_character":0,"end_line":160,"end_character":57},"in_reply_to":"4ea13bcc_c0284716","updated":"2024-01-26 18:48:16.000000000","message":"ok, I will check in next patch","commit_id":"5416535ec0b741f9a7c00286bacc6822666809a9"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"bc92e7449a17613766b7d5e8e2b3df680778a206","unresolved":false,"context_lines":[{"line_number":156,"context_line":"    def list(self):"},{"line_number":157,"context_line":"        client \u003d self.client"},{"line_number":158,"context_line":"        snaps \u003d client.list_snapshots()[\u0027snapshots\u0027]"},{"line_number":159,"context_line":"        snaps \u003d [snap for snap in snaps"},{"line_number":160,"context_line":"                 if snap[\u0027name\u0027].startswith(self.prefix)]"},{"line_number":161,"context_line":"        if not self.is_save_state:"},{"line_number":162,"context_line":"            # recreate list removing saved snapshots"},{"line_number":163,"context_line":"            snaps \u003d [snap for snap in snaps if snap[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":20,"id":"4ea13bcc_c0284716","line":160,"range":{"start_line":159,"start_character":0,"end_line":160,"end_character":57},"in_reply_to":"c3aaea07_9ef453ff","updated":"2024-01-25 10:14:55.000000000","message":"agree with hacky .. anyway, this is old news, next patchsets changed this logic, am gonna mark this as resolved","commit_id":"5416535ec0b741f9a7c00286bacc6822666809a9"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"7901b5d5a113250c7060184ecdbca44af89d755a","unresolved":true,"context_lines":[{"line_number":156,"context_line":"    def list(self):"},{"line_number":157,"context_line":"        client \u003d self.client"},{"line_number":158,"context_line":"        snaps \u003d client.list_snapshots()[\u0027snapshots\u0027]"},{"line_number":159,"context_line":"        snaps \u003d [snap for snap in snaps"},{"line_number":160,"context_line":"                 if snap[\u0027name\u0027].startswith(self.prefix)]"},{"line_number":161,"context_line":"        if not self.is_save_state:"},{"line_number":162,"context_line":"            # recreate list removing saved snapshots"},{"line_number":163,"context_line":"            snaps \u003d [snap for snap in snaps if snap[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":20,"id":"3dc105fa_c1b8fc58","line":160,"range":{"start_line":159,"start_character":0,"end_line":160,"end_character":57},"in_reply_to":"d1199f78_eb8e89db","updated":"2024-01-07 16:07:47.000000000","message":"no, when we run with --init-saved-state we overwrite the prefix to \"\" to record all the resources in the system:\nhttps://review.opendev.org/c/openstack/tempest/+/879923/20/tempest/cmd/cleanup.py#301","commit_id":"5416535ec0b741f9a7c00286bacc6822666809a9"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"85c89dbdb0c8ff561807153612ff3adec4214eb2","unresolved":true,"context_lines":[{"line_number":156,"context_line":"    def list(self):"},{"line_number":157,"context_line":"        client \u003d self.client"},{"line_number":158,"context_line":"        snaps \u003d client.list_snapshots()[\u0027snapshots\u0027]"},{"line_number":159,"context_line":"        snaps \u003d [snap for snap in snaps"},{"line_number":160,"context_line":"                 if snap[\u0027name\u0027].startswith(self.prefix)]"},{"line_number":161,"context_line":"        if not self.is_save_state:"},{"line_number":162,"context_line":"            # recreate list removing saved snapshots"},{"line_number":163,"context_line":"            snaps \u003d [snap for snap in snaps if snap[\u0027id\u0027]"},{"line_number":164,"context_line":"                     not in self.saved_state_json[\u0027snapshots\u0027].keys()]"},{"line_number":165,"context_line":"        LOG.debug(\"List count, %s Snapshots\", len(snaps))"},{"line_number":166,"context_line":"        return snaps"},{"line_number":167,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"22df978b_da534edd","line":164,"range":{"start_line":159,"start_character":0,"end_line":164,"end_character":70},"updated":"2024-01-04 21:21:50.000000000","message":"as per previous comment, we can make these condition like below (writing pseudo code only):\n\n    def list(self):\n        client \u003d self.client\n        snaps \u003d client.list_snapshots()[\u0027snapshots\u0027]\n        if not self.is_save_state:\n            if \"self.saved_state_json is not empty\"\n                # recreate list removing saved snapshots\n                snaps \u003d [snap for snap in snaps if snap[\u0027id\u0027]\n                         not in self.saved_state_json[\u0027snapshots\u0027].keys()]\n            elif self.is_resource_list:  (this will be done in 897847)\n                # recreate list which resource present in self.resource_list_json\n                snaps \u003d [snap for snap in snaps if snap[\u0027id\u0027]\n                         in self.resource_list_json[\u0027snapshots\u0027].keys()]\n            elif self.prefix:\n                # recreate list which name matches with self.prefix\n                snaps \u003d [snap for snap in snaps\n                 if snap[\u0027name\u0027].startswith(self.prefix)]\n        LOG.debug(\"List count, %s Snapshots\", len(snaps))\n        return snaps","commit_id":"5416535ec0b741f9a7c00286bacc6822666809a9"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"51fac5b70f23dbcc3b38110e2b06a7a7dfbeb363","unresolved":true,"context_lines":[{"line_number":156,"context_line":"    def list(self):"},{"line_number":157,"context_line":"        client \u003d self.client"},{"line_number":158,"context_line":"        snaps \u003d client.list_snapshots()[\u0027snapshots\u0027]"},{"line_number":159,"context_line":"        snaps \u003d [snap for snap in snaps"},{"line_number":160,"context_line":"                 if snap[\u0027name\u0027].startswith(self.prefix)]"},{"line_number":161,"context_line":"        if not self.is_save_state:"},{"line_number":162,"context_line":"            # recreate list removing saved snapshots"},{"line_number":163,"context_line":"            snaps \u003d [snap for snap in snaps if snap[\u0027id\u0027]"},{"line_number":164,"context_line":"                     not in self.saved_state_json[\u0027snapshots\u0027].keys()]"},{"line_number":165,"context_line":"        LOG.debug(\"List count, %s Snapshots\", len(snaps))"},{"line_number":166,"context_line":"        return snaps"},{"line_number":167,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"32dc599f_63a0b0b7","line":164,"range":{"start_line":159,"start_character":0,"end_line":164,"end_character":70},"in_reply_to":"1dc7354b_8d520197","updated":"2024-01-31 10:44:14.000000000","message":"\"Well my point is we are not fixing that bug or so but because someone does not read how to use this CLI, we are making this CLI more worst and complex to use.\" - I think that\u0027s a win for us, users that feel that way should be very cautious with the cleanup or they risk deleting something they didn\u0027t want to .. here I\u0027m on side of safety and want to protect the data, user\u0027s experience is secondary to me, especially, in the case when not understanding the doc leads to deleting *less* resources.\n\nmaybe the name, \u0027--no-prefix\u0027 is the problem here, what if we renamed it to something completely different, something like: \u0027--disable-precaution\u0027 - precaution that protects from deleting resources that were created by tempest\u0027 or etc - something that doesn\u0027t remind \"prefix\"","commit_id":"5416535ec0b741f9a7c00286bacc6822666809a9"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"7f598b9361697dd2553ec101e3a95509068d05fc","unresolved":true,"context_lines":[{"line_number":156,"context_line":"    def list(self):"},{"line_number":157,"context_line":"        client \u003d self.client"},{"line_number":158,"context_line":"        snaps \u003d client.list_snapshots()[\u0027snapshots\u0027]"},{"line_number":159,"context_line":"        snaps \u003d [snap for snap in snaps"},{"line_number":160,"context_line":"                 if snap[\u0027name\u0027].startswith(self.prefix)]"},{"line_number":161,"context_line":"        if not self.is_save_state:"},{"line_number":162,"context_line":"            # recreate list removing saved snapshots"},{"line_number":163,"context_line":"            snaps \u003d [snap for snap in snaps if snap[\u0027id\u0027]"},{"line_number":164,"context_line":"                     not in self.saved_state_json[\u0027snapshots\u0027].keys()]"},{"line_number":165,"context_line":"        LOG.debug(\"List count, %s Snapshots\", len(snaps))"},{"line_number":166,"context_line":"        return snaps"},{"line_number":167,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"e52e7bb7_6cd234db","line":164,"range":{"start_line":159,"start_character":0,"end_line":164,"end_character":70},"in_reply_to":"211c17e8_ed4a6e08","updated":"2024-01-26 18:48:16.000000000","message":"it seems not resolved with the new change also which has same issue I commented here. We need to clearly separate the both cases of \n1. cleanup run for saving the env state before tempest run (self.is_save_state)\n2. cleanup run to do actual cleanup based on one of the single way of cleanup (not self.is_save_state:)\n\nwhich can be understand/achieve by the below condition (writing again for quick ref)\n\ndef list(self):\n    client \u003d self.client\n    snaps \u003d client.list_snapshots()[\u0027snapshots\u0027]\n    # This logic is when Tempest cleanup is run to perform the actual cleanup\n    # It will perform the cleanup via a single way based on the configuration and provided options during cleanup CLI.\n    if not self.is_save_state:\n        if \"self.saved_state_json is not empty\"\n            # recreate list removing saved snapshots\n            snaps \u003d [snap for snap in snaps if snap[\u0027id\u0027]\n                     not in self.saved_state_json[\u0027snapshots\u0027].keys()]\n        elif self.is_resource_list:  (this will be done in 897847)\n            # recreate list which resource present in self.resource_list_json\n            snaps \u003d [snap for snap in snaps if snap[\u0027id\u0027]\n                     in self.resource_list_json[\u0027snapshots\u0027].keys()]\n        elif self.prefix:\n            # recreate list which name matches with self.prefix\n            snaps \u003d [snap for snap in snaps\n             if snap[\u0027name\u0027].startswith(self.prefix)]\n    LOG.debug(\"List count, %s Snapshots\", len(snaps))\n    return snaps","commit_id":"5416535ec0b741f9a7c00286bacc6822666809a9"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"7901b5d5a113250c7060184ecdbca44af89d755a","unresolved":true,"context_lines":[{"line_number":156,"context_line":"    def list(self):"},{"line_number":157,"context_line":"        client \u003d self.client"},{"line_number":158,"context_line":"        snaps \u003d client.list_snapshots()[\u0027snapshots\u0027]"},{"line_number":159,"context_line":"        snaps \u003d [snap for snap in snaps"},{"line_number":160,"context_line":"                 if snap[\u0027name\u0027].startswith(self.prefix)]"},{"line_number":161,"context_line":"        if not self.is_save_state:"},{"line_number":162,"context_line":"            # recreate list removing saved snapshots"},{"line_number":163,"context_line":"            snaps \u003d [snap for snap in snaps if snap[\u0027id\u0027]"},{"line_number":164,"context_line":"                     not in self.saved_state_json[\u0027snapshots\u0027].keys()]"},{"line_number":165,"context_line":"        LOG.debug(\"List count, %s Snapshots\", len(snaps))"},{"line_number":166,"context_line":"        return snaps"},{"line_number":167,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"e4789aba_3a9c8c0b","line":164,"range":{"start_line":159,"start_character":0,"end_line":164,"end_character":70},"in_reply_to":"22df978b_da534edd","updated":"2024-01-07 16:07:47.000000000","message":"We avoided multiple if-else statements by overwriting the prefix to \"\" when --init-saved-state is passed:\nhttps://review.opendev.org/c/openstack/tempest/+/879923/20/tempest/cmd/cleanup.py#301","commit_id":"5416535ec0b741f9a7c00286bacc6822666809a9"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"ae85883b8bc4b4af70cc4304958a74d31e33ab69","unresolved":false,"context_lines":[{"line_number":156,"context_line":"    def list(self):"},{"line_number":157,"context_line":"        client \u003d self.client"},{"line_number":158,"context_line":"        snaps \u003d client.list_snapshots()[\u0027snapshots\u0027]"},{"line_number":159,"context_line":"        snaps \u003d [snap for snap in snaps"},{"line_number":160,"context_line":"                 if snap[\u0027name\u0027].startswith(self.prefix)]"},{"line_number":161,"context_line":"        if not self.is_save_state:"},{"line_number":162,"context_line":"            # recreate list removing saved snapshots"},{"line_number":163,"context_line":"            snaps \u003d [snap for snap in snaps if snap[\u0027id\u0027]"},{"line_number":164,"context_line":"                     not in self.saved_state_json[\u0027snapshots\u0027].keys()]"},{"line_number":165,"context_line":"        LOG.debug(\"List count, %s Snapshots\", len(snaps))"},{"line_number":166,"context_line":"        return snaps"},{"line_number":167,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"25d4883f_ddc5116b","line":164,"range":{"start_line":159,"start_character":0,"end_line":164,"end_character":70},"in_reply_to":"32dc599f_63a0b0b7","updated":"2024-03-29 11:15:30.000000000","message":"Done","commit_id":"5416535ec0b741f9a7c00286bacc6822666809a9"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"f4ebf6f2228145ecef33f8437052ed491a497fde","unresolved":true,"context_lines":[{"line_number":156,"context_line":"    def list(self):"},{"line_number":157,"context_line":"        client \u003d self.client"},{"line_number":158,"context_line":"        snaps \u003d client.list_snapshots()[\u0027snapshots\u0027]"},{"line_number":159,"context_line":"        snaps \u003d [snap for snap in snaps"},{"line_number":160,"context_line":"                 if snap[\u0027name\u0027].startswith(self.prefix)]"},{"line_number":161,"context_line":"        if not self.is_save_state:"},{"line_number":162,"context_line":"            # recreate list removing saved snapshots"},{"line_number":163,"context_line":"            snaps \u003d [snap for snap in snaps if snap[\u0027id\u0027]"},{"line_number":164,"context_line":"                     not in self.saved_state_json[\u0027snapshots\u0027].keys()]"},{"line_number":165,"context_line":"        LOG.debug(\"List count, %s Snapshots\", len(snaps))"},{"line_number":166,"context_line":"        return snaps"},{"line_number":167,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"1dc7354b_8d520197","line":164,"range":{"start_line":159,"start_character":0,"end_line":164,"end_character":70},"in_reply_to":"3a0b7ebd_4d50e16c","updated":"2024-01-31 05:25:08.000000000","message":"This is sudo implementation I added i my earlier comment, please check if that make sense and any issue that has - https://review.opendev.org/c/openstack/tempest/+/879923/20/tempest/cmd/cleanup_service.py#164","commit_id":"5416535ec0b741f9a7c00286bacc6822666809a9"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"bc92e7449a17613766b7d5e8e2b3df680778a206","unresolved":false,"context_lines":[{"line_number":156,"context_line":"    def list(self):"},{"line_number":157,"context_line":"        client \u003d self.client"},{"line_number":158,"context_line":"        snaps \u003d client.list_snapshots()[\u0027snapshots\u0027]"},{"line_number":159,"context_line":"        snaps \u003d [snap for snap in snaps"},{"line_number":160,"context_line":"                 if snap[\u0027name\u0027].startswith(self.prefix)]"},{"line_number":161,"context_line":"        if not self.is_save_state:"},{"line_number":162,"context_line":"            # recreate list removing saved snapshots"},{"line_number":163,"context_line":"            snaps \u003d [snap for snap in snaps if snap[\u0027id\u0027]"},{"line_number":164,"context_line":"                     not in self.saved_state_json[\u0027snapshots\u0027].keys()]"},{"line_number":165,"context_line":"        LOG.debug(\"List count, %s Snapshots\", len(snaps))"},{"line_number":166,"context_line":"        return snaps"},{"line_number":167,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"211c17e8_ed4a6e08","line":164,"range":{"start_line":159,"start_character":0,"end_line":164,"end_character":70},"in_reply_to":"7d1408f0_b75d04a4","updated":"2024-01-25 10:14:55.000000000","message":"agree with hacky .. anyway, this is old news, next patchsets changed this logic, am gonna mark this as resolved","commit_id":"5416535ec0b741f9a7c00286bacc6822666809a9"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"26d6450f49c2ee44153551f4ca4cbcd515ed5295","unresolved":true,"context_lines":[{"line_number":156,"context_line":"    def list(self):"},{"line_number":157,"context_line":"        client \u003d self.client"},{"line_number":158,"context_line":"        snaps \u003d client.list_snapshots()[\u0027snapshots\u0027]"},{"line_number":159,"context_line":"        snaps \u003d [snap for snap in snaps"},{"line_number":160,"context_line":"                 if snap[\u0027name\u0027].startswith(self.prefix)]"},{"line_number":161,"context_line":"        if not self.is_save_state:"},{"line_number":162,"context_line":"            # recreate list removing saved snapshots"},{"line_number":163,"context_line":"            snaps \u003d [snap for snap in snaps if snap[\u0027id\u0027]"},{"line_number":164,"context_line":"                     not in self.saved_state_json[\u0027snapshots\u0027].keys()]"},{"line_number":165,"context_line":"        LOG.debug(\"List count, %s Snapshots\", len(snaps))"},{"line_number":166,"context_line":"        return snaps"},{"line_number":167,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"7d1408f0_b75d04a4","line":164,"range":{"start_line":159,"start_character":0,"end_line":164,"end_character":70},"in_reply_to":"e4789aba_3a9c8c0b","updated":"2024-01-25 03:32:01.000000000","message":"which is little hacky as mistake in one place can lead to a hidden issues. if else condition is a very explicit about \u0027how user commanded this CLI to run and how code is executed\u0027. That is easy for long term maintenance when you or me are not around to maintain Tempest and new people does not need to know all hidden things in another file/function.","commit_id":"5416535ec0b741f9a7c00286bacc6822666809a9"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"dee8fb0236013f15275db06991e7e5cd41c43c17","unresolved":true,"context_lines":[{"line_number":156,"context_line":"    def list(self):"},{"line_number":157,"context_line":"        client \u003d self.client"},{"line_number":158,"context_line":"        snaps \u003d client.list_snapshots()[\u0027snapshots\u0027]"},{"line_number":159,"context_line":"        snaps \u003d [snap for snap in snaps"},{"line_number":160,"context_line":"                 if snap[\u0027name\u0027].startswith(self.prefix)]"},{"line_number":161,"context_line":"        if not self.is_save_state:"},{"line_number":162,"context_line":"            # recreate list removing saved snapshots"},{"line_number":163,"context_line":"            snaps \u003d [snap for snap in snaps if snap[\u0027id\u0027]"},{"line_number":164,"context_line":"                     not in self.saved_state_json[\u0027snapshots\u0027].keys()]"},{"line_number":165,"context_line":"        LOG.debug(\"List count, %s Snapshots\", len(snaps))"},{"line_number":166,"context_line":"        return snaps"},{"line_number":167,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"fa207d30_d1da0ae9","line":164,"range":{"start_line":159,"start_character":0,"end_line":164,"end_character":70},"in_reply_to":"e52e7bb7_6cd234db","updated":"2024-01-29 11:17:28.000000000","message":"this is the whole point, this is the only reason I started investing my time into this patch, this has been my goal the whole time.\n\nThe only thing I care about here is this bug:\nhttps://bugs.launchpad.net/tempest/+bug/1945082\nwhich is technically not a bug, just a user who didn\u0027t read the documentation ... as the whole openstack world is mostly in maintaining phase, all the heavy development is finished, it makes sense to concentrate on improving the user interface now, there is more and more openstack deployments that most likely results in more and more usages of tempest ... now, I don\u0027t feel comfortable with the current tempest cleanup because if a user doesn\u0027t read the documentation and uses it on a production environment it WILL potentially destroy user\u0027s data. I want to prevent that.\n\nAnd again, I\u0027m gonna resolve this comment because it\u0027s on patchset 20 and we\u0027re keeping discussing changes that aren\u0027t there in patchset 24. If you wanna continue this disucssion, start a new thread from the latest changes (thus the latest patchset).","commit_id":"5416535ec0b741f9a7c00286bacc6822666809a9"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"d483e7285ceecd1d5fc1dd115739c1c4088ab2da","unresolved":true,"context_lines":[{"line_number":156,"context_line":"    def list(self):"},{"line_number":157,"context_line":"        client \u003d self.client"},{"line_number":158,"context_line":"        snaps \u003d client.list_snapshots()[\u0027snapshots\u0027]"},{"line_number":159,"context_line":"        snaps \u003d [snap for snap in snaps"},{"line_number":160,"context_line":"                 if snap[\u0027name\u0027].startswith(self.prefix)]"},{"line_number":161,"context_line":"        if not self.is_save_state:"},{"line_number":162,"context_line":"            # recreate list removing saved snapshots"},{"line_number":163,"context_line":"            snaps \u003d [snap for snap in snaps if snap[\u0027id\u0027]"},{"line_number":164,"context_line":"                     not in self.saved_state_json[\u0027snapshots\u0027].keys()]"},{"line_number":165,"context_line":"        LOG.debug(\"List count, %s Snapshots\", len(snaps))"},{"line_number":166,"context_line":"        return snaps"},{"line_number":167,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"3a0b7ebd_4d50e16c","line":164,"range":{"start_line":159,"start_character":0,"end_line":164,"end_character":70},"in_reply_to":"fa207d30_d1da0ae9","updated":"2024-01-31 05:22:30.000000000","message":"Well my point is we are not fixing that bug or so but because someone does not read how to use this CLI, we are making this CLI more worst and complex to use. Honestly saying, after this change, it is confusing for me also on \u0027how to use it in easy and better way\u0027. We are mixing the user passed options to this CLI for example: there is --prefix option give to user to select \u0027cleanup run by prefix way\u0027 but that is automatically ignored when init-saved is run and even there is another flag to disable it even anyone enable it via --prefix.\n\nI see two main issue in this design:\n1. it provide two flag to enable/disable single thing. --prefix and --no-prefix\n2. It automatically change the user defined value in code and user might not aware of it. Example. --prefix is ignored and passed as false when init-saved state is run.\n\nI recommended a simple user interface design on this in my comment here (making these three ways to run cleanup CLI as separate and not mix any of them with each other) - https://review.opendev.org/c/openstack/tempest/+/879923/20..24/tempest/cmd/cleanup.py#b72\n\nThat provide a clean interface and also solve the bug you mentioned.","commit_id":"5416535ec0b741f9a7c00286bacc6822666809a9"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"7f598b9361697dd2553ec101e3a95509068d05fc","unresolved":true,"context_lines":[{"line_number":186,"context_line":"    def list(self):"},{"line_number":187,"context_line":"        client \u003d self.client"},{"line_number":188,"context_line":"        snaps \u003d client.list_snapshots()[\u0027snapshots\u0027]"},{"line_number":189,"context_line":"        if self.prefix:"},{"line_number":190,"context_line":"            snaps \u003d self._filter_by_prefix(snaps)"},{"line_number":191,"context_line":"        else:"},{"line_number":192,"context_line":"            if not self.is_save_state:"},{"line_number":193,"context_line":"                # recreate list removing saved snapshots"},{"line_number":194,"context_line":"                snaps \u003d self._filter_out_ids_from_saved(snaps, \u0027snapshots\u0027)"},{"line_number":195,"context_line":"        LOG.debug(\"List count, %s Snapshots\", len(snaps))"}],"source_content_type":"text/x-python","patch_set":24,"id":"f54afb5c_08072b39","line":192,"range":{"start_line":189,"start_character":0,"end_line":192,"end_character":38},"updated":"2024-01-26 18:48:16.000000000","message":"this is where it is wrong, what if prefix is set and user run it for saved-state then all the resources with \u0027Tempest\u0027 prefix will be saved in saved-state.json and will not be deleted when actual cleanup is run.","commit_id":"fec647d29de92dcfb3f0856cdb8668c365ffb0c6"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"8fd24372b2a41bd54f7e6698253a06df42e51e01","unresolved":false,"context_lines":[{"line_number":186,"context_line":"    def list(self):"},{"line_number":187,"context_line":"        client \u003d self.client"},{"line_number":188,"context_line":"        snaps \u003d client.list_snapshots()[\u0027snapshots\u0027]"},{"line_number":189,"context_line":"        if self.prefix:"},{"line_number":190,"context_line":"            snaps \u003d self._filter_by_prefix(snaps)"},{"line_number":191,"context_line":"        else:"},{"line_number":192,"context_line":"            if not self.is_save_state:"},{"line_number":193,"context_line":"                # recreate list removing saved snapshots"},{"line_number":194,"context_line":"                snaps \u003d self._filter_out_ids_from_saved(snaps, \u0027snapshots\u0027)"},{"line_number":195,"context_line":"        LOG.debug(\"List count, %s Snapshots\", len(snaps))"}],"source_content_type":"text/x-python","patch_set":24,"id":"5e1cdb73_f9621134","line":192,"range":{"start_line":189,"start_character":0,"end_line":192,"end_character":38},"in_reply_to":"0e89916e_66966252","updated":"2024-03-15 04:21:26.000000000","message":"Done","commit_id":"fec647d29de92dcfb3f0856cdb8668c365ffb0c6"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"dee8fb0236013f15275db06991e7e5cd41c43c17","unresolved":true,"context_lines":[{"line_number":186,"context_line":"    def list(self):"},{"line_number":187,"context_line":"        client \u003d self.client"},{"line_number":188,"context_line":"        snaps \u003d client.list_snapshots()[\u0027snapshots\u0027]"},{"line_number":189,"context_line":"        if self.prefix:"},{"line_number":190,"context_line":"            snaps \u003d self._filter_by_prefix(snaps)"},{"line_number":191,"context_line":"        else:"},{"line_number":192,"context_line":"            if not self.is_save_state:"},{"line_number":193,"context_line":"                # recreate list removing saved snapshots"},{"line_number":194,"context_line":"                snaps \u003d self._filter_out_ids_from_saved(snaps, \u0027snapshots\u0027)"},{"line_number":195,"context_line":"        LOG.debug(\"List count, %s Snapshots\", len(snaps))"}],"source_content_type":"text/x-python","patch_set":24,"id":"0e89916e_66966252","line":192,"range":{"start_line":189,"start_character":0,"end_line":192,"end_character":38},"in_reply_to":"f54afb5c_08072b39","updated":"2024-01-29 11:17:28.000000000","message":"It\u0027s not wrong, see this: \nhttps://review.opendev.org/c/openstack/tempest/+/879923/24/tempest/cmd/cleanup.py#298\n\nand this snip of the prefix description:\n\"... This opt will be ignored when --init-saved-state is used so that it can capture the true init state - all resources present at that moment.\"","commit_id":"fec647d29de92dcfb3f0856cdb8668c365ffb0c6"},{"author":{"_account_id":30674,"name":"Lukas Piwowarski","email":"lpiwowar@redhat.com","username":"lukas-piwowarski"},"change_message_id":"9fbad407423d4d7017a676058d362430c0775408","unresolved":true,"context_lines":[{"line_number":243,"context_line":"        sgs \u003d client.list_server_groups()[\u0027server_groups\u0027]"},{"line_number":244,"context_line":"        if self.prefix:"},{"line_number":245,"context_line":"            sgs \u003d self._filter_by_prefix(sgs)"},{"line_number":246,"context_line":"        else:"},{"line_number":247,"context_line":"            if not self.is_save_state:"},{"line_number":248,"context_line":"                # recreate list removing saved server_groups"},{"line_number":249,"context_line":"                sgs \u003d self._filter_out_ids_from_saved(sgs, \u0027server_groups\u0027)"},{"line_number":250,"context_line":"        LOG.debug(\"List count, %s Server Groups\", len(sgs))"}],"source_content_type":"text/x-python","patch_set":25,"id":"6b6ecf87_8228b2b6","line":247,"range":{"start_line":246,"start_character":6,"end_line":247,"end_character":19},"updated":"2024-03-05 10:54:59.000000000","message":"I do not want to be nitpicking to much bit this can be probably simplified:\n\n```\nif self.prefix:\n   something\nelif not self.is_save_state:\n   something\n```\n\nIt applies for the other instances of list() as well.","commit_id":"f6940fdf7c24c0530d7332b09cb438173a61ac6e"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"4397e57cbd306ccb09e18820d25d0458f213c994","unresolved":false,"context_lines":[{"line_number":243,"context_line":"        sgs \u003d client.list_server_groups()[\u0027server_groups\u0027]"},{"line_number":244,"context_line":"        if self.prefix:"},{"line_number":245,"context_line":"            sgs \u003d self._filter_by_prefix(sgs)"},{"line_number":246,"context_line":"        else:"},{"line_number":247,"context_line":"            if not self.is_save_state:"},{"line_number":248,"context_line":"                # recreate list removing saved server_groups"},{"line_number":249,"context_line":"                sgs \u003d self._filter_out_ids_from_saved(sgs, \u0027server_groups\u0027)"},{"line_number":250,"context_line":"        LOG.debug(\"List count, %s Server Groups\", len(sgs))"}],"source_content_type":"text/x-python","patch_set":25,"id":"60677d6f_2a439972","line":247,"range":{"start_line":246,"start_character":6,"end_line":247,"end_character":19},"in_reply_to":"6b6ecf87_8228b2b6","updated":"2024-03-05 15:51:07.000000000","message":"ack, not all though","commit_id":"f6940fdf7c24c0530d7332b09cb438173a61ac6e"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"8fd24372b2a41bd54f7e6698253a06df42e51e01","unresolved":true,"context_lines":[{"line_number":469,"context_line":"                # recreate list removing saved networks"},{"line_number":470,"context_line":"                networks \u003d self._filter_out_ids_from_saved("},{"line_number":471,"context_line":"                    networks, \u0027networks\u0027)"},{"line_number":472,"context_line":"            # filter out networks declared in tempest.conf"},{"line_number":473,"context_line":"            if self.is_preserve:"},{"line_number":474,"context_line":"                networks \u003d [network for network in networks"},{"line_number":475,"context_line":"                            if network[\u0027id\u0027] not in CONF_NETWORKS]"},{"line_number":476,"context_line":"        LOG.debug(\"List count, %s Networks\", len(networks))"},{"line_number":477,"context_line":"        return networks"},{"line_number":478,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"f02193e3_3378760b","line":475,"range":{"start_line":472,"start_character":0,"end_line":475,"end_character":66},"updated":"2024-03-15 04:21:26.000000000","message":"this is applicable for --prefix case also. if is_preserve then let\u0027s not delete those resource in all cases.\n\nditto in all other places also","commit_id":"cc56539c23a082fa093e5bf10aa8e03aac97b18b"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"c253142ec6150e3f58d6b0973072ad02795f753e","unresolved":false,"context_lines":[{"line_number":469,"context_line":"                # recreate list removing saved networks"},{"line_number":470,"context_line":"                networks \u003d self._filter_out_ids_from_saved("},{"line_number":471,"context_line":"                    networks, \u0027networks\u0027)"},{"line_number":472,"context_line":"            # filter out networks declared in tempest.conf"},{"line_number":473,"context_line":"            if self.is_preserve:"},{"line_number":474,"context_line":"                networks \u003d [network for network in networks"},{"line_number":475,"context_line":"                            if network[\u0027id\u0027] not in CONF_NETWORKS]"},{"line_number":476,"context_line":"        LOG.debug(\"List count, %s Networks\", len(networks))"},{"line_number":477,"context_line":"        return networks"},{"line_number":478,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"4f8e06a8_31fd789c","line":475,"range":{"start_line":472,"start_character":0,"end_line":475,"end_character":66},"in_reply_to":"f02193e3_3378760b","updated":"2024-03-18 00:07:02.000000000","message":"Done","commit_id":"cc56539c23a082fa093e5bf10aa8e03aac97b18b"}],"tempest/tests/cmd/test_cleanup_services.py":[{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"a06693fa037ef1923b15e63f1524a2b606b623fc","unresolved":true,"context_lines":[{"line_number":190,"context_line":"    service_name \u003d \u0027default\u0027"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"    def _create_cmd_service(self, service_type, is_save_state\u003dFalse,"},{"line_number":193,"context_line":"                            is_preserve\u003dFalse, is_dry_run\u003dFalse):"},{"line_number":194,"context_line":"        creds \u003d fake_credentials.FakeKeystoneV3Credentials()"},{"line_number":195,"context_line":"        os \u003d clients.Manager(creds)"},{"line_number":196,"context_line":"        return getattr(cleanup_service, service_type)("}],"source_content_type":"text/x-python","patch_set":2,"id":"630916cb_1cb39ad7","line":193,"updated":"2023-04-20 09:25:44.000000000","message":"i think you need to define prefix here as well","commit_id":"3c32bff9f0ec43b22705362a7e1d21d342a20ce7"},{"author":{"_account_id":33983,"name":"Luigi Dino Tamagnone","display_name":"luigi","email":"ltamagno@redhat.com","username":"ltamagno"},"change_message_id":"e0ade31f5ccccb65cb280dcbbe5e1a564f4c6ab1","unresolved":false,"context_lines":[{"line_number":190,"context_line":"    service_name \u003d \u0027default\u0027"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"    def _create_cmd_service(self, service_type, is_save_state\u003dFalse,"},{"line_number":193,"context_line":"                            is_preserve\u003dFalse, is_dry_run\u003dFalse):"},{"line_number":194,"context_line":"        creds \u003d fake_credentials.FakeKeystoneV3Credentials()"},{"line_number":195,"context_line":"        os \u003d clients.Manager(creds)"},{"line_number":196,"context_line":"        return getattr(cleanup_service, service_type)("}],"source_content_type":"text/x-python","patch_set":2,"id":"995a234e_6b9424c2","line":193,"in_reply_to":"630916cb_1cb39ad7","updated":"2023-04-21 14:26:54.000000000","message":"Done","commit_id":"3c32bff9f0ec43b22705362a7e1d21d342a20ce7"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"a06693fa037ef1923b15e63f1524a2b606b623fc","unresolved":true,"context_lines":[{"line_number":197,"context_line":"            os,"},{"line_number":198,"context_line":"            is_save_state\u003dis_save_state,"},{"line_number":199,"context_line":"            is_preserve\u003dis_preserve,"},{"line_number":200,"context_line":"            is_dry_run\u003dis_dry_run,"},{"line_number":201,"context_line":"            project_id\u003d\u0027b8e3ece07bb049138d224436756e3b57\u0027,"},{"line_number":202,"context_line":"            data\u003d{},"},{"line_number":203,"context_line":"            saved_state_json\u003dself.saved_state"}],"source_content_type":"text/x-python","patch_set":2,"id":"4dfee85c_814a6575","line":200,"range":{"start_line":200,"start_character":12,"end_line":200,"end_character":16},"updated":"2023-04-20 09:25:44.000000000","message":"and then here too","commit_id":"3c32bff9f0ec43b22705362a7e1d21d342a20ce7"},{"author":{"_account_id":33983,"name":"Luigi Dino Tamagnone","display_name":"luigi","email":"ltamagno@redhat.com","username":"ltamagno"},"change_message_id":"e0ade31f5ccccb65cb280dcbbe5e1a564f4c6ab1","unresolved":false,"context_lines":[{"line_number":197,"context_line":"            os,"},{"line_number":198,"context_line":"            is_save_state\u003dis_save_state,"},{"line_number":199,"context_line":"            is_preserve\u003dis_preserve,"},{"line_number":200,"context_line":"            is_dry_run\u003dis_dry_run,"},{"line_number":201,"context_line":"            project_id\u003d\u0027b8e3ece07bb049138d224436756e3b57\u0027,"},{"line_number":202,"context_line":"            data\u003d{},"},{"line_number":203,"context_line":"            saved_state_json\u003dself.saved_state"}],"source_content_type":"text/x-python","patch_set":2,"id":"4ccb60b2_eca2cce5","line":200,"range":{"start_line":200,"start_character":12,"end_line":200,"end_character":16},"in_reply_to":"4dfee85c_814a6575","updated":"2023-04-21 14:26:54.000000000","message":"Done","commit_id":"3c32bff9f0ec43b22705362a7e1d21d342a20ce7"},{"author":{"_account_id":30674,"name":"Lukas Piwowarski","email":"lpiwowar@redhat.com","username":"lukas-piwowarski"},"change_message_id":"7a2ad9c4eba4e1c32b5c0230bca5882f7fdf3542","unresolved":true,"context_lines":[{"line_number":55,"context_line":"        self.assertTrue(base.is_save_state)"},{"line_number":56,"context_line":"        self.assertEqual(base.tenant_filter[\u0027project_id\u0027], kwargs[\u0027tenant_id\u0027])"},{"line_number":57,"context_line":"        self.assertEqual(base.got_exceptions, kwargs[\u0027got_exceptions\u0027])"},{"line_number":58,"context_line":"        #self.assertEqual(base.prefix, kwargs[\u0027prefix\u0027])"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    def test_not_implemented_ex(self):"},{"line_number":61,"context_line":"        kwargs \u003d {\u0027data\u0027: {\u0027data\u0027: \u0027test\u0027},"}],"source_content_type":"text/x-python","patch_set":3,"id":"8c89e9fb_e82dcbf5","line":58,"range":{"start_line":58,"start_character":0,"end_line":58,"end_character":14},"updated":"2023-04-24 15:01:15.000000000","message":"Shouldn\u0027t we uncomment this one?","commit_id":"867491f3bfbb065acc4b6a0a5bead1b29f997bab"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"8ed70a67f7b22ec25808643e8060139395d3cf52","unresolved":true,"context_lines":[{"line_number":55,"context_line":"        self.assertTrue(base.is_save_state)"},{"line_number":56,"context_line":"        self.assertEqual(base.tenant_filter[\u0027project_id\u0027], kwargs[\u0027tenant_id\u0027])"},{"line_number":57,"context_line":"        self.assertEqual(base.got_exceptions, kwargs[\u0027got_exceptions\u0027])"},{"line_number":58,"context_line":"        #self.assertEqual(base.prefix, kwargs[\u0027prefix\u0027])"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    def test_not_implemented_ex(self):"},{"line_number":61,"context_line":"        kwargs \u003d {\u0027data\u0027: {\u0027data\u0027: \u0027test\u0027},"}],"source_content_type":"text/x-python","patch_set":3,"id":"8b12b04e_c6b8c3f1","line":58,"range":{"start_line":58,"start_character":0,"end_line":58,"end_character":14},"in_reply_to":"0ac2d2ce_a39313dd","updated":"2023-05-02 09:38:41.000000000","message":"why does this need to be commented out? does it fail? Also","commit_id":"867491f3bfbb065acc4b6a0a5bead1b29f997bab"},{"author":{"_account_id":33983,"name":"Luigi Dino Tamagnone","display_name":"luigi","email":"ltamagno@redhat.com","username":"ltamagno"},"change_message_id":"1e34b6113a85a27be35f3b3f7646d894a133dc9c","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        self.assertTrue(base.is_save_state)"},{"line_number":56,"context_line":"        self.assertEqual(base.tenant_filter[\u0027project_id\u0027], kwargs[\u0027tenant_id\u0027])"},{"line_number":57,"context_line":"        self.assertEqual(base.got_exceptions, kwargs[\u0027got_exceptions\u0027])"},{"line_number":58,"context_line":"        #self.assertEqual(base.prefix, kwargs[\u0027prefix\u0027])"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    def test_not_implemented_ex(self):"},{"line_number":61,"context_line":"        kwargs \u003d {\u0027data\u0027: {\u0027data\u0027: \u0027test\u0027},"}],"source_content_type":"text/x-python","patch_set":3,"id":"7512b2fc_d283e1e8","line":58,"range":{"start_line":58,"start_character":0,"end_line":58,"end_character":14},"in_reply_to":"8b12b04e_c6b8c3f1","updated":"2023-05-02 14:59:38.000000000","message":"we decided to let it commented for now. I remove it to see if it\u0027s failing","commit_id":"867491f3bfbb065acc4b6a0a5bead1b29f997bab"},{"author":{"_account_id":33983,"name":"Luigi Dino Tamagnone","display_name":"luigi","email":"ltamagno@redhat.com","username":"ltamagno"},"change_message_id":"a0c19d351e08181317f0155160296d4cdcf56bff","unresolved":true,"context_lines":[{"line_number":55,"context_line":"        self.assertTrue(base.is_save_state)"},{"line_number":56,"context_line":"        self.assertEqual(base.tenant_filter[\u0027project_id\u0027], kwargs[\u0027tenant_id\u0027])"},{"line_number":57,"context_line":"        self.assertEqual(base.got_exceptions, kwargs[\u0027got_exceptions\u0027])"},{"line_number":58,"context_line":"        #self.assertEqual(base.prefix, kwargs[\u0027prefix\u0027])"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    def test_not_implemented_ex(self):"},{"line_number":61,"context_line":"        kwargs \u003d {\u0027data\u0027: {\u0027data\u0027: \u0027test\u0027},"}],"source_content_type":"text/x-python","patch_set":3,"id":"0ac2d2ce_a39313dd","line":58,"range":{"start_line":58,"start_character":0,"end_line":58,"end_character":14},"in_reply_to":"8c89e9fb_e82dcbf5","updated":"2023-04-28 13:26:57.000000000","message":"I think we can leave commented for now. I don\u0027t know if Martin wants to add a bit here.","commit_id":"867491f3bfbb065acc4b6a0a5bead1b29f997bab"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"8ed70a67f7b22ec25808643e8060139395d3cf52","unresolved":true,"context_lines":[{"line_number":191,"context_line":"    service_name \u003d \u0027default\u0027"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"    def _create_cmd_service(self, service_type, is_save_state\u003dFalse,"},{"line_number":194,"context_line":"                            is_preserve\u003dFalse, is_dry_run\u003dFalse , prefix\u003d\u0027\u0027):"},{"line_number":195,"context_line":"        creds \u003d fake_credentials.FakeKeystoneV3Credentials()"},{"line_number":196,"context_line":"        os \u003d clients.Manager(creds)"},{"line_number":197,"context_line":"        return getattr(cleanup_service, service_type)("}],"source_content_type":"text/x-python","patch_set":5,"id":"b5d02a44_fa057dde","line":194,"range":{"start_line":194,"start_character":63,"end_line":194,"end_character":64},"updated":"2023-05-02 09:38:41.000000000","message":"a space is not allowed to be here","commit_id":"5711e6be48f1ae9cc21f5215a579f16bbceecbc8"},{"author":{"_account_id":33983,"name":"Luigi Dino Tamagnone","display_name":"luigi","email":"ltamagno@redhat.com","username":"ltamagno"},"change_message_id":"1e34b6113a85a27be35f3b3f7646d894a133dc9c","unresolved":false,"context_lines":[{"line_number":191,"context_line":"    service_name \u003d \u0027default\u0027"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"    def _create_cmd_service(self, service_type, is_save_state\u003dFalse,"},{"line_number":194,"context_line":"                            is_preserve\u003dFalse, is_dry_run\u003dFalse , prefix\u003d\u0027\u0027):"},{"line_number":195,"context_line":"        creds \u003d fake_credentials.FakeKeystoneV3Credentials()"},{"line_number":196,"context_line":"        os \u003d clients.Manager(creds)"},{"line_number":197,"context_line":"        return getattr(cleanup_service, service_type)("}],"source_content_type":"text/x-python","patch_set":5,"id":"2960b2aa_c3fba027","line":194,"range":{"start_line":194,"start_character":63,"end_line":194,"end_character":64},"in_reply_to":"b5d02a44_fa057dde","updated":"2023-05-02 14:59:38.000000000","message":"Done","commit_id":"5711e6be48f1ae9cc21f5215a579f16bbceecbc8"},{"author":{"_account_id":30674,"name":"Lukas Piwowarski","email":"lpiwowar@redhat.com","username":"lukas-piwowarski"},"change_message_id":"589b48c885efc01cd4b4bd083363d856398ad120","unresolved":true,"context_lines":[{"line_number":57,"context_line":"        self.assertTrue(base.is_save_state)"},{"line_number":58,"context_line":"        self.assertEqual(base.tenant_filter[\u0027project_id\u0027], kwargs[\u0027tenant_id\u0027])"},{"line_number":59,"context_line":"        self.assertEqual(base.got_exceptions, kwargs[\u0027got_exceptions\u0027])"},{"line_number":60,"context_line":"        # TODO(luigi): To check if needed"},{"line_number":61,"context_line":"        self.assertEqual(base.prefix, kwargs[\u0027prefix\u0027])"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def test_not_implemented_ex(self):"}],"source_content_type":"text/x-python","patch_set":12,"id":"354fa686_aaa67971","line":60,"range":{"start_line":60,"start_character":7,"end_line":60,"end_character":41},"updated":"2023-12-07 17:01:25.000000000","message":"Is this comment still needed?","commit_id":"ec0017e81e2feb58ee833d0450f937f61e6045e3"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"779b6952ba9861d99414b1480345e7f9ea8f4d16","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        self.assertTrue(base.is_save_state)"},{"line_number":58,"context_line":"        self.assertEqual(base.tenant_filter[\u0027project_id\u0027], kwargs[\u0027tenant_id\u0027])"},{"line_number":59,"context_line":"        self.assertEqual(base.got_exceptions, kwargs[\u0027got_exceptions\u0027])"},{"line_number":60,"context_line":"        # TODO(luigi): To check if needed"},{"line_number":61,"context_line":"        self.assertEqual(base.prefix, kwargs[\u0027prefix\u0027])"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def test_not_implemented_ex(self):"}],"source_content_type":"text/x-python","patch_set":12,"id":"e098059c_69724bb8","line":60,"range":{"start_line":60,"start_character":7,"end_line":60,"end_character":41},"in_reply_to":"354fa686_aaa67971","updated":"2023-12-11 07:49:27.000000000","message":"probably not, the code seems consistent so I assume that the check is needed","commit_id":"ec0017e81e2feb58ee833d0450f937f61e6045e3"},{"author":{"_account_id":30674,"name":"Lukas Piwowarski","email":"lpiwowar@redhat.com","username":"lukas-piwowarski"},"change_message_id":"589b48c885efc01cd4b4bd083363d856398ad120","unresolved":true,"context_lines":[{"line_number":194,"context_line":"    service_name \u003d \u0027default\u0027"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"    def _create_cmd_service(self, service_type, is_save_state\u003dFalse,"},{"line_number":197,"context_line":"                            is_preserve\u003dFalse, is_dry_run\u003dFalse, prefix\u003d\u0027\u0027):"},{"line_number":198,"context_line":"        creds \u003d fake_credentials.FakeKeystoneV3Credentials()"},{"line_number":199,"context_line":"        os \u003d clients.Manager(creds)"},{"line_number":200,"context_line":"        return getattr(cleanup_service, service_type)("}],"source_content_type":"text/x-python","patch_set":12,"id":"4a21a9e2_55271733","line":197,"range":{"start_line":197,"start_character":65,"end_line":197,"end_character":74},"updated":"2023-12-07 17:01:25.000000000","message":"Just an idea. It would be nice if we had at least unit tests that check that when the prefix is set to prefix\u003d\u0027some-random-prefix\u0027 that no resources are deleted.","commit_id":"ec0017e81e2feb58ee833d0450f937f61e6045e3"},{"author":{"_account_id":30674,"name":"Lukas Piwowarski","email":"lpiwowar@redhat.com","username":"lukas-piwowarski"},"change_message_id":"ced5bdf1c4d3bde19c22ec704dd8dc027865181d","unresolved":true,"context_lines":[{"line_number":194,"context_line":"    service_name \u003d \u0027default\u0027"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"    def _create_cmd_service(self, service_type, is_save_state\u003dFalse,"},{"line_number":197,"context_line":"                            is_preserve\u003dFalse, is_dry_run\u003dFalse, prefix\u003d\u0027\u0027):"},{"line_number":198,"context_line":"        creds \u003d fake_credentials.FakeKeystoneV3Credentials()"},{"line_number":199,"context_line":"        os \u003d clients.Manager(creds)"},{"line_number":200,"context_line":"        return getattr(cleanup_service, service_type)("}],"source_content_type":"text/x-python","patch_set":12,"id":"552c39d5_405ee565","line":197,"range":{"start_line":197,"start_character":65,"end_line":197,"end_character":74},"in_reply_to":"261b9b0e_cb5b9d67","updated":"2023-12-11 10:05:31.000000000","message":"The idea behind this comment is that we introduced paths in the code which are probably not tested by the unittests (when the user specifies some prefix). I think. I\u0027m fine if we do not want to write the unittests I just wanted to mention it.\n\nUnittests have a fixed environment so we could ensure that there are no resources with \u0027some-random-prefix\u0027.","commit_id":"ec0017e81e2feb58ee833d0450f937f61e6045e3"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"779b6952ba9861d99414b1480345e7f9ea8f4d16","unresolved":true,"context_lines":[{"line_number":194,"context_line":"    service_name \u003d \u0027default\u0027"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"    def _create_cmd_service(self, service_type, is_save_state\u003dFalse,"},{"line_number":197,"context_line":"                            is_preserve\u003dFalse, is_dry_run\u003dFalse, prefix\u003d\u0027\u0027):"},{"line_number":198,"context_line":"        creds \u003d fake_credentials.FakeKeystoneV3Credentials()"},{"line_number":199,"context_line":"        os \u003d clients.Manager(creds)"},{"line_number":200,"context_line":"        return getattr(cleanup_service, service_type)("}],"source_content_type":"text/x-python","patch_set":12,"id":"261b9b0e_cb5b9d67","line":197,"range":{"start_line":197,"start_character":65,"end_line":197,"end_character":74},"in_reply_to":"4a21a9e2_55271733","updated":"2023-12-11 07:49:27.000000000","message":"that depends, if a user ran tempest with --prefix some-random-prefix then there may be resources with such prefix and tempest cleanup would delete them. What would be the angle of such test?","commit_id":"ec0017e81e2feb58ee833d0450f937f61e6045e3"}],"zuul.d/tempest-specific.yaml":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"f146199506c17b7b078152d2fbcf4a54d618b972","unresolved":true,"context_lines":[{"line_number":58,"context_line":"      Base integration test with Neutron networking, IPv6 and py3."},{"line_number":59,"context_line":"    vars:"},{"line_number":60,"context_line":"      tox_envlist: full"},{"line_number":61,"context_line":"      run_tempest_cleanup: true"},{"line_number":62,"context_line":"      run_tempest_cleanup_prefix: true"},{"line_number":63,"context_line":"      devstack_localrc:"},{"line_number":64,"context_line":"        USE_PYTHON3: true"},{"line_number":65,"context_line":"        FORCE_CONFIG_DRIVE: true"}],"source_content_type":"text/x-yaml","patch_set":28,"id":"b1b862f6_c6c3f2f6","line":62,"range":{"start_line":61,"start_character":0,"end_line":62,"end_character":38},"updated":"2024-03-25 18:03:11.000000000","message":"this is not running the cleanup in this job, commented about where all we need to check these var https://zuul.opendev.org/t/openstack/build/67b5757bb3824838bc8032e9c7054b07/console","commit_id":"7409fabb2fab8ea91bebe525af007e8eb5eb9815"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"ae85883b8bc4b4af70cc4304958a74d31e33ab69","unresolved":false,"context_lines":[{"line_number":58,"context_line":"      Base integration test with Neutron networking, IPv6 and py3."},{"line_number":59,"context_line":"    vars:"},{"line_number":60,"context_line":"      tox_envlist: full"},{"line_number":61,"context_line":"      run_tempest_cleanup: true"},{"line_number":62,"context_line":"      run_tempest_cleanup_prefix: true"},{"line_number":63,"context_line":"      devstack_localrc:"},{"line_number":64,"context_line":"        USE_PYTHON3: true"},{"line_number":65,"context_line":"        FORCE_CONFIG_DRIVE: true"}],"source_content_type":"text/x-yaml","patch_set":28,"id":"519122c9_818f2908","line":62,"range":{"start_line":61,"start_character":0,"end_line":62,"end_character":38},"in_reply_to":"b1b862f6_c6c3f2f6","updated":"2024-03-29 11:15:30.000000000","message":"this is -ipv6 job and i edited only devstack-tempest.yaml playbook, however, there is also devstack-tempest-ipv6.yaml one:\nhttps://opendev.org/openstack/tempest/src/branch/master/playbooks","commit_id":"7409fabb2fab8ea91bebe525af007e8eb5eb9815"}]}
