)]}'
{"specs/mitaka/approved/watcher-consolidation-rules-api.rst":[{"author":{"_account_id":7664,"name":"Joe Cropper","email":"jwcroppe@us.ibm.com","username":"jwcroppe"},"change_message_id":"702e311e0aa527e6e96a6903f57b76271f8d8c31","unresolved":false,"context_lines":[{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"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\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\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"Define an API to allows the description in watcher of constraints"},{"line_number":9,"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\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\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/watcher/+spec/watcher-consolidation-rules-api"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa69d971_a844bab6","line":8,"range":{"start_line":8,"start_character":43,"end_line":8,"end_character":44},"updated":"2016-01-09 00:57:47.000000000","message":"Watcher","commit_id":"be33ebeb0922981ed1ef6e87e486a5eee3b2dbe9"},{"author":{"_account_id":7664,"name":"Joe Cropper","email":"jwcroppe@us.ibm.com","username":"jwcroppe"},"change_message_id":"702e311e0aa527e6e96a6903f57b76271f8d8c31","unresolved":false,"context_lines":[{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"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\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\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"Define an API to allows the description in watcher of constraints"},{"line_number":9,"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\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\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/watcher/+spec/watcher-consolidation-rules-api"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa69d971_e83ab233","line":8,"range":{"start_line":8,"start_character":22,"end_line":8,"end_character":23},"updated":"2016-01-09 00:57:47.000000000","message":"no s","commit_id":"be33ebeb0922981ed1ef6e87e486a5eee3b2dbe9"},{"author":{"_account_id":19889,"name":"Michele Santuari","email":"michele.santuari@create-net.org","username":"msantuari"},"change_message_id":"4fd9555eaa89787f0fe578bb5fbaea762679bdbb","unresolved":false,"context_lines":[{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"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\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\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"Define an API to allows the description in watcher of constraints"},{"line_number":9,"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\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\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/watcher/+spec/watcher-consolidation-rules-api"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa69d971_be97df8e","line":8,"range":{"start_line":8,"start_character":43,"end_line":8,"end_character":44},"in_reply_to":"fa69d971_a844bab6","updated":"2016-01-11 17:02:01.000000000","message":"Done","commit_id":"be33ebeb0922981ed1ef6e87e486a5eee3b2dbe9"},{"author":{"_account_id":19889,"name":"Michele Santuari","email":"michele.santuari@create-net.org","username":"msantuari"},"change_message_id":"4fd9555eaa89787f0fe578bb5fbaea762679bdbb","unresolved":false,"context_lines":[{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"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\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\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"Define an API to allows the description in watcher of constraints"},{"line_number":9,"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\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\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/watcher/+spec/watcher-consolidation-rules-api"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa69d971_53d9fc55","line":8,"range":{"start_line":8,"start_character":22,"end_line":8,"end_character":23},"in_reply_to":"fa69d971_e83ab233","updated":"2016-01-11 17:02:01.000000000","message":"Done","commit_id":"be33ebeb0922981ed1ef6e87e486a5eee3b2dbe9"},{"author":{"_account_id":7664,"name":"Joe Cropper","email":"jwcroppe@us.ibm.com","username":"jwcroppe"},"change_message_id":"702e311e0aa527e6e96a6903f57b76271f8d8c31","unresolved":false,"context_lines":[{"line_number":104,"context_line":"    \"valid\": 1"},{"line_number":105,"context_line":"    \"name\": \"constraint-1\""},{"line_number":106,"context_line":"    \"tags\": []"},{"line_number":107,"context_line":"    \"constraint\": \"grammarA:ban(vm1,node1)\","},{"line_number":108,"context_line":"    \"created_at\": \"2014-11-07T17:07:06Z\""},{"line_number":109,"context_line":"    \"updated_at\": \"2014-11-07T17:19:09Z\""},{"line_number":110,"context_line":"    \"owner\": \"5ef70662f8b34079a6eddb8da9d75fe8\""}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa69d971_684d6298","line":107,"range":{"start_line":107,"start_character":28,"end_line":107,"end_character":31},"updated":"2016-01-09 00:57:47.000000000","message":"Does the driver somehow define what this \u0027ban\u0027 function does pragmatically?  If so, could the spec be updated to shown how this looks from a high level?","commit_id":"be33ebeb0922981ed1ef6e87e486a5eee3b2dbe9"},{"author":{"_account_id":19889,"name":"Michele Santuari","email":"michele.santuari@create-net.org","username":"msantuari"},"change_message_id":"4fd9555eaa89787f0fe578bb5fbaea762679bdbb","unresolved":false,"context_lines":[{"line_number":104,"context_line":"    \"valid\": 1"},{"line_number":105,"context_line":"    \"name\": \"constraint-1\""},{"line_number":106,"context_line":"    \"tags\": []"},{"line_number":107,"context_line":"    \"constraint\": \"grammarA:ban(vm1,node1)\","},{"line_number":108,"context_line":"    \"created_at\": \"2014-11-07T17:07:06Z\""},{"line_number":109,"context_line":"    \"updated_at\": \"2014-11-07T17:19:09Z\""},{"line_number":110,"context_line":"    \"owner\": \"5ef70662f8b34079a6eddb8da9d75fe8\""}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa69d971_7e3167ec","line":107,"range":{"start_line":107,"start_character":28,"end_line":107,"end_character":31},"in_reply_to":"fa69d971_684d6298","updated":"2016-01-11 17:02:01.000000000","message":"This is an example of the model considering a generic grammar A. In our architecture we design the API as generic as possible. In particular API should not depends on the grammar. The following blueprint https://review.openstack.org/#/c/258608/ states a grammar prototype.","commit_id":"be33ebeb0922981ed1ef6e87e486a5eee3b2dbe9"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"31c1df71fa13ba0696aeaf680a7db6cf10993d6f","unresolved":false,"context_lines":[{"line_number":223,"context_line":"\t\t\t}"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"\t* Expected error http response codes:"},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"\t\t* 403 Forbidden request"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"\t\t* 500 Request cannot be performed"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa69d971_c9f2666f","line":226,"updated":"2016-01-04 14:44:13.000000000","message":"* 400 Bad Request (?, for constraint malformed value)","commit_id":"be33ebeb0922981ed1ef6e87e486a5eee3b2dbe9"},{"author":{"_account_id":19889,"name":"Michele Santuari","email":"michele.santuari@create-net.org","username":"msantuari"},"change_message_id":"4fd9555eaa89787f0fe578bb5fbaea762679bdbb","unresolved":false,"context_lines":[{"line_number":223,"context_line":"\t\t\t}"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"\t* Expected error http response codes:"},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"\t\t* 403 Forbidden request"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"\t\t* 500 Request cannot be performed"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa69d971_9e1a1bc5","line":226,"in_reply_to":"fa69d971_c9f2666f","updated":"2016-01-11 17:02:01.000000000","message":"Done","commit_id":"be33ebeb0922981ed1ef6e87e486a5eee3b2dbe9"},{"author":{"_account_id":7664,"name":"Joe Cropper","email":"jwcroppe@us.ibm.com","username":"jwcroppe"},"change_message_id":"702e311e0aa527e6e96a6903f57b76271f8d8c31","unresolved":false,"context_lines":[{"line_number":226,"context_line":""},{"line_number":227,"context_line":"\t\t* 403 Forbidden request"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"\t\t* 500 Request cannot be performed"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"* Action on Constraint:"},{"line_number":232,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa69d971_08d146cd","line":229,"range":{"start_line":229,"start_character":4,"end_line":229,"end_character":7},"updated":"2016-01-09 00:57:47.000000000","message":"Our code should never explicitly raise a 500 error; these are reserved for unexpected server type problems, not expected HTTP errors.","commit_id":"be33ebeb0922981ed1ef6e87e486a5eee3b2dbe9"},{"author":{"_account_id":19889,"name":"Michele Santuari","email":"michele.santuari@create-net.org","username":"msantuari"},"change_message_id":"4fd9555eaa89787f0fe578bb5fbaea762679bdbb","unresolved":false,"context_lines":[{"line_number":226,"context_line":""},{"line_number":227,"context_line":"\t\t* 403 Forbidden request"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"\t\t* 500 Request cannot be performed"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"* Action on Constraint:"},{"line_number":232,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa69d971_7e1727ee","line":229,"range":{"start_line":229,"start_character":4,"end_line":229,"end_character":7},"in_reply_to":"fa69d971_08d146cd","updated":"2016-01-11 17:02:01.000000000","message":"Done","commit_id":"be33ebeb0922981ed1ef6e87e486a5eee3b2dbe9"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"31c1df71fa13ba0696aeaf680a7db6cf10993d6f","unresolved":false,"context_lines":[{"line_number":228,"context_line":""},{"line_number":229,"context_line":"\t\t* 500 Request cannot be performed"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"* Action on Constraint:"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"\t* Reactivate / Deactivate or Validate a given constraint"},{"line_number":234,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa69d971_2ead4831","line":231,"updated":"2016-01-04 14:44:13.000000000","message":"if Action on constraint is summed up in the update of the constraint parameter \u0027status\u0027, it should be appropriate to use the PATCH method type (We already use this method in Watcher when we want to start an action plan ;)\n\nWe can also use PATCH to update other parameter, if needed .... (this part is missing in this spec)","commit_id":"be33ebeb0922981ed1ef6e87e486a5eee3b2dbe9"},{"author":{"_account_id":19889,"name":"Michele Santuari","email":"michele.santuari@create-net.org","username":"msantuari"},"change_message_id":"4fd9555eaa89787f0fe578bb5fbaea762679bdbb","unresolved":false,"context_lines":[{"line_number":228,"context_line":""},{"line_number":229,"context_line":"\t\t* 500 Request cannot be performed"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"* Action on Constraint:"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"\t* Reactivate / Deactivate or Validate a given constraint"},{"line_number":234,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa69d971_d96bcd1c","line":231,"in_reply_to":"fa69d971_2ead4831","updated":"2016-01-11 17:02:01.000000000","message":"Done","commit_id":"be33ebeb0922981ed1ef6e87e486a5eee3b2dbe9"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"31c1df71fa13ba0696aeaf680a7db6cf10993d6f","unresolved":false,"context_lines":[{"line_number":280,"context_line":""},{"line_number":281,"context_line":"\t* Expected error http response codes"},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"\t\t* 403 Forbidden request"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"\t\t* 500 Request cannot be performed"},{"line_number":286,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa69d971_8939ce43","line":283,"updated":"2016-01-04 14:44:13.000000000","message":"* 404 Not Found (?)","commit_id":"be33ebeb0922981ed1ef6e87e486a5eee3b2dbe9"},{"author":{"_account_id":19889,"name":"Michele Santuari","email":"michele.santuari@create-net.org","username":"msantuari"},"change_message_id":"4fd9555eaa89787f0fe578bb5fbaea762679bdbb","unresolved":false,"context_lines":[{"line_number":280,"context_line":""},{"line_number":281,"context_line":"\t* Expected error http response codes"},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"\t\t* 403 Forbidden request"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"\t\t* 500 Request cannot be performed"},{"line_number":286,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa69d971_3ede8f11","line":283,"in_reply_to":"fa69d971_8939ce43","updated":"2016-01-11 17:02:01.000000000","message":"Done","commit_id":"be33ebeb0922981ed1ef6e87e486a5eee3b2dbe9"}]}
