)]}'
{"specs/ocata/approved/planner-storage-action-plan.rst":[{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"7563a73044cce98d4bc7aa89b7dafc43f989753c","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Problem description"},{"line_number":14,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Watcher has `Applier`_ that creates one graph for `Action plan`_"},{"line_number":17,"context_line":"with linked actions at the current time. Launching actions in a sequence has"},{"line_number":18,"context_line":"negative influence on perfomance, especially if there are a lot of actions."},{"line_number":19,"context_line":"Every action must be completed before next action will be run, so"},{"line_number":20,"context_line":"it will take a lot of time to launch migration actions in sequence."}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_8208442f","line":17,"range":{"start_line":16,"start_character":0,"end_line":17,"end_character":39},"updated":"2016-11-08 14:28:07.000000000","message":"Action plan is built by the default planner of the decision-engine service. Applier service executes the action plan.","commit_id":"524c2f098d6ad49f37daa6afc484807cfb842c72"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"227c9f2f57e140cef1352cf5bdb461e67bff4ebd","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Problem description"},{"line_number":14,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Watcher has `Applier`_ that creates one graph for `Action plan`_"},{"line_number":17,"context_line":"with linked actions at the current time. Launching actions in a sequence has"},{"line_number":18,"context_line":"negative influence on perfomance, especially if there are a lot of actions."},{"line_number":19,"context_line":"Every action must be completed before next action will be run, so"},{"line_number":20,"context_line":"it will take a lot of time to launch migration actions in sequence."}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_7bad059a","line":17,"range":{"start_line":16,"start_character":0,"end_line":17,"end_character":39},"in_reply_to":"9a629dbe_8208442f","updated":"2016-11-14 15:03:50.000000000","message":"Done","commit_id":"524c2f098d6ad49f37daa6afc484807cfb842c72"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"7563a73044cce98d4bc7aa89b7dafc43f989753c","unresolved":false,"context_lines":[{"line_number":36,"context_line":"parallel."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"This specification suggests to implement ability of parallel working for"},{"line_number":39,"context_line":"action tasks. Moreover, some action types like disabling the compute node"},{"line_number":40,"context_line":"should be run only when migrations from the appropriate compute node are over."},{"line_number":41,"context_line":"New attribute ``node`` should be added to the `Action`_ table that will"},{"line_number":42,"context_line":"contain node name the action is related to. There is no need of ``next``"},{"line_number":43,"context_line":"attribute anymore since the planner will take care of the actions order, it"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_48af2b94","line":40,"range":{"start_line":39,"start_character":14,"end_line":40,"end_character":77},"updated":"2016-11-08 14:28:07.000000000","message":"It is not a good example, because you will be able to migrate instance from a disabled compute node. Disable a compute node migrate is used to not handle new instance placement on this host.","commit_id":"524c2f098d6ad49f37daa6afc484807cfb842c72"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"227c9f2f57e140cef1352cf5bdb461e67bff4ebd","unresolved":false,"context_lines":[{"line_number":36,"context_line":"parallel."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"This specification suggests to implement ability of parallel working for"},{"line_number":39,"context_line":"action tasks. Moreover, some action types like disabling the compute node"},{"line_number":40,"context_line":"should be run only when migrations from the appropriate compute node are over."},{"line_number":41,"context_line":"New attribute ``node`` should be added to the `Action`_ table that will"},{"line_number":42,"context_line":"contain node name the action is related to. There is no need of ``next``"},{"line_number":43,"context_line":"attribute anymore since the planner will take care of the actions order, it"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_3db425d0","line":40,"range":{"start_line":39,"start_character":14,"end_line":40,"end_character":77},"in_reply_to":"9a629dbe_48af2b94","updated":"2016-11-14 15:03:50.000000000","message":"Done","commit_id":"524c2f098d6ad49f37daa6afc484807cfb842c72"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"7563a73044cce98d4bc7aa89b7dafc43f989753c","unresolved":false,"context_lines":[{"line_number":38,"context_line":"This specification suggests to implement ability of parallel working for"},{"line_number":39,"context_line":"action tasks. Moreover, some action types like disabling the compute node"},{"line_number":40,"context_line":"should be run only when migrations from the appropriate compute node are over."},{"line_number":41,"context_line":"New attribute ``node`` should be added to the `Action`_ table that will"},{"line_number":42,"context_line":"contain node name the action is related to. There is no need of ``next``"},{"line_number":43,"context_line":"attribute anymore since the planner will take care of the actions order, it"},{"line_number":44,"context_line":"will also know about the priorities of the action types. The weights of"},{"line_number":45,"context_line":"action types can be renamed to the priorities."},{"line_number":46,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_a877e738","line":43,"range":{"start_line":41,"start_character":0,"end_line":43,"end_character":71},"updated":"2016-11-08 14:28:07.000000000","message":"Not sure to clearly understand why you add a node for our requirements. Our graph should only have \"action\" node. So, as proposed by vincentfrancoise, a simple solution could be to replace \"next\" attribute in Action object by a new one named \"previous\" or \"parent\". This attributes could have a list of action references or none (the initial node of your graph)\n\n\n   \n               action11(parent\u003daction1)\n              /                       \\\n        action1(parent\u003dNone)           \\\n       /      \\                         \\\n      /        action12(parent\u003daction1)  \\\n     /                                 \\  \\\n  I--                                   --- E(parent\u003daction11, action12\n     \\                                 /  /          action21, action22)\n      \\        action21(parent\u003daction2)  /\n       \\      /                         / \n        action2(parent\u003dNone)           /\n              \\                       /\n               action22(parent\u003daction2)","commit_id":"524c2f098d6ad49f37daa6afc484807cfb842c72"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"227c9f2f57e140cef1352cf5bdb461e67bff4ebd","unresolved":false,"context_lines":[{"line_number":38,"context_line":"This specification suggests to implement ability of parallel working for"},{"line_number":39,"context_line":"action tasks. Moreover, some action types like disabling the compute node"},{"line_number":40,"context_line":"should be run only when migrations from the appropriate compute node are over."},{"line_number":41,"context_line":"New attribute ``node`` should be added to the `Action`_ table that will"},{"line_number":42,"context_line":"contain node name the action is related to. There is no need of ``next``"},{"line_number":43,"context_line":"attribute anymore since the planner will take care of the actions order, it"},{"line_number":44,"context_line":"will also know about the priorities of the action types. The weights of"},{"line_number":45,"context_line":"action types can be renamed to the priorities."},{"line_number":46,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_2b35baf6","line":43,"range":{"start_line":41,"start_character":0,"end_line":43,"end_character":71},"in_reply_to":"9a629dbe_a877e738","updated":"2016-11-14 15:03:50.000000000","message":"Check new description.","commit_id":"524c2f098d6ad49f37daa6afc484807cfb842c72"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"7563a73044cce98d4bc7aa89b7dafc43f989753c","unresolved":false,"context_lines":[{"line_number":42,"context_line":"contain node name the action is related to. There is no need of ``next``"},{"line_number":43,"context_line":"attribute anymore since the planner will take care of the actions order, it"},{"line_number":44,"context_line":"will also know about the priorities of the action types. The weights of"},{"line_number":45,"context_line":"action types can be renamed to the priorities."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"Workflow engine should be modified to construct graph flows for all nodes that"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_330d0891","line":45,"range":{"start_line":45,"start_character":35,"end_line":45,"end_character":45},"updated":"2016-11-08 14:28:07.000000000","message":"How to handle action priorities ?\nCan we build a graph like this one ?\n\n\n  | action priority hight | action priority medium |  action priority low |\n  |                       |                        |                      |\n  |    action1            |       action11         |      action21        | \n  |   /       \\           |      /        \\        |     /        \\       | \nI-+ ---action2---action4--+------          --------+------action22--------+-E\n  |   \\       /           |      \\        /        |     \\        /       |\n  |    action3            |       action12         |      action23        |\n  |                       |                        |                      |","commit_id":"524c2f098d6ad49f37daa6afc484807cfb842c72"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"227c9f2f57e140cef1352cf5bdb461e67bff4ebd","unresolved":false,"context_lines":[{"line_number":42,"context_line":"contain node name the action is related to. There is no need of ``next``"},{"line_number":43,"context_line":"attribute anymore since the planner will take care of the actions order, it"},{"line_number":44,"context_line":"will also know about the priorities of the action types. The weights of"},{"line_number":45,"context_line":"action types can be renamed to the priorities."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"Workflow engine should be modified to construct graph flows for all nodes that"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_eb02e20a","line":45,"range":{"start_line":45,"start_character":35,"end_line":45,"end_character":45},"in_reply_to":"9a629dbe_330d0891","updated":"2016-11-14 15:03:50.000000000","message":"I\u0027ve described some my thoughts regarding to weights/priorities in new version of this spec.","commit_id":"524c2f098d6ad49f37daa6afc484807cfb842c72"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"7563a73044cce98d4bc7aa89b7dafc43f989753c","unresolved":false,"context_lines":[{"line_number":66,"context_line":"                   \\          /"},{"line_number":67,"context_line":"                    Migration4"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":""},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"Alternatives"},{"line_number":72,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_0e30db9d","line":69,"updated":"2016-11-08 14:28:07.000000000","message":"Some action on cluster resources can not be run in parallel.\nWe can imagine a strategy algorithm computing migration and resizing action on instances: we can not migrate and resize a same instance at the same time. How take this constraint into account to built to action plan ? A anti-affinity maker for a action type could be the solution, in the watcher configuration file.","commit_id":"524c2f098d6ad49f37daa6afc484807cfb842c72"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"227c9f2f57e140cef1352cf5bdb461e67bff4ebd","unresolved":false,"context_lines":[{"line_number":66,"context_line":"                   \\          /"},{"line_number":67,"context_line":"                    Migration4"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":""},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"Alternatives"},{"line_number":72,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_06254dad","line":69,"in_reply_to":"9a629dbe_0e30db9d","updated":"2016-11-14 15:03:50.000000000","message":"Take a look at list of constraints.","commit_id":"524c2f098d6ad49f37daa6afc484807cfb842c72"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"7563a73044cce98d4bc7aa89b7dafc43f989753c","unresolved":false,"context_lines":[{"line_number":67,"context_line":"                    Migration4"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":""},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"Alternatives"},{"line_number":72,"context_line":"------------"},{"line_number":73,"context_line":"None"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_6e7877c5","line":70,"updated":"2016-11-08 14:28:07.000000000","message":"Something is missing: the max number of parallel actions authorized. As example, how many migration actions can we run, in parallel, on our cluster?\nThis parameter should be configurable per action type, and set by default with the number of workers of the resource API targeted by the action (if we have 40 nova-api workers, we can assume we should be able to run 40 migrations in parallel max)","commit_id":"524c2f098d6ad49f37daa6afc484807cfb842c72"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"227c9f2f57e140cef1352cf5bdb461e67bff4ebd","unresolved":false,"context_lines":[{"line_number":67,"context_line":"                    Migration4"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":""},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"Alternatives"},{"line_number":72,"context_line":"------------"},{"line_number":73,"context_line":"None"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_9ee9e2b9","line":70,"in_reply_to":"9a629dbe_6e7877c5","updated":"2016-11-14 15:03:50.000000000","message":"I think it should be configurable per node since we need to take into account network/ram bandwidth.","commit_id":"524c2f098d6ad49f37daa6afc484807cfb842c72"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"854e5d5eaa6602c60da0dde0fbae6e3deb771fc1","unresolved":false,"context_lines":[{"line_number":72,"context_line":"------------"},{"line_number":73,"context_line":"None"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"Data model impact"},{"line_number":76,"context_line":"-----------------"},{"line_number":77,"context_line":"* ``next`` column should be removed from the Action table."},{"line_number":78,"context_line":"* ``node`` column should be added to the Action table."}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_6976fe06","line":75,"range":{"start_line":75,"start_character":0,"end_line":75,"end_character":17},"updated":"2016-11-12 07:01:10.000000000","message":"The \u0027first_action_id\u0027 field in the Action Plan table should be removed.","commit_id":"524c2f098d6ad49f37daa6afc484807cfb842c72"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"227c9f2f57e140cef1352cf5bdb461e67bff4ebd","unresolved":false,"context_lines":[{"line_number":72,"context_line":"------------"},{"line_number":73,"context_line":"None"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"Data model impact"},{"line_number":76,"context_line":"-----------------"},{"line_number":77,"context_line":"* ``next`` column should be removed from the Action table."},{"line_number":78,"context_line":"* ``node`` column should be added to the Action table."}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_f98f1373","line":75,"range":{"start_line":75,"start_character":0,"end_line":75,"end_character":17},"in_reply_to":"9a629dbe_6976fe06","updated":"2016-11-14 15:03:50.000000000","message":"Done","commit_id":"524c2f098d6ad49f37daa6afc484807cfb842c72"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"854e5d5eaa6602c60da0dde0fbae6e3deb771fc1","unresolved":false,"context_lines":[{"line_number":123,"context_line":"Work Items"},{"line_number":124,"context_line":"----------"},{"line_number":125,"context_line":"* Modify watcher/decision_engine/planner/default.py to fill ``node`` field in"},{"line_number":126,"context_line":"  Action Plan table."},{"line_number":127,"context_line":"* Modify watcher/applier/workflow_engine/default.py to build graph with"},{"line_number":128,"context_line":"  subgraphs."},{"line_number":129,"context_line":"* Update the documentation"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_e90a0e78","line":126,"range":{"start_line":126,"start_character":2,"end_line":126,"end_character":19},"updated":"2016-11-12 07:01:10.000000000","message":"Action table?","commit_id":"524c2f098d6ad49f37daa6afc484807cfb842c72"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"227c9f2f57e140cef1352cf5bdb461e67bff4ebd","unresolved":false,"context_lines":[{"line_number":123,"context_line":"Work Items"},{"line_number":124,"context_line":"----------"},{"line_number":125,"context_line":"* Modify watcher/decision_engine/planner/default.py to fill ``node`` field in"},{"line_number":126,"context_line":"  Action Plan table."},{"line_number":127,"context_line":"* Modify watcher/applier/workflow_engine/default.py to build graph with"},{"line_number":128,"context_line":"  subgraphs."},{"line_number":129,"context_line":"* Update the documentation"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_39a0aba5","line":126,"range":{"start_line":126,"start_character":2,"end_line":126,"end_character":19},"in_reply_to":"9a629dbe_e90a0e78","updated":"2016-11-14 15:03:50.000000000","message":"Done","commit_id":"524c2f098d6ad49f37daa6afc484807cfb842c72"},{"author":{"_account_id":13111,"name":"Hidekazu Nakamura","email":"hidekazuna@gmail.com","username":"hid-nakamura"},"change_message_id":"568f41e2697ad9fcab2af25477cbdc49cf66f283","unresolved":false,"context_lines":[{"line_number":76,"context_line":"* a5 action migrates the instance"},{"line_number":77,"context_line":"* a51 action resizes the same instance and linked to a5."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"As we can see, all actions that are independent to each other can be permormed"},{"line_number":80,"context_line":"in parallel. Meanwhile, if some actions are linked to the same resource then"},{"line_number":81,"context_line":"they are to be perfomed with respecting to action weights. Currently, we can"},{"line_number":82,"context_line":"define the following weights:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a77a97e_4d404f57","line":79,"range":{"start_line":79,"start_character":69,"end_line":79,"end_character":78},"updated":"2016-11-15 04:04:36.000000000","message":"typo: permormed -\u003e performed","commit_id":"0b5970b5b71f6c3006ac3935e3c2316ff9ea4021"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"e33940c4ef845000435b2d574c14af0928ba9cc9","unresolved":false,"context_lines":[{"line_number":76,"context_line":"* a5 action migrates the instance"},{"line_number":77,"context_line":"* a51 action resizes the same instance and linked to a5."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"As we can see, all actions that are independent to each other can be permormed"},{"line_number":80,"context_line":"in parallel. Meanwhile, if some actions are linked to the same resource then"},{"line_number":81,"context_line":"they are to be perfomed with respecting to action weights. Currently, we can"},{"line_number":82,"context_line":"define the following weights:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a77a97e_24940536","line":79,"range":{"start_line":79,"start_character":69,"end_line":79,"end_character":78},"in_reply_to":"7a77a97e_4d404f57","updated":"2016-11-15 08:53:07.000000000","message":"Done","commit_id":"0b5970b5b71f6c3006ac3935e3c2316ff9ea4021"},{"author":{"_account_id":13111,"name":"Hidekazu Nakamura","email":"hidekazuna@gmail.com","username":"hid-nakamura"},"change_message_id":"568f41e2697ad9fcab2af25477cbdc49cf66f283","unresolved":false,"context_lines":[{"line_number":78,"context_line":""},{"line_number":79,"context_line":"As we can see, all actions that are independent to each other can be permormed"},{"line_number":80,"context_line":"in parallel. Meanwhile, if some actions are linked to the same resource then"},{"line_number":81,"context_line":"they are to be perfomed with respecting to action weights. Currently, we can"},{"line_number":82,"context_line":"define the following weights:"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"* End of graph - 0"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a77a97e_cd2c5fae","line":81,"range":{"start_line":81,"start_character":15,"end_line":81,"end_character":23},"updated":"2016-11-15 04:04:36.000000000","message":"typo: perfomed -\u003e performed","commit_id":"0b5970b5b71f6c3006ac3935e3c2316ff9ea4021"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"e33940c4ef845000435b2d574c14af0928ba9cc9","unresolved":false,"context_lines":[{"line_number":78,"context_line":""},{"line_number":79,"context_line":"As we can see, all actions that are independent to each other can be permormed"},{"line_number":80,"context_line":"in parallel. Meanwhile, if some actions are linked to the same resource then"},{"line_number":81,"context_line":"they are to be perfomed with respecting to action weights. Currently, we can"},{"line_number":82,"context_line":"define the following weights:"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"* End of graph - 0"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a77a97e_4499016e","line":81,"range":{"start_line":81,"start_character":15,"end_line":81,"end_character":23},"in_reply_to":"7a77a97e_cd2c5fae","updated":"2016-11-15 08:53:07.000000000","message":"Done","commit_id":"0b5970b5b71f6c3006ac3935e3c2316ff9ea4021"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"6b5e90341ece591197700978ad9e5d26958b2095","unresolved":false,"context_lines":[{"line_number":16,"context_line":"Action plan is built by the default planner of the decision-engine service."},{"line_number":17,"context_line":"Every Action is linked to the next one so we have linked list of Actions"},{"line_number":18,"context_line":"as result of default planner\u0027s work. Applier service executes the action plan."},{"line_number":19,"context_line":"Launching actions in a sequence has negative influence on perfomance,"},{"line_number":20,"context_line":"especially if there are a lot of actions. Every action must be completed"},{"line_number":21,"context_line":"before next action will be run, so it will take a lot of time to launch"},{"line_number":22,"context_line":"migration actions in sequence."}],"source_content_type":"text/x-rst","patch_set":5,"id":"7a77a97e_b0584f58","line":19,"range":{"start_line":19,"start_character":58,"end_line":19,"end_character":68},"updated":"2016-11-15 10:47:05.000000000","message":"performance","commit_id":"54b61a0caf2cc16784b767d4ce551d2a59487efc"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"e01000d9261f0c01e460be7e82ff2e0274371a51","unresolved":false,"context_lines":[{"line_number":16,"context_line":"Action plan is built by the default planner of the decision-engine service."},{"line_number":17,"context_line":"Every Action is linked to the next one so we have linked list of Actions"},{"line_number":18,"context_line":"as result of default planner\u0027s work. Applier service executes the action plan."},{"line_number":19,"context_line":"Launching actions in a sequence has negative influence on perfomance,"},{"line_number":20,"context_line":"especially if there are a lot of actions. Every action must be completed"},{"line_number":21,"context_line":"before next action will be run, so it will take a lot of time to launch"},{"line_number":22,"context_line":"migration actions in sequence."}],"source_content_type":"text/x-rst","patch_set":5,"id":"7a77a97e_2e1bfb73","line":19,"range":{"start_line":19,"start_character":58,"end_line":19,"end_character":68},"in_reply_to":"7a77a97e_b0584f58","updated":"2016-11-16 10:16:29.000000000","message":"Done","commit_id":"54b61a0caf2cc16784b767d4ce551d2a59487efc"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"6b5e90341ece591197700978ad9e5d26958b2095","unresolved":false,"context_lines":[{"line_number":68,"context_line":""},{"line_number":69,"context_line":"Here we can see the following links:"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"* a1 action disables the compute node and has no parent."},{"line_number":72,"context_line":"* a2 action migrates the instance and has no parent."},{"line_number":73,"context_line":"* a3 action migrates the instance and has no parent."},{"line_number":74,"context_line":"* a31 action resizes the same instance and linked to a3."},{"line_number":75,"context_line":"* a4 action resizes the instance and has no parent."},{"line_number":76,"context_line":"* a5 action migrates the instance"},{"line_number":77,"context_line":"* a51 action resizes the same instance and linked to a5."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"As we can see, all actions that are independent to each other can be performed"},{"line_number":80,"context_line":"in parallel. Meanwhile, if some actions are linked to the same resource then"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7a77a97e_9de28b02","line":77,"range":{"start_line":71,"start_character":0,"end_line":77,"end_character":56},"updated":"2016-11-15 10:47:05.000000000","message":"Here you describe the graph. It will be better to set an interpretation of this graph:\n\na1 action disables a compute node and is not linked with another action. It can be run in parallel with other action (there is no constraint)\n\na31 action resizes an instance after this last one had been migrated by action a3\n \n....","commit_id":"54b61a0caf2cc16784b767d4ce551d2a59487efc"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"e01000d9261f0c01e460be7e82ff2e0274371a51","unresolved":false,"context_lines":[{"line_number":68,"context_line":""},{"line_number":69,"context_line":"Here we can see the following links:"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"* a1 action disables the compute node and has no parent."},{"line_number":72,"context_line":"* a2 action migrates the instance and has no parent."},{"line_number":73,"context_line":"* a3 action migrates the instance and has no parent."},{"line_number":74,"context_line":"* a31 action resizes the same instance and linked to a3."},{"line_number":75,"context_line":"* a4 action resizes the instance and has no parent."},{"line_number":76,"context_line":"* a5 action migrates the instance"},{"line_number":77,"context_line":"* a51 action resizes the same instance and linked to a5."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"As we can see, all actions that are independent to each other can be performed"},{"line_number":80,"context_line":"in parallel. Meanwhile, if some actions are linked to the same resource then"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7a77a97e_bb855d5a","line":77,"range":{"start_line":71,"start_character":0,"end_line":77,"end_character":56},"in_reply_to":"7a77a97e_9de28b02","updated":"2016-11-16 10:16:29.000000000","message":"Done","commit_id":"54b61a0caf2cc16784b767d4ce551d2a59487efc"},{"author":{"_account_id":13111,"name":"Hidekazu Nakamura","email":"hidekazuna@gmail.com","username":"hid-nakamura"},"change_message_id":"c417ca0c08f4939f7a39a7876499e8c0ec980329","unresolved":false,"context_lines":[{"line_number":27,"context_line":"As an administrator, I would like to be able to run Action plan that will"},{"line_number":28,"context_line":"launch actions for every node (compute, network, storage) in parallel."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Project Priority"},{"line_number":31,"context_line":"----------------"},{"line_number":32,"context_line":"* Medium"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"7a77a97e_89282de4","line":30,"updated":"2016-11-17 02:12:22.000000000","message":"Project Priority has been removed from template.","commit_id":"752ef7b6269f19f4bffb0441b84e3a872f2dc969"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"aae9d79ec255081342f826c812c65a1288f4923a","unresolved":false,"context_lines":[{"line_number":78,"context_line":"  It can be run in parallel with other action."},{"line_number":79,"context_line":"* a51 action resizes the same instance after this last one had been migrated"},{"line_number":80,"context_line":"  by action a5."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"As we can see, all actions that are independent to each other can be performed"},{"line_number":83,"context_line":"in parallel. Meanwhile, if some actions are linked to the same resource then"},{"line_number":84,"context_line":"they are to be performed with respecting to action weights. Currently, we can"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7a77a97e_c6239954","line":81,"updated":"2016-11-18 16:21:42.000000000","message":"What if we want to have an action with 2 parents and this action would actually wait for the two branches to sync?\n\nIf you look at https://en.wikipedia.org/wiki/Directed_acyclic_graph#/media/File:Tred-Gprime.svg\n\nHow would you represent this given that your \"parent\" field can only store 1 parent?\n\nI didn\u0027t give it much thought yet, but I was looking at http://docs.sqlalchemy.org/en/latest/_modules/examples/graphs/directed_graph.html and it seems that this DB structure would give us a full DAG implementation.\n\nThat being said, I don\u0027t know if we actually need something that complicated at this stage.","commit_id":"dc166e71c1bb995011b161f4eb8f4cddd021c80d"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"11c70c4efd9f49197d2a87b8a29157981364c9c8","unresolved":false,"context_lines":[{"line_number":78,"context_line":"  It can be run in parallel with other action."},{"line_number":79,"context_line":"* a51 action resizes the same instance after this last one had been migrated"},{"line_number":80,"context_line":"  by action a5."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"As we can see, all actions that are independent to each other can be performed"},{"line_number":83,"context_line":"in parallel. Meanwhile, if some actions are linked to the same resource then"},{"line_number":84,"context_line":"they are to be performed with respecting to action weights. Currently, we can"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5a74a57a_033b8dec","line":81,"in_reply_to":"7a77a97e_4c94d843","updated":"2016-11-23 08:49:54.000000000","message":"Alex, take an example: the action \u0027disabled node\u0027 will have as parents all \u0027instance migration\u0027 actions, because we will like to disable the node after having ran all the migrations on this one. So an action can have several action parents.","commit_id":"dc166e71c1bb995011b161f4eb8f4cddd021c80d"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"915a50c526b3318b5d3e485eb908ee12f7010ef5","unresolved":false,"context_lines":[{"line_number":78,"context_line":"  It can be run in parallel with other action."},{"line_number":79,"context_line":"* a51 action resizes the same instance after this last one had been migrated"},{"line_number":80,"context_line":"  by action a5."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"As we can see, all actions that are independent to each other can be performed"},{"line_number":83,"context_line":"in parallel. Meanwhile, if some actions are linked to the same resource then"},{"line_number":84,"context_line":"they are to be performed with respecting to action weights. Currently, we can"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7a77a97e_4c94d843","line":81,"in_reply_to":"7a77a97e_c6239954","updated":"2016-11-21 12:55:47.000000000","message":"Current version of spec provides ability to has only 1 parent for action. I don\u0027t actually see the case when we need 2 parents, at least at the current time. We can expand storage mechanism in case we need 2 parents in future.","commit_id":"dc166e71c1bb995011b161f4eb8f4cddd021c80d"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"aae9d79ec255081342f826c812c65a1288f4923a","unresolved":false,"context_lines":[{"line_number":118,"context_line":""},{"line_number":119,"context_line":"Data model impact"},{"line_number":120,"context_line":"-----------------"},{"line_number":121,"context_line":"* ``first_action_id`` and ``next`` columns should be removed"},{"line_number":122,"context_line":"  from the Action Plan table."},{"line_number":123,"context_line":"* ``parent`` column should be added to the Action table."},{"line_number":124,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"7a77a97e_bf3f8db2","line":121,"range":{"start_line":121,"start_character":4,"end_line":121,"end_character":19},"updated":"2016-11-18 16:21:42.000000000","message":"Can you also add here that these changes mean that you will have to bump the major version of the ActionPlan object (I guess 2.0)?","commit_id":"dc166e71c1bb995011b161f4eb8f4cddd021c80d"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"915a50c526b3318b5d3e485eb908ee12f7010ef5","unresolved":false,"context_lines":[{"line_number":118,"context_line":""},{"line_number":119,"context_line":"Data model impact"},{"line_number":120,"context_line":"-----------------"},{"line_number":121,"context_line":"* ``first_action_id`` and ``next`` columns should be removed"},{"line_number":122,"context_line":"  from the Action Plan table."},{"line_number":123,"context_line":"* ``parent`` column should be added to the Action table."},{"line_number":124,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"7a77a97e_82da3716","line":121,"range":{"start_line":121,"start_character":4,"end_line":121,"end_character":19},"in_reply_to":"7a77a97e_bf3f8db2","updated":"2016-11-21 12:55:47.000000000","message":"Done","commit_id":"dc166e71c1bb995011b161f4eb8f4cddd021c80d"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"5a5eb179e4d7a0deca1d44aaa6d01db925c68d9a","unresolved":false,"context_lines":[{"line_number":130,"context_line":"            db_action \u003d create_action(action, parents\u003daction_parents)"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":""},{"line_number":133,"context_line":""},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"Alternatives"},{"line_number":136,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":9,"id":"5a74a57a_9c3fedd5","line":133,"updated":"2016-11-30 08:26:08.000000000","message":"I think you should add that we want to limit this spec to simple chained list of actions as action plan (graph action plan will be addressed by another spec).","commit_id":"d8df902596172694bb22341a8ec84291b4581402"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"854e8c7183f30f92aafe07b80fe08e098f448f46","unresolved":false,"context_lines":[{"line_number":130,"context_line":"            db_action \u003d create_action(action, parents\u003daction_parents)"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":""},{"line_number":133,"context_line":""},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"Alternatives"},{"line_number":136,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":9,"id":"5a74a57a_382fbcf7","line":133,"in_reply_to":"5a74a57a_9c3fedd5","updated":"2016-11-30 11:18:33.000000000","message":"Done","commit_id":"d8df902596172694bb22341a8ec84291b4581402"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"5a5eb179e4d7a0deca1d44aaa6d01db925c68d9a","unresolved":false,"context_lines":[{"line_number":139,"context_line":"Data model impact"},{"line_number":140,"context_line":"-----------------"},{"line_number":141,"context_line":"* ``next`` column should be removed from the Action table."},{"line_number":142,"context_line":"* ``parents`` column should be added to the Action table."},{"line_number":143,"context_line":"* ActionPlan object major version should probably be updated to 2.0"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"REST API impact"}],"source_content_type":"text/x-rst","patch_set":9,"id":"5a74a57a_7ce771ac","line":142,"range":{"start_line":142,"start_character":2,"end_line":142,"end_character":57},"updated":"2016-11-30 08:26:08.000000000","message":"could you precise the type of \u0027parents\u0027 fields ?","commit_id":"d8df902596172694bb22341a8ec84291b4581402"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"854e8c7183f30f92aafe07b80fe08e098f448f46","unresolved":false,"context_lines":[{"line_number":139,"context_line":"Data model impact"},{"line_number":140,"context_line":"-----------------"},{"line_number":141,"context_line":"* ``next`` column should be removed from the Action table."},{"line_number":142,"context_line":"* ``parents`` column should be added to the Action table."},{"line_number":143,"context_line":"* ActionPlan object major version should probably be updated to 2.0"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"REST API impact"}],"source_content_type":"text/x-rst","patch_set":9,"id":"5a74a57a_58347849","line":142,"range":{"start_line":142,"start_character":2,"end_line":142,"end_character":57},"in_reply_to":"5a74a57a_7ce771ac","updated":"2016-11-30 11:18:33.000000000","message":"Done","commit_id":"d8df902596172694bb22341a8ec84291b4581402"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"5a5eb179e4d7a0deca1d44aaa6d01db925c68d9a","unresolved":false,"context_lines":[{"line_number":188,"context_line":"* Update data model in accordance with proposed changes"},{"line_number":189,"context_line":"  (in fact API and objects)."},{"line_number":190,"context_line":"* Modify watcher/decision_engine/planner/default.py to build"},{"line_number":191,"context_line":"  new planner workflow."},{"line_number":192,"context_line":"* Update the documentation."},{"line_number":193,"context_line":"* Add appropriate unit tests."},{"line_number":194,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"5a74a57a_dc088530","line":191,"updated":"2016-11-30 08:26:08.000000000","message":", limited to simple chained list of actions for now.","commit_id":"d8df902596172694bb22341a8ec84291b4581402"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"854e8c7183f30f92aafe07b80fe08e098f448f46","unresolved":false,"context_lines":[{"line_number":188,"context_line":"* Update data model in accordance with proposed changes"},{"line_number":189,"context_line":"  (in fact API and objects)."},{"line_number":190,"context_line":"* Modify watcher/decision_engine/planner/default.py to build"},{"line_number":191,"context_line":"  new planner workflow."},{"line_number":192,"context_line":"* Update the documentation."},{"line_number":193,"context_line":"* Add appropriate unit tests."},{"line_number":194,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"5a74a57a_387dfce7","line":191,"in_reply_to":"5a74a57a_dc088530","updated":"2016-11-30 11:18:33.000000000","message":"Done","commit_id":"d8df902596172694bb22341a8ec84291b4581402"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"b790fc499031e6f0dab764c6587e5511c70d5ebd","unresolved":false,"context_lines":[{"line_number":138,"context_line":"------------"},{"line_number":139,"context_line":"None"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"Data model impact"},{"line_number":142,"context_line":"-----------------"},{"line_number":143,"context_line":"* ``next`` column should be removed from the Action table."},{"line_number":144,"context_line":"* ``parents`` column should be added to the Action table. Type: JSON."}],"source_content_type":"text/x-rst","patch_set":10,"id":"3a71b18c_3fa0759f","line":141,"range":{"start_line":141,"start_character":0,"end_line":141,"end_character":17},"updated":"2016-12-02 02:55:07.000000000","message":"The \u0027first_action_id\u0027 field in the ActionPlan table should not be needed.","commit_id":"a883cd238947d42f6f032c50d09f3057b2d1a18d"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"d9d0ca65167c179e890a92cb27a49b7c13ea9b60","unresolved":false,"context_lines":[{"line_number":138,"context_line":"------------"},{"line_number":139,"context_line":"None"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"Data model impact"},{"line_number":142,"context_line":"-----------------"},{"line_number":143,"context_line":"* ``next`` column should be removed from the Action table."},{"line_number":144,"context_line":"* ``parents`` column should be added to the Action table. Type: JSON."}],"source_content_type":"text/x-rst","patch_set":10,"id":"3a71b18c_b579afca","line":141,"range":{"start_line":141,"start_character":0,"end_line":141,"end_character":17},"in_reply_to":"3a71b18c_3fa0759f","updated":"2016-12-05 09:51:32.000000000","message":"Done","commit_id":"a883cd238947d42f6f032c50d09f3057b2d1a18d"},{"author":{"_account_id":13111,"name":"Hidekazu Nakamura","email":"hidekazuna@gmail.com","username":"hid-nakamura"},"change_message_id":"344a2d69765b4d22bf1c7bb4f803e03197da4be5","unresolved":false,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    init \u003d Flow()"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    actions \u003d sorted_by_weigths(descended)"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    for action in actions:"},{"line_number":102,"context_line":"        a_type \u003d action[type]"}],"source_content_type":"text/x-rst","patch_set":11,"id":"3a71b18c_027bf928","line":99,"range":{"start_line":99,"start_character":24,"end_line":99,"end_character":31},"updated":"2016-12-12 01:23:53.000000000","message":"weigths -\u003e weights","commit_id":"026280b2aa500cb69693065586fe27eba14d5535"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"5f2960fd37ab9cd6ac2cf01cc15d276baafead23","unresolved":false,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    init \u003d Flow()"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    actions \u003d sorted_by_weigths(descended)"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    for action in actions:"},{"line_number":102,"context_line":"        a_type \u003d action[type]"}],"source_content_type":"text/x-rst","patch_set":11,"id":"3a71b18c_e8833401","line":99,"range":{"start_line":99,"start_character":24,"end_line":99,"end_character":31},"in_reply_to":"3a71b18c_027bf928","updated":"2016-12-12 09:45:32.000000000","message":"Done","commit_id":"026280b2aa500cb69693065586fe27eba14d5535"},{"author":{"_account_id":13111,"name":"Hidekazu Nakamura","email":"hidekazuna@gmail.com","username":"hid-nakamura"},"change_message_id":"344a2d69765b4d22bf1c7bb4f803e03197da4be5","unresolved":false,"context_lines":[{"line_number":111,"context_line":"                db_action \u003d create_action(action, parents\u003dinit)"},{"line_number":112,"context_line":"        elif a_type \u003d\u003d disable:"},{"line_number":113,"context_line":"            db_action \u003d create_action(action, parents\u003dinit)"},{"line_number":114,"context_line":"        elif a_type \u003d\u003d turn_host_to_acpi_s3_state:"},{"line_number":115,"context_line":"            # if we have an action that will make host unreachable, we need to"},{"line_number":116,"context_line":"              complete all actions (resize and migration type) related to the"},{"line_number":117,"context_line":"              host."}],"source_content_type":"text/x-rst","patch_set":11,"id":"3a71b18c_e296fd4a","line":114,"range":{"start_line":114,"start_character":23,"end_line":114,"end_character":49},"updated":"2016-12-12 01:23:53.000000000","message":"What is the turn_host_to_acpi_s3_state? Should this be added to action weights?","commit_id":"026280b2aa500cb69693065586fe27eba14d5535"},{"author":{"_account_id":13111,"name":"Hidekazu Nakamura","email":"hidekazuna@gmail.com","username":"hid-nakamura"},"change_message_id":"cfbb1c26e30b49494b4c202a4f9936674c72032a","unresolved":false,"context_lines":[{"line_number":111,"context_line":"                db_action \u003d create_action(action, parents\u003dinit)"},{"line_number":112,"context_line":"        elif a_type \u003d\u003d disable:"},{"line_number":113,"context_line":"            db_action \u003d create_action(action, parents\u003dinit)"},{"line_number":114,"context_line":"        elif a_type \u003d\u003d turn_host_to_acpi_s3_state:"},{"line_number":115,"context_line":"            # if we have an action that will make host unreachable, we need to"},{"line_number":116,"context_line":"              complete all actions (resize and migration type) related to the"},{"line_number":117,"context_line":"              host."}],"source_content_type":"text/x-rst","patch_set":11,"id":"3a71b18c_becc1236","line":114,"range":{"start_line":114,"start_character":23,"end_line":114,"end_character":49},"in_reply_to":"3a71b18c_08279012","updated":"2016-12-12 10:31:31.000000000","message":"Thanks for explanation.\nI found codes you submitted and this action is defined as weight 0. this pseudocode includes sorted_by_weight, so weights_dict variable is also needed in pseudocode.","commit_id":"026280b2aa500cb69693065586fe27eba14d5535"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"b15f2f84a65b8367189674c8fd942266c811aefb","unresolved":false,"context_lines":[{"line_number":111,"context_line":"                db_action \u003d create_action(action, parents\u003dinit)"},{"line_number":112,"context_line":"        elif a_type \u003d\u003d disable:"},{"line_number":113,"context_line":"            db_action \u003d create_action(action, parents\u003dinit)"},{"line_number":114,"context_line":"        elif a_type \u003d\u003d turn_host_to_acpi_s3_state:"},{"line_number":115,"context_line":"            # if we have an action that will make host unreachable, we need to"},{"line_number":116,"context_line":"              complete all actions (resize and migration type) related to the"},{"line_number":117,"context_line":"              host."}],"source_content_type":"text/x-rst","patch_set":11,"id":"1a6eadb0_7e0a938b","line":114,"range":{"start_line":114,"start_character":23,"end_line":114,"end_character":49},"in_reply_to":"3a71b18c_becc1236","updated":"2016-12-21 11:53:49.000000000","message":"Done","commit_id":"026280b2aa500cb69693065586fe27eba14d5535"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"5f2960fd37ab9cd6ac2cf01cc15d276baafead23","unresolved":false,"context_lines":[{"line_number":111,"context_line":"                db_action \u003d create_action(action, parents\u003dinit)"},{"line_number":112,"context_line":"        elif a_type \u003d\u003d disable:"},{"line_number":113,"context_line":"            db_action \u003d create_action(action, parents\u003dinit)"},{"line_number":114,"context_line":"        elif a_type \u003d\u003d turn_host_to_acpi_s3_state:"},{"line_number":115,"context_line":"            # if we have an action that will make host unreachable, we need to"},{"line_number":116,"context_line":"              complete all actions (resize and migration type) related to the"},{"line_number":117,"context_line":"              host."}],"source_content_type":"text/x-rst","patch_set":11,"id":"3a71b18c_08279012","line":114,"range":{"start_line":114,"start_character":23,"end_line":114,"end_character":49},"in_reply_to":"3a71b18c_e296fd4a","updated":"2016-12-12 09:45:32.000000000","message":"It is an action that will turn host to ACPI S3 state. I have thoughts about some instance of consolidation algorithm, when we will migrate all instances from low-load host and turn this one to sleep mode. To get it back we can use WOL technology. That\u0027s why we need to execute all migrate and resize actions related to specified host before turning its to ACPI S3.","commit_id":"026280b2aa500cb69693065586fe27eba14d5535"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"46973c7756e3dcade16bdd3118bf0ed3b39f1128","unresolved":false,"context_lines":[{"line_number":194,"context_line":"  new planner workflow, limited to simple chained list of actions for now.."},{"line_number":195,"context_line":"* Update the documentation."},{"line_number":196,"context_line":"* Add appropriate unit tests."},{"line_number":197,"context_line":""},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"Dependencies"},{"line_number":200,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":15,"id":"1a6eadb0_3cd6a3c3","line":197,"updated":"2016-12-20 10:07:45.000000000","message":"-\u003e Update the default taskflow workflow engine plugin in watcher/applier/workflow_engine/default.py to support the synchronization of a task that has multiple parents. In such a case, it should wait for both parent tasks to complete before executing the current task.\n\nCan you also explain how you intend to do this in the proposed solution?","commit_id":"106e596a3582ad53c9a7c7a8c095b55d0573ac85"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"d87c3b0ba4d8c13593a38b8b3689366af43e1ef3","unresolved":false,"context_lines":[{"line_number":194,"context_line":"  new planner workflow, limited to simple chained list of actions for now.."},{"line_number":195,"context_line":"* Update the documentation."},{"line_number":196,"context_line":"* Add appropriate unit tests."},{"line_number":197,"context_line":""},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"Dependencies"},{"line_number":200,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":15,"id":"1a6eadb0_3fc5ab3b","line":197,"in_reply_to":"1a6eadb0_3cd6a3c3","updated":"2016-12-20 13:27:56.000000000","message":"Synchronization of tasks is a part of https://review.openstack.org/#/c/413079/","commit_id":"106e596a3582ad53c9a7c7a8c095b55d0573ac85"},{"author":{"_account_id":11750,"name":"Antoine Cabot","email":"antoine.cabot@b-com.com","username":"antoinecabot"},"change_message_id":"f5720e75909c7fed2ab3cec28abc36cc1033b09f","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Problem description"},{"line_number":14,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Action plan is built by the default planner of the decision-engine service."},{"line_number":17,"context_line":"Every Action is linked to the next one so we have linked list of Actions"},{"line_number":18,"context_line":"as result of default planner\u0027s work. Applier service executes the action plan."},{"line_number":19,"context_line":"Launching actions in a sequence has negative influence on performance,"}],"source_content_type":"text/x-rst","patch_set":16,"id":"ba5201f7_9d9fa75e","line":16,"range":{"start_line":16,"start_character":51,"end_line":16,"end_character":66},"updated":"2017-01-10 15:13:46.000000000","message":"please add a ref to http://docs.openstack.org/developer/watcher/glossary.html#watcher-decision-engine","commit_id":"fa765395e42f6c5001cde6c5844106e2e9561d2c"},{"author":{"_account_id":11750,"name":"Antoine Cabot","email":"antoine.cabot@b-com.com","username":"antoinecabot"},"change_message_id":"f5720e75909c7fed2ab3cec28abc36cc1033b09f","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Problem description"},{"line_number":14,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Action plan is built by the default planner of the decision-engine service."},{"line_number":17,"context_line":"Every Action is linked to the next one so we have linked list of Actions"},{"line_number":18,"context_line":"as result of default planner\u0027s work. Applier service executes the action plan."},{"line_number":19,"context_line":"Launching actions in a sequence has negative influence on performance,"}],"source_content_type":"text/x-rst","patch_set":16,"id":"ba5201f7_fda353af","line":16,"range":{"start_line":16,"start_character":36,"end_line":16,"end_character":43},"updated":"2017-01-10 15:13:46.000000000","message":"please add a ref to http://docs.openstack.org/developer/watcher/glossary.html#watcher-planner","commit_id":"fa765395e42f6c5001cde6c5844106e2e9561d2c"},{"author":{"_account_id":11750,"name":"Antoine Cabot","email":"antoine.cabot@b-com.com","username":"antoinecabot"},"change_message_id":"f5720e75909c7fed2ab3cec28abc36cc1033b09f","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Problem description"},{"line_number":14,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Action plan is built by the default planner of the decision-engine service."},{"line_number":17,"context_line":"Every Action is linked to the next one so we have linked list of Actions"},{"line_number":18,"context_line":"as result of default planner\u0027s work. Applier service executes the action plan."},{"line_number":19,"context_line":"Launching actions in a sequence has negative influence on performance,"}],"source_content_type":"text/x-rst","patch_set":16,"id":"ba5201f7_9dc88776","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":11},"updated":"2017-01-10 15:13:46.000000000","message":"please add a reference to http://docs.openstack.org/developer/watcher/glossary.html#action-plan","commit_id":"fa765395e42f6c5001cde6c5844106e2e9561d2c"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"90cd3495360b2a0367a20b4fb616c7b6803c9737","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Problem description"},{"line_number":14,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Action plan is built by the default planner of the decision-engine service."},{"line_number":17,"context_line":"Every Action is linked to the next one so we have linked list of Actions"},{"line_number":18,"context_line":"as result of default planner\u0027s work. Applier service executes the action plan."},{"line_number":19,"context_line":"Launching actions in a sequence has negative influence on performance,"}],"source_content_type":"text/x-rst","patch_set":16,"id":"9a57fde8_a9039175","line":16,"range":{"start_line":16,"start_character":51,"end_line":16,"end_character":66},"in_reply_to":"ba5201f7_9d9fa75e","updated":"2017-01-12 10:29:56.000000000","message":"Done","commit_id":"fa765395e42f6c5001cde6c5844106e2e9561d2c"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"90cd3495360b2a0367a20b4fb616c7b6803c9737","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Problem description"},{"line_number":14,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Action plan is built by the default planner of the decision-engine service."},{"line_number":17,"context_line":"Every Action is linked to the next one so we have linked list of Actions"},{"line_number":18,"context_line":"as result of default planner\u0027s work. Applier service executes the action plan."},{"line_number":19,"context_line":"Launching actions in a sequence has negative influence on performance,"}],"source_content_type":"text/x-rst","patch_set":16,"id":"9a57fde8_293fa126","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":11},"in_reply_to":"ba5201f7_9dc88776","updated":"2017-01-12 10:29:56.000000000","message":"Done","commit_id":"fa765395e42f6c5001cde6c5844106e2e9561d2c"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"90cd3495360b2a0367a20b4fb616c7b6803c9737","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Problem description"},{"line_number":14,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Action plan is built by the default planner of the decision-engine service."},{"line_number":17,"context_line":"Every Action is linked to the next one so we have linked list of Actions"},{"line_number":18,"context_line":"as result of default planner\u0027s work. Applier service executes the action plan."},{"line_number":19,"context_line":"Launching actions in a sequence has negative influence on performance,"}],"source_content_type":"text/x-rst","patch_set":16,"id":"9a57fde8_093add36","line":16,"range":{"start_line":16,"start_character":36,"end_line":16,"end_character":43},"in_reply_to":"ba5201f7_fda353af","updated":"2017-01-12 10:29:56.000000000","message":"Done","commit_id":"fa765395e42f6c5001cde6c5844106e2e9561d2c"},{"author":{"_account_id":11750,"name":"Antoine Cabot","email":"antoine.cabot@b-com.com","username":"antoinecabot"},"change_message_id":"f5720e75909c7fed2ab3cec28abc36cc1033b09f","unresolved":false,"context_lines":[{"line_number":14,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Action plan is built by the default planner of the decision-engine service."},{"line_number":17,"context_line":"Every Action is linked to the next one so we have linked list of Actions"},{"line_number":18,"context_line":"as result of default planner\u0027s work. Applier service executes the action plan."},{"line_number":19,"context_line":"Launching actions in a sequence has negative influence on performance,"},{"line_number":20,"context_line":"especially if there are a lot of actions. Every action must be completed"}],"source_content_type":"text/x-rst","patch_set":16,"id":"ba5201f7_1d82d700","line":17,"range":{"start_line":17,"start_character":6,"end_line":17,"end_character":12},"updated":"2017-01-10 15:13:46.000000000","message":"please add a ref to http://docs.openstack.org/developer/watcher/glossary.html#action","commit_id":"fa765395e42f6c5001cde6c5844106e2e9561d2c"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"90cd3495360b2a0367a20b4fb616c7b6803c9737","unresolved":false,"context_lines":[{"line_number":14,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Action plan is built by the default planner of the decision-engine service."},{"line_number":17,"context_line":"Every Action is linked to the next one so we have linked list of Actions"},{"line_number":18,"context_line":"as result of default planner\u0027s work. Applier service executes the action plan."},{"line_number":19,"context_line":"Launching actions in a sequence has negative influence on performance,"},{"line_number":20,"context_line":"especially if there are a lot of actions. Every action must be completed"}],"source_content_type":"text/x-rst","patch_set":16,"id":"9a57fde8_095f3d73","line":17,"range":{"start_line":17,"start_character":6,"end_line":17,"end_character":12},"in_reply_to":"ba5201f7_1d82d700","updated":"2017-01-12 10:29:56.000000000","message":"Done","commit_id":"fa765395e42f6c5001cde6c5844106e2e9561d2c"},{"author":{"_account_id":11750,"name":"Antoine Cabot","email":"antoine.cabot@b-com.com","username":"antoinecabot"},"change_message_id":"f5720e75909c7fed2ab3cec28abc36cc1033b09f","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Action plan is built by the default planner of the decision-engine service."},{"line_number":17,"context_line":"Every Action is linked to the next one so we have linked list of Actions"},{"line_number":18,"context_line":"as result of default planner\u0027s work. Applier service executes the action plan."},{"line_number":19,"context_line":"Launching actions in a sequence has negative influence on performance,"},{"line_number":20,"context_line":"especially if there are a lot of actions. Every action must be completed"},{"line_number":21,"context_line":"before next action will be run, so it will take a lot of time to launch"}],"source_content_type":"text/x-rst","patch_set":16,"id":"ba5201f7_bd71cb46","line":18,"range":{"start_line":18,"start_character":37,"end_line":18,"end_character":44},"updated":"2017-01-10 15:13:46.000000000","message":"please add a ref to http://docs.openstack.org/developer/watcher/glossary.html#watcher-applier","commit_id":"fa765395e42f6c5001cde6c5844106e2e9561d2c"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"90cd3495360b2a0367a20b4fb616c7b6803c9737","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Action plan is built by the default planner of the decision-engine service."},{"line_number":17,"context_line":"Every Action is linked to the next one so we have linked list of Actions"},{"line_number":18,"context_line":"as result of default planner\u0027s work. Applier service executes the action plan."},{"line_number":19,"context_line":"Launching actions in a sequence has negative influence on performance,"},{"line_number":20,"context_line":"especially if there are a lot of actions. Every action must be completed"},{"line_number":21,"context_line":"before next action will be run, so it will take a lot of time to launch"}],"source_content_type":"text/x-rst","patch_set":16,"id":"9a57fde8_a473b8b3","line":18,"range":{"start_line":18,"start_character":37,"end_line":18,"end_character":44},"in_reply_to":"ba5201f7_bd71cb46","updated":"2017-01-12 10:29:56.000000000","message":"Done","commit_id":"fa765395e42f6c5001cde6c5844106e2e9561d2c"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"4def7b194084cbf930732f41cf0e92c1109c1f4e","unresolved":false,"context_lines":[{"line_number":223,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":".. _Applier: http://docs.openstack.org/developer/watcher/glossary.html#watcher-applier"},{"line_number":226,"context_line":".. _Action plan: http://docs.openstack.org/developer/watcher/glossary.html#action-plan"},{"line_number":227,"context_line":".. _Action: http://docs.openstack.org/developer/watcher/glossary.html#action"},{"line_number":228,"context_line":".. _defaultplanner: https://github.com/openstack/watcher/blob/master/watcher/decision_engine/planner/default.py#L31"},{"line_number":229,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"ba5201f7_7748902e","line":226,"range":{"start_line":226,"start_character":3,"end_line":226,"end_character":16},"updated":"2016-12-30 08:13:34.000000000","message":"no define action plan link","commit_id":"fa765395e42f6c5001cde6c5844106e2e9561d2c"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"90cd3495360b2a0367a20b4fb616c7b6803c9737","unresolved":false,"context_lines":[{"line_number":223,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":".. _Applier: http://docs.openstack.org/developer/watcher/glossary.html#watcher-applier"},{"line_number":226,"context_line":".. _Action plan: http://docs.openstack.org/developer/watcher/glossary.html#action-plan"},{"line_number":227,"context_line":".. _Action: http://docs.openstack.org/developer/watcher/glossary.html#action"},{"line_number":228,"context_line":".. _defaultplanner: https://github.com/openstack/watcher/blob/master/watcher/decision_engine/planner/default.py#L31"},{"line_number":229,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"9a57fde8_04aac4d4","line":226,"range":{"start_line":226,"start_character":3,"end_line":226,"end_character":16},"in_reply_to":"ba5201f7_7748902e","updated":"2017-01-12 10:29:56.000000000","message":"Done","commit_id":"fa765395e42f6c5001cde6c5844106e2e9561d2c"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"2446c5ef1b3b7eab248e15ee7ab9d546b813f162","unresolved":false,"context_lines":[{"line_number":129,"context_line":"* Migrate instance - 3"},{"line_number":130,"context_line":"* Initial point - 4"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"There is estimated pseudocode to show part of default planner\u0027s workflow::"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    action \u003d [uuid, type, resource_id, metadata]"},{"line_number":135,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"5a3905b3_9d6fd891","line":132,"range":{"start_line":132,"start_character":46,"end_line":132,"end_character":72},"updated":"2017-01-19 13:06:28.000000000","message":"That\u0027s your specialized planner code here, not the weight-based one","commit_id":"4e0406c0b443901524742dbb52cc91432732c7e7"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"8f7bffbd72386f8a7c370dd95c99d90f1b246be3","unresolved":false,"context_lines":[{"line_number":129,"context_line":"* Migrate instance - 3"},{"line_number":130,"context_line":"* Initial point - 4"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"There is estimated pseudocode to show part of default planner\u0027s workflow::"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    action \u003d [uuid, type, resource_id, metadata]"},{"line_number":135,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"5a3905b3_d7ff7832","line":132,"range":{"start_line":132,"start_character":46,"end_line":132,"end_character":72},"in_reply_to":"5a3905b3_9d6fd891","updated":"2017-01-19 14:51:00.000000000","message":"Done","commit_id":"4e0406c0b443901524742dbb52cc91432732c7e7"},{"author":{"_account_id":7664,"name":"Joe Cropper","email":"jwcroppe@us.ibm.com","username":"jwcroppe"},"change_message_id":"8ad33326ecdd3ec7bb80607ca19a094874848ac8","unresolved":false,"context_lines":[{"line_number":53,"context_line":"                \\             /"},{"line_number":54,"context_line":"                 ---migration3"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"This graph is built with the following settings:"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"+-----------+--------+-----------------+"},{"line_number":59,"context_line":"|           | Weight | Parallelization |"}],"source_content_type":"text/x-rst","patch_set":19,"id":"5a3905b3_07d2b734","line":56,"range":{"start_line":56,"start_character":0,"end_line":56,"end_character":47},"updated":"2017-01-25 03:55:10.000000000","message":"So in the below table, all sleep operations will be done before migration, which will be done before resize, right?","commit_id":"a4fe12b14ea0faa0a5e1e8d9d4a405c59ce9149d"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"3826622a7afa0b34837f5b6c9d460666be26f2f1","unresolved":false,"context_lines":[{"line_number":53,"context_line":"                \\             /"},{"line_number":54,"context_line":"                 ---migration3"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"This graph is built with the following settings:"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"+-----------+--------+-----------------+"},{"line_number":59,"context_line":"|           | Weight | Parallelization |"}],"source_content_type":"text/x-rst","patch_set":19,"id":"5a3905b3_d11ce815","line":56,"range":{"start_line":56,"start_character":0,"end_line":56,"end_character":47},"in_reply_to":"5a3905b3_07d2b734","updated":"2017-01-25 08:07:21.000000000","message":"Yes, you\u0027re right.","commit_id":"a4fe12b14ea0faa0a5e1e8d9d4a405c59ce9149d"}]}
