)]}'
{"specs/train/reset_scope_state.rst":[{"author":{"_account_id":30367,"name":"Zachary Kazanski","email":"kazanski.zachary@gmail.com","username":"exit9z"},"change_message_id":"23f4fa0dd61813959b318f0f4c0ece30fe3fdc7e","unresolved":false,"context_lines":[{"line_number":17,"context_line":"for a given scope for any reason (changes in cloudkitty\u0027s collection"},{"line_number":18,"context_line":"configuration, update of some rating rules...), he has to stop all the"},{"line_number":19,"context_line":"processors, update the state of said scope in the database, and restart all"},{"line_number":20,"context_line":"the processor. Furthermore, there is no way for an admin to get the current"},{"line_number":21,"context_line":"state of a scope, unless he directly queries the SQL database."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Proposed Change"}],"source_content_type":"text/x-rst","patch_set":1,"id":"dfbec78f_0221a0b0","line":20,"updated":"2019-05-10 19:22:30.000000000","message":"Missing \u0027s\u0027\n\nthe processors.","commit_id":"43f9519a132ee9e606b37c8567a761dbc06ec93e"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"c936b32abf64ea8510d3b728e871b640784c4e8c","unresolved":false,"context_lines":[{"line_number":17,"context_line":"for a given scope for any reason (changes in cloudkitty\u0027s collection"},{"line_number":18,"context_line":"configuration, update of some rating rules...), he has to stop all the"},{"line_number":19,"context_line":"processors, update the state of said scope in the database, and restart all"},{"line_number":20,"context_line":"the processor. Furthermore, there is no way for an admin to get the current"},{"line_number":21,"context_line":"state of a scope, unless he directly queries the SQL database."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Proposed Change"}],"source_content_type":"text/x-rst","patch_set":1,"id":"dfbec78f_d32909e6","line":20,"in_reply_to":"dfbec78f_0221a0b0","updated":"2019-05-13 08:28:34.000000000","message":"Done","commit_id":"43f9519a132ee9e606b37c8567a761dbc06ec93e"},{"author":{"_account_id":30367,"name":"Zachary Kazanski","email":"kazanski.zachary@gmail.com","username":"exit9z"},"change_message_id":"23f4fa0dd61813959b318f0f4c0ece30fe3fdc7e","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"  - For each scope, the following steps are applied:"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    * The listener acquires a tooz lock. This operation is blocking. It avoids"},{"line_number":65,"context_line":"      to process a tenant while its state is being reset and its data is"},{"line_number":66,"context_line":"      being deleted."},{"line_number":67,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"dfbec78f_2d75b532","line":64,"updated":"2019-05-10 19:22:30.000000000","message":"`It avoids to process a tenant...` can be better stated:\n\nTo prevent a tenant from being processed while its state is being reset and its data being deleted, the listener acquires a tooz lock. This operation is blocking.","commit_id":"43f9519a132ee9e606b37c8567a761dbc06ec93e"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"c936b32abf64ea8510d3b728e871b640784c4e8c","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"  - For each scope, the following steps are applied:"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    * The listener acquires a tooz lock. This operation is blocking. It avoids"},{"line_number":65,"context_line":"      to process a tenant while its state is being reset and its data is"},{"line_number":66,"context_line":"      being deleted."},{"line_number":67,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"dfbec78f_135a4182","line":64,"in_reply_to":"dfbec78f_2d75b532","updated":"2019-05-13 08:28:34.000000000","message":"Thanks for the suggestion, sounds better indeed!","commit_id":"43f9519a132ee9e606b37c8567a761dbc06ec93e"},{"author":{"_account_id":29503,"name":"Justin Ferrieu","email":"jferrieu@objectif-libre.com","username":"jferrieu"},"change_message_id":"4336b3c5e2896ed9237ceecec714403dde834d87","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"The proposed logic is the following:"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"* The admin sets the status of a scope though the API. He can regularly check"},{"line_number":46,"context_line":"  if the status of the previously updated scope has been updated through the"},{"line_number":47,"context_line":"  scope state endpoint."},{"line_number":48,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"bfb3d3c7_c5730d4d","line":45,"range":{"start_line":45,"start_character":39,"end_line":45,"end_character":45},"updated":"2019-05-17 08:49:54.000000000","message":"Typo: though \u003d\u003e through.","commit_id":"dc1f451ee9e967f20f07af46a51241fd509f0038"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"badc395cd9edee0f5ad85a887a93b2f92d7eeb01","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"The proposed logic is the following:"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"* The admin sets the status of a scope though the API. He can regularly check"},{"line_number":46,"context_line":"  if the status of the previously updated scope has been updated through the"},{"line_number":47,"context_line":"  scope state endpoint."},{"line_number":48,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"bfb3d3c7_c8c1e430","line":45,"range":{"start_line":45,"start_character":39,"end_line":45,"end_character":45},"in_reply_to":"bfb3d3c7_c5730d4d","updated":"2019-05-17 09:40:46.000000000","message":"Done","commit_id":"dc1f451ee9e967f20f07af46a51241fd509f0038"},{"author":{"_account_id":29503,"name":"Justin Ferrieu","email":"jferrieu@objectif-libre.com","username":"jferrieu"},"change_message_id":"4336b3c5e2896ed9237ceecec714403dde834d87","unresolved":false,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"  - The notification is parsed and validated. An AMQP reply indicating if it is"},{"line_number":59,"context_line":"    valid or not is returned to the API. If the notification was invalid, the"},{"line_number":60,"context_line":"    listener stop here."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"  - For each scope, the following steps are applied:"},{"line_number":63,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"bfb3d3c7_059fe550","line":60,"range":{"start_line":60,"start_character":13,"end_line":60,"end_character":17},"updated":"2019-05-17 08:49:54.000000000","message":"Typo: stop \u003d\u003e stops.","commit_id":"dc1f451ee9e967f20f07af46a51241fd509f0038"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"badc395cd9edee0f5ad85a887a93b2f92d7eeb01","unresolved":false,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"  - The notification is parsed and validated. An AMQP reply indicating if it is"},{"line_number":59,"context_line":"    valid or not is returned to the API. If the notification was invalid, the"},{"line_number":60,"context_line":"    listener stop here."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"  - For each scope, the following steps are applied:"},{"line_number":63,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"bfb3d3c7_68dc7818","line":60,"range":{"start_line":60,"start_character":13,"end_line":60,"end_character":17},"in_reply_to":"bfb3d3c7_059fe550","updated":"2019-05-17 09:40:46.000000000","message":"Done","commit_id":"dc1f451ee9e967f20f07af46a51241fd509f0038"},{"author":{"_account_id":29503,"name":"Justin Ferrieu","email":"jferrieu@objectif-libre.com","username":"jferrieu"},"change_message_id":"4336b3c5e2896ed9237ceecec714403dde834d87","unresolved":false,"context_lines":[{"line_number":115,"context_line":"a consequent amount of time and affect the performance of the database."},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"Moreover, the scope to reset will be locked during data deletion, and processors"},{"line_number":118,"context_line":"will thus no be able to process it."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"Other deployer impact"},{"line_number":121,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bfb3d3c7_e5cad14d","line":118,"range":{"start_line":118,"start_character":10,"end_line":118,"end_character":12},"updated":"2019-05-17 08:49:54.000000000","message":"Typo: no \u003d\u003e not.","commit_id":"dc1f451ee9e967f20f07af46a51241fd509f0038"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"badc395cd9edee0f5ad85a887a93b2f92d7eeb01","unresolved":false,"context_lines":[{"line_number":115,"context_line":"a consequent amount of time and affect the performance of the database."},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"Moreover, the scope to reset will be locked during data deletion, and processors"},{"line_number":118,"context_line":"will thus no be able to process it."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"Other deployer impact"},{"line_number":121,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bfb3d3c7_88e1acd3","line":118,"range":{"start_line":118,"start_character":10,"end_line":118,"end_character":12},"in_reply_to":"bfb3d3c7_e5cad14d","updated":"2019-05-17 09:40:46.000000000","message":"Done","commit_id":"dc1f451ee9e967f20f07af46a51241fd509f0038"},{"author":{"_account_id":29503,"name":"Justin Ferrieu","email":"jferrieu@objectif-libre.com","username":"jferrieu"},"change_message_id":"4336b3c5e2896ed9237ceecec714403dde834d87","unresolved":false,"context_lines":[{"line_number":136,"context_line":""},{"line_number":137,"context_line":"Primary assignee:"},{"line_number":138,"context_line":"   peschk_l"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"Work Items"},{"line_number":141,"context_line":"----------"},{"line_number":142,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"bfb3d3c7_a5d93923","line":139,"range":{"start_line":139,"start_character":0,"end_line":139,"end_character":0},"updated":"2019-05-17 08:49:54.000000000","message":"I am currently working on the following work item you\u0027ve detailed later: \"Write a spec to add a v2 API endpoint allowing to reset the state of one or several scopes.\"\n\nMaybe you should add me to \"Other contributors\" section for traceability concerns.","commit_id":"dc1f451ee9e967f20f07af46a51241fd509f0038"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"badc395cd9edee0f5ad85a887a93b2f92d7eeb01","unresolved":false,"context_lines":[{"line_number":136,"context_line":""},{"line_number":137,"context_line":"Primary assignee:"},{"line_number":138,"context_line":"   peschk_l"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"Work Items"},{"line_number":141,"context_line":"----------"},{"line_number":142,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"bfb3d3c7_28e680ea","line":139,"range":{"start_line":139,"start_character":0,"end_line":139,"end_character":0},"in_reply_to":"bfb3d3c7_a5d93923","updated":"2019-05-17 09:40:46.000000000","message":"You\u0027re right, added you","commit_id":"dc1f451ee9e967f20f07af46a51241fd509f0038"},{"author":{"_account_id":29503,"name":"Justin Ferrieu","email":"jferrieu@objectif-libre.com","username":"jferrieu"},"change_message_id":"4336b3c5e2896ed9237ceecec714403dde834d87","unresolved":false,"context_lines":[{"line_number":158,"context_line":"Testing"},{"line_number":159,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"Testing will be detailled in each of the associated specs."},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"Documentation Impact"},{"line_number":164,"context_line":"\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":2,"id":"bfb3d3c7_a5c4d941","line":161,"range":{"start_line":161,"start_character":16,"end_line":161,"end_character":25},"updated":"2019-05-17 08:49:54.000000000","message":"Typo: detailled \u003d\u003e detailed.","commit_id":"dc1f451ee9e967f20f07af46a51241fd509f0038"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"badc395cd9edee0f5ad85a887a93b2f92d7eeb01","unresolved":false,"context_lines":[{"line_number":158,"context_line":"Testing"},{"line_number":159,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"Testing will be detailled in each of the associated specs."},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"Documentation Impact"},{"line_number":164,"context_line":"\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":2,"id":"bfb3d3c7_e8cf0855","line":161,"range":{"start_line":161,"start_character":16,"end_line":161,"end_character":25},"in_reply_to":"bfb3d3c7_a5c4d941","updated":"2019-05-17 09:40:46.000000000","message":"Done","commit_id":"dc1f451ee9e967f20f07af46a51241fd509f0038"}]}
