)]}'
{"specs/post-run-cleanup.rst":[{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"bc09dcbb596fabadf9e20fa1d57861d263a930ab","unresolved":false,"context_lines":[{"line_number":28,"context_line":"Proposed changes"},{"line_number":29,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":30,"context_line":"- Keep /tempest/stress/cleanup.py as a starting point and extend it. "},{"line_number":31,"context_line":"  It should also probably be moved to from /tempest/stess to /tools perhaps?"},{"line_number":32,"context_line":"- Currently cleanup.py deletes objects across all tenants.  Add argument, "},{"line_number":33,"context_line":"  --preserve-conf, that will preserve the tenants  and users defined "},{"line_number":34,"context_line":"  in tempest.conf. This will allow tempest to be run again without "}],"source_content_type":"text/x-rst","patch_set":3,"id":"7adec928_77df64d6","line":31,"updated":"2014-05-19 08:02:54.000000000","message":"Yes, it should.","commit_id":"a47abea677ba6d5f4720e1dd5a329464b70eb46f"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"bc09dcbb596fabadf9e20fa1d57861d263a930ab","unresolved":false,"context_lines":[{"line_number":74,"context_line":"--------------------------"},{"line_number":75,"context_line":"This is the current behavior, which deletes all objects in the system, "},{"line_number":76,"context_line":"with the exception of the missing ones, stacks and availability zones"},{"line_number":77,"context_line":"for example."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"Scenario 2: run cleanup.py --preserve-conf"},{"line_number":80,"context_line":"------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7adec928_fa0b5b21","line":77,"updated":"2014-05-19 08:02:54.000000000","message":"This should not remove the keystone state for the services.","commit_id":"a47abea677ba6d5f4720e1dd5a329464b70eb46f"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"bc09dcbb596fabadf9e20fa1d57861d263a930ab","unresolved":false,"context_lines":[{"line_number":100,"context_line":"Additional Implications"},{"line_number":101,"context_line":"-----------------------"},{"line_number":102,"context_line":"Going around an API and physically deleting records directly in the "},{"line_number":103,"context_line":"database is typically a really bad idea."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"Alternatives"},{"line_number":106,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7adec928_da7bff78","line":103,"updated":"2014-05-19 08:02:54.000000000","message":"Yes, but if you were going to have to do this manually at least this script would help. Of course it will be somewhat fragile and there needs to be a unit test to keep it working.","commit_id":"a47abea677ba6d5f4720e1dd5a329464b70eb46f"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"bc09dcbb596fabadf9e20fa1d57861d263a930ab","unresolved":false,"context_lines":[{"line_number":105,"context_line":"Alternatives"},{"line_number":106,"context_line":"------------"},{"line_number":107,"context_line":"Question: are there alternatives to directly deleting database records"},{"line_number":108,"context_line":"when objects seem to get in a \"stuck\", undeletable, state?"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"Implementation"},{"line_number":111,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7adec928_9a77b79f","line":108,"updated":"2014-05-19 08:02:54.000000000","message":"Not that I know of.","commit_id":"a47abea677ba6d5f4720e1dd5a329464b70eb46f"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"26601c10497163d3ea19e1caa1beb5a087b5a990","unresolved":false,"context_lines":[{"line_number":28,"context_line":"Proposed changes"},{"line_number":29,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":30,"context_line":"- Keep /tempest/stress/cleanup.py as a starting point and extend it."},{"line_number":31,"context_line":"  It should also probably be moved to from /tempest/stess to /tools perhaps?"},{"line_number":32,"context_line":"- Currently cleanup.py deletes objects across all tenants.  Add argument,"},{"line_number":33,"context_line":"  --preserve-conf, that will preserve the tenants  and users defined"},{"line_number":34,"context_line":"  in tempest.conf. This will allow tempest to be run again without"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1ae5cdf2_1899f96d","line":31,"updated":"2014-06-05 04:24:52.000000000","message":"This should be tempest/cmd and add an entry point for it too. That way we\u0027ll install it as a binary when setup.py is run and we can also unit test it.","commit_id":"f1e9ae451f67d30241bb915c0a877f728d92cd1a"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"26601c10497163d3ea19e1caa1beb5a087b5a990","unresolved":false,"context_lines":[{"line_number":32,"context_line":"- Currently cleanup.py deletes objects across all tenants.  Add argument,"},{"line_number":33,"context_line":"  --preserve-conf, that will preserve the tenants  and users defined"},{"line_number":34,"context_line":"  in tempest.conf. This will allow tempest to be run again without"},{"line_number":35,"context_line":"  having to re-run /tools/config_tempest.py"},{"line_number":36,"context_line":"- cleanup.py currently deletes servers (instances), keypairs,"},{"line_number":37,"context_line":"  security groups, floating ips, users, tenants, snapshots and volumes."},{"line_number":38,"context_line":"  It should also delete any stacks, availability zones and any other objects"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1ae5cdf2_78703d72","line":35,"updated":"2014-06-05 04:24:52.000000000","message":"I\u0027m not aware of a config_tempest.py script, what are you referring to?\n\nThere used to be a tempest_auto_config.py script in tree, but there were issues with it and it was misleading because it was actually just a python script which duplicated a small part of devstack\u0027s functionality.. Which means that it shared the same opinionated mentality of devstack which is something that tempest doesn\u0027t share. So we removed it from the tree.","commit_id":"f1e9ae451f67d30241bb915c0a877f728d92cd1a"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"fe117159153cd50cc43dc7291e9e80cae518ff6a","unresolved":false,"context_lines":[{"line_number":32,"context_line":"- Currently cleanup.py deletes objects across all tenants.  Add argument,"},{"line_number":33,"context_line":"  --preserve-conf, that will preserve the tenants  and users defined"},{"line_number":34,"context_line":"  in tempest.conf. This will allow tempest to be run again without"},{"line_number":35,"context_line":"  having to re-run /tools/config_tempest.py"},{"line_number":36,"context_line":"- cleanup.py currently deletes servers (instances), keypairs,"},{"line_number":37,"context_line":"  security groups, floating ips, users, tenants, snapshots and volumes."},{"line_number":38,"context_line":"  It should also delete any stacks, availability zones and any other objects"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1ae5cdf2_0a16f14b","line":35,"in_reply_to":"1ae5cdf2_78703d72","updated":"2014-06-05 13:50:21.000000000","message":"He is referring to a script that is in the upstream redhat-openstack repo. But that should not be referenced in this spec.","commit_id":"f1e9ae451f67d30241bb915c0a877f728d92cd1a"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"26601c10497163d3ea19e1caa1beb5a087b5a990","unresolved":false,"context_lines":[{"line_number":100,"context_line":"Additional Implications"},{"line_number":101,"context_line":"-----------------------"},{"line_number":102,"context_line":"Going around an API and physically deleting records directly in the"},{"line_number":103,"context_line":"database is typically a really bad idea."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"Alternatives"},{"line_number":106,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1ae5cdf2_b8c2c550","line":103,"updated":"2014-06-05 04:24:52.000000000","message":"Yes it is, so let\u0027s not do it.","commit_id":"f1e9ae451f67d30241bb915c0a877f728d92cd1a"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"26601c10497163d3ea19e1caa1beb5a087b5a990","unresolved":false,"context_lines":[{"line_number":105,"context_line":"Alternatives"},{"line_number":106,"context_line":"------------"},{"line_number":107,"context_line":"Question: are there alternatives to directly deleting database records"},{"line_number":108,"context_line":"when objects seem to get in a \"stuck\", undeletable, state?"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"Implementation"},{"line_number":111,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1ae5cdf2_38aeb598","line":108,"updated":"2014-06-05 04:24:52.000000000","message":"This is a bug and it needs to be reported when it happens. Otherwise we won\u0027t be able to fix it. Just deleting it like it\u0027s standard operating procedure is the incorrect approach.","commit_id":"f1e9ae451f67d30241bb915c0a877f728d92cd1a"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"26601c10497163d3ea19e1caa1beb5a087b5a990","unresolved":false,"context_lines":[{"line_number":122,"context_line":"----------"},{"line_number":123,"context_line":"Target Milestone for completion:"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"- Juno release cycle"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"Work Items"},{"line_number":128,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1ae5cdf2_78ccbd89","line":125,"updated":"2014-06-05 04:24:52.000000000","message":"This should be an actual milestone, not just the Juno cycle. (See: https://wiki.openstack.org/wiki/Juno_Release_Schedule)\n\nIt\u0027s not a deadline for getting the code accepted, just when you realistically expect things to be completed.","commit_id":"f1e9ae451f67d30241bb915c0a877f728d92cd1a"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"c122a482d957e284f2ebc8b9f25a697090d21f80","unresolved":false,"context_lines":[{"line_number":46,"context_line":"  in the same state it was prior to running tempest and allow"},{"line_number":47,"context_line":"  tempest to be run again without having to reconfigure tempest"},{"line_number":48,"context_line":"  and recreate the tempest test users etc. For example, if"},{"line_number":49,"context_line":"  --preserve-state is true cleanup will load a json file containing"},{"line_number":50,"context_line":"  the preserved state of the environment and marshal the data to some"},{"line_number":51,"context_line":"  defined instance variables. Then, when cleanup is looping through"},{"line_number":52,"context_line":"  floating ips we would have something like:"}],"source_content_type":"text/x-rst","patch_set":9,"id":"1ae5cdf2_5fce905c","line":49,"updated":"2014-06-24 14:04:27.000000000","message":"Where is this JSON file coming from? Do you expect it to be hand generated? You mentioned using the config file below.","commit_id":"bda64ff3d82b6fbadc263610e7711f8eb4c5c501"},{"author":{"_account_id":10644,"name":"David Paterson","email":"davpat2112@yahoo.com","username":"dpaterson"},"change_message_id":"b090b4900f23b29667f5910167ee1b0799bfcdf9","unresolved":false,"context_lines":[{"line_number":46,"context_line":"  in the same state it was prior to running tempest and allow"},{"line_number":47,"context_line":"  tempest to be run again without having to reconfigure tempest"},{"line_number":48,"context_line":"  and recreate the tempest test users etc. For example, if"},{"line_number":49,"context_line":"  --preserve-state is true cleanup will load a json file containing"},{"line_number":50,"context_line":"  the preserved state of the environment and marshal the data to some"},{"line_number":51,"context_line":"  defined instance variables. Then, when cleanup is looping through"},{"line_number":52,"context_line":"  floating ips we would have something like:"}],"source_content_type":"text/x-rst","patch_set":9,"id":"1ae5cdf2_87f30508","line":49,"in_reply_to":"1ae5cdf2_5fce905c","updated":"2014-06-26 22:22:59.000000000","message":"The JSON is created by cleanup prior to running Tempest.  I have this working and it currently only saves the tenants and users but can be extended to save the state whatever objects we want it to.","commit_id":"bda64ff3d82b6fbadc263610e7711f8eb4c5c501"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"c122a482d957e284f2ebc8b9f25a697090d21f80","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"Additional Implications"},{"line_number":93,"context_line":"-----------------------"},{"line_number":94,"context_line":"There are cases where cruft will be left in the database do to openstack defects"},{"line_number":95,"context_line":"that don\u0027t allow objects to be removed during the cleanup process."},{"line_number":96,"context_line":"In such cases resetting the system to the pre-existing state requires direct"},{"line_number":97,"context_line":"interaction with the database.  It may be useful to design the cleanup script"}],"source_content_type":"text/x-rst","patch_set":9,"id":"1ae5cdf2_1f0a4879","line":94,"updated":"2014-06-24 14:04:27.000000000","message":"s/do/due/","commit_id":"bda64ff3d82b6fbadc263610e7711f8eb4c5c501"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"c122a482d957e284f2ebc8b9f25a697090d21f80","unresolved":false,"context_lines":[{"line_number":116,"context_line":"----------"},{"line_number":117,"context_line":"Target Milestone for completion:"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"- Juno release cycle, approximately the week of July 24th, 2014."},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"Work Items"},{"line_number":122,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":9,"id":"1ae5cdf2_ff62fc3b","line":119,"updated":"2014-06-24 14:04:27.000000000","message":"Ok, so Juno-2 :)","commit_id":"bda64ff3d82b6fbadc263610e7711f8eb4c5c501"}]}
