)]}'
{"doc/source/architecture.rst":[{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"4eba306a761327439cd3723733a0b4db80f60592","unresolved":false,"context_lines":[{"line_number":159,"context_line":"`stevedore \u003chttps://github.com/openstack/stevedore/\u003e`_). The"},{"line_number":160,"context_line":":ref:`Watcher Decision Engine \u003cwatcher_decision_engine_definition\u003e` calls the"},{"line_number":161,"context_line":"**execute()** method of the :ref:`Strategy \u003cstrategy_definition\u003e` class which"},{"line_number":162,"context_line":"generates a set of :ref:`Actions \u003caction_definition\u003e`."},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"These :ref:`Actions \u003caction_definition\u003e` are scheduled in time by the"},{"line_number":165,"context_line":":ref:`Watcher Planner \u003cwatcher_planner_definition\u003e` (i.e., it generates an"}],"source_content_type":"text/x-rst","patch_set":1,"id":"da6ed579_1ce205a0","line":162,"range":{"start_line":162,"start_character":10,"end_line":162,"end_character":52},"updated":"2016-01-13 16:54:29.000000000","message":"a solution composed by a set of :ref:`Actions \u003caction_definition\u003e`.","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"152c90f6b3d700ea079d282dc1a825a3ec7c6157","unresolved":false,"context_lines":[{"line_number":159,"context_line":"`stevedore \u003chttps://github.com/openstack/stevedore/\u003e`_). The"},{"line_number":160,"context_line":":ref:`Watcher Decision Engine \u003cwatcher_decision_engine_definition\u003e` calls the"},{"line_number":161,"context_line":"**execute()** method of the :ref:`Strategy \u003cstrategy_definition\u003e` class which"},{"line_number":162,"context_line":"generates a set of :ref:`Actions \u003caction_definition\u003e`."},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"These :ref:`Actions \u003caction_definition\u003e` are scheduled in time by the"},{"line_number":165,"context_line":":ref:`Watcher Planner \u003cwatcher_planner_definition\u003e` (i.e., it generates an"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba63e191_bfbafddf","line":162,"range":{"start_line":162,"start_character":10,"end_line":162,"end_character":52},"in_reply_to":"da6ed579_1ce205a0","updated":"2016-01-19 13:53:59.000000000","message":"Done","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":11750,"name":"Antoine Cabot","email":"antoine.cabot@b-com.com","username":"antoinecabot"},"change_message_id":"ac6799c5d998228009daf6fc228bb8ea65584e7f","unresolved":false,"context_lines":[{"line_number":205,"context_line":"---------------------------"},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"The :ref:`Administrator \u003cadministrator_definition\u003e` first creates an"},{"line_number":208,"context_line":":ref:`Audit templates \u003caudit_template_definition\u003e` providing at least the"},{"line_number":209,"context_line":"following parameters:"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"-   A name"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba63e191_6e2b8483","line":208,"range":{"start_line":208,"start_character":20,"end_line":208,"end_character":21},"updated":"2016-01-19 10:37:45.000000000","message":"remove the \"s\"","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"152c90f6b3d700ea079d282dc1a825a3ec7c6157","unresolved":false,"context_lines":[{"line_number":205,"context_line":"---------------------------"},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"The :ref:`Administrator \u003cadministrator_definition\u003e` first creates an"},{"line_number":208,"context_line":":ref:`Audit templates \u003caudit_template_definition\u003e` providing at least the"},{"line_number":209,"context_line":"following parameters:"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"-   A name"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba63e191_1fc6a967","line":208,"range":{"start_line":208,"start_character":20,"end_line":208,"end_character":21},"in_reply_to":"ba63e191_6e2b8483","updated":"2016-01-19 13:53:59.000000000","message":"Done","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":11750,"name":"Antoine Cabot","email":"antoine.cabot@b-com.com","username":"antoinecabot"},"change_message_id":"ac6799c5d998228009daf6fc228bb8ea65584e7f","unresolved":false,"context_lines":[{"line_number":240,"context_line":"the Audit parameters from the"},{"line_number":241,"context_line":":ref:`Watcher Database \u003cwatcher_database_definition\u003e`. It instantiates the"},{"line_number":242,"context_line":"appropriate :ref:`Strategy \u003cstrategy_definition\u003e` (using stevedore) associated"},{"line_number":243,"context_line":"to the :ref:`Goal \u003cgoal_definition\u003e` of the Audit (it uses the information of"},{"line_number":244,"context_line":"the Watcher configuration file to find the mapping between the Goal and the"},{"line_number":245,"context_line":"Strategy python class)."},{"line_number":246,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba63e191_61d5d541","line":243,"range":{"start_line":243,"start_character":44,"end_line":243,"end_character":49},"updated":"2016-01-19 10:37:45.000000000","message":"missing glossary reference","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"152c90f6b3d700ea079d282dc1a825a3ec7c6157","unresolved":false,"context_lines":[{"line_number":240,"context_line":"the Audit parameters from the"},{"line_number":241,"context_line":":ref:`Watcher Database \u003cwatcher_database_definition\u003e`. It instantiates the"},{"line_number":242,"context_line":"appropriate :ref:`Strategy \u003cstrategy_definition\u003e` (using stevedore) associated"},{"line_number":243,"context_line":"to the :ref:`Goal \u003cgoal_definition\u003e` of the Audit (it uses the information of"},{"line_number":244,"context_line":"the Watcher configuration file to find the mapping between the Goal and the"},{"line_number":245,"context_line":"Strategy python class)."},{"line_number":246,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba63e191_9fb5b9ce","line":243,"range":{"start_line":243,"start_character":44,"end_line":243,"end_character":49},"in_reply_to":"ba63e191_61d5d541","updated":"2016-01-19 13:53:59.000000000","message":"Done","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":11750,"name":"Antoine Cabot","email":"antoine.cabot@b-com.com","username":"antoinecabot"},"change_message_id":"ac6799c5d998228009daf6fc228bb8ea65584e7f","unresolved":false,"context_lines":[{"line_number":241,"context_line":":ref:`Watcher Database \u003cwatcher_database_definition\u003e`. It instantiates the"},{"line_number":242,"context_line":"appropriate :ref:`Strategy \u003cstrategy_definition\u003e` (using stevedore) associated"},{"line_number":243,"context_line":"to the :ref:`Goal \u003cgoal_definition\u003e` of the Audit (it uses the information of"},{"line_number":244,"context_line":"the Watcher configuration file to find the mapping between the Goal and the"},{"line_number":245,"context_line":"Strategy python class)."},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"The :ref:`Watcher Decision Engine \u003cwatcher_decision_engine_definition\u003e` also"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba63e191_a1bbcd0d","line":244,"range":{"start_line":244,"start_character":63,"end_line":244,"end_character":67},"updated":"2016-01-19 10:37:45.000000000","message":"ditto","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"152c90f6b3d700ea079d282dc1a825a3ec7c6157","unresolved":false,"context_lines":[{"line_number":241,"context_line":":ref:`Watcher Database \u003cwatcher_database_definition\u003e`. It instantiates the"},{"line_number":242,"context_line":"appropriate :ref:`Strategy \u003cstrategy_definition\u003e` (using stevedore) associated"},{"line_number":243,"context_line":"to the :ref:`Goal \u003cgoal_definition\u003e` of the Audit (it uses the information of"},{"line_number":244,"context_line":"the Watcher configuration file to find the mapping between the Goal and the"},{"line_number":245,"context_line":"Strategy python class)."},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"The :ref:`Watcher Decision Engine \u003cwatcher_decision_engine_definition\u003e` also"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba63e191_5fc8a155","line":244,"range":{"start_line":244,"start_character":63,"end_line":244,"end_character":67},"in_reply_to":"ba63e191_a1bbcd0d","updated":"2016-01-19 13:53:59.000000000","message":"Done","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":11750,"name":"Antoine Cabot","email":"antoine.cabot@b-com.com","username":"antoinecabot"},"change_message_id":"ac6799c5d998228009daf6fc228bb8ea65584e7f","unresolved":false,"context_lines":[{"line_number":242,"context_line":"appropriate :ref:`Strategy \u003cstrategy_definition\u003e` (using stevedore) associated"},{"line_number":243,"context_line":"to the :ref:`Goal \u003cgoal_definition\u003e` of the Audit (it uses the information of"},{"line_number":244,"context_line":"the Watcher configuration file to find the mapping between the Goal and the"},{"line_number":245,"context_line":"Strategy python class)."},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"The :ref:`Watcher Decision Engine \u003cwatcher_decision_engine_definition\u003e` also"},{"line_number":248,"context_line":"builds the :ref:`Cluster Data Model \u003ccluster_data_model_definition\u003e`. This"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba63e191_413771b0","line":245,"range":{"start_line":245,"start_character":0,"end_line":245,"end_character":8},"updated":"2016-01-19 10:37:45.000000000","message":"ditto","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"152c90f6b3d700ea079d282dc1a825a3ec7c6157","unresolved":false,"context_lines":[{"line_number":242,"context_line":"appropriate :ref:`Strategy \u003cstrategy_definition\u003e` (using stevedore) associated"},{"line_number":243,"context_line":"to the :ref:`Goal \u003cgoal_definition\u003e` of the Audit (it uses the information of"},{"line_number":244,"context_line":"the Watcher configuration file to find the mapping between the Goal and the"},{"line_number":245,"context_line":"Strategy python class)."},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"The :ref:`Watcher Decision Engine \u003cwatcher_decision_engine_definition\u003e` also"},{"line_number":248,"context_line":"builds the :ref:`Cluster Data Model \u003ccluster_data_model_definition\u003e`. This"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba63e191_dfe251d5","line":245,"range":{"start_line":245,"start_character":0,"end_line":245,"end_character":8},"in_reply_to":"ba63e191_413771b0","updated":"2016-01-19 13:53:59.000000000","message":"Done","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"4eba306a761327439cd3723733a0b4db80f60592","unresolved":false,"context_lines":[{"line_number":247,"context_line":"The :ref:`Watcher Decision Engine \u003cwatcher_decision_engine_definition\u003e` also"},{"line_number":248,"context_line":"builds the :ref:`Cluster Data Model \u003ccluster_data_model_definition\u003e`. This"},{"line_number":249,"context_line":"data model is needed by the :ref:`Strategy \u003cstrategy_definition\u003e` to know the"},{"line_number":250,"context_line":"current state and topology of the audited Openstack cluster."},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"The :ref:`Watcher Decision Engine \u003cwatcher_decision_engine_definition\u003e` calls"},{"line_number":253,"context_line":"the **execute()** method of the instantiated Strategy and provides the data"}],"source_content_type":"text/x-rst","patch_set":1,"id":"da6ed579_417976c7","line":250,"range":{"start_line":250,"start_character":52,"end_line":250,"end_character":59},"updated":"2016-01-13 16:54:29.000000000","message":"maybe add a link to glossary.","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"152c90f6b3d700ea079d282dc1a825a3ec7c6157","unresolved":false,"context_lines":[{"line_number":247,"context_line":"The :ref:`Watcher Decision Engine \u003cwatcher_decision_engine_definition\u003e` also"},{"line_number":248,"context_line":"builds the :ref:`Cluster Data Model \u003ccluster_data_model_definition\u003e`. This"},{"line_number":249,"context_line":"data model is needed by the :ref:`Strategy \u003cstrategy_definition\u003e` to know the"},{"line_number":250,"context_line":"current state and topology of the audited Openstack cluster."},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"The :ref:`Watcher Decision Engine \u003cwatcher_decision_engine_definition\u003e` calls"},{"line_number":253,"context_line":"the **execute()** method of the instantiated Strategy and provides the data"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba63e191_5f8741b5","line":250,"range":{"start_line":250,"start_character":52,"end_line":250,"end_character":59},"in_reply_to":"da6ed579_417976c7","updated":"2016-01-19 13:53:59.000000000","message":"Done","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":11750,"name":"Antoine Cabot","email":"antoine.cabot@b-com.com","username":"antoinecabot"},"change_message_id":"ac6799c5d998228009daf6fc228bb8ea65584e7f","unresolved":false,"context_lines":[{"line_number":250,"context_line":"current state and topology of the audited Openstack cluster."},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"The :ref:`Watcher Decision Engine \u003cwatcher_decision_engine_definition\u003e` calls"},{"line_number":253,"context_line":"the **execute()** method of the instantiated Strategy and provides the data"},{"line_number":254,"context_line":"model as an input parameter. This method computes a solution to achieve the"},{"line_number":255,"context_line":"goal and returns this solution to the Decision Engine. At this point, actions"},{"line_number":256,"context_line":"are not scheduled yet."}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba63e191_215d9de9","line":253,"range":{"start_line":253,"start_character":45,"end_line":253,"end_character":53},"updated":"2016-01-19 10:37:45.000000000","message":"ditto","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"152c90f6b3d700ea079d282dc1a825a3ec7c6157","unresolved":false,"context_lines":[{"line_number":250,"context_line":"current state and topology of the audited Openstack cluster."},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"The :ref:`Watcher Decision Engine \u003cwatcher_decision_engine_definition\u003e` calls"},{"line_number":253,"context_line":"the **execute()** method of the instantiated Strategy and provides the data"},{"line_number":254,"context_line":"model as an input parameter. This method computes a solution to achieve the"},{"line_number":255,"context_line":"goal and returns this solution to the Decision Engine. At this point, actions"},{"line_number":256,"context_line":"are not scheduled yet."}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba63e191_1f2d49a7","line":253,"range":{"start_line":253,"start_character":45,"end_line":253,"end_character":53},"in_reply_to":"ba63e191_215d9de9","updated":"2016-01-19 13:53:59.000000000","message":"Done","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"4eba306a761327439cd3723733a0b4db80f60592","unresolved":false,"context_lines":[{"line_number":251,"context_line":""},{"line_number":252,"context_line":"The :ref:`Watcher Decision Engine \u003cwatcher_decision_engine_definition\u003e` calls"},{"line_number":253,"context_line":"the **execute()** method of the instantiated Strategy and provides the data"},{"line_number":254,"context_line":"model as an input parameter. This method computes a solution to achieve the"},{"line_number":255,"context_line":"goal and returns this solution to the Decision Engine. At this point, actions"},{"line_number":256,"context_line":"are not scheduled yet."},{"line_number":257,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"da6ed579_9c7275ac","line":254,"range":{"start_line":254,"start_character":52,"end_line":254,"end_character":60},"updated":"2016-01-13 16:54:29.000000000","message":"ditto","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"152c90f6b3d700ea079d282dc1a825a3ec7c6157","unresolved":false,"context_lines":[{"line_number":251,"context_line":""},{"line_number":252,"context_line":"The :ref:`Watcher Decision Engine \u003cwatcher_decision_engine_definition\u003e` calls"},{"line_number":253,"context_line":"the **execute()** method of the instantiated Strategy and provides the data"},{"line_number":254,"context_line":"model as an input parameter. This method computes a solution to achieve the"},{"line_number":255,"context_line":"goal and returns this solution to the Decision Engine. At this point, actions"},{"line_number":256,"context_line":"are not scheduled yet."},{"line_number":257,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba63e191_ea1d1567","line":254,"range":{"start_line":254,"start_character":52,"end_line":254,"end_character":60},"in_reply_to":"da6ed579_9c7275ac","updated":"2016-01-19 13:53:59.000000000","message":"Done","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":11750,"name":"Antoine Cabot","email":"antoine.cabot@b-com.com","username":"antoinecabot"},"change_message_id":"ac6799c5d998228009daf6fc228bb8ea65584e7f","unresolved":false,"context_lines":[{"line_number":252,"context_line":"The :ref:`Watcher Decision Engine \u003cwatcher_decision_engine_definition\u003e` calls"},{"line_number":253,"context_line":"the **execute()** method of the instantiated Strategy and provides the data"},{"line_number":254,"context_line":"model as an input parameter. This method computes a solution to achieve the"},{"line_number":255,"context_line":"goal and returns this solution to the Decision Engine. At this point, actions"},{"line_number":256,"context_line":"are not scheduled yet."},{"line_number":257,"context_line":""},{"line_number":258,"context_line":"The :ref:`Watcher Decision Engine \u003cwatcher_decision_engine_definition\u003e`"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba63e191_810329b8","line":255,"range":{"start_line":255,"start_character":38,"end_line":255,"end_character":53},"updated":"2016-01-19 10:37:45.000000000","message":"ditto","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"152c90f6b3d700ea079d282dc1a825a3ec7c6157","unresolved":false,"context_lines":[{"line_number":252,"context_line":"The :ref:`Watcher Decision Engine \u003cwatcher_decision_engine_definition\u003e` calls"},{"line_number":253,"context_line":"the **execute()** method of the instantiated Strategy and provides the data"},{"line_number":254,"context_line":"model as an input parameter. This method computes a solution to achieve the"},{"line_number":255,"context_line":"goal and returns this solution to the Decision Engine. At this point, actions"},{"line_number":256,"context_line":"are not scheduled yet."},{"line_number":257,"context_line":""},{"line_number":258,"context_line":"The :ref:`Watcher Decision Engine \u003cwatcher_decision_engine_definition\u003e`"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba63e191_0a1bc973","line":255,"range":{"start_line":255,"start_character":38,"end_line":255,"end_character":53},"in_reply_to":"ba63e191_810329b8","updated":"2016-01-19 13:53:59.000000000","message":"Done","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":11750,"name":"Antoine Cabot","email":"antoine.cabot@b-com.com","username":"antoinecabot"},"change_message_id":"ac6799c5d998228009daf6fc228bb8ea65584e7f","unresolved":false,"context_lines":[{"line_number":259,"context_line":"dynamically loads the :ref:`Watcher Planner \u003cwatcher_planner_definition\u003e`"},{"line_number":260,"context_line":"implementation which is configured in Watcher (via stevedore) and calls the"},{"line_number":261,"context_line":"**schedule()** method of this class with the solution as an input parameter."},{"line_number":262,"context_line":"This method finds an appropriate scheduling of Actions taking into account some"},{"line_number":263,"context_line":"scheduling rules (such as priorities between actions)."},{"line_number":264,"context_line":"It generates a new :ref:`Action Plan \u003caction_plan_definition\u003e` with status"},{"line_number":265,"context_line":"**RECOMMENDED** and saves it into the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba63e191_c120414c","line":262,"range":{"start_line":262,"start_character":47,"end_line":262,"end_character":54},"updated":"2016-01-19 10:37:45.000000000","message":"ditto","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"152c90f6b3d700ea079d282dc1a825a3ec7c6157","unresolved":false,"context_lines":[{"line_number":259,"context_line":"dynamically loads the :ref:`Watcher Planner \u003cwatcher_planner_definition\u003e`"},{"line_number":260,"context_line":"implementation which is configured in Watcher (via stevedore) and calls the"},{"line_number":261,"context_line":"**schedule()** method of this class with the solution as an input parameter."},{"line_number":262,"context_line":"This method finds an appropriate scheduling of Actions taking into account some"},{"line_number":263,"context_line":"scheduling rules (such as priorities between actions)."},{"line_number":264,"context_line":"It generates a new :ref:`Action Plan \u003caction_plan_definition\u003e` with status"},{"line_number":265,"context_line":"**RECOMMENDED** and saves it into the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba63e191_8a5c9926","line":262,"range":{"start_line":262,"start_character":47,"end_line":262,"end_character":54},"in_reply_to":"ba63e191_c120414c","updated":"2016-01-19 13:53:59.000000000","message":"Done","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":11750,"name":"Antoine Cabot","email":"antoine.cabot@b-com.com","username":"antoinecabot"},"change_message_id":"ac6799c5d998228009daf6fc228bb8ea65584e7f","unresolved":false,"context_lines":[{"line_number":270,"context_line":":ref:`Watcher Decision Engine \u003cwatcher_decision_engine_definition\u003e` updates"},{"line_number":271,"context_line":"the current status of the Audit to **SUCCEEDED** in the"},{"line_number":272,"context_line":":ref:`Watcher Database \u003cwatcher_database_definition\u003e` and sends a notification"},{"line_number":273,"context_line":"on the bus to inform other components that the Audit was successfull."},{"line_number":274,"context_line":""},{"line_number":275,"context_line":""},{"line_number":276,"context_line":".. _sequence_diagrams_launch_action_plan:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba63e191_a1ee6dea","line":273,"range":{"start_line":273,"start_character":47,"end_line":273,"end_character":52},"updated":"2016-01-19 10:37:45.000000000","message":"ditto","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"152c90f6b3d700ea079d282dc1a825a3ec7c6157","unresolved":false,"context_lines":[{"line_number":270,"context_line":":ref:`Watcher Decision Engine \u003cwatcher_decision_engine_definition\u003e` updates"},{"line_number":271,"context_line":"the current status of the Audit to **SUCCEEDED** in the"},{"line_number":272,"context_line":":ref:`Watcher Database \u003cwatcher_database_definition\u003e` and sends a notification"},{"line_number":273,"context_line":"on the bus to inform other components that the Audit was successfull."},{"line_number":274,"context_line":""},{"line_number":275,"context_line":""},{"line_number":276,"context_line":".. _sequence_diagrams_launch_action_plan:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba63e191_2a6ecd2f","line":273,"range":{"start_line":273,"start_character":47,"end_line":273,"end_character":52},"in_reply_to":"ba63e191_a1ee6dea","updated":"2016-01-19 13:53:59.000000000","message":"Done","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":11750,"name":"Antoine Cabot","email":"antoine.cabot@b-com.com","username":"antoinecabot"},"change_message_id":"ac6799c5d998228009daf6fc228bb8ea65584e7f","unresolved":false,"context_lines":[{"line_number":281,"context_line":"The :ref:`Administrator \u003cadministrator_definition\u003e` can then launch the"},{"line_number":282,"context_line":"recommended :ref:`Action Plan \u003caction_plan_definition\u003e`:"},{"line_number":283,"context_line":""},{"line_number":284,"context_line":".. image:: ./images/sequence_launch_action_plan.png"},{"line_number":285,"context_line":"   :width: 100%"},{"line_number":286,"context_line":""},{"line_number":287,"context_line":"A message is sent on the :ref:`AMQP bus \u003camqp_bus_definition\u003e` which triggers"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba63e191_21b03df4","line":284,"range":{"start_line":284,"start_character":0,"end_line":284,"end_character":51},"updated":"2016-01-19 10:37:45.000000000","message":"I suppose we use HTTP 200 code for OK message, should\u0027nt we state it explicitly ?","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"152c90f6b3d700ea079d282dc1a825a3ec7c6157","unresolved":false,"context_lines":[{"line_number":281,"context_line":"The :ref:`Administrator \u003cadministrator_definition\u003e` can then launch the"},{"line_number":282,"context_line":"recommended :ref:`Action Plan \u003caction_plan_definition\u003e`:"},{"line_number":283,"context_line":""},{"line_number":284,"context_line":".. image:: ./images/sequence_launch_action_plan.png"},{"line_number":285,"context_line":"   :width: 100%"},{"line_number":286,"context_line":""},{"line_number":287,"context_line":"A message is sent on the :ref:`AMQP bus \u003camqp_bus_definition\u003e` which triggers"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba63e191_25c59e8d","line":284,"range":{"start_line":284,"start_character":0,"end_line":284,"end_character":51},"in_reply_to":"ba63e191_21b03df4","updated":"2016-01-19 13:53:59.000000000","message":"Done","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":11750,"name":"Antoine Cabot","email":"antoine.cabot@b-com.com","username":"antoinecabot"},"change_message_id":"ac6799c5d998228009daf6fc228bb8ea65584e7f","unresolved":false,"context_lines":[{"line_number":291,"context_line":".. image:: ./images/sequence_launch_action_plan_in_applier.png"},{"line_number":292,"context_line":"   :width: 100%"},{"line_number":293,"context_line":""},{"line_number":294,"context_line":"The Watcher Applier will get the description of the flow of Actions from the"},{"line_number":295,"context_line":":ref:`Watcher Database \u003cwatcher_database_definition\u003e` and for each Action"},{"line_number":296,"context_line":"it will instantiate a corresponding Action handler python class."},{"line_number":297,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba63e191_41dd3113","line":294,"range":{"start_line":294,"start_character":60,"end_line":294,"end_character":67},"updated":"2016-01-19 10:37:45.000000000","message":"missing glossary reference","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"152c90f6b3d700ea079d282dc1a825a3ec7c6157","unresolved":false,"context_lines":[{"line_number":291,"context_line":".. image:: ./images/sequence_launch_action_plan_in_applier.png"},{"line_number":292,"context_line":"   :width: 100%"},{"line_number":293,"context_line":""},{"line_number":294,"context_line":"The Watcher Applier will get the description of the flow of Actions from the"},{"line_number":295,"context_line":":ref:`Watcher Database \u003cwatcher_database_definition\u003e` and for each Action"},{"line_number":296,"context_line":"it will instantiate a corresponding Action handler python class."},{"line_number":297,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba63e191_25fa7ebe","line":294,"range":{"start_line":294,"start_character":60,"end_line":294,"end_character":67},"in_reply_to":"ba63e191_41dd3113","updated":"2016-01-19 13:53:59.000000000","message":"Done","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":11750,"name":"Antoine Cabot","email":"antoine.cabot@b-com.com","username":"antoinecabot"},"change_message_id":"ac6799c5d998228009daf6fc228bb8ea65584e7f","unresolved":false,"context_lines":[{"line_number":292,"context_line":"   :width: 100%"},{"line_number":293,"context_line":""},{"line_number":294,"context_line":"The Watcher Applier will get the description of the flow of Actions from the"},{"line_number":295,"context_line":":ref:`Watcher Database \u003cwatcher_database_definition\u003e` and for each Action"},{"line_number":296,"context_line":"it will instantiate a corresponding Action handler python class."},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"The Watcher Applier will then call the following methods of the Action handler:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba63e191_21ecbdc6","line":295,"range":{"start_line":295,"start_character":67,"end_line":295,"end_character":73},"updated":"2016-01-19 10:37:45.000000000","message":"ditto","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"152c90f6b3d700ea079d282dc1a825a3ec7c6157","unresolved":false,"context_lines":[{"line_number":292,"context_line":"   :width: 100%"},{"line_number":293,"context_line":""},{"line_number":294,"context_line":"The Watcher Applier will get the description of the flow of Actions from the"},{"line_number":295,"context_line":":ref:`Watcher Database \u003cwatcher_database_definition\u003e` and for each Action"},{"line_number":296,"context_line":"it will instantiate a corresponding Action handler python class."},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"The Watcher Applier will then call the following methods of the Action handler:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba63e191_a5d3ce37","line":295,"range":{"start_line":295,"start_character":67,"end_line":295,"end_character":73},"in_reply_to":"ba63e191_21ecbdc6","updated":"2016-01-19 13:53:59.000000000","message":"Done","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":11750,"name":"Antoine Cabot","email":"antoine.cabot@b-com.com","username":"antoinecabot"},"change_message_id":"ac6799c5d998228009daf6fc228bb8ea65584e7f","unresolved":false,"context_lines":[{"line_number":293,"context_line":""},{"line_number":294,"context_line":"The Watcher Applier will get the description of the flow of Actions from the"},{"line_number":295,"context_line":":ref:`Watcher Database \u003cwatcher_database_definition\u003e` and for each Action"},{"line_number":296,"context_line":"it will instantiate a corresponding Action handler python class."},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"The Watcher Applier will then call the following methods of the Action handler:"},{"line_number":299,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba63e191_e1cea559","line":296,"range":{"start_line":296,"start_character":36,"end_line":296,"end_character":42},"updated":"2016-01-19 10:37:45.000000000","message":"ditto","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"152c90f6b3d700ea079d282dc1a825a3ec7c6157","unresolved":false,"context_lines":[{"line_number":293,"context_line":""},{"line_number":294,"context_line":"The Watcher Applier will get the description of the flow of Actions from the"},{"line_number":295,"context_line":":ref:`Watcher Database \u003cwatcher_database_definition\u003e` and for each Action"},{"line_number":296,"context_line":"it will instantiate a corresponding Action handler python class."},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"The Watcher Applier will then call the following methods of the Action handler:"},{"line_number":299,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba63e191_451e920d","line":296,"range":{"start_line":296,"start_character":36,"end_line":296,"end_character":42},"in_reply_to":"ba63e191_e1cea559","updated":"2016-01-19 13:53:59.000000000","message":"Done","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":11750,"name":"Antoine Cabot","email":"antoine.cabot@b-com.com","username":"antoinecabot"},"change_message_id":"ac6799c5d998228009daf6fc228bb8ea65584e7f","unresolved":false,"context_lines":[{"line_number":295,"context_line":":ref:`Watcher Database \u003cwatcher_database_definition\u003e` and for each Action"},{"line_number":296,"context_line":"it will instantiate a corresponding Action handler python class."},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"The Watcher Applier will then call the following methods of the Action handler:"},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"-   **validate_parameters()**: this method will make sure that all the"},{"line_number":301,"context_line":"    provided input parameters are valid:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba63e191_61307557","line":298,"range":{"start_line":298,"start_character":4,"end_line":298,"end_character":19},"updated":"2016-01-19 10:37:45.000000000","message":"ditto","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":11750,"name":"Antoine Cabot","email":"antoine.cabot@b-com.com","username":"antoinecabot"},"change_message_id":"ac6799c5d998228009daf6fc228bb8ea65584e7f","unresolved":false,"context_lines":[{"line_number":295,"context_line":":ref:`Watcher Database \u003cwatcher_database_definition\u003e` and for each Action"},{"line_number":296,"context_line":"it will instantiate a corresponding Action handler python class."},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"The Watcher Applier will then call the following methods of the Action handler:"},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"-   **validate_parameters()**: this method will make sure that all the"},{"line_number":301,"context_line":"    provided input parameters are valid:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba63e191_c13fe123","line":298,"range":{"start_line":298,"start_character":64,"end_line":298,"end_character":70},"updated":"2016-01-19 10:37:45.000000000","message":"ditto","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"152c90f6b3d700ea079d282dc1a825a3ec7c6157","unresolved":false,"context_lines":[{"line_number":295,"context_line":":ref:`Watcher Database \u003cwatcher_database_definition\u003e` and for each Action"},{"line_number":296,"context_line":"it will instantiate a corresponding Action handler python class."},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"The Watcher Applier will then call the following methods of the Action handler:"},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"-   **validate_parameters()**: this method will make sure that all the"},{"line_number":301,"context_line":"    provided input parameters are valid:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba63e191_65b076de","line":298,"range":{"start_line":298,"start_character":4,"end_line":298,"end_character":19},"in_reply_to":"ba63e191_61307557","updated":"2016-01-19 13:53:59.000000000","message":"Done","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":11750,"name":"Antoine Cabot","email":"antoine.cabot@b-com.com","username":"antoinecabot"},"change_message_id":"ac6799c5d998228009daf6fc228bb8ea65584e7f","unresolved":false,"context_lines":[{"line_number":300,"context_line":"-   **validate_parameters()**: this method will make sure that all the"},{"line_number":301,"context_line":"    provided input parameters are valid:"},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"    -   If all parameters are valid, the Watcher Applier moves on to next step."},{"line_number":304,"context_line":"    -   If it is not, an error is raised and the action is not executed. A"},{"line_number":305,"context_line":"        notification is sent on the bus informing other components of the"},{"line_number":306,"context_line":"        failure."}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba63e191_010c1993","line":303,"range":{"start_line":303,"start_character":41,"end_line":303,"end_character":56},"updated":"2016-01-19 10:37:45.000000000","message":"ditto","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"152c90f6b3d700ea079d282dc1a825a3ec7c6157","unresolved":false,"context_lines":[{"line_number":300,"context_line":"-   **validate_parameters()**: this method will make sure that all the"},{"line_number":301,"context_line":"    provided input parameters are valid:"},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"    -   If all parameters are valid, the Watcher Applier moves on to next step."},{"line_number":304,"context_line":"    -   If it is not, an error is raised and the action is not executed. A"},{"line_number":305,"context_line":"        notification is sent on the bus informing other components of the"},{"line_number":306,"context_line":"        failure."}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba63e191_25cb5e55","line":303,"range":{"start_line":303,"start_character":41,"end_line":303,"end_character":56},"in_reply_to":"ba63e191_010c1993","updated":"2016-01-19 13:53:59.000000000","message":"Done","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"4eba306a761327439cd3723733a0b4db80f60592","unresolved":false,"context_lines":[{"line_number":305,"context_line":"        notification is sent on the bus informing other components of the"},{"line_number":306,"context_line":"        failure."},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"-   **preconditions()**: this method will make sure that the current context"},{"line_number":309,"context_line":"    is valid and that the action can be executed."},{"line_number":310,"context_line":"-   **execute()**: this method is what triggers real commands on other"},{"line_number":311,"context_line":"    OpenStack services (such as Nova, Neutron, ...) in order to change"}],"source_content_type":"text/x-rst","patch_set":1,"id":"da6ed579_bedc0313","line":308,"range":{"start_line":308,"start_character":6,"end_line":308,"end_character":18},"updated":"2016-01-13 16:54:29.000000000","message":"Is it the correct name ? why not validate_context() ? or should this method checked other conditions (and in this case, where are defined these conditions)","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"152c90f6b3d700ea079d282dc1a825a3ec7c6157","unresolved":false,"context_lines":[{"line_number":305,"context_line":"        notification is sent on the bus informing other components of the"},{"line_number":306,"context_line":"        failure."},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"-   **preconditions()**: this method will make sure that the current context"},{"line_number":309,"context_line":"    is valid and that the action can be executed."},{"line_number":310,"context_line":"-   **execute()**: this method is what triggers real commands on other"},{"line_number":311,"context_line":"    OpenStack services (such as Nova, Neutron, ...) in order to change"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba63e191_85400a58","line":308,"range":{"start_line":308,"start_character":6,"end_line":308,"end_character":18},"in_reply_to":"da6ed579_bedc0313","updated":"2016-01-19 13:53:59.000000000","message":"Changed the wording explaining what this method does.","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":11750,"name":"Antoine Cabot","email":"antoine.cabot@b-com.com","username":"antoinecabot"},"change_message_id":"ac6799c5d998228009daf6fc228bb8ea65584e7f","unresolved":false,"context_lines":[{"line_number":308,"context_line":"-   **preconditions()**: this method will make sure that the current context"},{"line_number":309,"context_line":"    is valid and that the action can be executed."},{"line_number":310,"context_line":"-   **execute()**: this method is what triggers real commands on other"},{"line_number":311,"context_line":"    OpenStack services (such as Nova, Neutron, ...) in order to change"},{"line_number":312,"context_line":"    target resource state. If the action was successfully executed, a"},{"line_number":313,"context_line":"    notification message is sent on the bus indicating that the new state"},{"line_number":314,"context_line":"    of the action is **SUCCEEDED**."}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba63e191_4179b1fb","line":311,"range":{"start_line":311,"start_character":36,"end_line":311,"end_character":50},"updated":"2016-01-19 10:37:45.000000000","message":"remove this as only Nova is implemented so far","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"152c90f6b3d700ea079d282dc1a825a3ec7c6157","unresolved":false,"context_lines":[{"line_number":308,"context_line":"-   **preconditions()**: this method will make sure that the current context"},{"line_number":309,"context_line":"    is valid and that the action can be executed."},{"line_number":310,"context_line":"-   **execute()**: this method is what triggers real commands on other"},{"line_number":311,"context_line":"    OpenStack services (such as Nova, Neutron, ...) in order to change"},{"line_number":312,"context_line":"    target resource state. If the action was successfully executed, a"},{"line_number":313,"context_line":"    notification message is sent on the bus indicating that the new state"},{"line_number":314,"context_line":"    of the action is **SUCCEEDED**."}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba63e191_a52bceea","line":311,"range":{"start_line":311,"start_character":36,"end_line":311,"end_character":50},"in_reply_to":"ba63e191_4179b1fb","updated":"2016-01-19 13:53:59.000000000","message":"Done","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":11750,"name":"Antoine Cabot","email":"antoine.cabot@b-com.com","username":"antoinecabot"},"change_message_id":"ac6799c5d998228009daf6fc228bb8ea65584e7f","unresolved":false,"context_lines":[{"line_number":309,"context_line":"    is valid and that the action can be executed."},{"line_number":310,"context_line":"-   **execute()**: this method is what triggers real commands on other"},{"line_number":311,"context_line":"    OpenStack services (such as Nova, Neutron, ...) in order to change"},{"line_number":312,"context_line":"    target resource state. If the action was successfully executed, a"},{"line_number":313,"context_line":"    notification message is sent on the bus indicating that the new state"},{"line_number":314,"context_line":"    of the action is **SUCCEEDED**."},{"line_number":315,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba63e191_21883de7","line":312,"range":{"start_line":312,"start_character":41,"end_line":312,"end_character":44},"updated":"2016-01-19 10:37:45.000000000","message":"is","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"152c90f6b3d700ea079d282dc1a825a3ec7c6157","unresolved":false,"context_lines":[{"line_number":309,"context_line":"    is valid and that the action can be executed."},{"line_number":310,"context_line":"-   **execute()**: this method is what triggers real commands on other"},{"line_number":311,"context_line":"    OpenStack services (such as Nova, Neutron, ...) in order to change"},{"line_number":312,"context_line":"    target resource state. If the action was successfully executed, a"},{"line_number":313,"context_line":"    notification message is sent on the bus indicating that the new state"},{"line_number":314,"context_line":"    of the action is **SUCCEEDED**."},{"line_number":315,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba63e191_05473abc","line":312,"range":{"start_line":312,"start_character":41,"end_line":312,"end_character":44},"in_reply_to":"ba63e191_21883de7","updated":"2016-01-19 13:53:59.000000000","message":"Done","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":11750,"name":"Antoine Cabot","email":"antoine.cabot@b-com.com","username":"antoinecabot"},"change_message_id":"ac6799c5d998228009daf6fc228bb8ea65584e7f","unresolved":false,"context_lines":[{"line_number":314,"context_line":"    of the action is **SUCCEEDED**."},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"If every action of the action flow has been executed successfully, a"},{"line_number":317,"context_line":"notification is sent on the bus to indicate that the whole action plan has"},{"line_number":318,"context_line":"**SUCCEEDED**."},{"line_number":319,"context_line":""},{"line_number":320,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba63e191_41c77112","line":317,"range":{"start_line":317,"start_character":59,"end_line":317,"end_character":69},"updated":"2016-01-19 10:37:45.000000000","message":"missing ref","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"152c90f6b3d700ea079d282dc1a825a3ec7c6157","unresolved":false,"context_lines":[{"line_number":314,"context_line":"    of the action is **SUCCEEDED**."},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"If every action of the action flow has been executed successfully, a"},{"line_number":317,"context_line":"notification is sent on the bus to indicate that the whole action plan has"},{"line_number":318,"context_line":"**SUCCEEDED**."},{"line_number":319,"context_line":""},{"line_number":320,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba63e191_051e5aba","line":317,"range":{"start_line":317,"start_character":59,"end_line":317,"end_character":69},"in_reply_to":"ba63e191_41c77112","updated":"2016-01-19 13:53:59.000000000","message":"Done","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":6437,"name":"Susanne Balle","email":"sleipnir012@gmail.com","username":"susanne-balle"},"change_message_id":"c32d0966b9efa40c4f48e2c725ddef94239f2e8b","unresolved":false,"context_lines":[{"line_number":186,"context_line":""},{"line_number":187,"context_line":"The following diagram shows the data model of Watcher, especially the"},{"line_number":188,"context_line":"functional dependency of objects from the actors point of view (Goals, Audits,"},{"line_number":189,"context_line":"Action Plans, ...):"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":".. image:: ./images/functional_data_model.svg"},{"line_number":192,"context_line":"   :width: 100%"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba63e191_0c642220","line":189,"range":{"start_line":189,"start_character":14,"end_line":189,"end_character":18},"updated":"2016-01-20 01:00:00.000000000","message":"nit: is this only a finite number of actors? is so could we list them all.","commit_id":"213d00b1a38e07ed753fb74bd6a1677b62043342"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"ee9371f73596fe431c41b95e8fc7a1d6e1769585","unresolved":false,"context_lines":[{"line_number":186,"context_line":""},{"line_number":187,"context_line":"The following diagram shows the data model of Watcher, especially the"},{"line_number":188,"context_line":"functional dependency of objects from the actors point of view (Goals, Audits,"},{"line_number":189,"context_line":"Action Plans, ...):"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":".. image:: ./images/functional_data_model.svg"},{"line_number":192,"context_line":"   :width: 100%"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a68dd71_fb30b7a0","line":189,"range":{"start_line":189,"start_character":14,"end_line":189,"end_character":18},"in_reply_to":"ba63e191_0c642220","updated":"2016-01-20 14:14:57.000000000","message":"Done","commit_id":"213d00b1a38e07ed753fb74bd6a1677b62043342"},{"author":{"_account_id":6437,"name":"Susanne Balle","email":"sleipnir012@gmail.com","username":"susanne-balle"},"change_message_id":"c32d0966b9efa40c4f48e2c725ddef94239f2e8b","unresolved":false,"context_lines":[{"line_number":197,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"The following paragraph shows the messages exchanged between the different"},{"line_number":200,"context_line":"components of Watcher for the most often used nominal scenarios."},{"line_number":201,"context_line":""},{"line_number":202,"context_line":".. _sequence_diagrams_create_audit_template:"},{"line_number":203,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba63e191_6c54be20","line":200,"range":{"start_line":200,"start_character":46,"end_line":200,"end_character":63},"updated":"2016-01-20 01:00:00.000000000","message":"\"nominal\" sounds funny. I would take it out. scenarios could be use cases but I am fine with scenarios.","commit_id":"213d00b1a38e07ed753fb74bd6a1677b62043342"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"ee9371f73596fe431c41b95e8fc7a1d6e1769585","unresolved":false,"context_lines":[{"line_number":197,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"The following paragraph shows the messages exchanged between the different"},{"line_number":200,"context_line":"components of Watcher for the most often used nominal scenarios."},{"line_number":201,"context_line":""},{"line_number":202,"context_line":".. _sequence_diagrams_create_audit_template:"},{"line_number":203,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a68dd71_1bf10bce","line":200,"range":{"start_line":200,"start_character":46,"end_line":200,"end_character":63},"in_reply_to":"ba63e191_6c54be20","updated":"2016-01-20 14:14:57.000000000","message":"Done","commit_id":"213d00b1a38e07ed753fb74bd6a1677b62043342"},{"author":{"_account_id":6437,"name":"Susanne Balle","email":"sleipnir012@gmail.com","username":"susanne-balle"},"change_message_id":"c32d0966b9efa40c4f48e2c725ddef94239f2e8b","unresolved":false,"context_lines":[{"line_number":214,"context_line":".. image:: ./images/sequence_create_audit_template.png"},{"line_number":215,"context_line":"   :width: 100%"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"The `Watcher API`_  just makes sure that the goal exists and stores a new"},{"line_number":218,"context_line":"audit template in the :ref:`Watcher Database \u003cwatcher_database_definition\u003e`."},{"line_number":219,"context_line":""},{"line_number":220,"context_line":".. _sequence_diagrams_create_and_launch_audit:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba63e191_8c0d7240","line":217,"range":{"start_line":217,"start_character":20,"end_line":217,"end_character":56},"updated":"2016-01-20 01:00:00.000000000","message":"how does it make sure that the goal exists? I am assumign it is querying the database and getting a status. Also it is all Watcher API?","commit_id":"213d00b1a38e07ed753fb74bd6a1677b62043342"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"ee9371f73596fe431c41b95e8fc7a1d6e1769585","unresolved":false,"context_lines":[{"line_number":214,"context_line":".. image:: ./images/sequence_create_audit_template.png"},{"line_number":215,"context_line":"   :width: 100%"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"The `Watcher API`_  just makes sure that the goal exists and stores a new"},{"line_number":218,"context_line":"audit template in the :ref:`Watcher Database \u003cwatcher_database_definition\u003e`."},{"line_number":219,"context_line":""},{"line_number":220,"context_line":".. _sequence_diagrams_create_and_launch_audit:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a68dd71_162fa2a2","line":217,"range":{"start_line":217,"start_character":20,"end_line":217,"end_character":56},"in_reply_to":"ba63e191_8c0d7240","updated":"2016-01-20 14:14:57.000000000","message":"No, it is querying the Watcher configuration to make sure that the goal is declared.\nI have provided more details about this in the doc.\nAnd also entered a new bug because I realized that the existence of the goal is not done at the right place in the code :\nSee  https://bugs.launchpad.net/watcher/+bug/1536191","commit_id":"213d00b1a38e07ed753fb74bd6a1677b62043342"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"8d09dcf40fea9328aee0cb58c4de43d980704997","unresolved":false,"context_lines":[{"line_number":223,"context_line":"-----------------------------"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"The :ref:`Administrator \u003cadministrator_definition\u003e` can then launch a new"},{"line_number":226,"context_line":":ref:`Audit \u003caudit_definition\u003e` providing at least the unique uuid of the"},{"line_number":227,"context_line":"previously created :ref:`Audit template \u003caudit_template_definition\u003e`:"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":".. image:: ./images/sequence_create_and_launch_audit.png"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba63e191_1d554e4f","line":226,"range":{"start_line":226,"start_character":31,"end_line":226,"end_character":41},"updated":"2016-01-19 14:48:15.000000000","message":"by providing","commit_id":"213d00b1a38e07ed753fb74bd6a1677b62043342"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"8d09dcf40fea9328aee0cb58c4de43d980704997","unresolved":false,"context_lines":[{"line_number":223,"context_line":"-----------------------------"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"The :ref:`Administrator \u003cadministrator_definition\u003e` can then launch a new"},{"line_number":226,"context_line":":ref:`Audit \u003caudit_definition\u003e` providing at least the unique uuid of the"},{"line_number":227,"context_line":"previously created :ref:`Audit template \u003caudit_template_definition\u003e`:"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":".. image:: ./images/sequence_create_and_launch_audit.png"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba63e191_dd49f6d1","line":226,"range":{"start_line":226,"start_character":62,"end_line":226,"end_character":66},"updated":"2016-01-19 14:48:15.000000000","message":"nit: can you upper case it?","commit_id":"213d00b1a38e07ed753fb74bd6a1677b62043342"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"ee9371f73596fe431c41b95e8fc7a1d6e1769585","unresolved":false,"context_lines":[{"line_number":223,"context_line":"-----------------------------"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"The :ref:`Administrator \u003cadministrator_definition\u003e` can then launch a new"},{"line_number":226,"context_line":":ref:`Audit \u003caudit_definition\u003e` providing at least the unique uuid of the"},{"line_number":227,"context_line":"previously created :ref:`Audit template \u003caudit_template_definition\u003e`:"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":".. image:: ./images/sequence_create_and_launch_audit.png"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a68dd71_615e5a47","line":226,"range":{"start_line":226,"start_character":31,"end_line":226,"end_character":41},"in_reply_to":"ba63e191_1d554e4f","updated":"2016-01-20 14:14:57.000000000","message":"Done","commit_id":"213d00b1a38e07ed753fb74bd6a1677b62043342"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"ee9371f73596fe431c41b95e8fc7a1d6e1769585","unresolved":false,"context_lines":[{"line_number":223,"context_line":"-----------------------------"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"The :ref:`Administrator \u003cadministrator_definition\u003e` can then launch a new"},{"line_number":226,"context_line":":ref:`Audit \u003caudit_definition\u003e` providing at least the unique uuid of the"},{"line_number":227,"context_line":"previously created :ref:`Audit template \u003caudit_template_definition\u003e`:"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":".. image:: ./images/sequence_create_and_launch_audit.png"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a68dd71_011d1e73","line":226,"range":{"start_line":226,"start_character":62,"end_line":226,"end_character":66},"in_reply_to":"ba63e191_dd49f6d1","updated":"2016-01-20 14:14:57.000000000","message":"Done","commit_id":"213d00b1a38e07ed753fb74bd6a1677b62043342"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"8d09dcf40fea9328aee0cb58c4de43d980704997","unresolved":false,"context_lines":[{"line_number":239,"context_line":"The :ref:`Watcher Decision Engine \u003cwatcher_decision_engine_definition\u003e` reads"},{"line_number":240,"context_line":"the Audit parameters from the"},{"line_number":241,"context_line":":ref:`Watcher Database \u003cwatcher_database_definition\u003e`. It instantiates the"},{"line_number":242,"context_line":"appropriate :ref:`Strategy \u003cstrategy_definition\u003e` (using stevedore) associated"},{"line_number":243,"context_line":"to the :ref:`Goal \u003cgoal_definition\u003e` of the :ref:`Audit \u003caudit_definition\u003e`"},{"line_number":244,"context_line":"(it uses the information of the Watcher configuration file to find the mapping"},{"line_number":245,"context_line":"between the :ref:`Goal \u003cgoal_definition\u003e` and the"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba63e191_5d3bc6eb","line":242,"range":{"start_line":242,"start_character":57,"end_line":242,"end_character":66},"updated":"2016-01-19 14:48:15.000000000","message":"\"stevedore\" is wrapping the standard Python setuptools entry points mechanism. So would rather say \"using entry points\".","commit_id":"213d00b1a38e07ed753fb74bd6a1677b62043342"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"ee9371f73596fe431c41b95e8fc7a1d6e1769585","unresolved":false,"context_lines":[{"line_number":239,"context_line":"The :ref:`Watcher Decision Engine \u003cwatcher_decision_engine_definition\u003e` reads"},{"line_number":240,"context_line":"the Audit parameters from the"},{"line_number":241,"context_line":":ref:`Watcher Database \u003cwatcher_database_definition\u003e`. It instantiates the"},{"line_number":242,"context_line":"appropriate :ref:`Strategy \u003cstrategy_definition\u003e` (using stevedore) associated"},{"line_number":243,"context_line":"to the :ref:`Goal \u003cgoal_definition\u003e` of the :ref:`Audit \u003caudit_definition\u003e`"},{"line_number":244,"context_line":"(it uses the information of the Watcher configuration file to find the mapping"},{"line_number":245,"context_line":"between the :ref:`Goal \u003cgoal_definition\u003e` and the"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a68dd71_fc2aed7d","line":242,"range":{"start_line":242,"start_character":57,"end_line":242,"end_character":66},"in_reply_to":"ba63e191_5d3bc6eb","updated":"2016-01-20 14:14:57.000000000","message":"Done","commit_id":"213d00b1a38e07ed753fb74bd6a1677b62043342"},{"author":{"_account_id":6437,"name":"Susanne Balle","email":"sleipnir012@gmail.com","username":"susanne-balle"},"change_message_id":"c32d0966b9efa40c4f48e2c725ddef94239f2e8b","unresolved":false,"context_lines":[{"line_number":255,"context_line":"the **execute()** method of the instantiated"},{"line_number":256,"context_line":":ref:`Strategy \u003cstrategy_definition\u003e` and provides the data model as an input"},{"line_number":257,"context_line":"parameter. This method computes a :ref:`Solution \u003cstrategy_definition\u003e` to"},{"line_number":258,"context_line":"achieve the goal and returns this solution to the"},{"line_number":259,"context_line":":ref:`Decision Engine \u003cwatcher_decision_engine_definition\u003e`. At this point,"},{"line_number":260,"context_line":"actions are not scheduled yet."},{"line_number":261,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba63e191_1f78c28e","line":258,"range":{"start_line":258,"start_character":29,"end_line":258,"end_character":33},"updated":"2016-01-20 01:00:00.000000000","message":"What solution? it is \"a\" solution?","commit_id":"213d00b1a38e07ed753fb74bd6a1677b62043342"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"ee9371f73596fe431c41b95e8fc7a1d6e1769585","unresolved":false,"context_lines":[{"line_number":255,"context_line":"the **execute()** method of the instantiated"},{"line_number":256,"context_line":":ref:`Strategy \u003cstrategy_definition\u003e` and provides the data model as an input"},{"line_number":257,"context_line":"parameter. This method computes a :ref:`Solution \u003cstrategy_definition\u003e` to"},{"line_number":258,"context_line":"achieve the goal and returns this solution to the"},{"line_number":259,"context_line":":ref:`Decision Engine \u003cwatcher_decision_engine_definition\u003e`. At this point,"},{"line_number":260,"context_line":"actions are not scheduled yet."},{"line_number":261,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a68dd71_5c68d9ba","line":258,"range":{"start_line":258,"start_character":29,"end_line":258,"end_character":33},"in_reply_to":"ba63e191_1f78c28e","updated":"2016-01-20 14:14:57.000000000","message":"Done","commit_id":"213d00b1a38e07ed753fb74bd6a1677b62043342"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"8d09dcf40fea9328aee0cb58c4de43d980704997","unresolved":false,"context_lines":[{"line_number":261,"context_line":""},{"line_number":262,"context_line":"The :ref:`Watcher Decision Engine \u003cwatcher_decision_engine_definition\u003e`"},{"line_number":263,"context_line":"dynamically loads the :ref:`Watcher Planner \u003cwatcher_planner_definition\u003e`"},{"line_number":264,"context_line":"implementation which is configured in Watcher (via stevedore) and calls the"},{"line_number":265,"context_line":"**schedule()** method of this class with the solution as an input parameter."},{"line_number":266,"context_line":"This method finds an appropriate scheduling of"},{"line_number":267,"context_line":":ref:`Actions \u003caction_definition\u003e` taking into account some scheduling rules"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba63e191_001ba573","line":264,"range":{"start_line":264,"start_character":51,"end_line":264,"end_character":60},"updated":"2016-01-19 14:48:15.000000000","message":"ditto","commit_id":"213d00b1a38e07ed753fb74bd6a1677b62043342"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"ee9371f73596fe431c41b95e8fc7a1d6e1769585","unresolved":false,"context_lines":[{"line_number":261,"context_line":""},{"line_number":262,"context_line":"The :ref:`Watcher Decision Engine \u003cwatcher_decision_engine_definition\u003e`"},{"line_number":263,"context_line":"dynamically loads the :ref:`Watcher Planner \u003cwatcher_planner_definition\u003e`"},{"line_number":264,"context_line":"implementation which is configured in Watcher (via stevedore) and calls the"},{"line_number":265,"context_line":"**schedule()** method of this class with the solution as an input parameter."},{"line_number":266,"context_line":"This method finds an appropriate scheduling of"},{"line_number":267,"context_line":":ref:`Actions \u003caction_definition\u003e` taking into account some scheduling rules"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a68dd71_dc9a89c5","line":264,"range":{"start_line":264,"start_character":51,"end_line":264,"end_character":60},"in_reply_to":"ba63e191_001ba573","updated":"2016-01-20 14:14:57.000000000","message":"Done","commit_id":"213d00b1a38e07ed753fb74bd6a1677b62043342"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"8d09dcf40fea9328aee0cb58c4de43d980704997","unresolved":false,"context_lines":[{"line_number":276,"context_line":"the current status of the Audit to **SUCCEEDED** in the"},{"line_number":277,"context_line":":ref:`Watcher Database \u003cwatcher_database_definition\u003e` and sends a notification"},{"line_number":278,"context_line":"on the bus to inform other components that the :ref:`Audit \u003caudit_definition\u003e`"},{"line_number":279,"context_line":"was successfull."},{"line_number":280,"context_line":""},{"line_number":281,"context_line":""},{"line_number":282,"context_line":".. _sequence_diagrams_launch_action_plan:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba63e191_802b1530","line":279,"range":{"start_line":279,"start_character":4,"end_line":279,"end_character":15},"updated":"2016-01-19 14:48:15.000000000","message":"s/successfull/successful","commit_id":"213d00b1a38e07ed753fb74bd6a1677b62043342"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"ee9371f73596fe431c41b95e8fc7a1d6e1769585","unresolved":false,"context_lines":[{"line_number":276,"context_line":"the current status of the Audit to **SUCCEEDED** in the"},{"line_number":277,"context_line":":ref:`Watcher Database \u003cwatcher_database_definition\u003e` and sends a notification"},{"line_number":278,"context_line":"on the bus to inform other components that the :ref:`Audit \u003caudit_definition\u003e`"},{"line_number":279,"context_line":"was successfull."},{"line_number":280,"context_line":""},{"line_number":281,"context_line":""},{"line_number":282,"context_line":".. _sequence_diagrams_launch_action_plan:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a68dd71_1cb9012f","line":279,"range":{"start_line":279,"start_character":4,"end_line":279,"end_character":15},"in_reply_to":"ba63e191_802b1530","updated":"2016-01-20 14:14:57.000000000","message":"Done","commit_id":"213d00b1a38e07ed753fb74bd6a1677b62043342"},{"author":{"_account_id":6437,"name":"Susanne Balle","email":"sleipnir012@gmail.com","username":"susanne-balle"},"change_message_id":"c32d0966b9efa40c4f48e2c725ddef94239f2e8b","unresolved":false,"context_lines":[{"line_number":309,"context_line":"-   **validate_parameters()**: this method will make sure that all the"},{"line_number":310,"context_line":"    provided input parameters are valid:"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"    -   If all parameters are valid, the Watcher Applier moves on to next step."},{"line_number":313,"context_line":"    -   If it is not, an error is raised and the action is not executed. A"},{"line_number":314,"context_line":"        notification is sent on the bus informing other components of the"},{"line_number":315,"context_line":"        failure."}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba63e191_dfa8eadd","line":312,"range":{"start_line":312,"start_character":68,"end_line":312,"end_character":69},"updated":"2016-01-20 01:00:00.000000000","message":"the","commit_id":"213d00b1a38e07ed753fb74bd6a1677b62043342"},{"author":{"_account_id":6437,"name":"Susanne Balle","email":"sleipnir012@gmail.com","username":"susanne-balle"},"change_message_id":"c32d0966b9efa40c4f48e2c725ddef94239f2e8b","unresolved":false,"context_lines":[{"line_number":314,"context_line":"        notification is sent on the bus informing other components of the"},{"line_number":315,"context_line":"        failure."},{"line_number":316,"context_line":""},{"line_number":317,"context_line":"-   **preconditions()**: this method will make sure that all conditions are met"},{"line_number":318,"context_line":"    before executing the action (for example, it makes sure that an instance"},{"line_number":319,"context_line":"    still exists before trying to migrate it)."},{"line_number":320,"context_line":"-   **execute()**: this method is what triggers real commands on other"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba63e191_dfcd4ab8","line":317,"range":{"start_line":317,"start_character":6,"end_line":317,"end_character":19},"updated":"2016-01-20 01:00:00.000000000","message":"nit: This is confusing to me \"preconditions()\" and remind me of matrix operations. To me it is more like validate_dependencies() or pre_step() but I can be convinced","commit_id":"213d00b1a38e07ed753fb74bd6a1677b62043342"},{"author":{"_account_id":16495,"name":"Jean-Emile DARTOIS","email":"jean-emile.dartois@b-com.com","username":"JeD"},"change_message_id":"98512a70b54bb62418dfab7aef50c1e41cfb8014","unresolved":false,"context_lines":[{"line_number":314,"context_line":"        notification is sent on the bus informing other components of the"},{"line_number":315,"context_line":"        failure."},{"line_number":316,"context_line":""},{"line_number":317,"context_line":"-   **preconditions()**: this method will make sure that all conditions are met"},{"line_number":318,"context_line":"    before executing the action (for example, it makes sure that an instance"},{"line_number":319,"context_line":"    still exists before trying to migrate it)."},{"line_number":320,"context_line":"-   **execute()**: this method is what triggers real commands on other"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba63e191_2148005b","line":317,"range":{"start_line":317,"start_character":6,"end_line":317,"end_character":19},"in_reply_to":"ba63e191_dfcd4ab8","updated":"2016-01-20 07:51:36.000000000","message":"IHMO, I like precondition.\nYou can take a look to wikipedia definition:\nhttps://en.wikipedia.org/wiki/Precondition","commit_id":"213d00b1a38e07ed753fb74bd6a1677b62043342"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"ee9371f73596fe431c41b95e8fc7a1d6e1769585","unresolved":false,"context_lines":[{"line_number":314,"context_line":"        notification is sent on the bus informing other components of the"},{"line_number":315,"context_line":"        failure."},{"line_number":316,"context_line":""},{"line_number":317,"context_line":"-   **preconditions()**: this method will make sure that all conditions are met"},{"line_number":318,"context_line":"    before executing the action (for example, it makes sure that an instance"},{"line_number":319,"context_line":"    still exists before trying to migrate it)."},{"line_number":320,"context_line":"-   **execute()**: this method is what triggers real commands on other"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a68dd71_1c76e13e","line":317,"range":{"start_line":317,"start_character":6,"end_line":317,"end_character":19},"in_reply_to":"ba63e191_dfcd4ab8","updated":"2016-01-20 14:14:57.000000000","message":"The term precondition is often used in workflow management and in UML.\nIn the UML vocabulary, you can have 2 \"Action constraints\" : preconditions and postconditions\nhttp://www.sparxsystems.com.au/resources/uml2_tutorial/uml2_activitydiagram.html\n\nIn TaskFlow, they use the names pre_execute() and post_execute(). \nWould it be bette for you ?","commit_id":"213d00b1a38e07ed753fb74bd6a1677b62043342"}],"doc/source/image_src/plantuml/action_plan_state_machine.txt":[{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"4eba306a761327439cd3723733a0b4db80f60592","unresolved":false,"context_lines":[{"line_number":2,"context_line":""},{"line_number":3,"context_line":"[*] --\u003e RECOMMENDED: The Watcher Planner\\ncreates the Action Plan"},{"line_number":4,"context_line":"RECOMMENDED --\u003e STARTING: Administrator launches\\nthe Action Plan"},{"line_number":5,"context_line":"STARTING --\u003e ONGOING: The Applier receives the request\\nto launch the Action Plan"},{"line_number":6,"context_line":"ONGOING --\u003e FAILED: Something failed while executing\\nthe Action Plan in the Applier"},{"line_number":7,"context_line":"ONGOING --\u003e SUCCEEDED: The Applier executed\\nthe Action Plan successfully"},{"line_number":8,"context_line":"FAILED --\u003e DELETED : Administrator removes\\nAction Plan"}],"source_content_type":"text/plain","patch_set":1,"id":"da6ed579_21a0f48f","line":5,"range":{"start_line":5,"start_character":26,"end_line":5,"end_character":33},"updated":"2016-01-13 16:54:29.000000000","message":"Watcher Applier","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"ef5da825242e53c083c1113f475f7885afd95aaa","unresolved":false,"context_lines":[{"line_number":2,"context_line":""},{"line_number":3,"context_line":"[*] --\u003e RECOMMENDED: The Watcher Planner\\ncreates the Action Plan"},{"line_number":4,"context_line":"RECOMMENDED --\u003e STARTING: Administrator launches\\nthe Action Plan"},{"line_number":5,"context_line":"STARTING --\u003e ONGOING: The Applier receives the request\\nto launch the Action Plan"},{"line_number":6,"context_line":"ONGOING --\u003e FAILED: Something failed while executing\\nthe Action Plan in the Applier"},{"line_number":7,"context_line":"ONGOING --\u003e SUCCEEDED: The Applier executed\\nthe Action Plan successfully"},{"line_number":8,"context_line":"FAILED --\u003e DELETED : Administrator removes\\nAction Plan"}],"source_content_type":"text/plain","patch_set":1,"id":"9a68dd71_b0afb97c","line":5,"range":{"start_line":5,"start_character":26,"end_line":5,"end_character":33},"in_reply_to":"da6ed579_21a0f48f","updated":"2016-01-20 17:13:52.000000000","message":"Done","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"4eba306a761327439cd3723733a0b4db80f60592","unresolved":false,"context_lines":[{"line_number":3,"context_line":"[*] --\u003e RECOMMENDED: The Watcher Planner\\ncreates the Action Plan"},{"line_number":4,"context_line":"RECOMMENDED --\u003e STARTING: Administrator launches\\nthe Action Plan"},{"line_number":5,"context_line":"STARTING --\u003e ONGOING: The Applier receives the request\\nto launch the Action Plan"},{"line_number":6,"context_line":"ONGOING --\u003e FAILED: Something failed while executing\\nthe Action Plan in the Applier"},{"line_number":7,"context_line":"ONGOING --\u003e SUCCEEDED: The Applier executed\\nthe Action Plan successfully"},{"line_number":8,"context_line":"FAILED --\u003e DELETED : Administrator removes\\nAction Plan"},{"line_number":9,"context_line":"SUCCEEDED --\u003e DELETED : Administrator removes\\nAction Plan"}],"source_content_type":"text/plain","patch_set":1,"id":"da6ed579_81b760d7","line":6,"range":{"start_line":6,"start_character":77,"end_line":6,"end_character":84},"updated":"2016-01-13 16:54:29.000000000","message":"ditto","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"ef5da825242e53c083c1113f475f7885afd95aaa","unresolved":false,"context_lines":[{"line_number":3,"context_line":"[*] --\u003e RECOMMENDED: The Watcher Planner\\ncreates the Action Plan"},{"line_number":4,"context_line":"RECOMMENDED --\u003e STARTING: Administrator launches\\nthe Action Plan"},{"line_number":5,"context_line":"STARTING --\u003e ONGOING: The Applier receives the request\\nto launch the Action Plan"},{"line_number":6,"context_line":"ONGOING --\u003e FAILED: Something failed while executing\\nthe Action Plan in the Applier"},{"line_number":7,"context_line":"ONGOING --\u003e SUCCEEDED: The Applier executed\\nthe Action Plan successfully"},{"line_number":8,"context_line":"FAILED --\u003e DELETED : Administrator removes\\nAction Plan"},{"line_number":9,"context_line":"SUCCEEDED --\u003e DELETED : Administrator removes\\nAction Plan"}],"source_content_type":"text/plain","patch_set":1,"id":"9a68dd71_d0b4add2","line":6,"range":{"start_line":6,"start_character":77,"end_line":6,"end_character":84},"in_reply_to":"da6ed579_81b760d7","updated":"2016-01-20 17:13:52.000000000","message":"Done","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"4eba306a761327439cd3723733a0b4db80f60592","unresolved":false,"context_lines":[{"line_number":4,"context_line":"RECOMMENDED --\u003e STARTING: Administrator launches\\nthe Action Plan"},{"line_number":5,"context_line":"STARTING --\u003e ONGOING: The Applier receives the request\\nto launch the Action Plan"},{"line_number":6,"context_line":"ONGOING --\u003e FAILED: Something failed while executing\\nthe Action Plan in the Applier"},{"line_number":7,"context_line":"ONGOING --\u003e SUCCEEDED: The Applier executed\\nthe Action Plan successfully"},{"line_number":8,"context_line":"FAILED --\u003e DELETED : Administrator removes\\nAction Plan"},{"line_number":9,"context_line":"SUCCEEDED --\u003e DELETED : Administrator removes\\nAction Plan"},{"line_number":10,"context_line":"ONGOING --\u003e CANCELLED : Administrator cancels\\nAction Plan"}],"source_content_type":"text/plain","patch_set":1,"id":"da6ed579_41b168e0","line":7,"range":{"start_line":7,"start_character":27,"end_line":7,"end_character":34},"updated":"2016-01-13 16:54:29.000000000","message":"ditto","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"ef5da825242e53c083c1113f475f7885afd95aaa","unresolved":false,"context_lines":[{"line_number":4,"context_line":"RECOMMENDED --\u003e STARTING: Administrator launches\\nthe Action Plan"},{"line_number":5,"context_line":"STARTING --\u003e ONGOING: The Applier receives the request\\nto launch the Action Plan"},{"line_number":6,"context_line":"ONGOING --\u003e FAILED: Something failed while executing\\nthe Action Plan in the Applier"},{"line_number":7,"context_line":"ONGOING --\u003e SUCCEEDED: The Applier executed\\nthe Action Plan successfully"},{"line_number":8,"context_line":"FAILED --\u003e DELETED : Administrator removes\\nAction Plan"},{"line_number":9,"context_line":"SUCCEEDED --\u003e DELETED : Administrator removes\\nAction Plan"},{"line_number":10,"context_line":"ONGOING --\u003e CANCELLED : Administrator cancels\\nAction Plan"}],"source_content_type":"text/plain","patch_set":1,"id":"9a68dd71_90c71545","line":7,"range":{"start_line":7,"start_character":27,"end_line":7,"end_character":34},"in_reply_to":"da6ed579_41b168e0","updated":"2016-01-20 17:13:52.000000000","message":"Done","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"}],"doc/source/image_src/plantuml/audit_state_machine.txt":[{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"4eba306a761327439cd3723733a0b4db80f60592","unresolved":false,"context_lines":[{"line_number":1,"context_line":"@startuml"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"[*] --\u003e PENDING: Audit requested by Administrator"},{"line_number":4,"context_line":"PENDING --\u003e ONGOING: Audit request is received\\nby the Decision Engine"},{"line_number":5,"context_line":"ONGOING --\u003e FAILED: Audit fails\\n(no solution found, technical error, ...)"},{"line_number":6,"context_line":"ONGOING --\u003e SUCCEEDED: The Decision Engine\\ncould find at least one Solution"},{"line_number":7,"context_line":"FAILED --\u003e DELETED : Administrator wants to\\narchive/delete the Audit"}],"source_content_type":"text/plain","patch_set":1,"id":"da6ed579_017e1019","line":4,"range":{"start_line":4,"start_character":55,"end_line":4,"end_character":70},"updated":"2016-01-13 16:54:29.000000000","message":"Watcher Decision Engine","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"ef5da825242e53c083c1113f475f7885afd95aaa","unresolved":false,"context_lines":[{"line_number":1,"context_line":"@startuml"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"[*] --\u003e PENDING: Audit requested by Administrator"},{"line_number":4,"context_line":"PENDING --\u003e ONGOING: Audit request is received\\nby the Decision Engine"},{"line_number":5,"context_line":"ONGOING --\u003e FAILED: Audit fails\\n(no solution found, technical error, ...)"},{"line_number":6,"context_line":"ONGOING --\u003e SUCCEEDED: The Decision Engine\\ncould find at least one Solution"},{"line_number":7,"context_line":"FAILED --\u003e DELETED : Administrator wants to\\narchive/delete the Audit"}],"source_content_type":"text/plain","patch_set":1,"id":"9a68dd71_1017a5a4","line":4,"range":{"start_line":4,"start_character":55,"end_line":4,"end_character":70},"in_reply_to":"da6ed579_017e1019","updated":"2016-01-20 17:13:52.000000000","message":"Done","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"4eba306a761327439cd3723733a0b4db80f60592","unresolved":false,"context_lines":[{"line_number":3,"context_line":"[*] --\u003e PENDING: Audit requested by Administrator"},{"line_number":4,"context_line":"PENDING --\u003e ONGOING: Audit request is received\\nby the Decision Engine"},{"line_number":5,"context_line":"ONGOING --\u003e FAILED: Audit fails\\n(no solution found, technical error, ...)"},{"line_number":6,"context_line":"ONGOING --\u003e SUCCEEDED: The Decision Engine\\ncould find at least one Solution"},{"line_number":7,"context_line":"FAILED --\u003e DELETED : Administrator wants to\\narchive/delete the Audit"},{"line_number":8,"context_line":"SUCCEEDED --\u003e DELETED : Administrator wants to\\narchive/delete the Audit"},{"line_number":9,"context_line":"PENDING --\u003e CANCELLED : Administrator cancels\\nthe Audit"}],"source_content_type":"text/plain","patch_set":1,"id":"da6ed579_8189a028","line":6,"range":{"start_line":6,"start_character":26,"end_line":6,"end_character":42},"updated":"2016-01-13 16:54:29.000000000","message":"ditto","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"ef5da825242e53c083c1113f475f7885afd95aaa","unresolved":false,"context_lines":[{"line_number":3,"context_line":"[*] --\u003e PENDING: Audit requested by Administrator"},{"line_number":4,"context_line":"PENDING --\u003e ONGOING: Audit request is received\\nby the Decision Engine"},{"line_number":5,"context_line":"ONGOING --\u003e FAILED: Audit fails\\n(no solution found, technical error, ...)"},{"line_number":6,"context_line":"ONGOING --\u003e SUCCEEDED: The Decision Engine\\ncould find at least one Solution"},{"line_number":7,"context_line":"FAILED --\u003e DELETED : Administrator wants to\\narchive/delete the Audit"},{"line_number":8,"context_line":"SUCCEEDED --\u003e DELETED : Administrator wants to\\narchive/delete the Audit"},{"line_number":9,"context_line":"PENDING --\u003e CANCELLED : Administrator cancels\\nthe Audit"}],"source_content_type":"text/plain","patch_set":1,"id":"9a68dd71_b00b397d","line":6,"range":{"start_line":6,"start_character":26,"end_line":6,"end_character":42},"in_reply_to":"da6ed579_8189a028","updated":"2016-01-20 17:13:52.000000000","message":"Done","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"}],"doc/source/image_src/plantuml/sequence_create_and_launch_audit.txt":[{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"4eba306a761327439cd3723733a0b4db80f60592","unresolved":false,"context_lines":[{"line_number":6,"context_line":"Administrator -\u003e \"Watcher CLI\" : watcher audit-create -a \u003caudit_template_uuid\u003e"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"\"Watcher CLI\" -\u003e \"Watcher API\" : POST audit(parameters)"},{"line_number":9,"context_line":"\"Watcher API\" -\u003e \"Watcher Database\" : create new audit in database"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"\"Watcher API\" \u003c-- \"Watcher Database\" : new audit uuid"},{"line_number":12,"context_line":"\"Watcher CLI\" \u003c-- \"Watcher API\" : return new audit URL"}],"source_content_type":"text/plain","patch_set":1,"id":"da6ed579_528cef7e","line":9,"updated":"2016-01-13 16:54:29.000000000","message":"Can we indicate the default state of audit which should be PENDING ?","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"ef5da825242e53c083c1113f475f7885afd95aaa","unresolved":false,"context_lines":[{"line_number":6,"context_line":"Administrator -\u003e \"Watcher CLI\" : watcher audit-create -a \u003caudit_template_uuid\u003e"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"\"Watcher CLI\" -\u003e \"Watcher API\" : POST audit(parameters)"},{"line_number":9,"context_line":"\"Watcher API\" -\u003e \"Watcher Database\" : create new audit in database"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"\"Watcher API\" \u003c-- \"Watcher Database\" : new audit uuid"},{"line_number":12,"context_line":"\"Watcher CLI\" \u003c-- \"Watcher API\" : return new audit URL"}],"source_content_type":"text/plain","patch_set":1,"id":"9a68dd71_b06c9909","line":9,"in_reply_to":"da6ed579_528cef7e","updated":"2016-01-20 17:13:52.000000000","message":"Done","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"}],"doc/source/image_src/plantuml/sequence_trigger_audit_in_decision_engine.txt":[{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"4eba306a761327439cd3723733a0b4db80f60592","unresolved":false,"context_lines":[{"line_number":20,"context_line":"\"Strategy\" -\u003e \"Strategy\" : compute solution to achieve goal"},{"line_number":21,"context_line":"\"Watcher Decision Engine\" \u003c-- \"Strategy\" : solution \u003d array of actions (i.e. not scheduled yet)"},{"line_number":22,"context_line":"create Planner"},{"line_number":23,"context_line":"\"Watcher Decision Engine\" -[#red]\u003e \"Planner\": select appropriate actions scheduler (i.e. Planner)"},{"line_number":24,"context_line":"\"Watcher Decision Engine\" -\u003e \"Planner\": schedule(audit_id, solution)"},{"line_number":25,"context_line":"\"Planner\" -\u003e \"Planner\": schedule actions according to\\nscheduling rules/policies"},{"line_number":26,"context_line":"\"Watcher Decision Engine\" \u003c-- \"Planner\": new action_plan"}],"source_content_type":"text/plain","patch_set":1,"id":"da6ed579_cd0cbe3d","line":23,"range":{"start_line":23,"start_character":36,"end_line":23,"end_character":43},"updated":"2016-01-13 16:54:29.000000000","message":"Watcher Planner","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"4eba306a761327439cd3723733a0b4db80f60592","unresolved":false,"context_lines":[{"line_number":20,"context_line":"\"Strategy\" -\u003e \"Strategy\" : compute solution to achieve goal"},{"line_number":21,"context_line":"\"Watcher Decision Engine\" \u003c-- \"Strategy\" : solution \u003d array of actions (i.e. not scheduled yet)"},{"line_number":22,"context_line":"create Planner"},{"line_number":23,"context_line":"\"Watcher Decision Engine\" -[#red]\u003e \"Planner\": select appropriate actions scheduler (i.e. Planner)"},{"line_number":24,"context_line":"\"Watcher Decision Engine\" -\u003e \"Planner\": schedule(audit_id, solution)"},{"line_number":25,"context_line":"\"Planner\" -\u003e \"Planner\": schedule actions according to\\nscheduling rules/policies"},{"line_number":26,"context_line":"\"Watcher Decision Engine\" \u003c-- \"Planner\": new action_plan"}],"source_content_type":"text/plain","patch_set":1,"id":"da6ed579_2d1eba63","line":23,"range":{"start_line":23,"start_character":89,"end_line":23,"end_character":96},"updated":"2016-01-13 16:54:29.000000000","message":"ditto","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"ef5da825242e53c083c1113f475f7885afd95aaa","unresolved":false,"context_lines":[{"line_number":20,"context_line":"\"Strategy\" -\u003e \"Strategy\" : compute solution to achieve goal"},{"line_number":21,"context_line":"\"Watcher Decision Engine\" \u003c-- \"Strategy\" : solution \u003d array of actions (i.e. not scheduled yet)"},{"line_number":22,"context_line":"create Planner"},{"line_number":23,"context_line":"\"Watcher Decision Engine\" -[#red]\u003e \"Planner\": select appropriate actions scheduler (i.e. Planner)"},{"line_number":24,"context_line":"\"Watcher Decision Engine\" -\u003e \"Planner\": schedule(audit_id, solution)"},{"line_number":25,"context_line":"\"Planner\" -\u003e \"Planner\": schedule actions according to\\nscheduling rules/policies"},{"line_number":26,"context_line":"\"Watcher Decision Engine\" \u003c-- \"Planner\": new action_plan"}],"source_content_type":"text/plain","patch_set":1,"id":"9a68dd71_0deea38b","line":23,"range":{"start_line":23,"start_character":89,"end_line":23,"end_character":96},"in_reply_to":"da6ed579_2d1eba63","updated":"2016-01-20 17:13:52.000000000","message":"Done","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"ef5da825242e53c083c1113f475f7885afd95aaa","unresolved":false,"context_lines":[{"line_number":20,"context_line":"\"Strategy\" -\u003e \"Strategy\" : compute solution to achieve goal"},{"line_number":21,"context_line":"\"Watcher Decision Engine\" \u003c-- \"Strategy\" : solution \u003d array of actions (i.e. not scheduled yet)"},{"line_number":22,"context_line":"create Planner"},{"line_number":23,"context_line":"\"Watcher Decision Engine\" -[#red]\u003e \"Planner\": select appropriate actions scheduler (i.e. Planner)"},{"line_number":24,"context_line":"\"Watcher Decision Engine\" -\u003e \"Planner\": schedule(audit_id, solution)"},{"line_number":25,"context_line":"\"Planner\" -\u003e \"Planner\": schedule actions according to\\nscheduling rules/policies"},{"line_number":26,"context_line":"\"Watcher Decision Engine\" \u003c-- \"Planner\": new action_plan"}],"source_content_type":"text/plain","patch_set":1,"id":"9a68dd71_2df36775","line":23,"range":{"start_line":23,"start_character":36,"end_line":23,"end_character":43},"in_reply_to":"da6ed579_cd0cbe3d","updated":"2016-01-20 17:13:52.000000000","message":"Done","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"4eba306a761327439cd3723733a0b4db80f60592","unresolved":false,"context_lines":[{"line_number":21,"context_line":"\"Watcher Decision Engine\" \u003c-- \"Strategy\" : solution \u003d array of actions (i.e. not scheduled yet)"},{"line_number":22,"context_line":"create Planner"},{"line_number":23,"context_line":"\"Watcher Decision Engine\" -[#red]\u003e \"Planner\": select appropriate actions scheduler (i.e. Planner)"},{"line_number":24,"context_line":"\"Watcher Decision Engine\" -\u003e \"Planner\": schedule(audit_id, solution)"},{"line_number":25,"context_line":"\"Planner\" -\u003e \"Planner\": schedule actions according to\\nscheduling rules/policies"},{"line_number":26,"context_line":"\"Watcher Decision Engine\" \u003c-- \"Planner\": new action_plan"},{"line_number":27,"context_line":"\"Watcher Decision Engine\" -\u003e \"Watcher Database\" : save new action_plan in database"}],"source_content_type":"text/plain","patch_set":1,"id":"da6ed579_8d0fa62d","line":24,"range":{"start_line":24,"start_character":30,"end_line":24,"end_character":37},"updated":"2016-01-13 16:54:29.000000000","message":"ditto","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"ef5da825242e53c083c1113f475f7885afd95aaa","unresolved":false,"context_lines":[{"line_number":21,"context_line":"\"Watcher Decision Engine\" \u003c-- \"Strategy\" : solution \u003d array of actions (i.e. not scheduled yet)"},{"line_number":22,"context_line":"create Planner"},{"line_number":23,"context_line":"\"Watcher Decision Engine\" -[#red]\u003e \"Planner\": select appropriate actions scheduler (i.e. Planner)"},{"line_number":24,"context_line":"\"Watcher Decision Engine\" -\u003e \"Planner\": schedule(audit_id, solution)"},{"line_number":25,"context_line":"\"Planner\" -\u003e \"Planner\": schedule actions according to\\nscheduling rules/policies"},{"line_number":26,"context_line":"\"Watcher Decision Engine\" \u003c-- \"Planner\": new action_plan"},{"line_number":27,"context_line":"\"Watcher Decision Engine\" -\u003e \"Watcher Database\" : save new action_plan in database"}],"source_content_type":"text/plain","patch_set":1,"id":"9a68dd71_cde72bab","line":24,"range":{"start_line":24,"start_character":30,"end_line":24,"end_character":37},"in_reply_to":"da6ed579_8d0fa62d","updated":"2016-01-20 17:13:52.000000000","message":"Done","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"4eba306a761327439cd3723733a0b4db80f60592","unresolved":false,"context_lines":[{"line_number":22,"context_line":"create Planner"},{"line_number":23,"context_line":"\"Watcher Decision Engine\" -[#red]\u003e \"Planner\": select appropriate actions scheduler (i.e. Planner)"},{"line_number":24,"context_line":"\"Watcher Decision Engine\" -\u003e \"Planner\": schedule(audit_id, solution)"},{"line_number":25,"context_line":"\"Planner\" -\u003e \"Planner\": schedule actions according to\\nscheduling rules/policies"},{"line_number":26,"context_line":"\"Watcher Decision Engine\" \u003c-- \"Planner\": new action_plan"},{"line_number":27,"context_line":"\"Watcher Decision Engine\" -\u003e \"Watcher Database\" : save new action_plan in database"},{"line_number":28,"context_line":"\"Watcher Decision Engine\" -\u003e \"Watcher Database\" : update audit.state \u003d SUCCEEDED"}],"source_content_type":"text/plain","patch_set":1,"id":"da6ed579_32305b01","line":25,"range":{"start_line":25,"start_character":1,"end_line":25,"end_character":8},"updated":"2016-01-13 16:54:29.000000000","message":"ditto","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"4eba306a761327439cd3723733a0b4db80f60592","unresolved":false,"context_lines":[{"line_number":22,"context_line":"create Planner"},{"line_number":23,"context_line":"\"Watcher Decision Engine\" -[#red]\u003e \"Planner\": select appropriate actions scheduler (i.e. Planner)"},{"line_number":24,"context_line":"\"Watcher Decision Engine\" -\u003e \"Planner\": schedule(audit_id, solution)"},{"line_number":25,"context_line":"\"Planner\" -\u003e \"Planner\": schedule actions according to\\nscheduling rules/policies"},{"line_number":26,"context_line":"\"Watcher Decision Engine\" \u003c-- \"Planner\": new action_plan"},{"line_number":27,"context_line":"\"Watcher Decision Engine\" -\u003e \"Watcher Database\" : save new action_plan in database"},{"line_number":28,"context_line":"\"Watcher Decision Engine\" -\u003e \"Watcher Database\" : update audit.state \u003d SUCCEEDED"}],"source_content_type":"text/plain","patch_set":1,"id":"da6ed579_d2153f49","line":25,"range":{"start_line":25,"start_character":14,"end_line":25,"end_character":21},"updated":"2016-01-13 16:54:29.000000000","message":"ditto","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"ef5da825242e53c083c1113f475f7885afd95aaa","unresolved":false,"context_lines":[{"line_number":22,"context_line":"create Planner"},{"line_number":23,"context_line":"\"Watcher Decision Engine\" -[#red]\u003e \"Planner\": select appropriate actions scheduler (i.e. Planner)"},{"line_number":24,"context_line":"\"Watcher Decision Engine\" -\u003e \"Planner\": schedule(audit_id, solution)"},{"line_number":25,"context_line":"\"Planner\" -\u003e \"Planner\": schedule actions according to\\nscheduling rules/policies"},{"line_number":26,"context_line":"\"Watcher Decision Engine\" \u003c-- \"Planner\": new action_plan"},{"line_number":27,"context_line":"\"Watcher Decision Engine\" -\u003e \"Watcher Database\" : save new action_plan in database"},{"line_number":28,"context_line":"\"Watcher Decision Engine\" -\u003e \"Watcher Database\" : update audit.state \u003d SUCCEEDED"}],"source_content_type":"text/plain","patch_set":1,"id":"9a68dd71_6df95f4d","line":25,"range":{"start_line":25,"start_character":1,"end_line":25,"end_character":8},"in_reply_to":"da6ed579_32305b01","updated":"2016-01-20 17:13:52.000000000","message":"Done","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"ef5da825242e53c083c1113f475f7885afd95aaa","unresolved":false,"context_lines":[{"line_number":22,"context_line":"create Planner"},{"line_number":23,"context_line":"\"Watcher Decision Engine\" -[#red]\u003e \"Planner\": select appropriate actions scheduler (i.e. Planner)"},{"line_number":24,"context_line":"\"Watcher Decision Engine\" -\u003e \"Planner\": schedule(audit_id, solution)"},{"line_number":25,"context_line":"\"Planner\" -\u003e \"Planner\": schedule actions according to\\nscheduling rules/policies"},{"line_number":26,"context_line":"\"Watcher Decision Engine\" \u003c-- \"Planner\": new action_plan"},{"line_number":27,"context_line":"\"Watcher Decision Engine\" -\u003e \"Watcher Database\" : save new action_plan in database"},{"line_number":28,"context_line":"\"Watcher Decision Engine\" -\u003e \"Watcher Database\" : update audit.state \u003d SUCCEEDED"}],"source_content_type":"text/plain","patch_set":1,"id":"9a68dd71_0d9543e3","line":25,"range":{"start_line":25,"start_character":14,"end_line":25,"end_character":21},"in_reply_to":"da6ed579_d2153f49","updated":"2016-01-20 17:13:52.000000000","message":"Done","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"4eba306a761327439cd3723733a0b4db80f60592","unresolved":false,"context_lines":[{"line_number":23,"context_line":"\"Watcher Decision Engine\" -[#red]\u003e \"Planner\": select appropriate actions scheduler (i.e. Planner)"},{"line_number":24,"context_line":"\"Watcher Decision Engine\" -\u003e \"Planner\": schedule(audit_id, solution)"},{"line_number":25,"context_line":"\"Planner\" -\u003e \"Planner\": schedule actions according to\\nscheduling rules/policies"},{"line_number":26,"context_line":"\"Watcher Decision Engine\" \u003c-- \"Planner\": new action_plan"},{"line_number":27,"context_line":"\"Watcher Decision Engine\" -\u003e \"Watcher Database\" : save new action_plan in database"},{"line_number":28,"context_line":"\"Watcher Decision Engine\" -\u003e \"Watcher Database\" : update audit.state \u003d SUCCEEDED"},{"line_number":29,"context_line":"\"AMQP Bus\" \u003c[#blue]- \"Watcher Decision Engine\" : notify new audit state \u003d SUCCEEDED"}],"source_content_type":"text/plain","patch_set":1,"id":"da6ed579_5202af0c","line":26,"range":{"start_line":26,"start_character":31,"end_line":26,"end_character":38},"updated":"2016-01-13 16:54:29.000000000","message":"ditto","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"ef5da825242e53c083c1113f475f7885afd95aaa","unresolved":false,"context_lines":[{"line_number":23,"context_line":"\"Watcher Decision Engine\" -[#red]\u003e \"Planner\": select appropriate actions scheduler (i.e. Planner)"},{"line_number":24,"context_line":"\"Watcher Decision Engine\" -\u003e \"Planner\": schedule(audit_id, solution)"},{"line_number":25,"context_line":"\"Planner\" -\u003e \"Planner\": schedule actions according to\\nscheduling rules/policies"},{"line_number":26,"context_line":"\"Watcher Decision Engine\" \u003c-- \"Planner\": new action_plan"},{"line_number":27,"context_line":"\"Watcher Decision Engine\" -\u003e \"Watcher Database\" : save new action_plan in database"},{"line_number":28,"context_line":"\"Watcher Decision Engine\" -\u003e \"Watcher Database\" : update audit.state \u003d SUCCEEDED"},{"line_number":29,"context_line":"\"AMQP Bus\" \u003c[#blue]- \"Watcher Decision Engine\" : notify new audit state \u003d SUCCEEDED"}],"source_content_type":"text/plain","patch_set":1,"id":"9a68dd71_2d9a8715","line":26,"range":{"start_line":26,"start_character":31,"end_line":26,"end_character":38},"in_reply_to":"da6ed579_5202af0c","updated":"2016-01-20 17:13:52.000000000","message":"Done","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"4eba306a761327439cd3723733a0b4db80f60592","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"da6ed579_4de3ee33","line":32,"updated":"2016-01-13 16:54:29.000000000","message":"Watcher Planner is missing in the architecture diagram.","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"ef5da825242e53c083c1113f475f7885afd95aaa","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"9a68dd71_cd9e4b07","line":32,"in_reply_to":"da6ed579_4de3ee33","updated":"2016-01-20 17:13:52.000000000","message":"Done","commit_id":"c9bdca2beaf44c8319100011c93ba92537f553d7"}]}
