)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":29441,"name":"Jeffrey Williams","email":"jw2610@att.com","username":"jw2610"},"change_message_id":"a70f6a5876e4a3dc4f37af3b412c69297f83c38e","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add a user-isolated cleanup option to tempest cleanup"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add an option that allows for concurent testing and a more functional"},{"line_number":10,"context_line":"option for tempest cleanup"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Id4d04040e53b9ca56f04485c996917b4c3e452c2"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":18,"id":"9fb8cfa7_c4f1fd02","line":9,"range":{"start_line":9,"start_character":30,"end_line":9,"end_character":39},"updated":"2019-06-13 19:18:41.000000000","message":"concurrent","commit_id":"96389ede22b67f88e4da3eab9b46d70855720218"}],"specs/tempest/smart-cleanup.rst":[{"author":{"_account_id":17887,"name":"Doug Schveninger","email":"ds6901@att.com","username":"Doug.Schveninger"},"change_message_id":"7b71612dc646fee674c6457477c3009d45b21830","unresolved":false,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"https://blueprints.launchpad.net/tempest/+spec/tempest-smart-cleanup"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Tempest cleanup does a wonderful job of removing straggling resources,"},{"line_number":15,"context_line":"but it relies on a saved state to preserve resources. This approach"},{"line_number":16,"context_line":"works if used in a controlled single user environment, but can be"},{"line_number":17,"context_line":"improved to work in more functional environments"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f79a3b5_4719c3d4","line":14,"range":{"start_line":14,"start_character":0,"end_line":14,"end_character":15},"updated":"2018-09-05 01:56:46.000000000","message":"\"tempest cleanup\" command (https://docs.openstack.org/tempest/latest/cleanup.html)\n allow you to save state and clean up any resources that are left over by the testing execution process while protecting general conf resource if necessary.\n \nCOMANAD EXAMPLE\n$ tempest cleanup --init-saved-state\n$ # Actual running of Tempest tests\n$ tempest cleanup","commit_id":"ef8aa9a8cf35d6b9874ccbe15fcb5fb392e7a43d"},{"author":{"_account_id":17887,"name":"Doug Schveninger","email":"ds6901@att.com","username":"Doug.Schveninger"},"change_message_id":"7b71612dc646fee674c6457477c3009d45b21830","unresolved":false,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"https://blueprints.launchpad.net/tempest/+spec/tempest-smart-cleanup"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Tempest cleanup does a wonderful job of removing straggling resources,"},{"line_number":15,"context_line":"but it relies on a saved state to preserve resources. This approach"},{"line_number":16,"context_line":"works if used in a controlled single user environment, but can be"},{"line_number":17,"context_line":"improved to work in more functional environments"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f79a3b5_4767834e","line":14,"range":{"start_line":14,"start_character":49,"end_line":14,"end_character":59},"updated":"2018-09-05 01:56:46.000000000","message":"straggling is a general concept we need to expand on\n\nmaybe something like \nThis command set does a wonderful job of find resources that did not exists in the save state. But this does not work in an active cloud with tenants working while the testing process is running. This spec is to allow the cleanup process to be enhanced to support the clean up process in an active environment.","commit_id":"ef8aa9a8cf35d6b9874ccbe15fcb5fb392e7a43d"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"e0aa5fcb1f5050e767c187c615c52f9287ce0c1d","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Problem description"},{"line_number":20,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Tempest cleanup uses a snapshot of the current build called a saved_state."},{"line_number":23,"context_line":"Any resource not in the saved state will be deleted once tempest cleanup is"},{"line_number":24,"context_line":"run. In the case of a single user on a single node, this makes sense, but"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f79a3b5_76bd6500","line":21,"updated":"2018-08-24 19:12:46.000000000","message":"so this problem only exists if both tenants do NOT use the same CONF[1] values for the saved state, right? I could see the saved state working if every user used the same CONF values.\n\nI think we should emphasize this is for users who cannot share the same resources and must create them dynamically. Which is a very common occurrence for identity admin tests with force_tenant_isolation \u003d True[2].\n\n[1] https://github.com/openstack/tempest/blob/6c682ffc5d7d63f892076d51a5aa3ab503e772d7/tempest/cmd/cleanup_service.py#L65-L71\n[2] https://github.com/openstack/tempest/blob/6c682ffc5d7d63f892076d51a5aa3ab503e772d7/tempest/api/identity/base.py#L208","commit_id":"ef8aa9a8cf35d6b9874ccbe15fcb5fb392e7a43d"},{"author":{"_account_id":17887,"name":"Doug Schveninger","email":"ds6901@att.com","username":"Doug.Schveninger"},"change_message_id":"7b71612dc646fee674c6457477c3009d45b21830","unresolved":false,"context_lines":[{"line_number":19,"context_line":"Problem description"},{"line_number":20,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Tempest cleanup uses a snapshot of the current build called a saved_state."},{"line_number":23,"context_line":"Any resource not in the saved state will be deleted once tempest cleanup is"},{"line_number":24,"context_line":"run. In the case of a single user on a single node, this makes sense, but"},{"line_number":25,"context_line":"if cleanup were used in an environment where multiple people are working on"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f79a3b5_4751c335","line":22,"range":{"start_line":22,"start_character":0,"end_line":22,"end_character":16},"updated":"2018-09-05 01:56:46.000000000","message":"QUESTION: Is the cleanup process effected by domains?","commit_id":"ef8aa9a8cf35d6b9874ccbe15fcb5fb392e7a43d"},{"author":{"_account_id":17887,"name":"Doug Schveninger","email":"ds6901@att.com","username":"Doug.Schveninger"},"change_message_id":"7b71612dc646fee674c6457477c3009d45b21830","unresolved":false,"context_lines":[{"line_number":19,"context_line":"Problem description"},{"line_number":20,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Tempest cleanup uses a snapshot of the current build called a saved_state."},{"line_number":23,"context_line":"Any resource not in the saved state will be deleted once tempest cleanup is"},{"line_number":24,"context_line":"run. In the case of a single user on a single node, this makes sense, but"},{"line_number":25,"context_line":"if cleanup were used in an environment where multiple people are working on"},{"line_number":26,"context_line":"a multi-node project issues become readily apparent."},{"line_number":27,"context_line":"Ex1: Tenant A saves state, tenant B adds a resource, tenant A runs tests,"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f79a3b5_67a71f52","line":24,"range":{"start_line":22,"start_character":0,"end_line":24,"end_character":4},"updated":"2018-09-05 01:56:46.000000000","message":"missing a statement about resources in the tempest.conf","commit_id":"ef8aa9a8cf35d6b9874ccbe15fcb5fb392e7a43d"},{"author":{"_account_id":17887,"name":"Doug Schveninger","email":"ds6901@att.com","username":"Doug.Schveninger"},"change_message_id":"7b71612dc646fee674c6457477c3009d45b21830","unresolved":false,"context_lines":[{"line_number":23,"context_line":"Any resource not in the saved state will be deleted once tempest cleanup is"},{"line_number":24,"context_line":"run. In the case of a single user on a single node, this makes sense, but"},{"line_number":25,"context_line":"if cleanup were used in an environment where multiple people are working on"},{"line_number":26,"context_line":"a multi-node project issues become readily apparent."},{"line_number":27,"context_line":"Ex1: Tenant A saves state, tenant B adds a resource, tenant A runs tests,"},{"line_number":28,"context_line":"  tenant A cleans up after tests, tenant B\u0027s resource gets cleaned up because"},{"line_number":29,"context_line":"  it does not appear in the saved_state.json."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f79a3b5_2763671c","line":26,"range":{"start_line":26,"start_character":13,"end_line":26,"end_character":20},"updated":"2018-09-05 01:56:46.000000000","message":"maybe change to: with many tenants and projects","commit_id":"ef8aa9a8cf35d6b9874ccbe15fcb5fb392e7a43d"},{"author":{"_account_id":17887,"name":"Doug Schveninger","email":"ds6901@att.com","username":"Doug.Schveninger"},"change_message_id":"7b71612dc646fee674c6457477c3009d45b21830","unresolved":false,"context_lines":[{"line_number":24,"context_line":"run. In the case of a single user on a single node, this makes sense, but"},{"line_number":25,"context_line":"if cleanup were used in an environment where multiple people are working on"},{"line_number":26,"context_line":"a multi-node project issues become readily apparent."},{"line_number":27,"context_line":"Ex1: Tenant A saves state, tenant B adds a resource, tenant A runs tests,"},{"line_number":28,"context_line":"  tenant A cleans up after tests, tenant B\u0027s resource gets cleaned up because"},{"line_number":29,"context_line":"  it does not appear in the saved_state.json."},{"line_number":30,"context_line":"Ex2: Tenant A saves state, tenant A runs tests, tenant B saves state,"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f79a3b5_2731270c","line":27,"range":{"start_line":27,"start_character":0,"end_line":27,"end_character":3},"updated":"2018-09-05 01:56:46.000000000","message":"like the examples I would spell Ex to Example 1\netc","commit_id":"ef8aa9a8cf35d6b9874ccbe15fcb5fb392e7a43d"},{"author":{"_account_id":17887,"name":"Doug Schveninger","email":"ds6901@att.com","username":"Doug.Schveninger"},"change_message_id":"7b71612dc646fee674c6457477c3009d45b21830","unresolved":false,"context_lines":[{"line_number":34,"context_line":"Proposed change"},{"line_number":35,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"I would like to invite anyone interested to join my discussion on etherpad:"},{"line_number":38,"context_line":"https://etherpad.openstack.org/p/tempest-smart-cleanup"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"There are a few proposed fixes for this problem and I would appreciate more"},{"line_number":41,"context_line":"input. Please feel free to +1 ideas, add to the pros and cons, or add your"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f79a3b5_a72457c7","line":38,"range":{"start_line":37,"start_character":0,"end_line":38,"end_character":54},"updated":"2018-09-05 01:56:46.000000000","message":"Should we allow for multiple proposed changes and let people to place differnet solution set here instead of useing the etherpad now that we have a spec?","commit_id":"ef8aa9a8cf35d6b9874ccbe15fcb5fb392e7a43d"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"e0aa5fcb1f5050e767c187c615c52f9287ce0c1d","unresolved":false,"context_lines":[{"line_number":44,"context_line":"Update:"},{"line_number":45,"context_line":"The current proposal with the most pros and fewest cons is:"},{"line_number":46,"context_line":"Add a logging/output function to tempest test base to track"},{"line_number":47,"context_line":"what resources are being added and where. This list would be used"},{"line_number":48,"context_line":"in a new function tempest cleanup --smart that would remove resources"},{"line_number":49,"context_line":"according to the new black list rather than follow the saved_state"},{"line_number":50,"context_line":"white list."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f79a3b5_f68175fc","line":47,"range":{"start_line":47,"start_character":25,"end_line":47,"end_character":30},"updated":"2018-08-24 19:12:46.000000000","message":"do we track the same for updates or deletions?","commit_id":"ef8aa9a8cf35d6b9874ccbe15fcb5fb392e7a43d"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"e0aa5fcb1f5050e767c187c615c52f9287ce0c1d","unresolved":false,"context_lines":[{"line_number":46,"context_line":"Add a logging/output function to tempest test base to track"},{"line_number":47,"context_line":"what resources are being added and where. This list would be used"},{"line_number":48,"context_line":"in a new function tempest cleanup --smart that would remove resources"},{"line_number":49,"context_line":"according to the new black list rather than follow the saved_state"},{"line_number":50,"context_line":"white list."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f79a3b5_96704142","line":49,"range":{"start_line":49,"start_character":17,"end_line":49,"end_character":31},"updated":"2018-08-24 19:12:46.000000000","message":"can you give an example format of this black list?","commit_id":"ef8aa9a8cf35d6b9874ccbe15fcb5fb392e7a43d"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"d211ddc20413a03ca347ee46dc470f8d7e9f1ad5","unresolved":false,"context_lines":[{"line_number":1,"context_line":".."},{"line_number":2,"context_line":" This work is licensed under a Creative Commons Attribution 3.0 Unported"},{"line_number":3,"context_line":" License."},{"line_number":4,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_e9371de4","line":1,"updated":"2018-09-10 14:22:19.000000000","message":"Please keep the line lengths below to under 80 characters.","commit_id":"ac25f3d0083ed95081bd481a58360060bb358df0"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"1b923af4ba2f728075d00c457223e27c76c959be","unresolved":false,"context_lines":[{"line_number":1,"context_line":".."},{"line_number":2,"context_line":" This work is licensed under a Creative Commons Attribution 3.0 Unported"},{"line_number":3,"context_line":" License."},{"line_number":4,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_16cfdbb3","line":1,"in_reply_to":"3f79a3b5_e9371de4","updated":"2018-09-12 17:20:37.000000000","message":"Yeah, please.\nCurrent doc is hard to be read on the gerrit review system.","commit_id":"ac25f3d0083ed95081bd481a58360060bb358df0"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"d211ddc20413a03ca347ee46dc470f8d7e9f1ad5","unresolved":false,"context_lines":[{"line_number":5,"context_line":""},{"line_number":6,"context_line":".."},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":9,"context_line":" Tempest Smart Cleanup"},{"line_number":10,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":11,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_c92ee18b","line":8,"range":{"start_line":8,"start_character":22,"end_line":8,"end_character":29},"updated":"2018-09-10 14:22:19.000000000","message":"These lines shouldn\u0027t over-extend or under-extend the title length.","commit_id":"ac25f3d0083ed95081bd481a58360060bb358df0"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"d211ddc20413a03ca347ee46dc470f8d7e9f1ad5","unresolved":false,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"https://blueprints.launchpad.net/tempest/+spec/tempest-smart-cleanup"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"The \"tempest cleanup\" command (https://docs.openstack.org/tempest/latest/cleanup.html)"},{"line_number":15,"context_line":"allows you to save a state and later, return to that saved state by cleaning up any resources created since that saved state. In other words - Resources that are not listed in the saved state are removed."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Example:"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_897789a0","line":14,"range":{"start_line":14,"start_character":4,"end_line":14,"end_character":86},"updated":"2018-09-10 14:22:19.000000000","message":"This should be reformatted to:\n\nThe `tempest cleanup`_ command allows you to save...\n\n[...]\n\n.. _tempest cleanup command: https://docs.openstack.org/tempest/latest/cleanup.html\n\nProblem description\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d","commit_id":"ac25f3d0083ed95081bd481a58360060bb358df0"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"d211ddc20413a03ca347ee46dc470f8d7e9f1ad5","unresolved":false,"context_lines":[{"line_number":12,"context_line":"https://blueprints.launchpad.net/tempest/+spec/tempest-smart-cleanup"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"The \"tempest cleanup\" command (https://docs.openstack.org/tempest/latest/cleanup.html)"},{"line_number":15,"context_line":"allows you to save a state and later, return to that saved state by cleaning up any resources created since that saved state. In other words - Resources that are not listed in the saved state are removed."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Example:"},{"line_number":18,"context_line":"Build has resources A, B, C"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_a95fe50d","line":15,"range":{"start_line":15,"start_character":140,"end_line":15,"end_character":144},"updated":"2018-09-10 14:22:19.000000000","message":", resources","commit_id":"ac25f3d0083ed95081bd481a58360060bb358df0"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"d211ddc20413a03ca347ee46dc470f8d7e9f1ad5","unresolved":false,"context_lines":[{"line_number":14,"context_line":"The \"tempest cleanup\" command (https://docs.openstack.org/tempest/latest/cleanup.html)"},{"line_number":15,"context_line":"allows you to save a state and later, return to that saved state by cleaning up any resources created since that saved state. In other words - Resources that are not listed in the saved state are removed."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Example:"},{"line_number":18,"context_line":"Build has resources A, B, C"},{"line_number":19,"context_line":"$ tempest cleanup --init-saved-state"},{"line_number":20,"context_line":"saved_state.json is created with resouces A, B, C"},{"line_number":21,"context_line":"run tests, resources are created: D, E, F"},{"line_number":22,"context_line":"$ tempest cleanup"},{"line_number":23,"context_line":"saved_state.json is checked: A, B, C are safe - D, E, F are deleted"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"saved_state.json contains the IDs and Names of the global resources (domains, project, users flavors, roles, and images). Other resources (volumes, ports, routers, ...etc) are cleaned up based on their relation to a project ID. If a project Id is not in the saved_state, cleanup will delete all associated resources."},{"line_number":26,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_8985495c","line":23,"range":{"start_line":17,"start_character":0,"end_line":23,"end_character":67},"updated":"2018-09-10 14:22:19.000000000","message":"Example:\n\n* Build has resources A, B, C\n* .. code-block:: yaml\n      \n      $ tempest cleanup --init-saved-state\n* ``saved_state.json`` is created with resouces A, B, C\n* Run tests, resources are created: D, E, F\n* .. code-block:: yaml\n      \n      $ tempest cleanup\n* ``saved_state.json`` is checked: A, B, C are safe - D, E, F are deleted","commit_id":"ac25f3d0083ed95081bd481a58360060bb358df0"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"d211ddc20413a03ca347ee46dc470f8d7e9f1ad5","unresolved":false,"context_lines":[{"line_number":32,"context_line":"Problem description"},{"line_number":33,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Tempest cleanup uses a snapshot in order to clean up everything and return to the saved_state (see above). In the case of a single user on a single node, this makes sense, but if cleanup were used in an environment with many tenants and projects issues become readily apparent:"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Example 1: Tenant A saves state, tenant B adds a resource, tenant A runs tests,"},{"line_number":38,"context_line":"  tenant A cleans up after tests, tenant B\u0027s resource gets cleaned up because"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_49f411f2","line":35,"updated":"2018-09-10 14:22:19.000000000","message":"The problem description should be stated more generically. Examples are good, but we should be able to elaborate on the problem from a high-level.","commit_id":"ac25f3d0083ed95081bd481a58360060bb358df0"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"d211ddc20413a03ca347ee46dc470f8d7e9f1ad5","unresolved":false,"context_lines":[{"line_number":47,"context_line":"Proposed change / Solution"},{"line_number":48,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"I would like to invite anyone interested to join my discussion on etherpad:"},{"line_number":51,"context_line":"https://etherpad.openstack.org/p/tempest-smart-cleanup"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"Please feel free to participate in the above discussion or leave your comments here."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"There are a few proposed fixes for this problem and I would appreciate more"},{"line_number":56,"context_line":"input. Please feel free to +1 ideas, add to the pros and cons, or add your"},{"line_number":57,"context_line":"own approach."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Update 08/27/18:"},{"line_number":60,"context_line":"The current proposal with the most pros and fewest cons is:"},{"line_number":61,"context_line":"Add a logging/output function to tempest test base to track"},{"line_number":62,"context_line":"what resources are being added and where. This list would be used"},{"line_number":63,"context_line":"in a new function tempest cleanup --smart that would remove resources"},{"line_number":64,"context_line":"according to the new black list rather than follow the saved_state"},{"line_number":65,"context_line":"white list."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Update 09/07/18:"},{"line_number":68,"context_line":"I have moved forward with one possible solution:"},{"line_number":69,"context_line":"https://review.openstack.org/#/c/597733/"},{"line_number":70,"context_line":"It takes a new tempest cleanup argument \"--black-list\" which uses a black_list.json to delete specified resources."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Please review it and update me with any ideas on how to improve the approach."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"Example black_list.json:"},{"line_number":75,"context_line":"{"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_69ceadb8","line":72,"range":{"start_line":50,"start_character":0,"end_line":72,"end_character":77},"updated":"2018-09-10 14:22:19.000000000","message":"Please stick to one proposed implementation. A specification does just that: specifies a proposed implementation.","commit_id":"ac25f3d0083ed95081bd481a58360060bb358df0"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"d211ddc20413a03ca347ee46dc470f8d7e9f1ad5","unresolved":false,"context_lines":[{"line_number":81,"context_line":"  },"},{"line_number":82,"context_line":"  \"roles\": {},"},{"line_number":83,"context_line":"  \"users\": {"},{"line_number":84,"context_line":"  \t\"a9e26c0c57114ca1bae18c92aab4e28d\": \"some_name\""},{"line_number":85,"context_line":"  }"},{"line_number":86,"context_line":"}"},{"line_number":87,"context_line":"With this list \"tempest cleanup --black-list\" would delete project \"demo\" and all associated resources (volumes, subnets, routers, ... etc). Additionally, it would delete user \"some_name\" No other resources would be touched."}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_29c8b5a6","line":84,"range":{"start_line":84,"start_character":2,"end_line":84,"end_character":4},"updated":"2018-09-10 14:22:19.000000000","message":"Convert tab to spaces.","commit_id":"ac25f3d0083ed95081bd481a58360060bb358df0"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"5c1b854bcaf57215ed3ad8d859ad4074fd4bf7fb","unresolved":false,"context_lines":[{"line_number":90,"context_line":"Alternatives"},{"line_number":91,"context_line":"------------"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"Please refer to the etherpad for alternative options and discussion"},{"line_number":94,"context_line":"https://etherpad.openstack.org/p/tempest-smart-cleanup"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"Projects"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_c966e1bc","line":94,"range":{"start_line":93,"start_character":0,"end_line":94,"end_character":54},"updated":"2018-09-10 14:25:04.000000000","message":"The relevant discussion from the etherpad should be included here. The etherpad should only be included at the bottom as a reference. But all the information should be included in this spec.","commit_id":"ac25f3d0083ed95081bd481a58360060bb358df0"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"d211ddc20413a03ca347ee46dc470f8d7e9f1ad5","unresolved":false,"context_lines":[{"line_number":119,"context_line":"Work Items"},{"line_number":120,"context_line":"----------"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"- Introduce problem and on-board help"},{"line_number":123,"context_line":"- Discuss solutions and adaptations"},{"line_number":124,"context_line":"- Get approved by the community"},{"line_number":125,"context_line":"- Code solution and include tests"},{"line_number":126,"context_line":"- Implement changes"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_a9bb650d","line":126,"range":{"start_line":122,"start_character":0,"end_line":126,"end_character":19},"updated":"2018-09-10 14:22:19.000000000","message":"The work items here should detail implementation work items. For example:\n\n- Enhance tempest cleanup functionality to...\n- Update unit testing\n- Update documentation\n- Integrate tempest cleanup in Tempest CICD jobs to better detect resource leaks\n\n\n... And so on.","commit_id":"ac25f3d0083ed95081bd481a58360060bb358df0"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"957bd661c2452da76b3673b9d73d3fb8b2965ddb","unresolved":false,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"https://blueprints.launchpad.net/tempest/+spec/tempest-smart-cleanup"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"The \u0027tempest cleanup\u0027_ command allows you to save a state and later,"},{"line_number":15,"context_line":"return to that saved state by cleaning up any resources created since"},{"line_number":16,"context_line":"that saved state. In other words - Resources that are not listed in the"},{"line_number":17,"context_line":"saved state are removed."}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_c7e73046","line":14,"range":{"start_line":14,"start_character":4,"end_line":14,"end_character":21},"updated":"2018-09-16 14:13:41.000000000","message":"this link has invalid syntax. see the sphinx documentation[1] on this.\n\n[1] http://www.sphinx-doc.org/en/master/usage/restructuredtext/basics.html#external-links","commit_id":"0d90c11944c500f4b5f10b340e2d0f36ce1241b8"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"957bd661c2452da76b3673b9d73d3fb8b2965ddb","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Example:"},{"line_number":22,"context_line":"Build has resources A, B, C"},{"line_number":23,"context_line":".. code-block:: yaml"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"  $ tempest cleanup --init-saved-state"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_e7ecac2a","line":23,"range":{"start_line":23,"start_character":16,"end_line":23,"end_character":20},"updated":"2018-09-16 14:13:41.000000000","message":"bash \n\nand I think this needs a newline above it, check the warnings generated when building these docs.","commit_id":"0d90c11944c500f4b5f10b340e2d0f36ce1241b8"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"957bd661c2452da76b3673b9d73d3fb8b2965ddb","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"saved_state.json is created with resources A, B, C"},{"line_number":28,"context_line":"run tests, resources are created: D, E, F"},{"line_number":29,"context_line":".. code-block:: yaml"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"  $ tempest cleanup"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_87edb825","line":29,"range":{"start_line":29,"start_character":16,"end_line":29,"end_character":20},"updated":"2018-09-16 14:13:41.000000000","message":"bash\n\nand I think this needs a newline above it, check the warnings generated when building these docs.","commit_id":"0d90c11944c500f4b5f10b340e2d0f36ce1241b8"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"957bd661c2452da76b3673b9d73d3fb8b2965ddb","unresolved":false,"context_lines":[{"line_number":39,"context_line":"project ID. If a project Id is not in the saved_state, cleanup will delete"},{"line_number":40,"context_line":"all associated resources."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Additionally, any items in the CONF are safe. The cleanup function will not"},{"line_number":43,"context_line":"delete admin resources."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Note: If a project that is in saved_state.json gains a volume after the"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_07c4485f","line":42,"range":{"start_line":42,"start_character":31,"end_line":42,"end_character":35},"updated":"2018-09-16 14:13:41.000000000","message":"what CONF? does this point to a specific value? A link or a unique name here would be helpful","commit_id":"0d90c11944c500f4b5f10b340e2d0f36ce1241b8"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"957bd661c2452da76b3673b9d73d3fb8b2965ddb","unresolved":false,"context_lines":[{"line_number":42,"context_line":"Additionally, any items in the CONF are safe. The cleanup function will not"},{"line_number":43,"context_line":"delete admin resources."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Note: If a project that is in saved_state.json gains a volume after the"},{"line_number":46,"context_line":"saved_state is initialized, that volume will not be removed when tempest"},{"line_number":47,"context_line":"cleanup is run. The project id is safe in the saved_state.json and thus its"},{"line_number":48,"context_line":"associated resources are safe by proxy."}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_27de246a","line":45,"range":{"start_line":45,"start_character":0,"end_line":45,"end_character":5},"updated":"2018-09-16 14:13:41.000000000","message":"in rst a note is normally started with \".. note:: \" instead of \"Note: \"","commit_id":"0d90c11944c500f4b5f10b340e2d0f36ce1241b8"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"957bd661c2452da76b3673b9d73d3fb8b2965ddb","unresolved":false,"context_lines":[{"line_number":42,"context_line":"Additionally, any items in the CONF are safe. The cleanup function will not"},{"line_number":43,"context_line":"delete admin resources."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Note: If a project that is in saved_state.json gains a volume after the"},{"line_number":46,"context_line":"saved_state is initialized, that volume will not be removed when tempest"},{"line_number":47,"context_line":"cleanup is run. The project id is safe in the saved_state.json and thus its"},{"line_number":48,"context_line":"associated resources are safe by proxy."}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_07e1a82b","line":45,"range":{"start_line":45,"start_character":55,"end_line":45,"end_character":61},"updated":"2018-09-16 14:13:41.000000000","message":"would this be true for any resource? or why is it only volumes?","commit_id":"0d90c11944c500f4b5f10b340e2d0f36ce1241b8"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"957bd661c2452da76b3673b9d73d3fb8b2965ddb","unresolved":false,"context_lines":[{"line_number":46,"context_line":"saved_state is initialized, that volume will not be removed when tempest"},{"line_number":47,"context_line":"cleanup is run. The project id is safe in the saved_state.json and thus its"},{"line_number":48,"context_line":"associated resources are safe by proxy."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Problem description"},{"line_number":52,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_87acd888","line":49,"updated":"2018-09-16 14:13:41.000000000","message":"I\u0027m not sure if we should describe tempest cleanup outside the problem description? Also it feels kind of weird we have ~40 lines summarizing the current implementation of tempest cleanup. Will a link to the current documentation suffice or why are the above lines better?","commit_id":"0d90c11944c500f4b5f10b340e2d0f36ce1241b8"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"5a0d59ceadfbc39101aa7f881fa55e10d4ef367c","unresolved":false,"context_lines":[{"line_number":46,"context_line":"saved_state is initialized, that volume will not be removed when tempest"},{"line_number":47,"context_line":"cleanup is run. The project id is safe in the saved_state.json and thus its"},{"line_number":48,"context_line":"associated resources are safe by proxy."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Problem description"},{"line_number":52,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_0cb184e0","line":49,"in_reply_to":"3f79a3b5_87acd888","updated":"2018-09-19 19:45:34.000000000","message":"please reply","commit_id":"0d90c11944c500f4b5f10b340e2d0f36ce1241b8"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"957bd661c2452da76b3673b9d73d3fb8b2965ddb","unresolved":false,"context_lines":[{"line_number":57,"context_line":"incorporate some resources that should not be saved. These issues become more"},{"line_number":58,"context_line":"clean when we look at an environment with multiple tenants and projects."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Example 1: Tenant A saves state, tenant B adds a resource, tenant A runs tests,"},{"line_number":61,"context_line":"  tenant A cleans up after tests, tenant B\u0027s resource gets cleaned up because"},{"line_number":62,"context_line":"  it does not appear in the saved_state.json."},{"line_number":63,"context_line":"Example 2: Tenant A saves state, tenant A runs tests, tenant B saves state,"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_e7a4acbb","line":60,"range":{"start_line":60,"start_character":11,"end_line":60,"end_character":17},"updated":"2018-09-16 14:13:41.000000000","message":"Tenant is not to be confused with Project, maybe we should change Tenant to User?","commit_id":"0d90c11944c500f4b5f10b340e2d0f36ce1241b8"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"957bd661c2452da76b3673b9d73d3fb8b2965ddb","unresolved":false,"context_lines":[{"line_number":63,"context_line":"Example 2: Tenant A saves state, tenant A runs tests, tenant B saves state,"},{"line_number":64,"context_line":"  tenant B runs tests, tenant A cleans up - Some test A elements are in the"},{"line_number":65,"context_line":"  saved state from tenant B, and cleanup removes resources created in test B."},{"line_number":66,"context_line":"Example 3: Two users are running two different CONF files and their admin"},{"line_number":67,"context_line":"  resources overlap. There is potential for one cleanup command to remove"},{"line_number":68,"context_line":"  another users admin resources."},{"line_number":69,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_a7aa3481","line":66,"range":{"start_line":66,"start_character":47,"end_line":66,"end_character":57},"updated":"2018-09-16 14:13:41.000000000","message":"do these refer to the CONF values that --delete-tempest-conf-objects[1] uses?\n\n[1] https://github.com/openstack/tempest/blob/9594233ffd93066677aa601c594d55f3a4f188d8/tempest/cmd/cleanup.py#L239","commit_id":"0d90c11944c500f4b5f10b340e2d0f36ce1241b8"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"5a0d59ceadfbc39101aa7f881fa55e10d4ef367c","unresolved":false,"context_lines":[{"line_number":63,"context_line":"Example 2: Tenant A saves state, tenant A runs tests, tenant B saves state,"},{"line_number":64,"context_line":"  tenant B runs tests, tenant A cleans up - Some test A elements are in the"},{"line_number":65,"context_line":"  saved state from tenant B, and cleanup removes resources created in test B."},{"line_number":66,"context_line":"Example 3: Two users are running two different CONF files and their admin"},{"line_number":67,"context_line":"  resources overlap. There is potential for one cleanup command to remove"},{"line_number":68,"context_line":"  another users admin resources."},{"line_number":69,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_accbb050","line":66,"range":{"start_line":66,"start_character":47,"end_line":66,"end_character":57},"in_reply_to":"3f79a3b5_a7aa3481","updated":"2018-09-19 19:45:34.000000000","message":"please reply","commit_id":"0d90c11944c500f4b5f10b340e2d0f36ce1241b8"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"957bd661c2452da76b3673b9d73d3fb8b2965ddb","unresolved":false,"context_lines":[{"line_number":64,"context_line":"  tenant B runs tests, tenant A cleans up - Some test A elements are in the"},{"line_number":65,"context_line":"  saved state from tenant B, and cleanup removes resources created in test B."},{"line_number":66,"context_line":"Example 3: Two users are running two different CONF files and their admin"},{"line_number":67,"context_line":"  resources overlap. There is potential for one cleanup command to remove"},{"line_number":68,"context_line":"  another users admin resources."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_4793205d","line":67,"range":{"start_line":67,"start_character":12,"end_line":67,"end_character":19},"updated":"2018-09-16 14:13:41.000000000","message":"I think this should be \"do not overlap\"","commit_id":"0d90c11944c500f4b5f10b340e2d0f36ce1241b8"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"957bd661c2452da76b3673b9d73d3fb8b2965ddb","unresolved":false,"context_lines":[{"line_number":78,"context_line":""},{"line_number":79,"context_line":"Solution is to add more \"intelligence\" or \"configurability\" to avoid such"},{"line_number":80,"context_line":"  unwanted destruction of resources."},{"line_number":81,"context_line":"    - Add back prefix to each resource"},{"line_number":82,"context_line":"      - Prefix is configured in tempest.conf"},{"line_number":83,"context_line":"        - one config is tempest prefix which is used in data_utils.rand_name"},{"line_number":84,"context_line":"      - Config option was deprecated/removed here: https://docs.openstack.org/releasenotes/tempest/unreleased.html#relnotes-18-0-0-upgrade-notes"},{"line_number":85,"context_line":"    - Ensure that each Tempest test uses data_utils.rand_name"},{"line_number":86,"context_line":"    - Add function that uses a json file to delete specific resources"},{"line_number":87,"context_line":"      - purge_state.json"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_a7cb14a2","line":84,"range":{"start_line":81,"start_character":5,"end_line":84,"end_character":50},"updated":"2018-09-16 14:13:41.000000000","message":"This appears to me to be one complete thought.\n\nWhat do you think about the following instead?\n\n\"\"\"\n- restore `resources_prefix` usage in `rand_name`_\n\n.. resource_prefix: https://docs.openstack.org/releasenotes/tempest/unreleased.html#relnotes-16-0-0-deprecation-notes\n\n.. rand_name: https://github.com/openstack/tempest/blob/9594233ffd93066677aa601c594d55f3a4f188d8/tempest/lib/common/utils/data_utils.py#L49\n\"\"\"","commit_id":"0d90c11944c500f4b5f10b340e2d0f36ce1241b8"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"957bd661c2452da76b3673b9d73d3fb8b2965ddb","unresolved":false,"context_lines":[{"line_number":84,"context_line":"      - Config option was deprecated/removed here: https://docs.openstack.org/releasenotes/tempest/unreleased.html#relnotes-18-0-0-upgrade-notes"},{"line_number":85,"context_line":"    - Ensure that each Tempest test uses data_utils.rand_name"},{"line_number":86,"context_line":"    - Add function that uses a json file to delete specific resources"},{"line_number":87,"context_line":"      - purge_state.json"},{"line_number":88,"context_line":"    - Update tempest cleanup CLI with new params"},{"line_number":89,"context_line":"      - add prefix"},{"line_number":90,"context_line":"      - add specific delete"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_c7bad0df","line":87,"range":{"start_line":87,"start_character":8,"end_line":87,"end_character":24},"updated":"2018-09-16 14:13:41.000000000","message":"so I\u0027m confused, I see your implementation here[1] which uses a file named \"purge_state.json\" and as of now, it can not use the resource_prefix[2] option because it is removed as stated on line 84. Will the purge_state.json file still be necessary if all projects have the configured prefix? I think it would be better if we can list projects and filter by the value in resources_prefix[2] rather than requiring a purge_state.json file from the user.\n\n[1] https://review.openstack.org/#/c/597733/4/tempest/cmd/cleanup.py@97\n[2] https://docs.openstack.org/releasenotes/tempest/unreleased.html#relnotes-16-0-0-deprecation-notes","commit_id":"0d90c11944c500f4b5f10b340e2d0f36ce1241b8"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"957bd661c2452da76b3673b9d73d3fb8b2965ddb","unresolved":false,"context_lines":[{"line_number":86,"context_line":"    - Add function that uses a json file to delete specific resources"},{"line_number":87,"context_line":"      - purge_state.json"},{"line_number":88,"context_line":"    - Update tempest cleanup CLI with new params"},{"line_number":89,"context_line":"      - add prefix"},{"line_number":90,"context_line":"      - add specific delete"},{"line_number":91,"context_line":"      - support --dryrun to help identify resources leaks"},{"line_number":92,"context_line":"    - Add documentation"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_477c801f","line":89,"range":{"start_line":89,"start_character":12,"end_line":89,"end_character":18},"updated":"2018-09-16 14:13:41.000000000","message":"Can you describe the purpose of this command? Will it cleanup resources only with resources_prefix[1] option?\n\n[1] https://docs.openstack.org/releasenotes/tempest/unreleased.html#relnotes-16-0-0-deprecation-notes","commit_id":"0d90c11944c500f4b5f10b340e2d0f36ce1241b8"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"957bd661c2452da76b3673b9d73d3fb8b2965ddb","unresolved":false,"context_lines":[{"line_number":87,"context_line":"      - purge_state.json"},{"line_number":88,"context_line":"    - Update tempest cleanup CLI with new params"},{"line_number":89,"context_line":"      - add prefix"},{"line_number":90,"context_line":"      - add specific delete"},{"line_number":91,"context_line":"      - support --dryrun to help identify resources leaks"},{"line_number":92,"context_line":"    - Add documentation"},{"line_number":93,"context_line":"      - for UUID/unique prefix"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_a7b554ef","line":90,"range":{"start_line":90,"start_character":12,"end_line":90,"end_character":27},"updated":"2018-09-16 14:13:41.000000000","message":"Is this \"--purge\" on line 111? we should update to reflect the example.","commit_id":"0d90c11944c500f4b5f10b340e2d0f36ce1241b8"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"5a0d59ceadfbc39101aa7f881fa55e10d4ef367c","unresolved":false,"context_lines":[{"line_number":87,"context_line":"      - purge_state.json"},{"line_number":88,"context_line":"    - Update tempest cleanup CLI with new params"},{"line_number":89,"context_line":"      - add prefix"},{"line_number":90,"context_line":"      - add specific delete"},{"line_number":91,"context_line":"      - support --dryrun to help identify resources leaks"},{"line_number":92,"context_line":"    - Add documentation"},{"line_number":93,"context_line":"      - for UUID/unique prefix"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_6c8ef8d1","line":90,"range":{"start_line":90,"start_character":12,"end_line":90,"end_character":27},"in_reply_to":"3f79a3b5_a7b554ef","updated":"2018-09-19 19:45:34.000000000","message":"please reply.","commit_id":"0d90c11944c500f4b5f10b340e2d0f36ce1241b8"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"957bd661c2452da76b3673b9d73d3fb8b2965ddb","unresolved":false,"context_lines":[{"line_number":90,"context_line":"      - add specific delete"},{"line_number":91,"context_line":"      - support --dryrun to help identify resources leaks"},{"line_number":92,"context_line":"    - Add documentation"},{"line_number":93,"context_line":"      - for UUID/unique prefix"},{"line_number":94,"context_line":"      - for specific delete function"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"Example purge_state.json:"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_c75e50e8","line":93,"range":{"start_line":93,"start_character":12,"end_line":93,"end_character":23},"updated":"2018-09-16 14:13:41.000000000","message":"will it be UUID? or is it just the resoures_prefix[1] option again? \n\n[1] https://docs.openstack.org/releasenotes/tempest/unreleased.html#relnotes-16-0-0-deprecation-notes","commit_id":"0d90c11944c500f4b5f10b340e2d0f36ce1241b8"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"957bd661c2452da76b3673b9d73d3fb8b2965ddb","unresolved":false,"context_lines":[{"line_number":91,"context_line":"      - support --dryrun to help identify resources leaks"},{"line_number":92,"context_line":"    - Add documentation"},{"line_number":93,"context_line":"      - for UUID/unique prefix"},{"line_number":94,"context_line":"      - for specific delete function"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"Example purge_state.json:"},{"line_number":97,"context_line":".. code-block:: json"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_e7310ca4","line":94,"range":{"start_line":94,"start_character":28,"end_line":94,"end_character":36},"updated":"2018-09-16 14:13:41.000000000","message":"How does a user specify they want to use the specific delete function?\nWill this also have a command to invoke the function, like --resource-prefix-delete or --prefix-delete?","commit_id":"0d90c11944c500f4b5f10b340e2d0f36ce1241b8"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"957bd661c2452da76b3673b9d73d3fb8b2965ddb","unresolved":false,"context_lines":[{"line_number":94,"context_line":"      - for specific delete function"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"Example purge_state.json:"},{"line_number":97,"context_line":".. code-block:: json"},{"line_number":98,"context_line":"  {"},{"line_number":99,"context_line":"    \"domains\": {},"},{"line_number":100,"context_line":"    \"flavors\": {},"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_27138403","line":97,"range":{"start_line":97,"start_character":0,"end_line":97,"end_character":20},"updated":"2018-09-16 14:13:41.000000000","message":"I think this needs a new line above and below it, check the warnings generated while the docs are building.","commit_id":"0d90c11944c500f4b5f10b340e2d0f36ce1241b8"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"957bd661c2452da76b3673b9d73d3fb8b2965ddb","unresolved":false,"context_lines":[{"line_number":117,"context_line":"Alternatives"},{"line_number":118,"context_line":"------------"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"- Separate domain for each user so only resources that domain are deleted"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"Projects"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_a798f468","line":120,"range":{"start_line":120,"start_character":50,"end_line":120,"end_character":54},"updated":"2018-09-16 14:13:41.000000000","message":"in that","commit_id":"0d90c11944c500f4b5f10b340e2d0f36ce1241b8"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"957bd661c2452da76b3673b9d73d3fb8b2965ddb","unresolved":false,"context_lines":[{"line_number":144,"context_line":"Work Items"},{"line_number":145,"context_line":"----------"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"- Update spec with idea from 0.0.2"},{"line_number":148,"context_line":"  - get merged"},{"line_number":149,"context_line":"- Update tempest cleanup"},{"line_number":150,"context_line":"  - Add specific delete option"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_e7634cb0","line":147,"range":{"start_line":147,"start_character":9,"end_line":147,"end_character":13},"updated":"2018-09-16 14:13:41.000000000","message":"what spec? A link or a name here would be nice.","commit_id":"0d90c11944c500f4b5f10b340e2d0f36ce1241b8"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"957bd661c2452da76b3673b9d73d3fb8b2965ddb","unresolved":false,"context_lines":[{"line_number":150,"context_line":"  - Add specific delete option"},{"line_number":151,"context_line":"  - Add back resource_prefix config option"},{"line_number":152,"context_line":"  - Add back to data_utils.rand_name"},{"line_number":153,"context_line":"  - Go through all tempest tests and make sure data_utils.rand_name is used"},{"line_number":154,"context_line":"  - Update cli with commands for delete and prefix"},{"line_number":155,"context_line":"- Update documentation"},{"line_number":156,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_8754d8c7","line":153,"range":{"start_line":153,"start_character":47,"end_line":153,"end_character":67},"updated":"2018-09-16 14:13:41.000000000","message":"The minimum requirement is only for projects to use this method when they are being created right?","commit_id":"0d90c11944c500f4b5f10b340e2d0f36ce1241b8"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"957bd661c2452da76b3673b9d73d3fb8b2965ddb","unresolved":false,"context_lines":[{"line_number":151,"context_line":"  - Add back resource_prefix config option"},{"line_number":152,"context_line":"  - Add back to data_utils.rand_name"},{"line_number":153,"context_line":"  - Go through all tempest tests and make sure data_utils.rand_name is used"},{"line_number":154,"context_line":"  - Update cli with commands for delete and prefix"},{"line_number":155,"context_line":"- Update documentation"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_679e5c55","line":154,"range":{"start_line":154,"start_character":33,"end_line":154,"end_character":39},"updated":"2018-09-16 14:13:41.000000000","message":"is this \"--purge\" referenced on line 111? we should update it to reflect the example.","commit_id":"0d90c11944c500f4b5f10b340e2d0f36ce1241b8"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"5a0d59ceadfbc39101aa7f881fa55e10d4ef367c","unresolved":false,"context_lines":[{"line_number":151,"context_line":"  - Add back resource_prefix config option"},{"line_number":152,"context_line":"  - Add back to data_utils.rand_name"},{"line_number":153,"context_line":"  - Go through all tempest tests and make sure data_utils.rand_name is used"},{"line_number":154,"context_line":"  - Update cli with commands for delete and prefix"},{"line_number":155,"context_line":"- Update documentation"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_4c09bc92","line":154,"range":{"start_line":154,"start_character":33,"end_line":154,"end_character":39},"in_reply_to":"3f79a3b5_679e5c55","updated":"2018-09-19 19:45:34.000000000","message":"please reply","commit_id":"0d90c11944c500f4b5f10b340e2d0f36ce1241b8"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"5a0d59ceadfbc39101aa7f881fa55e10d4ef367c","unresolved":false,"context_lines":[{"line_number":19,"context_line":".. _tempest cleanup: https://docs.openstack.org/tempest/latest/cleanup.html"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Example::"},{"line_number":22,"context_line":"  "},{"line_number":23,"context_line":"  Build has resources A, B, C"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"  $ tempest cleanup --init-saved-state"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_2cf00067","line":22,"range":{"start_line":22,"start_character":0,"end_line":22,"end_character":2},"updated":"2018-09-19 19:45:34.000000000","message":"clean up the whitespace","commit_id":"bff3837540145302869a5d0d09882e8cda455bc5"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"5a0d59ceadfbc39101aa7f881fa55e10d4ef367c","unresolved":false,"context_lines":[{"line_number":39,"context_line":"project ID. If a project Id is not in the saved_state, cleanup will delete"},{"line_number":40,"context_line":"all associated resources."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Additionally, any items in the `CONF`_ are safe. The cleanup function will not"},{"line_number":43,"context_line":"delete admin resources."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":".. _CONF: https://github.com/openstack/tempest/blob/master/tempest/config.py"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_ec944838","line":42,"range":{"start_line":42,"start_character":0,"end_line":42,"end_character":48},"updated":"2018-09-19 19:45:34.000000000","message":"This statement does not make sense.","commit_id":"bff3837540145302869a5d0d09882e8cda455bc5"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"5a0d59ceadfbc39101aa7f881fa55e10d4ef367c","unresolved":false,"context_lines":[{"line_number":100,"context_line":""},{"line_number":101,"context_line":"Example purge_state.json:"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":".. code-block:: yaml"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"  {"},{"line_number":106,"context_line":"    \"domains\": {},"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_cc670c51","line":103,"range":{"start_line":103,"start_character":16,"end_line":103,"end_character":20},"updated":"2018-09-19 19:45:34.000000000","message":"revert this change, or can you tell me why it was it made?","commit_id":"bff3837540145302869a5d0d09882e8cda455bc5"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"5a0d59ceadfbc39101aa7f881fa55e10d4ef367c","unresolved":false,"context_lines":[{"line_number":108,"context_line":"    \"images\": {},"},{"line_number":109,"context_line":"    \"projects\": {"},{"line_number":110,"context_line":"      \"b37b97e062facea08c602\": \"prefix_project\""},{"line_number":111,"context_line":"      }"},{"line_number":112,"context_line":"  },"},{"line_number":113,"context_line":"    \"roles\": {},"},{"line_number":114,"context_line":"    \"users\": {"},{"line_number":115,"context_line":"      \"a9e26c0c57114ca1be28d\": \"prefix_name\""}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_0c82e4c7","line":112,"range":{"start_line":111,"start_character":4,"end_line":112,"end_character":4},"updated":"2018-09-19 19:45:34.000000000","message":"revert this change or can you tell me why it was made?","commit_id":"bff3837540145302869a5d0d09882e8cda455bc5"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"5a0d59ceadfbc39101aa7f881fa55e10d4ef367c","unresolved":false,"context_lines":[{"line_number":156,"context_line":"* Get approval for this spec"},{"line_number":157,"context_line":"* Update tempest cleanup"},{"line_number":158,"context_line":"   * Add back resource_prefix config option"},{"line_number":159,"context_line":"   * Add back to data_utils.rand_name"},{"line_number":160,"context_line":"   * Add code to delete based on prefix"},{"line_number":161,"context_line":"   * Add cli commands to delete based on prefix"},{"line_number":162,"context_line":"   * Go through all tempest tests and make sure data_utils.rand_name is used"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_8cea749d","line":159,"range":{"start_line":159,"start_character":5,"end_line":159,"end_character":37},"updated":"2018-09-19 19:45:34.000000000","message":"this doesn\u0027t make sense to me.\n\nWhat is back, and why is it added to rand_name?","commit_id":"bff3837540145302869a5d0d09882e8cda455bc5"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"b84d351f1126fae4a6d050aa25c5c29f3c47ba92","unresolved":false,"context_lines":[{"line_number":30,"context_line":"  resource(s) after the saved_state is initialized, those resources will"},{"line_number":31,"context_line":"  not be removed when tempest cleanup is run."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":".. _project service: https://github.com/openstack/tempest/blob/master/tempest/cmd/cleanup_service.py#L925"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":8,"id":"3f79a3b5_f405db7a","line":33,"range":{"start_line":33,"start_character":63,"end_line":33,"end_character":69},"updated":"2018-09-20 13:44:40.000000000","message":"all links with line numbers should include the commit id here instead of the branch so that the line reference is preserved.","commit_id":"2ed42257550beae48ce2ad059f95273400e704b8"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"f365993b3cb7a85adb5c54df140104c64eaa4269","unresolved":false,"context_lines":[{"line_number":12,"context_line":"https://blueprints.launchpad.net/tempest/+spec/tempest-smart-cleanup"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"The `tempest cleanup`_ command allows you to delete resources based on a saved"},{"line_number":15,"context_line":"state json file that contains `global resource ids`_ and names. Running the"},{"line_number":16,"context_line":"cleanup command without parameters will delete all resources not listed in the"},{"line_number":17,"context_line":"saved state json file."},{"line_number":18,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"3f79a3b5_882ea740","line":15,"range":{"start_line":15,"start_character":30,"end_line":15,"end_character":52},"updated":"2018-09-22 15:19:59.000000000","message":"this points to a function that gets a collection of classes. As a reader this doesn\u0027t look like resource ids to me. I think something like this[1] would be more clear don\u0027t you think?\n\n[1] https://github.com/openstack/tempest/blob/ecddd38ecbdb5df05543f106e10e14a9e7d0d3da/tempest/cmd/cleanup_service.py#L65-L76","commit_id":"7dfc6989e33ef12a5c41b61363f9188dc692e7f7"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"f365993b3cb7a85adb5c54df140104c64eaa4269","unresolved":false,"context_lines":[{"line_number":128,"context_line":"* Get approval for this spec"},{"line_number":129,"context_line":"* Update tempest cleanup"},{"line_number":130,"context_line":"   * Restore resource_prefix config option"},{"line_number":131,"context_line":"   * Update code to ensure all tests us prefix"},{"line_number":132,"context_line":"   * Add code to specifically delete resources based on prefix"},{"line_number":133,"context_line":"   * Add cli commands activate prefix delete"},{"line_number":134,"context_line":"   * Ensure --dry-run is supported by prefix delete"}],"source_content_type":"text/x-rst","patch_set":9,"id":"3f79a3b5_e964fde8","line":131,"range":{"start_line":131,"start_character":37,"end_line":131,"end_character":39},"updated":"2018-09-22 15:19:59.000000000","message":"use","commit_id":"7dfc6989e33ef12a5c41b61363f9188dc692e7f7"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"f365993b3cb7a85adb5c54df140104c64eaa4269","unresolved":false,"context_lines":[{"line_number":130,"context_line":"   * Restore resource_prefix config option"},{"line_number":131,"context_line":"   * Update code to ensure all tests us prefix"},{"line_number":132,"context_line":"   * Add code to specifically delete resources based on prefix"},{"line_number":133,"context_line":"   * Add cli commands activate prefix delete"},{"line_number":134,"context_line":"   * Ensure --dry-run is supported by prefix delete"},{"line_number":135,"context_line":"* Update documentation"},{"line_number":136,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"3f79a3b5_c95b4120","line":133,"range":{"start_line":133,"start_character":22,"end_line":133,"end_character":30},"updated":"2018-09-22 15:19:59.000000000","message":"to activate","commit_id":"7dfc6989e33ef12a5c41b61363f9188dc692e7f7"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"d11847e388c7307f07cbe8b3fb8ac9ddabee5cdc","unresolved":false,"context_lines":[{"line_number":6,"context_line":".."},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":9,"context_line":"Tempest Smart Cleanup"},{"line_number":10,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"https://blueprints.launchpad.net/tempest/+spec/tempest-smart-cleanup"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3f79a3b5_e65b5c83","line":9,"updated":"2018-09-27 23:40:18.000000000","message":"Regarding structure:\n\n1) Introduction. Introducing Tempest cleanup, what it does, and what its limitations are is sufficient. Then you can transition into your problem statement by stating that these limitations can be solved using a \"smarter\" cleanup implementation.\n\n2)","commit_id":"9ce1dc1572281568d2b7d43da5a1b5cd8d594b54"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"71cfa671f0e830f799869e2a2da6f38cd7db5953","unresolved":false,"context_lines":[{"line_number":6,"context_line":".."},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":9,"context_line":"Tempest Smart Cleanup"},{"line_number":10,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"https://blueprints.launchpad.net/tempest/+spec/tempest-smart-cleanup"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3f79a3b5_a61c847b","line":9,"in_reply_to":"3f79a3b5_e65b5c83","updated":"2018-09-27 23:41:08.000000000","message":"2) Break up proposed implementation into sentences.\n3) Move bullets from proposed implementation into work items.","commit_id":"9ce1dc1572281568d2b7d43da5a1b5cd8d594b54"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"d11847e388c7307f07cbe8b3fb8ac9ddabee5cdc","unresolved":false,"context_lines":[{"line_number":12,"context_line":"https://blueprints.launchpad.net/tempest/+spec/tempest-smart-cleanup"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"The `tempest cleanup`_ command allows you to delete resources based on a saved"},{"line_number":15,"context_line":"state json file that contains `global resource ids`_ and names. Running the"},{"line_number":16,"context_line":"cleanup command without parameters will delete all resources not listed in the"},{"line_number":17,"context_line":"saved state json file."},{"line_number":18,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"3f79a3b5_0611b8af","line":15,"range":{"start_line":15,"start_character":29,"end_line":15,"end_character":52},"updated":"2018-09-27 23:40:18.000000000","message":"Why only mention global resources? There are project resources as well. Why is it important to only stress global resources? What does that imply?","commit_id":"9ce1dc1572281568d2b7d43da5a1b5cd8d594b54"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"d11847e388c7307f07cbe8b3fb8ac9ddabee5cdc","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"The `tempest cleanup`_ command allows you to delete resources based on a saved"},{"line_number":15,"context_line":"state json file that contains `global resource ids`_ and names. Running the"},{"line_number":16,"context_line":"cleanup command without parameters will delete all resources not listed in the"},{"line_number":17,"context_line":"saved state json file."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":".. _tempest cleanup: https://docs.openstack.org/tempest/16.1.0/cleanup.html"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3f79a3b5_464570b3","line":16,"range":{"start_line":16,"start_character":16,"end_line":16,"end_character":34},"updated":"2018-09-27 23:40:18.000000000","message":"Without which parameters?","commit_id":"9ce1dc1572281568d2b7d43da5a1b5cd8d594b54"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"d11847e388c7307f07cbe8b3fb8ac9ddabee5cdc","unresolved":false,"context_lines":[{"line_number":16,"context_line":"cleanup command without parameters will delete all resources not listed in the"},{"line_number":17,"context_line":"saved state json file."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":".. _tempest cleanup: https://docs.openstack.org/tempest/16.1.0/cleanup.html"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":".. note:: `global resource ids`_ are: Domain, Flavor, Image, Project, Role, and User"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"3f79a3b5_0676980d","line":19,"updated":"2018-09-27 23:40:18.000000000","message":"Regarding formatting from L19-36:\n\n1) Group the reference links together, circa L36. It makes the text easier to read and maintain.\n2) Refrain from using so many notes. A note is something to be stressed, but when you have 4 notes in a row this sort of reduces the value in stressing something if everything is stressed.\n3) Some of these notes are basically anticipating the problem itself. See my first comment regarding the overall structure above.","commit_id":"9ce1dc1572281568d2b7d43da5a1b5cd8d594b54"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"d11847e388c7307f07cbe8b3fb8ac9ddabee5cdc","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":".. _tempest cleanup: https://docs.openstack.org/tempest/16.1.0/cleanup.html"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":".. note:: `global resource ids`_ are: Domain, Flavor, Image, Project, Role, and User"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":".. _global resource ids: https://github.com/openstack/tempest/blob/ecddd38ecbdb5df05543f106e10e14a9e7d0d3da/tempest/cmd/cleanup_service.py#L954"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"3f79a3b5_26ddd412","line":21,"range":{"start_line":21,"start_character":33,"end_line":21,"end_character":36},"updated":"2018-09-27 23:40:18.000000000","message":"are, at the time of writing this spec:","commit_id":"9ce1dc1572281568d2b7d43da5a1b5cd8d594b54"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"294a9b3571acd471f9e03f2b3d9d1ab918a708d1","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":".. note:: `global resource ids`_ are: Domain, Flavor, Image, Project, Role, and User"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":".. _global resource ids: https://github.com/openstack/tempest/blob/ecddd38ecbdb5df05543f106e10e14a9e7d0d3da/tempest/cmd/cleanup_service.py#L954"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":".. note:: Tempest cleanup runs using a `configuration file`_ or CONF. This file"},{"line_number":26,"context_line":"  contains a selection of admin resources that are exempt from the cleanup"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3f79a3b5_96789dc1","line":23,"updated":"2018-09-27 17:16:58.000000000","message":"I still think this link should point to the IDs[1] rather than the method but i don\u0027t want to block the spec for this reason.\n\nhttps://github.com/openstack/tempest/blob/ecddd38ecbdb5df05543f106e10e14a9e7d0d3da/tempest/cmd/cleanup_service.py#L65-L76","commit_id":"9ce1dc1572281568d2b7d43da5a1b5cd8d594b54"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"d11847e388c7307f07cbe8b3fb8ac9ddabee5cdc","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":".. _global resource ids: https://github.com/openstack/tempest/blob/ecddd38ecbdb5df05543f106e10e14a9e7d0d3da/tempest/cmd/cleanup_service.py#L954"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":".. note:: Tempest cleanup runs using a `configuration file`_ or CONF. This file"},{"line_number":26,"context_line":"  contains a selection of admin resources that are exempt from the cleanup"},{"line_number":27,"context_line":"  function."},{"line_number":28,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"3f79a3b5_267954fa","line":25,"range":{"start_line":25,"start_character":61,"end_line":25,"end_character":68},"updated":"2018-09-27 23:40:18.000000000","message":"nit: redundant, plus this is implementation-specific.","commit_id":"9ce1dc1572281568d2b7d43da5a1b5cd8d594b54"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"d11847e388c7307f07cbe8b3fb8ac9ddabee5cdc","unresolved":false,"context_lines":[{"line_number":23,"context_line":".. _global resource ids: https://github.com/openstack/tempest/blob/ecddd38ecbdb5df05543f106e10e14a9e7d0d3da/tempest/cmd/cleanup_service.py#L954"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":".. note:: Tempest cleanup runs using a `configuration file`_ or CONF. This file"},{"line_number":26,"context_line":"  contains a selection of admin resources that are exempt from the cleanup"},{"line_number":27,"context_line":"  function."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":".. _configuration file: https://github.com/openstack/tempest/blob/ecddd38ecbdb5df05543f106e10e14a9e7d0d3da/tempest/config.py"},{"line_number":30,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"3f79a3b5_c67f40dd","line":27,"range":{"start_line":26,"start_character":2,"end_line":27,"end_character":11},"updated":"2018-09-27 23:40:18.000000000","message":"This is not true: \"By default the admin project is not deleted and the admin user specified in tempest.conf is never deleted.\" Which means that you can delete the admin project: \"--delete-tempest-conf-objects: If option is present, then the command will delete the admin project in addition to the resources associated with them on clean up.\"\n\nThis is all contained in https://docs.openstack.org/tempest/16.1.0/cleanup.html","commit_id":"9ce1dc1572281568d2b7d43da5a1b5cd8d594b54"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"d11847e388c7307f07cbe8b3fb8ac9ddabee5cdc","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":".. _configuration file: https://github.com/openstack/tempest/blob/ecddd38ecbdb5df05543f106e10e14a9e7d0d3da/tempest/config.py"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":".. note:: Projects have additional `project service`_ resources associated"},{"line_number":32,"context_line":"  with them. If a project that is in saved_state.json gains any additional"},{"line_number":33,"context_line":"  resource(s) after the saved_state is initialized, those resources will"},{"line_number":34,"context_line":"  not be removed when tempest cleanup is run."}],"source_content_type":"text/x-rst","patch_set":10,"id":"3f79a3b5_666e6c2d","line":31,"range":{"start_line":31,"start_character":35,"end_line":31,"end_character":63},"updated":"2018-09-27 23:40:18.000000000","message":"Ok, thanks for mentioning this, but may we include this in the opening paragraph alongside global resources?","commit_id":"9ce1dc1572281568d2b7d43da5a1b5cd8d594b54"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"d11847e388c7307f07cbe8b3fb8ac9ddabee5cdc","unresolved":false,"context_lines":[{"line_number":39,"context_line":"Problem description"},{"line_number":40,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Tempest cleanup is a one size fits all approach which deletes all resources"},{"line_number":43,"context_line":"that are not listed in the save_state.json. This approach has the potential of"},{"line_number":44,"context_line":"cleaning up too much, and initializing a saved state at the wrong time could"},{"line_number":45,"context_line":"incorporate some resources that should not be saved. These issues become more"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3f79a3b5_a64d64c6","line":42,"range":{"start_line":42,"start_character":21,"end_line":42,"end_character":38},"updated":"2018-09-27 23:40:18.000000000","message":"one-size-fits-all","commit_id":"9ce1dc1572281568d2b7d43da5a1b5cd8d594b54"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"d11847e388c7307f07cbe8b3fb8ac9ddabee5cdc","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Tempest cleanup is a one size fits all approach which deletes all resources"},{"line_number":43,"context_line":"that are not listed in the save_state.json. This approach has the potential of"},{"line_number":44,"context_line":"cleaning up too much, and initializing a saved state at the wrong time could"},{"line_number":45,"context_line":"incorporate some resources that should not be saved. These issues become more"},{"line_number":46,"context_line":"apparent when an environment with multiple users and projects is used."},{"line_number":47,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"3f79a3b5_66474ca5","line":44,"range":{"start_line":44,"start_character":71,"end_line":44,"end_character":76},"updated":"2018-09-27 23:40:18.000000000","message":"which could","commit_id":"9ce1dc1572281568d2b7d43da5a1b5cd8d594b54"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"d11847e388c7307f07cbe8b3fb8ac9ddabee5cdc","unresolved":false,"context_lines":[{"line_number":43,"context_line":"that are not listed in the save_state.json. This approach has the potential of"},{"line_number":44,"context_line":"cleaning up too much, and initializing a saved state at the wrong time could"},{"line_number":45,"context_line":"incorporate some resources that should not be saved. These issues become more"},{"line_number":46,"context_line":"apparent when an environment with multiple users and projects is used."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"Example 1: User A saves state, user B adds a resource, user A runs tests,"},{"line_number":49,"context_line":"  user A cleans up after tests, user B\u0027s resource gets cleaned up because"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3f79a3b5_26c71414","line":46,"updated":"2018-09-27 23:40:18.000000000","message":"I think it would be better to list out each problem using a bullet point.","commit_id":"9ce1dc1572281568d2b7d43da5a1b5cd8d594b54"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"d11847e388c7307f07cbe8b3fb8ac9ddabee5cdc","unresolved":false,"context_lines":[{"line_number":45,"context_line":"incorporate some resources that should not be saved. These issues become more"},{"line_number":46,"context_line":"apparent when an environment with multiple users and projects is used."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"Example 1: User A saves state, user B adds a resource, user A runs tests,"},{"line_number":49,"context_line":"  user A cleans up after tests, user B\u0027s resource gets cleaned up because"},{"line_number":50,"context_line":"  it does not appear in the saved_state.json."},{"line_number":51,"context_line":"Example 2: User A saves state, user A runs tests, user B saves state,"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3f79a3b5_86d708c1","line":48,"updated":"2018-09-27 23:40:18.000000000","message":"Each example, in turn, could be paired with the associated problem.","commit_id":"9ce1dc1572281568d2b7d43da5a1b5cd8d594b54"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"d11847e388c7307f07cbe8b3fb8ac9ddabee5cdc","unresolved":false,"context_lines":[{"line_number":59,"context_line":"Proposed change / Solution"},{"line_number":60,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"`Current implementation`_:"},{"line_number":63,"context_line":"  * Deletes all resources not in saved_state.json"},{"line_number":64,"context_line":"  * Includes warning: \"This may cause an unwanted destruction of cloud"},{"line_number":65,"context_line":"      resources, so use caution with this command.\""},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Solution is to add \"configurability\" in order to maintain desired resources."},{"line_number":68,"context_line":"  * Restore `resources_prefix`_ using `rand_name`_ to prefix resources"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3f79a3b5_a6d244ce","line":65,"range":{"start_line":62,"start_character":0,"end_line":65,"end_character":51},"updated":"2018-09-27 23:40:18.000000000","message":"This should be moved to the introduction.","commit_id":"9ce1dc1572281568d2b7d43da5a1b5cd8d594b54"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"d11847e388c7307f07cbe8b3fb8ac9ddabee5cdc","unresolved":false,"context_lines":[{"line_number":65,"context_line":"      resources, so use caution with this command.\""},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Solution is to add \"configurability\" in order to maintain desired resources."},{"line_number":68,"context_line":"  * Restore `resources_prefix`_ using `rand_name`_ to prefix resources"},{"line_number":69,"context_line":"     * Prefix generated using rand_name is configured in tempest.conf"},{"line_number":70,"context_line":"     * `Config option`_ was deprecated/removed"},{"line_number":71,"context_line":"  * Ensure that each Tempest test uses the prefix in naming"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3f79a3b5_4656d02c","line":68,"updated":"2018-09-27 23:40:18.000000000","message":"These bullets can be moved to Work Items. The actual proposed change should be explained using sentences. It just needs to be a summary overview as well as a brief justification as to why the explained solution works.","commit_id":"9ce1dc1572281568d2b7d43da5a1b5cd8d594b54"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"d11847e388c7307f07cbe8b3fb8ac9ddabee5cdc","unresolved":false,"context_lines":[{"line_number":128,"context_line":"Work Items"},{"line_number":129,"context_line":"----------"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"* Get approval for this spec"},{"line_number":132,"context_line":"* Update tempest cleanup"},{"line_number":133,"context_line":"   * Restore resource_prefix config option"},{"line_number":134,"context_line":"   * Update code to ensure all tests use prefix"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3f79a3b5_867388e8","line":131,"range":{"start_line":131,"start_character":0,"end_line":131,"end_character":28},"updated":"2018-09-27 23:40:18.000000000","message":"This can be removed.","commit_id":"9ce1dc1572281568d2b7d43da5a1b5cd8d594b54"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"d11847e388c7307f07cbe8b3fb8ac9ddabee5cdc","unresolved":false,"context_lines":[{"line_number":130,"context_line":""},{"line_number":131,"context_line":"* Get approval for this spec"},{"line_number":132,"context_line":"* Update tempest cleanup"},{"line_number":133,"context_line":"   * Restore resource_prefix config option"},{"line_number":134,"context_line":"   * Update code to ensure all tests use prefix"},{"line_number":135,"context_line":"   * Add code to specifically delete resources based on prefix"},{"line_number":136,"context_line":"   * Add cli commands to activate prefix delete"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3f79a3b5_a66ec4fb","line":133,"range":{"start_line":133,"start_character":13,"end_line":133,"end_character":28},"updated":"2018-09-27 23:40:18.000000000","message":"``resource_prefix``\n\nDitto above","commit_id":"9ce1dc1572281568d2b7d43da5a1b5cd8d594b54"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"d11847e388c7307f07cbe8b3fb8ac9ddabee5cdc","unresolved":false,"context_lines":[{"line_number":134,"context_line":"   * Update code to ensure all tests use prefix"},{"line_number":135,"context_line":"   * Add code to specifically delete resources based on prefix"},{"line_number":136,"context_line":"   * Add cli commands to activate prefix delete"},{"line_number":137,"context_line":"   * Ensure --dry-run is supported by prefix delete"},{"line_number":138,"context_line":"* Update documentation"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"3f79a3b5_6678acc0","line":137,"range":{"start_line":137,"start_character":13,"end_line":137,"end_character":21},"updated":"2018-09-27 23:40:18.000000000","message":"``--dry-run``","commit_id":"9ce1dc1572281568d2b7d43da5a1b5cd8d594b54"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"d11847e388c7307f07cbe8b3fb8ac9ddabee5cdc","unresolved":false,"context_lines":[{"line_number":141,"context_line":"Dependencies"},{"line_number":142,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"Openstack/tempest"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"References"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3f79a3b5_06bbf874","line":144,"range":{"start_line":144,"start_character":0,"end_line":144,"end_character":17},"updated":"2018-09-27 23:40:18.000000000","message":"http://git.openstack.org/cgit/openstack/qa-specs/tree/template.rst#n96\n\nI think it is worth mentioning here that this has an internal dependency on ensuring that all resource names are created using data_utils.rand_name(). That would require grepping through the code. If there are inconsistencies a bp can be created to track the issues and linked here.","commit_id":"9ce1dc1572281568d2b7d43da5a1b5cd8d594b54"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"d11847e388c7307f07cbe8b3fb8ac9ddabee5cdc","unresolved":false,"context_lines":[{"line_number":147,"context_line":"References"},{"line_number":148,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"https://etherpad.openstack.org/p/tempest-cleanup-feature"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3f79a3b5_e66cbc08","line":150,"updated":"2018-09-27 23:40:18.000000000","message":"Include a * in front of this.","commit_id":"9ce1dc1572281568d2b7d43da5a1b5cd8d594b54"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"c1f01297902bd28d34fce9ff3cc710b88104eea5","unresolved":false,"context_lines":[{"line_number":6,"context_line":".."},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":9,"context_line":"Tempest Smart Cleanup"},{"line_number":10,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"https://blueprints.launchpad.net/tempest/+spec/tempest-smart-cleanup"}],"source_content_type":"text/x-rst","patch_set":11,"id":"3f79a3b5_6a715c0d","line":9,"range":{"start_line":9,"start_character":8,"end_line":9,"end_character":13},"updated":"2018-10-22 18:47:13.000000000","message":"Perhaps idempotent or tenant-isolated is a better description. \"Smart\" is a loaded term.","commit_id":"bab2d011ac63fef98ad68feb687e002c1d6db9a9"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"c1f01297902bd28d34fce9ff3cc710b88104eea5","unresolved":false,"context_lines":[{"line_number":35,"context_line":"that are not listed in the save_state.json. If multiple tests are being run,"},{"line_number":36,"context_line":"multiple saved_states are required and, in turn, creates issues:"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"  * Creates potential to clean up more than expected"},{"line_number":39,"context_line":"    * Example 1: User A saves state, user B adds a resource, user A runs"},{"line_number":40,"context_line":"        tests, user A cleans up after tests, user B\u0027s resource gets cleaned up"},{"line_number":41,"context_line":"        because it does not appear in the saved_state.json."}],"source_content_type":"text/x-rst","patch_set":11,"id":"3f79a3b5_ca1d10c0","line":38,"updated":"2018-10-22 18:47:13.000000000","message":"Please unindent everything here once. The formatting should match what\u0027s on L108+.","commit_id":"bab2d011ac63fef98ad68feb687e002c1d6db9a9"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"c1f01297902bd28d34fce9ff3cc710b88104eea5","unresolved":false,"context_lines":[{"line_number":47,"context_line":"         test B."},{"line_number":48,"context_line":"  * Multiple CONF files can result in admin resources being deleted"},{"line_number":49,"context_line":"     * Example 3: Two users are running two different CONF files and their"},{"line_number":50,"context_line":"         admin resources do not overlap. There is potential for one cleanup "},{"line_number":51,"context_line":"         command to remove the other users admin resources."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"3f79a3b5_eafa4c75","line":50,"range":{"start_line":50,"start_character":75,"end_line":50,"end_character":76},"updated":"2018-10-22 18:47:13.000000000","message":"ws","commit_id":"bab2d011ac63fef98ad68feb687e002c1d6db9a9"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"c1f01297902bd28d34fce9ff3cc710b88104eea5","unresolved":false,"context_lines":[{"line_number":78,"context_line":"One possible alternative that has been suggested is that we create separate"},{"line_number":79,"context_line":"domains for each user. This will enable each user to cleanup their own"},{"line_number":80,"context_line":"resources based on their specific domains. In this way, no other users"},{"line_number":81,"context_line":"resources will be affected."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"Projects"}],"source_content_type":"text/x-rst","patch_set":11,"id":"3f79a3b5_ea2facf2","line":81,"updated":"2018-10-22 18:47:13.000000000","message":"What are the limitations with this approach? Why is it not being pursued?","commit_id":"bab2d011ac63fef98ad68feb687e002c1d6db9a9"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"c1f01297902bd28d34fce9ff3cc710b88104eea5","unresolved":false,"context_lines":[{"line_number":84,"context_line":"Projects"},{"line_number":85,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"Openstack/tempest"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"Implementation"}],"source_content_type":"text/x-rst","patch_set":11,"id":"3f79a3b5_ea7d6ce6","line":87,"range":{"start_line":87,"start_character":0,"end_line":87,"end_character":17},"updated":"2018-10-22 18:47:13.000000000","message":"Tempest","commit_id":"bab2d011ac63fef98ad68feb687e002c1d6db9a9"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"c1f01297902bd28d34fce9ff3cc710b88104eea5","unresolved":false,"context_lines":[{"line_number":120,"context_line":"* Add documentation"},{"line_number":121,"context_line":"   * For resources_prefix"},{"line_number":122,"context_line":"   * For prefix-delete cleanup command"},{"line_number":123,"context_line":"* Get approval for this spec"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":".. _resources_prefix: https://docs.openstack.org/releasenotes/tempest/unreleased.html#relnotes-16-0-0-deprecation-notes"},{"line_number":126,"context_line":".. _rand_name: https://github.com/openstack/tempest/blob/9594233ffd93066677aa601c594d55f3a4f188d8/tempest/lib/common/utils/data_utils.py#L49"}],"source_content_type":"text/x-rst","patch_set":11,"id":"3f79a3b5_4a1260b5","line":123,"range":{"start_line":123,"start_character":0,"end_line":123,"end_character":28},"updated":"2018-10-22 18:47:13.000000000","message":"This should be removed.","commit_id":"bab2d011ac63fef98ad68feb687e002c1d6db9a9"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"86c4678b5d5ad37139221b2edc25e494a442fca3","unresolved":false,"context_lines":[{"line_number":5,"context_line":""},{"line_number":6,"context_line":".."},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":9,"context_line":"Tempest User-Isolated Cleanup"},{"line_number":10,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"https://blueprints.launchpad.net/tempest/+spec/tempest-smart-cleanup"},{"line_number":13,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3f79a3b5_aa6c3bcf","line":10,"range":{"start_line":8,"start_character":0,"end_line":10,"end_character":21},"updated":"2018-10-23 16:25:21.000000000","message":"/home/ubuntu/qa-specs/doc/source/specs/tempest/smart-cleanup.rst:8: WARNING: Title overline too short.","commit_id":"a29510326a9e7eceef643db93a12d3351f5f865e"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"86c4678b5d5ad37139221b2edc25e494a442fca3","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"* Creates potential to clean up more than expected"},{"line_number":39,"context_line":"  * Example 1: User A saves state, user B adds a resource, user A runs"},{"line_number":40,"context_line":"      tests, user A cleans up after tests, user B\u0027s resource gets cleaned up"},{"line_number":41,"context_line":"      because it does not appear in the saved_state.json."},{"line_number":42,"context_line":"* Initializing a saved state while other tests are running will incorporate"},{"line_number":43,"context_line":"  resources that should not be saved."}],"source_content_type":"text/x-rst","patch_set":12,"id":"3f79a3b5_2a582b23","line":40,"updated":"2018-10-23 16:25:21.000000000","message":"/home/ubuntu/qa-specs/doc/source/specs/tempest/smart-cleanup.rst:40: WARNING: Unexpected indentation.","commit_id":"a29510326a9e7eceef643db93a12d3351f5f865e"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"86c4678b5d5ad37139221b2edc25e494a442fca3","unresolved":false,"context_lines":[{"line_number":41,"context_line":"      because it does not appear in the saved_state.json."},{"line_number":42,"context_line":"* Initializing a saved state while other tests are running will incorporate"},{"line_number":43,"context_line":"  resources that should not be saved."},{"line_number":44,"context_line":"   * Example 2: User A saves state, user A runs tests, user B saves state,"},{"line_number":45,"context_line":"       user B runs tests, user A cleans up - Some test A elements are in the"},{"line_number":46,"context_line":"       saved state from user B, and cleanup removes resources created in"},{"line_number":47,"context_line":"       test B."}],"source_content_type":"text/x-rst","patch_set":12,"id":"3f79a3b5_aaa19bf8","line":44,"updated":"2018-10-23 16:25:21.000000000","message":"/home/ubuntu/qa-specs/doc/source/specs/tempest/smart-cleanup.rst:44: WARNING: Unexpected indentation.","commit_id":"a29510326a9e7eceef643db93a12d3351f5f865e"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"1f8943d38e1253421f0da181ad83c426156621e7","unresolved":false,"context_lines":[{"line_number":63,"context_line":"  $tempest cleanup --prefix-delete \u003c\u0027prefix\u0027\u003e"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"and remove specific test resources without interfering with any other tests."},{"line_number":66,"context_line":"As a positive side effect, any resource leaks will be track-able back to the"},{"line_number":67,"context_line":"origin test run."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":".. _resources_prefix: https://docs.openstack.org/releasenotes/tempest/unreleased.html#relnotes-16-0-0-deprecation-notes"}],"source_content_type":"text/x-rst","patch_set":13,"id":"3f79a3b5_73905a97","line":66,"range":{"start_line":66,"start_character":54,"end_line":66,"end_character":64},"updated":"2018-10-23 21:15:23.000000000","message":"traceable","commit_id":"51f3233db75b7248f7d3ff5b42cec2dc5aacf7f1"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"1f8943d38e1253421f0da181ad83c426156621e7","unresolved":false,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":"One possible alternative that has been suggested is that we create separate"},{"line_number":76,"context_line":"domains for each user. This will enable each user to cleanup their own"},{"line_number":77,"context_line":"resources based on their specific domains. In this way, no other users"},{"line_number":78,"context_line":"resources will be affected."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"* Requires each test to be modified to use the test domain"}],"source_content_type":"text/x-rst","patch_set":13,"id":"3f79a3b5_135b2623","line":77,"range":{"start_line":77,"start_character":65,"end_line":77,"end_character":70},"updated":"2018-10-23 21:15:23.000000000","message":"user\u0027s","commit_id":"51f3233db75b7248f7d3ff5b42cec2dc5aacf7f1"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"1f8943d38e1253421f0da181ad83c426156621e7","unresolved":false,"context_lines":[{"line_number":112,"context_line":"* Restore `resources_prefix`_ using `rand_name`_ to prefix resources"},{"line_number":113,"context_line":"   * Prefix generated using rand_name is configured in tempest.conf"},{"line_number":114,"context_line":"   * `Config option`_ was deprecated/removed"},{"line_number":115,"context_line":"* Ensure that each Tempest test uses the prefix in naming"},{"line_number":116,"context_line":"   * All resources generated will have a unique, target-able, name"},{"line_number":117,"context_line":"* Add functionality that deletes specific resources based on prefix"},{"line_number":118,"context_line":"   * Delete only specified resources"}],"source_content_type":"text/x-rst","patch_set":13,"id":"3f79a3b5_f3d22a5b","line":115,"range":{"start_line":115,"start_character":2,"end_line":115,"end_character":57},"updated":"2018-10-23 21:15:23.000000000","message":"May we give an example of this? I don\u0027t think absolutely everything needs rand_name, only at least one parameter that defines the resource, most obviously the `name` field.","commit_id":"51f3233db75b7248f7d3ff5b42cec2dc5aacf7f1"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"add2c0e17c9c698ac30cd4ecae375d6108468447","unresolved":false,"context_lines":[{"line_number":113,"context_line":"   * Prefix generated using rand_name is configured in tempest.conf"},{"line_number":114,"context_line":"   * `Config option`_ was deprecated/removed"},{"line_number":115,"context_line":"* Ensure that each Tempest test that creates resources names it using the prefix"},{"line_number":116,"context_line":"   * All resources generated will be named with the prefex which makes it specifically target-able."},{"line_number":117,"context_line":"   * Ex: Test run A will generate a random prefix: A123. Test run B will generate prefix: B987."},{"line_number":118,"context_line":"      When a user wants to clean up test run A, they run the ``--prefix-delet a123`` which will"},{"line_number":119,"context_line":"      delete any resource (or related resources) that have the prefix \u0027A123\u0027 in its name. Resources"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3f79a3b5_20d0bfc6","line":116,"range":{"start_line":116,"start_character":87,"end_line":116,"end_character":98},"updated":"2018-10-30 22:44:41.000000000","message":"targetable","commit_id":"a9da6acb55d629feb082114300f7a47f87679c6d"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"add2c0e17c9c698ac30cd4ecae375d6108468447","unresolved":false,"context_lines":[{"line_number":115,"context_line":"* Ensure that each Tempest test that creates resources names it using the prefix"},{"line_number":116,"context_line":"   * All resources generated will be named with the prefex which makes it specifically target-able."},{"line_number":117,"context_line":"   * Ex: Test run A will generate a random prefix: A123. Test run B will generate prefix: B987."},{"line_number":118,"context_line":"      When a user wants to clean up test run A, they run the ``--prefix-delet a123`` which will"},{"line_number":119,"context_line":"      delete any resource (or related resources) that have the prefix \u0027A123\u0027 in its name. Resources"},{"line_number":120,"context_line":"      with the prefix B987 will not be deleted."},{"line_number":121,"context_line":"* Add functionality that deletes specific resources based on prefix"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3f79a3b5_e0f2c769","line":118,"range":{"start_line":118,"start_character":78,"end_line":118,"end_character":82},"updated":"2018-10-30 22:44:41.000000000","message":"A123 (the example above is upper-case)","commit_id":"a9da6acb55d629feb082114300f7a47f87679c6d"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"add2c0e17c9c698ac30cd4ecae375d6108468447","unresolved":false,"context_lines":[{"line_number":115,"context_line":"* Ensure that each Tempest test that creates resources names it using the prefix"},{"line_number":116,"context_line":"   * All resources generated will be named with the prefex which makes it specifically target-able."},{"line_number":117,"context_line":"   * Ex: Test run A will generate a random prefix: A123. Test run B will generate prefix: B987."},{"line_number":118,"context_line":"      When a user wants to clean up test run A, they run the ``--prefix-delet a123`` which will"},{"line_number":119,"context_line":"      delete any resource (or related resources) that have the prefix \u0027A123\u0027 in its name. Resources"},{"line_number":120,"context_line":"      with the prefix B987 will not be deleted."},{"line_number":121,"context_line":"* Add functionality that deletes specific resources based on prefix"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3f79a3b5_00d343d6","line":118,"range":{"start_line":118,"start_character":72,"end_line":118,"end_character":77},"updated":"2018-10-30 22:44:41.000000000","message":"delete","commit_id":"a9da6acb55d629feb082114300f7a47f87679c6d"},{"author":{"_account_id":23625,"name":"Nicolas Helgeson","email":"nh202b@att.com","username":"nhelgeson"},"change_message_id":"ca9557a8ea2153a3b5b6a349328b6046c6665552","unresolved":false,"context_lines":[{"line_number":28,"context_line":".. _configuration file: https://github.com/openstack/tempest/blob/ecddd38ecbdb5df05543f106e10e14a9e7d0d3da/tempest/config.py"},{"line_number":29,"context_line":".. _project service: https://github.com/openstack/tempest/blob/ecddd38ecbdb5df05543f106e10e14a9e7d0d3da/tempest/cmd/cleanup_service.py#L925"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Problem description"},{"line_number":32,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Tempest cleanup is a one-size-fits-all approach which deletes all resources"}],"source_content_type":"text/x-rst","patch_set":15,"id":"3f79a3b5_75f9341b","line":31,"range":{"start_line":31,"start_character":0,"end_line":31,"end_character":19},"updated":"2018-12-17 22:32:34.000000000","message":"Can we agree on the fact that there is a problem here worth solving?","commit_id":"47f25c07b28661e41374909abad4058c02230b0d"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"046f6d154c5fafe54c8c191864f5cdd985ed4743","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"  $tempest cleanup --prefix-delete \u003c\u0027prefix\u0027\u003e"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"and remove specific test resources without interfering with any other tests."},{"line_number":66,"context_line":"As a positive side effect, any resource leaks will be traceable back to the"},{"line_number":67,"context_line":"origin test run."},{"line_number":68,"context_line":""}],"source_content_type":"text/x-rst","patch_set":15,"id":"3f79a3b5_a48f871f","line":65,"range":{"start_line":65,"start_character":11,"end_line":65,"end_character":76},"updated":"2018-11-06 11:06:22.000000000","message":"this will be difficult from user perspective. user configure the resource_prefix and try to delete all together. Deleting the resources created by test level is difficult to do as that need users to know the test class name or tests prefix also which they add in configured resource_prefix. \n\nWhat i am requirement is,\n- user testing their cloud which is in use at production level. So tempest cleanup will not disturb the resources created by anyone other than Tempest. \n\n- user will be running the Tempest in parallel on same cloud or with different workspace and then they use cleanup command to delete all resources created by per tempest run which should have unique resource_prefix.\n\nIn both case, Tempest cleanup will delete all the resources based on configured resource_prefix. getting test case level resource prefix is hard.","commit_id":"47f25c07b28661e41374909abad4058c02230b0d"},{"author":{"_account_id":28270,"name":"anja.strunk","email":"anja.strunk@secustack.com","username":"anja.strunk"},"change_message_id":"afc155c61b12e7fbee05b07b51e7ad1660268ce9","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"  $tempest cleanup --prefix-delete \u003c\u0027prefix\u0027\u003e"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"and remove specific test resources without interfering with any other tests."},{"line_number":66,"context_line":"As a positive side effect, any resource leaks will be traceable back to the"},{"line_number":67,"context_line":"origin test run."},{"line_number":68,"context_line":""}],"source_content_type":"text/x-rst","patch_set":15,"id":"3f79a3b5_b68d9937","line":65,"range":{"start_line":65,"start_character":11,"end_line":65,"end_character":76},"in_reply_to":"3f79a3b5_67139f5b","updated":"2018-11-20 13:06:50.000000000","message":"Independently of using static or dynamic credentials, this solution will only delete resources that belong to a project. However, there are resources, that do not have any project_id, such as volume types or flavors. These resources would not be deleted using this approach.","commit_id":"47f25c07b28661e41374909abad4058c02230b0d"},{"author":{"_account_id":23625,"name":"Nicolas Helgeson","email":"nh202b@att.com","username":"nhelgeson"},"change_message_id":"bb0e03a0ca8effb0ae749ff5b44c77fef7df1c9e","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"  $tempest cleanup --prefix-delete \u003c\u0027prefix\u0027\u003e"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"and remove specific test resources without interfering with any other tests."},{"line_number":66,"context_line":"As a positive side effect, any resource leaks will be traceable back to the"},{"line_number":67,"context_line":"origin test run."},{"line_number":68,"context_line":""}],"source_content_type":"text/x-rst","patch_set":15,"id":"3f79a3b5_69dd9f10","line":65,"range":{"start_line":65,"start_character":11,"end_line":65,"end_character":76},"in_reply_to":"3f79a3b5_67139f5b","updated":"2018-11-07 22:35:59.000000000","message":"the cleanup process already checks against a saved_state.json and fetches a list of all projects before cleaning them up ex: https://github.com/openstack/tempest/blob/master/tempest/cmd/cleanup_service.py#L852\nIt would be easy to check the name of the project to see if it contains/matches something in a json file supplied by the tester.","commit_id":"47f25c07b28661e41374909abad4058c02230b0d"},{"author":{"_account_id":17887,"name":"Doug Schveninger","email":"ds6901@att.com","username":"Doug.Schveninger"},"change_message_id":"978161acb94e011097bd708e4f7d5a905ca6a45b","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"  $tempest cleanup --prefix-delete \u003c\u0027prefix\u0027\u003e"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"and remove specific test resources without interfering with any other tests."},{"line_number":66,"context_line":"As a positive side effect, any resource leaks will be traceable back to the"},{"line_number":67,"context_line":"origin test run."},{"line_number":68,"context_line":""}],"source_content_type":"text/x-rst","patch_set":15,"id":"3f79a3b5_67139f5b","line":65,"range":{"start_line":65,"start_character":11,"end_line":65,"end_character":76},"in_reply_to":"3f79a3b5_a48f871f","updated":"2018-11-07 00:53:20.000000000","message":"In a pre-step we are create project with a unique UUID and sequence in the accounts.yaml file so we have a set of projects for each tempest run.  Then at the end we loop through the projects  that are in the accounts.yaml file and pass that project list into the project cleanup process. if the project is empty of any resources we delete the project. If the project is not empty we report the resource as a leak.\n\nFor dynamic creds we would have the cred manage build a list of projects create and we would pass this list into the same project clean up process detailed above.","commit_id":"47f25c07b28661e41374909abad4058c02230b0d"},{"author":{"_account_id":29509,"name":"Karin Fetzer","email":"karin.fetzer@secustack.com"},"change_message_id":"1f0b97358e575616e1116d291c311fc11640ff9f","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"  $tempest cleanup --prefix-delete \u003c\u0027prefix\u0027\u003e"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"and remove specific test resources without interfering with any other tests."},{"line_number":66,"context_line":"As a positive side effect, any resource leaks will be traceable back to the"},{"line_number":67,"context_line":"origin test run."},{"line_number":68,"context_line":""}],"source_content_type":"text/x-rst","patch_set":15,"id":"3f79a3b5_d6ce1529","line":65,"range":{"start_line":65,"start_character":11,"end_line":65,"end_character":76},"in_reply_to":"3f79a3b5_b68d9937","updated":"2018-11-20 13:36:53.000000000","message":"Another problem with \u0027the prefix approach\u0027 is that together with the `resources_prefix_` (which has to be long to assure some level of safety/uniquness), the resource name (i.e., prefix + uuid + test class name, etc) might exceed the maximum allowed length for resource names. We already noticed this problem with the current implementation.","commit_id":"47f25c07b28661e41374909abad4058c02230b0d"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"046f6d154c5fafe54c8c191864f5cdd985ed4743","unresolved":false,"context_lines":[{"line_number":65,"context_line":"and remove specific test resources without interfering with any other tests."},{"line_number":66,"context_line":"As a positive side effect, any resource leaks will be traceable back to the"},{"line_number":67,"context_line":"origin test run."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":".. _resources_prefix: https://docs.openstack.org/releasenotes/tempest/unreleased.html#relnotes-16-0-0-deprecation-notes"},{"line_number":70,"context_line":".. _rand_name: https://github.com/openstack/tempest/blob/9594233ffd93066677aa601c594d55f3a4f188d8/tempest/lib/common/utils/data_utils.py#L49"},{"line_number":71,"context_line":""}],"source_content_type":"text/x-rst","patch_set":15,"id":"3f79a3b5_c4fba377","line":68,"range":{"start_line":68,"start_character":0,"end_line":68,"end_character":0},"updated":"2018-11-06 11:06:22.000000000","message":"for safer side, can we add feature about do not allow to delete the resources which is prefixed by anything else than configured resource_prefix ? For example, if accidentally, tester command to delete the wrong prefix or other tester prefix resources. \n\nBut this need every test to use the resource_prefix in their created resource which is our end goal. Otherwise it can leads to not cleaning up all the test created resources. \n\nany thought ? \n\nThis can avoid any accidental deletion of cloud resources.","commit_id":"47f25c07b28661e41374909abad4058c02230b0d"},{"author":{"_account_id":23625,"name":"Nicolas Helgeson","email":"nh202b@att.com","username":"nhelgeson"},"change_message_id":"bb0e03a0ca8effb0ae749ff5b44c77fef7df1c9e","unresolved":false,"context_lines":[{"line_number":65,"context_line":"and remove specific test resources without interfering with any other tests."},{"line_number":66,"context_line":"As a positive side effect, any resource leaks will be traceable back to the"},{"line_number":67,"context_line":"origin test run."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":".. _resources_prefix: https://docs.openstack.org/releasenotes/tempest/unreleased.html#relnotes-16-0-0-deprecation-notes"},{"line_number":70,"context_line":".. _rand_name: https://github.com/openstack/tempest/blob/9594233ffd93066677aa601c594d55f3a4f188d8/tempest/lib/common/utils/data_utils.py#L49"},{"line_number":71,"context_line":""}],"source_content_type":"text/x-rst","patch_set":15,"id":"3f79a3b5_a97097a8","line":68,"range":{"start_line":68,"start_character":0,"end_line":68,"end_character":0},"in_reply_to":"3f79a3b5_27484760","updated":"2018-11-07 22:35:59.000000000","message":"alternatively, rand_name is called in each test ex: https://github.com/openstack/tempest/blob/master/tempest/api/identity/base.py#L276\nWe could add a conf value to the name when it is called. This would mean going through each test and modifying the rand_name call to include the conf value, but it is doable.","commit_id":"47f25c07b28661e41374909abad4058c02230b0d"},{"author":{"_account_id":28270,"name":"anja.strunk","email":"anja.strunk@secustack.com","username":"anja.strunk"},"change_message_id":"afc155c61b12e7fbee05b07b51e7ad1660268ce9","unresolved":false,"context_lines":[{"line_number":65,"context_line":"and remove specific test resources without interfering with any other tests."},{"line_number":66,"context_line":"As a positive side effect, any resource leaks will be traceable back to the"},{"line_number":67,"context_line":"origin test run."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":".. _resources_prefix: https://docs.openstack.org/releasenotes/tempest/unreleased.html#relnotes-16-0-0-deprecation-notes"},{"line_number":70,"context_line":".. _rand_name: https://github.com/openstack/tempest/blob/9594233ffd93066677aa601c594d55f3a4f188d8/tempest/lib/common/utils/data_utils.py#L49"},{"line_number":71,"context_line":""}],"source_content_type":"text/x-rst","patch_set":15,"id":"3f79a3b5_36b189e4","line":68,"range":{"start_line":68,"start_character":0,"end_line":68,"end_character":0},"in_reply_to":"3f79a3b5_a97097a8","updated":"2018-11-20 13:06:50.000000000","message":"Independently of how tempest `resources_prefix_` is defined, either in tempest.config or randomly chosen prior to tempest run, it may happen, that a productive user chooses exactly the same prefix for his resources by accident. In this case, user\u0027s resources will be deleted at tempest cleanup too, which is unacceptable.","commit_id":"47f25c07b28661e41374909abad4058c02230b0d"},{"author":{"_account_id":17887,"name":"Doug Schveninger","email":"ds6901@att.com","username":"Doug.Schveninger"},"change_message_id":"978161acb94e011097bd708e4f7d5a905ca6a45b","unresolved":false,"context_lines":[{"line_number":65,"context_line":"and remove specific test resources without interfering with any other tests."},{"line_number":66,"context_line":"As a positive side effect, any resource leaks will be traceable back to the"},{"line_number":67,"context_line":"origin test run."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":".. _resources_prefix: https://docs.openstack.org/releasenotes/tempest/unreleased.html#relnotes-16-0-0-deprecation-notes"},{"line_number":70,"context_line":".. _rand_name: https://github.com/openstack/tempest/blob/9594233ffd93066677aa601c594d55f3a4f188d8/tempest/lib/common/utils/data_utils.py#L49"},{"line_number":71,"context_line":""}],"source_content_type":"text/x-rst","patch_set":15,"id":"3f79a3b5_27484760","line":68,"range":{"start_line":68,"start_character":0,"end_line":68,"end_character":0},"in_reply_to":"3f79a3b5_c4fba377","updated":"2018-11-07 00:53:20.000000000","message":"or safer side, can we add feature about do not allow to delete the resources which is prefixed by anything else than configured resource_prefix ? Yes we could do this.\n\nI would be nice if you could state all resource profix but the rand name util is in LIB and cannot access conf values to override prefix default of tempest.  Do you have any ideas how we could support custom resource prefix? If we could create resource with a custom prefix like tempest and a UUID for the run then you could detect any resource that start with that value. The would be a good approach if we could make sure all resource are create with this process.","commit_id":"47f25c07b28661e41374909abad4058c02230b0d"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"046f6d154c5fafe54c8c191864f5cdd985ed4743","unresolved":false,"context_lines":[{"line_number":68,"context_line":""},{"line_number":69,"context_line":".. _resources_prefix: https://docs.openstack.org/releasenotes/tempest/unreleased.html#relnotes-16-0-0-deprecation-notes"},{"line_number":70,"context_line":".. _rand_name: https://github.com/openstack/tempest/blob/9594233ffd93066677aa601c594d55f3a4f188d8/tempest/lib/common/utils/data_utils.py#L49"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Alternatives"},{"line_number":73,"context_line":"------------"},{"line_number":74,"context_line":""}],"source_content_type":"text/x-rst","patch_set":15,"id":"3f79a3b5_243ff723","line":71,"range":{"start_line":71,"start_character":0,"end_line":71,"end_character":0},"updated":"2018-11-06 11:06:22.000000000","message":"is this proposal also propose to remove the existing way of cleaning up- save_state.json ? or we keep supporting that ?\n\nI think we should remove that support which is risky for cloud.","commit_id":"47f25c07b28661e41374909abad4058c02230b0d"},{"author":{"_account_id":17887,"name":"Doug Schveninger","email":"ds6901@att.com","username":"Doug.Schveninger"},"change_message_id":"978161acb94e011097bd708e4f7d5a905ca6a45b","unresolved":false,"context_lines":[{"line_number":68,"context_line":""},{"line_number":69,"context_line":".. _resources_prefix: https://docs.openstack.org/releasenotes/tempest/unreleased.html#relnotes-16-0-0-deprecation-notes"},{"line_number":70,"context_line":".. _rand_name: https://github.com/openstack/tempest/blob/9594233ffd93066677aa601c594d55f3a4f188d8/tempest/lib/common/utils/data_utils.py#L49"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Alternatives"},{"line_number":73,"context_line":"------------"},{"line_number":74,"context_line":""}],"source_content_type":"text/x-rst","patch_set":15,"id":"3f79a3b5_67415f37","line":71,"range":{"start_line":71,"start_character":0,"end_line":71,"end_character":0},"in_reply_to":"3f79a3b5_243ff723","updated":"2018-11-07 00:53:20.000000000","message":"Until the new process can find all project, global or orphaned resources we would have to support the old way for people that need it.","commit_id":"47f25c07b28661e41374909abad4058c02230b0d"},{"author":{"_account_id":28270,"name":"anja.strunk","email":"anja.strunk@secustack.com","username":"anja.strunk"},"change_message_id":"afc155c61b12e7fbee05b07b51e7ad1660268ce9","unresolved":false,"context_lines":[{"line_number":83,"context_line":"  in each test case to be in the test domain and a safeguard must be put in place so that there is"},{"line_number":84,"context_line":"  not an attempt to delete."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":""},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"Projects"},{"line_number":89,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":15,"id":"3f79a3b5_764141a7","line":86,"updated":"2018-11-20 13:06:50.000000000","message":"Another possible alternative to the prefix solution would be logging the UUID of each resource created during tempest run in a separate file. Tempest cleanup iterates over log file and deletes all resources, if they aren\u0027t be deleted already. This can also be combined with --dry-run, which lists all resources, that will be deleted.\nThe name of the log file, can e.g. include time of tempest run as well as URI of the tested cloud for easy identification by the tempest user. \nThis approach will also delete resources that do not belong to any project, such as volume types or flavors.\nDue to separate files for separate tempest runs, parallel tempest runs do not interfere with each other and tempest cleanup does not delete other resources than those created by the selected tempest run.\n\n* Requires each test to be modified to log resource UUID prior to creating.","commit_id":"47f25c07b28661e41374909abad4058c02230b0d"},{"author":{"_account_id":29509,"name":"Karin Fetzer","email":"karin.fetzer@secustack.com"},"change_message_id":"1f0b97358e575616e1116d291c311fc11640ff9f","unresolved":false,"context_lines":[{"line_number":83,"context_line":"  in each test case to be in the test domain and a safeguard must be put in place so that there is"},{"line_number":84,"context_line":"  not an attempt to delete."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":""},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"Projects"},{"line_number":89,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":15,"id":"3f79a3b5_91298784","line":86,"in_reply_to":"3f79a3b5_764141a7","updated":"2018-11-20 13:36:53.000000000","message":"Aditionally, to handle leaked resources, one could provide the following tool as a backup solution:\n\n- An \u0027inverse version\u0027 of the existing cleanup tool\u0027s functionality, allowing ‘manual automatic’ cleanup. By this I mean:\n    - Run `tempest cleanup –current_state \u003e current_state.json` to produce a list of all existing resources.\n        - (This is already done with the current `--init-saved-state` flag, which produces `save_state.json`.)\n    - Let the user manually edit this file by deleting all resources from it, that should not be deleted. \n    - Run `tempest cleanup –delete-resources –resources \u003cfile name, e.g., current_state.json\u003e` to let the user EXPLICITLY delete all resources listed in the provided file. \n        - (The current functionality deletes all resources NOT in the save_state.json file - DANGEROUS!)\n\nThis approach would give the user a \u0027safer\u0027 way of deleting leaked resources until the leaking tests have been fixed. \n\nThe implementtion effort for this additional tool is low, since it is more or less the inverse of what already exists in the current version of `tempest cleanup`.","commit_id":"47f25c07b28661e41374909abad4058c02230b0d"},{"author":{"_account_id":23625,"name":"Nicolas Helgeson","email":"nh202b@att.com","username":"nhelgeson"},"change_message_id":"ca9557a8ea2153a3b5b6a349328b6046c6665552","unresolved":false,"context_lines":[{"line_number":83,"context_line":"  in each test case to be in the test domain and a safeguard must be put in place so that there is"},{"line_number":84,"context_line":"  not an attempt to delete."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":""},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"Projects"},{"line_number":89,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":15,"id":"3f79a3b5_d84ddf70","line":86,"in_reply_to":"3f79a3b5_91298784","updated":"2018-12-17 22:32:34.000000000","message":"I agree with Anja, having a list of all tests run would be a possible and relatively simple solution. Every test run would create add a line to a file with its exact resource name. A function would then be added to clean up specific files rather than save specific files like save-state does. This would have the additional benefit of giving users the ability to specifically target resources as per karins idea.","commit_id":"47f25c07b28661e41374909abad4058c02230b0d"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"046f6d154c5fafe54c8c191864f5cdd985ed4743","unresolved":false,"context_lines":[{"line_number":126,"context_line":"      * tempest cleanup ``--prefix-delete \u003c\u0027prefix\u0027\u003e``"},{"line_number":127,"context_line":"      * Include support for ``--dry-run`` to help identify resources leaks"},{"line_number":128,"context_line":"* Add documentation"},{"line_number":129,"context_line":"   * For resources_prefix"},{"line_number":130,"context_line":"   * For prefix-delete cleanup command"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":".. _resources_prefix: https://docs.openstack.org/releasenotes/tempest/unreleased.html#relnotes-16-0-0-deprecation-notes"}],"source_content_type":"text/x-rst","patch_set":15,"id":"3f79a3b5_a44d4771","line":129,"range":{"start_line":129,"start_character":9,"end_line":129,"end_character":25},"updated":"2018-11-06 11:06:22.000000000","message":"make sure we add the recommendation of using the UUID based prefix to avoid any conflict of prefix among other users.","commit_id":"47f25c07b28661e41374909abad4058c02230b0d"},{"author":{"_account_id":29509,"name":"Karin Fetzer","email":"karin.fetzer@secustack.com"},"change_message_id":"99d8018a55e9c1ece0f7a91637821443b20b54b1","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"Create an alternate cleanup function that uses a list of resources to be deleted."},{"line_number":54,"context_line":"Essentially the inverse of the current function. By including the ``--target \u003c\u0027file\u0027\u003e``"},{"line_number":55,"context_line":"parameter a user will be able to supply a list of resources that need to be"},{"line_number":56,"context_line":"deleted and the function will double check against any existing saved_state file"},{"line_number":57,"context_line":"before specifically deleting only the present items. Additionally, any test run"},{"line_number":58,"context_line":"will record created resources into a file labeled with the time and date of the"}],"source_content_type":"text/x-rst","patch_set":16,"id":"9fdfeff1_7e984fbf","line":55,"range":{"start_line":55,"start_character":40,"end_line":55,"end_character":59},"updated":"2019-01-25 12:55:36.000000000","message":"It would make sense to keep the --init flag to produce the saved_state file (current behavior), so the user can use it as a starting point for this list of resources.","commit_id":"d4dc663f3a8a8bff6be49480096da61579e10d51"},{"author":{"_account_id":29509,"name":"Karin Fetzer","email":"karin.fetzer@secustack.com"},"change_message_id":"99d8018a55e9c1ece0f7a91637821443b20b54b1","unresolved":false,"context_lines":[{"line_number":68,"context_line":""},{"line_number":69,"context_line":"  $tempest run --test-record-off"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"Additional consideration: We could also add code to the innate cleanup function"},{"line_number":72,"context_line":"of the test so that if a resource is properly deleted as part of the test, it"},{"line_number":73,"context_line":"will be removed from the created file. If the file is found to be empty, it will"},{"line_number":74,"context_line":"be deleted. This will help track resource leaks by the presence or absence of the"}],"source_content_type":"text/x-rst","patch_set":16,"id":"9fdfeff1_de2b7b2d","line":71,"range":{"start_line":71,"start_character":0,"end_line":71,"end_character":25},"updated":"2019-01-25 12:55:36.000000000","message":"This \u0027Additional consideration\u0027 has the disadvantage that the user loses the information about which resources he/she asked to have deleted. An alternative suggestion:\n- Output a warning together with a list of the \u0027not-properly deleted\u0027 resources, if not all resources could be deleted.\n- It would be nice if the output list would have the same format as the input file so one could use it for the next cleanup run.\n- Maybe also add the reason why the resource could not be deleted to the file. But this will be tricky if we want to be able to reuse the output file as input file for the next cleanup run.","commit_id":"d4dc663f3a8a8bff6be49480096da61579e10d51"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"59739819f57166941a56d799b808593aa3da03d2","unresolved":false,"context_lines":[{"line_number":24,"context_line":"  include these admin resources"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":".. _tempest cleanup: https://docs.openstack.org/tempest/16.1.0/cleanup.html"},{"line_number":27,"context_line":".. _global resource ids: https://github.com/openstack/tempest/blob/ecddd38ecbdb5df05543f106e10e14a9e7d0d3da/tempest/cmd/cleanup_service.py#L954"},{"line_number":28,"context_line":".. _configuration file: https://github.com/openstack/tempest/blob/ecddd38ecbdb5df05543f106e10e14a9e7d0d3da/tempest/config.py"},{"line_number":29,"context_line":".. _project service: https://github.com/openstack/tempest/blob/ecddd38ecbdb5df05543f106e10e14a9e7d0d3da/tempest/cmd/cleanup_service.py#L925"},{"line_number":30,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"9fb8cfa7_1eb13990","line":27,"updated":"2019-06-20 02:40:18.000000000","message":"I think we also use opendev.org URL like this.\nhttps://opendev.org/openstack/tempest/src/commit/e467c3c9f255408fd7ec50972a733acac6420420/tempest/cmd/cleanup_service.py#L1000","commit_id":"96389ede22b67f88e4da3eab9b46d70855720218"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"59739819f57166941a56d799b808593aa3da03d2","unresolved":false,"context_lines":[{"line_number":45,"context_line":"      B, and cleanup removes resources created in test B."},{"line_number":46,"context_line":"* Multiple CONF files can result in admin resources being deleted"},{"line_number":47,"context_line":"   * Example 3: Two users are running two different CONF files and their admin resources do not"},{"line_number":48,"context_line":"      overlap. There is potential for one cleanup command to remove the other users admin resources."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"New proposed change / Solution"},{"line_number":51,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":18,"id":"9fb8cfa7_3eac3d34","line":48,"updated":"2019-06-20 02:40:18.000000000","message":"These bullet points can be improved for better rendering like this:\n\n* Creates potential to clean up more than expected\n\n  * Example 1: User A saves state, user B adds a resource, user A runs tests, user A cleans up\n    after tests, user B\u0027s resource gets cleaned up because it does not appear in\n    the saved_state.json.","commit_id":"96389ede22b67f88e4da3eab9b46d70855720218"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"59739819f57166941a56d799b808593aa3da03d2","unresolved":false,"context_lines":[{"line_number":55,"context_line":"parameter a user will be able to supply a list of resources that need to be"},{"line_number":56,"context_line":"deleted and the function will double check against any existing saved_state file"},{"line_number":57,"context_line":"before specifically deleting only the present items. Additionally, any test run"},{"line_number":58,"context_line":"will record created resources into a file labeled with the time and date of the"},{"line_number":59,"context_line":"test. This feature will be on by default, but can be turned off using the"},{"line_number":60,"context_line":"``--test-record-off`` parameter when running tests. Include support for ``--dry-run``"},{"line_number":61,"context_line":"to provide functionality that can help track down resource leaks."}],"source_content_type":"text/x-rst","patch_set":18,"id":"9fb8cfa7_deaac117","line":58,"updated":"2019-06-20 02:40:18.000000000","message":"I\u0027d like to know more detail for this \u0027record created resources\u0027 implementation to understand challenges. I think we can do it by adding a function into resource creating functions such as create_server() of server_client.py. However, do we need to do it in all  clients to complete this spec? If so, it\u0027s a really hard work.\n\nSo, if you have any idea for the implementation or code already, please let me know.","commit_id":"96389ede22b67f88e4da3eab9b46d70855720218"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"59739819f57166941a56d799b808593aa3da03d2","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":".. code-block:: bash"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"  $tempest cleanup --target \u003c\u0027file\u0027\u003e"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"  $tempest run --test-record-off"},{"line_number":70,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"9fb8cfa7_fea54548","line":67,"updated":"2019-06-20 02:40:18.000000000","message":"I guess you wanted to add a space before `tempest` command like this?\n\n $ tempest ...","commit_id":"96389ede22b67f88e4da3eab9b46d70855720218"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"59739819f57166941a56d799b808593aa3da03d2","unresolved":false,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"  $tempest cleanup --target \u003c\u0027file\u0027\u003e"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"  $tempest run --test-record-off"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"Additional consideration: We could also add code to the innate cleanup function"},{"line_number":72,"context_line":"of the test so that if a resource is properly deleted as part of the test, it"}],"source_content_type":"text/x-rst","patch_set":18,"id":"9fb8cfa7_9e620916","line":69,"updated":"2019-06-20 02:40:18.000000000","message":"ditto","commit_id":"96389ede22b67f88e4da3eab9b46d70855720218"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"59739819f57166941a56d799b808593aa3da03d2","unresolved":false,"context_lines":[{"line_number":87,"context_line":""},{"line_number":88,"context_line":".. code-block:: bash"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"  $tempest cleanup --prefix-delete \u003c\u0027prefix\u0027\u003e"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"and remove specific test resources without interfering with any other tests."},{"line_number":93,"context_line":"As a positive side effect, any resource leaks will be traceable back to the"}],"source_content_type":"text/x-rst","patch_set":18,"id":"9fb8cfa7_be658d1f","line":90,"updated":"2019-06-20 02:40:18.000000000","message":"same here","commit_id":"96389ede22b67f88e4da3eab9b46d70855720218"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"59739819f57166941a56d799b808593aa3da03d2","unresolved":false,"context_lines":[{"line_number":131,"context_line":"----------"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"Target Milestone for completion:"},{"line_number":134,"context_line":"  Stein-3"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"Work Items"},{"line_number":137,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":18,"id":"9fb8cfa7_5e6c9107","line":134,"updated":"2019-06-20 02:40:18.000000000","message":"It might be better to set a new target if you have a chance.","commit_id":"96389ede22b67f88e4da3eab9b46d70855720218"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"59739819f57166941a56d799b808593aa3da03d2","unresolved":false,"context_lines":[{"line_number":135,"context_line":""},{"line_number":136,"context_line":"Work Items"},{"line_number":137,"context_line":"----------"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"* Add functionality that deletes specific resources based on file contents"},{"line_number":140,"context_line":"   * Delete only specified resources"},{"line_number":141,"context_line":"   * Do not delete any resource in saved_state"}],"source_content_type":"text/x-rst","patch_set":18,"id":"9fb8cfa7_7e6f15fc","line":138,"updated":"2019-06-20 02:40:18.000000000","message":"Same here about","commit_id":"96389ede22b67f88e4da3eab9b46d70855720218"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"73a8986db5888c4cdf8a4245810f5f729f4d6bae","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"- Creates potential to clean up more than expected"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"   - Example 1: User A saves state, user B adds a resource, user A runs tests, user A cleans up"},{"line_number":41,"context_line":"      after tests, user B\u0027s resource gets cleaned up because it does not appear in"},{"line_number":42,"context_line":"      the saved_state.json."},{"line_number":43,"context_line":""}],"source_content_type":"text/x-rst","patch_set":19,"id":"7faddb67_a37feda9","line":40,"updated":"2019-07-04 06:54:34.000000000","message":"What I wanted to say about here is the indentations not changing \u0027*\u0027 to \u0027-\u0027. (The gerrit comment rendering was confusing.. :( )\n\nSo, it\u0027s rendered as block quotes now..\nhttp://logs.openstack.org/77/595277/19/check/openstack-tox-docs/c8be5e6/html/specs/tempest/smart-cleanup.html#problem-description\n\nTo fix and know the rst, see\nhttp://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html#bullet-lists\nhttp://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html#block-quotes","commit_id":"ab3f865d1bfd740f68b53173cbee37b9a0e73c44"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"73a8986db5888c4cdf8a4245810f5f729f4d6bae","unresolved":false,"context_lines":[{"line_number":66,"context_line":"to provide functionality that can help track down resource leaks."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"The list will automatically be generated by adding a logging function to the client"},{"line_number":69,"context_line":"create function and a log cleanup function to the client delete function. The scope "},{"line_number":70,"context_line":"of this is pretty large, but we can reduce it by focusing on the same resources"},{"line_number":71,"context_line":"that the save-state function tracks: domains, flavors, images, projects, roles and users."},{"line_number":72,"context_line":""}],"source_content_type":"text/x-rst","patch_set":19,"id":"7faddb67_c37c69b7","line":69,"updated":"2019-07-04 06:54:34.000000000","message":"very nit: a training space","commit_id":"ab3f865d1bfd740f68b53173cbee37b9a0e73c44"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"73a8986db5888c4cdf8a4245810f5f729f4d6bae","unresolved":false,"context_lines":[{"line_number":68,"context_line":"The list will automatically be generated by adding a logging function to the client"},{"line_number":69,"context_line":"create function and a log cleanup function to the client delete function. The scope "},{"line_number":70,"context_line":"of this is pretty large, but we can reduce it by focusing on the same resources"},{"line_number":71,"context_line":"that the save-state function tracks: domains, flavors, images, projects, roles and users."},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"Example:"},{"line_number":74,"context_line":""}],"source_content_type":"text/x-rst","patch_set":19,"id":"7faddb67_634b3587","line":71,"updated":"2019-07-04 06:54:34.000000000","message":"I see. We need a lot of changes but it makes sense to me :)","commit_id":"ab3f865d1bfd740f68b53173cbee37b9a0e73c44"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"73a8986db5888c4cdf8a4245810f5f729f4d6bae","unresolved":false,"context_lines":[{"line_number":151,"context_line":""},{"line_number":152,"context_line":"- Add functionality that deletes specific resources based on file contents"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"   - Delete only specified resources"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"   - Do not delete any resource in saved_state"},{"line_number":157,"context_line":""}],"source_content_type":"text/x-rst","patch_set":19,"id":"7faddb67_8350b134","line":154,"updated":"2019-07-04 06:54:34.000000000","message":"Same here and below.","commit_id":"ab3f865d1bfd740f68b53173cbee37b9a0e73c44"},{"author":{"_account_id":29509,"name":"Karin Fetzer","email":"karin.fetzer@secustack.com"},"change_message_id":"7199ff510ca62e5ee95acab193db9db7024b9079","unresolved":false,"context_lines":[{"line_number":58,"context_line":"Create an alternate cleanup function that uses a list of resources to be deleted."},{"line_number":59,"context_line":"Essentially the inverse of the current function. By including the ``--target \u003c\u0027file\u0027\u003e``"},{"line_number":60,"context_line":"parameter a user will be able to supply a list of resources that need to be"},{"line_number":61,"context_line":"deleted and the function will double check against any existing saved_state file"},{"line_number":62,"context_line":"before specifically deleting only the present items. Additionally, any test run"},{"line_number":63,"context_line":"will record created resources into a file labeled with the time and date of the"},{"line_number":64,"context_line":"test. This feature will be on by default, but can be turned off using the"},{"line_number":65,"context_line":"``--test-record-off`` parameter when running tests. Include support for ``--dry-run``"}],"source_content_type":"text/x-rst","patch_set":21,"id":"7faddb67_7b6df996","line":62,"range":{"start_line":61,"start_character":30,"end_line":62,"end_character":51},"updated":"2019-07-08 06:33:48.000000000","message":"I have the following two questions. If I have understood you right I like the spec, but please add the clarifications.\n\nQuestion 1: I am confused by what do you mean by \u0027deleting only the present items\u0027?\n\nI assume your proposed expected usage is: \n1) generate saved state file, (optional? (see question 2))\n2) generate target file (potentially, but not necessarily) by running `tempest run` (without `--test-record-off`)), \n3) run `tempest cleanup --target \u003ctarget file\u003e`\n\nThe formulation \u0027deleting only the present items\u0027 does not make it quite clear whether you will delete \u0027Option 1: the resources that are present only in the target file and not the saved state file\u0027, or \u0027Option 2: the resources that are present in both files\u0027. (I assume you mean Option 1.)\n\nIt is also unclear what will happen in the other case, i.e. what will happen if the resource is mentioned also in the saved state file. Please specify. \n\nQuestion 2: Do you require a saved state file to exist before running `tempest cleanup --target \u003ctarget file\u003e`? \n\nI hope you do not, since I often have the case that there are a lot of resources I want to delete, but they were not created by tempest. It would be nice to have a cleanup tool for those resources as well (I could of course fake my saved_state file by deleting all resources I want to delete from it, but why force me to do that?).","commit_id":"376eb371ca934f8317bdc934a58effe7a7ea5f19"},{"author":{"_account_id":23625,"name":"Nicolas Helgeson","email":"nh202b@att.com","username":"nhelgeson"},"change_message_id":"cba85bb7e7e741fbe23d5b4244f94cbda383d568","unresolved":false,"context_lines":[{"line_number":58,"context_line":"Create an alternate cleanup function that uses a list of resources to be deleted."},{"line_number":59,"context_line":"Essentially the inverse of the current function. By including the ``--target \u003c\u0027file\u0027\u003e``"},{"line_number":60,"context_line":"parameter a user will be able to supply a list of resources that need to be"},{"line_number":61,"context_line":"deleted and the function will double check against any existing saved_state file"},{"line_number":62,"context_line":"before specifically deleting only the present items. Additionally, any test run"},{"line_number":63,"context_line":"will record created resources into a file labeled with the time and date of the"},{"line_number":64,"context_line":"test. This feature will be on by default, but can be turned off using the"},{"line_number":65,"context_line":"``--test-record-off`` parameter when running tests. Include support for ``--dry-run``"}],"source_content_type":"text/x-rst","patch_set":21,"id":"7faddb67_316552e2","line":62,"range":{"start_line":61,"start_character":30,"end_line":62,"end_character":51},"in_reply_to":"7faddb67_7b6df996","updated":"2019-07-08 21:11:59.000000000","message":"Hi Karin,\n\nQuestion 1: you have the right of it. I will update the usage and reword that line.\n\nQuestion 1.5: If a resource is present in both files, an error will be thrown and the resource will not be deleted.\n\nQuestion 2: checking against the saved state is primarily for redundancy. Also part of the intention for this clean up is to enable multiple users running tests at the same time and then cleaning up their own mess. If a user wants to save something, they can add it to the saved state an ensure that it will not be deleted. You would technically not need to have a saved_state file present since if there is no file, then the resource would not be present :P","commit_id":"376eb371ca934f8317bdc934a58effe7a7ea5f19"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"07fcf2291597c673da8af6894cb3f8d0d3f78eaa","unresolved":false,"context_lines":[{"line_number":160,"context_line":""},{"line_number":161,"context_line":"* Update tempest cleanup CLI with new parameters"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"  * Add option to cleanup based on file contents"},{"line_number":164,"context_line":"     * tempest cleanup ``--target \u003c\u0027file\u0027\u003e``"},{"line_number":165,"context_line":"     * Include support for ``--dry-run`` to help identify resources leaks"},{"line_number":166,"context_line":""}],"source_content_type":"text/x-rst","patch_set":21,"id":"7faddb67_582da393","line":163,"updated":"2019-07-08 03:00:31.000000000","message":"nit: I think you wanted add a blank line here.","commit_id":"376eb371ca934f8317bdc934a58effe7a7ea5f19"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"07fcf2291597c673da8af6894cb3f8d0d3f78eaa","unresolved":false,"context_lines":[{"line_number":166,"context_line":""},{"line_number":167,"context_line":"* Update tempest run CLI with new parameters"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"  * Add option to not record tests"},{"line_number":170,"context_line":"     * tempest run ``--test-record-off``"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"* Add documentation"}],"source_content_type":"text/x-rst","patch_set":21,"id":"7faddb67_f821efa0","line":169,"updated":"2019-07-08 03:00:31.000000000","message":"ditto","commit_id":"376eb371ca934f8317bdc934a58effe7a7ea5f19"},{"author":{"_account_id":17887,"name":"Doug Schveninger","email":"ds6901@att.com","username":"Doug.Schveninger"},"change_message_id":"7cbe75a3753f7d6b11abb8d2f87534ba0b868125","unresolved":false,"context_lines":[{"line_number":58,"context_line":"Create an alternate cleanup function that uses a list of resources to be deleted."},{"line_number":59,"context_line":"Essentially the inverse of the current function. By including the ``--target \u003c\u0027file\u0027\u003e``"},{"line_number":60,"context_line":"parameter a user will be able to supply a list of resources that need to be"},{"line_number":61,"context_line":"deleted and the function will double check against any existing saved_state file"},{"line_number":62,"context_line":"before specifically deleting only the resources listed in the target file. If a"},{"line_number":63,"context_line":"resource is present in both saved_state and target files, and error will be thrown,"},{"line_number":64,"context_line":"and no resources will be deleted. Additionally, any test run will automatically"},{"line_number":65,"context_line":"record created resources into a file labeled with the time and date of the"},{"line_number":66,"context_line":"test. This feature will be on by default, but can be turned off using the"},{"line_number":67,"context_line":"``--test-record-off`` parameter when running tests. Include support for ``--dry-run``"}],"source_content_type":"text/x-rst","patch_set":23,"id":"7faddb67_929d0bbd","line":64,"range":{"start_line":61,"start_character":12,"end_line":64,"end_character":32},"updated":"2019-08-01 01:48:01.000000000","message":"how it interacts with save state.","commit_id":"0f7b3510f9ac2dbc8c5362e99eef046902254240"},{"author":{"_account_id":17887,"name":"Doug Schveninger","email":"ds6901@att.com","username":"Doug.Schveninger"},"change_message_id":"7cbe75a3753f7d6b11abb8d2f87534ba0b868125","unresolved":false,"context_lines":[{"line_number":61,"context_line":"deleted and the function will double check against any existing saved_state file"},{"line_number":62,"context_line":"before specifically deleting only the resources listed in the target file. If a"},{"line_number":63,"context_line":"resource is present in both saved_state and target files, and error will be thrown,"},{"line_number":64,"context_line":"and no resources will be deleted. Additionally, any test run will automatically"},{"line_number":65,"context_line":"record created resources into a file labeled with the time and date of the"},{"line_number":66,"context_line":"test. This feature will be on by default, but can be turned off using the"},{"line_number":67,"context_line":"``--test-record-off`` parameter when running tests. Include support for ``--dry-run``"},{"line_number":68,"context_line":"to provide functionality that can help track down resource leaks."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"The list will automatically be generated by adding a logging function to the client"},{"line_number":71,"context_line":"create function and a log cleanup function to the client delete function. The scope"}],"source_content_type":"text/x-rst","patch_set":23,"id":"7faddb67_52a7930c","line":68,"range":{"start_line":64,"start_character":34,"end_line":68,"end_character":65},"updated":"2019-08-01 01:48:01.000000000","message":"need to do this in another spec","commit_id":"0f7b3510f9ac2dbc8c5362e99eef046902254240"},{"author":{"_account_id":17887,"name":"Doug Schveninger","email":"ds6901@att.com","username":"Doug.Schveninger"},"change_message_id":"7cbe75a3753f7d6b11abb8d2f87534ba0b868125","unresolved":false,"context_lines":[{"line_number":67,"context_line":"``--test-record-off`` parameter when running tests. Include support for ``--dry-run``"},{"line_number":68,"context_line":"to provide functionality that can help track down resource leaks."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"The list will automatically be generated by adding a logging function to the client"},{"line_number":71,"context_line":"create function and a log cleanup function to the client delete function. The scope"},{"line_number":72,"context_line":"of this is pretty large, but we can reduce it by focusing on the same resources"},{"line_number":73,"context_line":"that the save-state function tracks: domains, flavors, images, projects, roles and users."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"Example:"},{"line_number":76,"context_line":""}],"source_content_type":"text/x-rst","patch_set":23,"id":"7faddb67_12927ba0","line":73,"range":{"start_line":70,"start_character":0,"end_line":73,"end_character":89},"updated":"2019-08-01 01:48:01.000000000","message":"delete","commit_id":"0f7b3510f9ac2dbc8c5362e99eef046902254240"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"c9508f0002044245897304eaac7e8bf8699e2417","unresolved":false,"context_lines":[{"line_number":194,"context_line":"  * Add option to cleanup based on file contents"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"     * tempest cleanup ``--purge-list \u003c\u0027file\u0027\u003e``"},{"line_number":197,"context_line":"     * Include support for ``--dry-run`` to help identify resources leaks"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"* Add documentation"},{"line_number":200,"context_line":""}],"source_content_type":"text/x-rst","patch_set":25,"id":"7faddb67_4f211efb","line":197,"updated":"2019-07-29 02:52:22.000000000","message":"The indentations can be updated. As you can see, these two lines are rendered as block quotes.\n\nhttp://logs.openstack.org/77/595277/25/check/openstack-tox-docs/0fb248b/html/specs/tempest/smart-cleanup.html#work-items","commit_id":"cc66081a9cf788d5645e4c2dabad9c181131399d"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"214ee47877839af82bcd1fa422198c68f7b5bd61","unresolved":false,"context_lines":[{"line_number":66,"context_line":"the ``--purge-list \u003c\u0027file\u0027\u003e`` parameter which contains a list of resources that need to be"},{"line_number":67,"context_line":"deleted. The proposed function will parse the provided list and then use the existing"},{"line_number":68,"context_line":"`cleanup`_ function to delete the resources provided, and nothing else."},{"line_number":69,"context_line":"The saved_state file does not need to exist in order to run purge-list, but if it does exist,"},{"line_number":70,"context_line":"the proposed function will check to make sure that no values are duplicated between the"},{"line_number":71,"context_line":"purge_list and the saved_state files. If a resource is present in both files, an error will"},{"line_number":72,"context_line":"be thrown, and no resources will be deleted."},{"line_number":73,"context_line":"The proposed function will include support for ``--dry-run`` by reporting all items that would"},{"line_number":74,"context_line":"be deleted, but not actually deleting them."},{"line_number":75,"context_line":"The provided purge_list will be formated in JSON list form exactly like the saved_state file."}],"source_content_type":"text/x-rst","patch_set":26,"id":"7faddb67_aac65999","line":72,"range":{"start_line":69,"start_character":0,"end_line":72,"end_character":44},"updated":"2019-07-31 02:22:04.000000000","message":"what will be the use of saved_state file then ? if resource is only present on saved_state file then tempest cleanup will not touch that ?\n\nIf we need to manually/automatically-in-future preare the target-file then how that is different than verifying the saved_state file before we run the cleanup.","commit_id":"4e0cc800fac54d148b2ee0d627a3f4e6b8e1c886"},{"author":{"_account_id":23625,"name":"Nicolas Helgeson","email":"nh202b@att.com","username":"nhelgeson"},"change_message_id":"8ac5b0e6dca1eccd87e614db90cf90ed7f6eebb2","unresolved":false,"context_lines":[{"line_number":66,"context_line":"the ``--purge-list \u003c\u0027file\u0027\u003e`` parameter which contains a list of resources that need to be"},{"line_number":67,"context_line":"deleted. The proposed function will parse the provided list and then use the existing"},{"line_number":68,"context_line":"`cleanup`_ function to delete the resources provided, and nothing else."},{"line_number":69,"context_line":"The saved_state file does not need to exist in order to run purge-list, but if it does exist,"},{"line_number":70,"context_line":"the proposed function will check to make sure that no values are duplicated between the"},{"line_number":71,"context_line":"purge_list and the saved_state files. If a resource is present in both files, an error will"},{"line_number":72,"context_line":"be thrown, and no resources will be deleted."},{"line_number":73,"context_line":"The proposed function will include support for ``--dry-run`` by reporting all items that would"},{"line_number":74,"context_line":"be deleted, but not actually deleting them."},{"line_number":75,"context_line":"The provided purge_list will be formated in JSON list form exactly like the saved_state file."}],"source_content_type":"text/x-rst","patch_set":26,"id":"7faddb67_da5cb91a","line":72,"range":{"start_line":69,"start_character":0,"end_line":72,"end_character":44},"in_reply_to":"7faddb67_aac65999","updated":"2019-07-31 17:58:23.000000000","message":"Save_state will still be required for a general clean-up.\nIn the case of targeted cleanup, it can be used as a way to protect resources, but is not required.","commit_id":"4e0cc800fac54d148b2ee0d627a3f4e6b8e1c886"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"350441e33f0d67031277683d5f3b59cb91d5a494","unresolved":false,"context_lines":[{"line_number":66,"context_line":"the ``--purge-list \u003c\u0027file\u0027\u003e`` parameter which contains a list of resources that need to be"},{"line_number":67,"context_line":"deleted. The proposed function will parse the provided list and then use the existing"},{"line_number":68,"context_line":"`cleanup`_ function to delete the resources provided, and nothing else."},{"line_number":69,"context_line":"The saved_state file does not need to exist in order to run purge-list, but if it does exist,"},{"line_number":70,"context_line":"the proposed function will check to make sure that no values are duplicated between the"},{"line_number":71,"context_line":"purge_list and the saved_state files. If a resource is present in both files, an error will"},{"line_number":72,"context_line":"be thrown, and no resources will be deleted."},{"line_number":73,"context_line":"The proposed function will include support for ``--dry-run`` by reporting all items that would"},{"line_number":74,"context_line":"be deleted, but not actually deleting them."},{"line_number":75,"context_line":"The provided purge_list will be formated in JSON list form exactly like the saved_state file."}],"source_content_type":"text/x-rst","patch_set":26,"id":"7faddb67_fd8e6825","line":72,"range":{"start_line":69,"start_character":0,"end_line":72,"end_character":44},"in_reply_to":"7faddb67_da5cb91a","updated":"2019-08-14 23:14:57.000000000","message":"humm, I think idea of this cleanup CLI is cleanup the leaked tests resource. General vs target cleanup should be same thing as overall we want to achieve the goal of no test resource exist after test run finished and we do not delete non-test resource by mistake.\n\nI am not completely understanding that how new target file is different than auditing the existing saved_state file and edit that. \"Audit and edit of saved_state file\" \u003d\u003d \"new target file\" or I am missing something here.\n\nBecause at the end how we will prepare the target file ? almost same as saved_state file? by auditing the before-test-run and after-test-run resource lists or manually checking the test\u0027s leaked resource.","commit_id":"4e0cc800fac54d148b2ee0d627a3f4e6b8e1c886"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"214ee47877839af82bcd1fa422198c68f7b5bd61","unresolved":false,"context_lines":[{"line_number":101,"context_line":"``--test-record-off`` parameter when running tests. Include support for ``--dry-run``"},{"line_number":102,"context_line":"to provide functionality that can help track down resource leaks."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"The list will automatically be generated by adding a logging function to the client"},{"line_number":105,"context_line":"create function and a log cleanup function to the client delete function. The scope"},{"line_number":106,"context_line":"of this is pretty large, but we can reduce it by focusing on the same resources"},{"line_number":107,"context_line":"that the save-state function tracks: domains, flavors, images, projects, roles and users."},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"Example:"},{"line_number":110,"context_line":""}],"source_content_type":"text/x-rst","patch_set":26,"id":"7faddb67_6a194178","line":107,"range":{"start_line":104,"start_character":0,"end_line":107,"end_character":89},"updated":"2019-07-31 02:22:04.000000000","message":"so this is different from proposed solution in automation of target file by tests cases only right ?","commit_id":"4e0cc800fac54d148b2ee0d627a3f4e6b8e1c886"},{"author":{"_account_id":23625,"name":"Nicolas Helgeson","email":"nh202b@att.com","username":"nhelgeson"},"change_message_id":"8ac5b0e6dca1eccd87e614db90cf90ed7f6eebb2","unresolved":false,"context_lines":[{"line_number":101,"context_line":"``--test-record-off`` parameter when running tests. Include support for ``--dry-run``"},{"line_number":102,"context_line":"to provide functionality that can help track down resource leaks."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"The list will automatically be generated by adding a logging function to the client"},{"line_number":105,"context_line":"create function and a log cleanup function to the client delete function. The scope"},{"line_number":106,"context_line":"of this is pretty large, but we can reduce it by focusing on the same resources"},{"line_number":107,"context_line":"that the save-state function tracks: domains, flavors, images, projects, roles and users."},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"Example:"},{"line_number":110,"context_line":""}],"source_content_type":"text/x-rst","patch_set":26,"id":"7faddb67_dab11946","line":107,"range":{"start_line":104,"start_character":0,"end_line":107,"end_character":89},"in_reply_to":"7faddb67_6a194178","updated":"2019-07-31 17:58:23.000000000","message":"I decided this option was scope creep and will be proposed in a different spec if deemed necessary.","commit_id":"4e0cc800fac54d148b2ee0d627a3f4e6b8e1c886"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"214ee47877839af82bcd1fa422198c68f7b5bd61","unresolved":false,"context_lines":[{"line_number":122,"context_line":"tracked back to the test run."},{"line_number":123,"context_line":""},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"B) Rejected duel to resource_prefix and rand_name scope issues"},{"line_number":126,"context_line":"Restore the `resources_prefix`_ using `rand_name`_ in order to track individual"},{"line_number":127,"context_line":"test runs. Add code that allows for targeted deletion of these named resources"},{"line_number":128,"context_line":"so that individual test runs can be specifically deleted without interacting"},{"line_number":129,"context_line":"with other test runs. Include support for ``--dry-run`` to provide"},{"line_number":130,"context_line":"functionality that can help track down resource leaks. Once implemented, a user"},{"line_number":131,"context_line":"will be able to run:"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":".. code-block:: bash"},{"line_number":134,"context_line":""}],"source_content_type":"text/x-rst","patch_set":26,"id":"7faddb67_2aea690e","line":131,"range":{"start_line":125,"start_character":0,"end_line":131,"end_character":20},"updated":"2019-07-31 02:22:04.000000000","message":"I agree to avoid this idea as this might not solve all the problem listed in problem section where configured resource_prefix cane be same in many cases like parallel run by different users or in multiple workspace run.","commit_id":"4e0cc800fac54d148b2ee0d627a3f4e6b8e1c886"}]}
