)]}'
{"specs/train/approved/node-resource-consolidation.rst":[{"author":{"_account_id":28748,"name":"chenker","email":"chen.ke14@zte.com.cn","username":"chenke"},"change_message_id":"0d02cdc4b704464a807b7fccdfa13cb5fe64964a","unresolved":false,"context_lines":[{"line_number":4,"context_line":""},{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"Node Resource Consolidation"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7faddb67_1b293336","line":7,"range":{"start_line":7,"start_character":24,"end_line":7,"end_character":27},"updated":"2019-08-28 13:29:24.000000000","message":"nit: delete this.","commit_id":"716f1a6e90f9c6b7bcba307076a99b67f1a358d3"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"483ef58b3453b0d0544c073209f187627baaed26","unresolved":false,"context_lines":[{"line_number":4,"context_line":""},{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"Node Resource Consolidation"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7faddb67_419a23c5","line":7,"range":{"start_line":7,"start_character":24,"end_line":7,"end_character":27},"in_reply_to":"7faddb67_1b293336","updated":"2019-08-31 08:16:58.000000000","message":"Done","commit_id":"716f1a6e90f9c6b7bcba307076a99b67f1a358d3"},{"author":{"_account_id":28748,"name":"chenker","email":"chen.ke14@zte.com.cn","username":"chenke"},"change_message_id":"0d02cdc4b704464a807b7fccdfa13cb5fe64964a","unresolved":false,"context_lines":[{"line_number":19,"context_line":"of edge nodes in each location is limited, so the resources(CPU, memory)"},{"line_number":20,"context_line":"are limited. Dynamically running applications on edge nodes correspond to"},{"line_number":21,"context_line":"the dynamic creation and release of resources. During this process,"},{"line_number":22,"context_line":"resource fragments are generated, which may cause new applications to fail"},{"line_number":23,"context_line":"because they do not have enough resources."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Use Cases"},{"line_number":26,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7faddb67_7baaa771","line":23,"range":{"start_line":22,"start_character":33,"end_line":23,"end_character":42},"updated":"2019-08-28 13:29:24.000000000","message":"Maybe need to explain that if we provider one strategy to defragment, maybe the new application won\u0027t fail.","commit_id":"716f1a6e90f9c6b7bcba307076a99b67f1a358d3"},{"author":{"_account_id":28748,"name":"chenker","email":"chen.ke14@zte.com.cn","username":"chenke"},"change_message_id":"0d02cdc4b704464a807b7fccdfa13cb5fe64964a","unresolved":false,"context_lines":[{"line_number":39,"context_line":"  and `specify` means the strategy specifies the destination."},{"line_number":40,"context_line":"  The default value is `auto`."},{"line_number":41,"context_line":"* the algorithm of this strategy:"},{"line_number":42,"context_line":"  * caculating the resource used percent of compute noedes"},{"line_number":43,"context_line":"  * sorting compute nodes by the resource used percent"},{"line_number":44,"context_line":"  * dividing compute nodes into source group and destination group."},{"line_number":45,"context_line":"  For one compute node, if all servers can be migrated to other compute"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7faddb67_dbdf1b36","line":42,"range":{"start_line":42,"start_character":54,"end_line":42,"end_character":58},"updated":"2019-08-28 13:29:24.000000000","message":"nodes","commit_id":"716f1a6e90f9c6b7bcba307076a99b67f1a358d3"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"483ef58b3453b0d0544c073209f187627baaed26","unresolved":false,"context_lines":[{"line_number":39,"context_line":"  and `specify` means the strategy specifies the destination."},{"line_number":40,"context_line":"  The default value is `auto`."},{"line_number":41,"context_line":"* the algorithm of this strategy:"},{"line_number":42,"context_line":"  * caculating the resource used percent of compute noedes"},{"line_number":43,"context_line":"  * sorting compute nodes by the resource used percent"},{"line_number":44,"context_line":"  * dividing compute nodes into source group and destination group."},{"line_number":45,"context_line":"  For one compute node, if all servers can be migrated to other compute"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7faddb67_c16853bb","line":42,"range":{"start_line":42,"start_character":54,"end_line":42,"end_character":58},"in_reply_to":"7faddb67_dbdf1b36","updated":"2019-08-31 08:16:58.000000000","message":"Done","commit_id":"716f1a6e90f9c6b7bcba307076a99b67f1a358d3"},{"author":{"_account_id":28748,"name":"chenker","email":"chen.ke14@zte.com.cn","username":"chenke"},"change_message_id":"0d02cdc4b704464a807b7fccdfa13cb5fe64964a","unresolved":false,"context_lines":[{"line_number":42,"context_line":"  * caculating the resource used percent of compute noedes"},{"line_number":43,"context_line":"  * sorting compute nodes by the resource used percent"},{"line_number":44,"context_line":"  * dividing compute nodes into source group and destination group."},{"line_number":45,"context_line":"  For one compute node, if all servers can be migrated to other compute"},{"line_number":46,"context_line":"  node, we put this node to source group, and other nodes to destination"},{"line_number":47,"context_line":"  group. repeating this process untill all compute nodes have been putted"},{"line_number":48,"context_line":"  into source or destination group."},{"line_number":49,"context_line":"  For `continuous` audit, if there is server that had failed during previous"},{"line_number":50,"context_line":"  actionplan, we should put this compute node to destination group."}],"source_content_type":"text/x-rst","patch_set":2,"id":"7faddb67_fb59b78d","line":47,"range":{"start_line":45,"start_character":2,"end_line":47,"end_character":72},"updated":"2019-08-28 13:29:24.000000000","message":"I generally understand what the strategy needs to do, that is, to migrate some nodes\u0027 virtual machines to other nodes as much as possible.\nI agree we need this strategy.\nHowever, I feel that there is a description of a step missing here, that is, how to let some nodes\u0027 virtual machines migrate, and what are the rules.","commit_id":"716f1a6e90f9c6b7bcba307076a99b67f1a358d3"},{"author":{"_account_id":28748,"name":"chenker","email":"chen.ke14@zte.com.cn","username":"chenke"},"change_message_id":"0d02cdc4b704464a807b7fccdfa13cb5fe64964a","unresolved":false,"context_lines":[{"line_number":44,"context_line":"  * dividing compute nodes into source group and destination group."},{"line_number":45,"context_line":"  For one compute node, if all servers can be migrated to other compute"},{"line_number":46,"context_line":"  node, we put this node to source group, and other nodes to destination"},{"line_number":47,"context_line":"  group. repeating this process untill all compute nodes have been putted"},{"line_number":48,"context_line":"  into source or destination group."},{"line_number":49,"context_line":"  For `continuous` audit, if there is server that had failed during previous"},{"line_number":50,"context_line":"  actionplan, we should put this compute node to destination group."}],"source_content_type":"text/x-rst","patch_set":2,"id":"7faddb67_9b976346","line":47,"range":{"start_line":47,"start_character":67,"end_line":47,"end_character":73},"updated":"2019-08-28 13:29:24.000000000","message":"should put rather than putted.","commit_id":"716f1a6e90f9c6b7bcba307076a99b67f1a358d3"},{"author":{"_account_id":28748,"name":"chenker","email":"chen.ke14@zte.com.cn","username":"chenke"},"change_message_id":"0d02cdc4b704464a807b7fccdfa13cb5fe64964a","unresolved":false,"context_lines":[{"line_number":44,"context_line":"  * dividing compute nodes into source group and destination group."},{"line_number":45,"context_line":"  For one compute node, if all servers can be migrated to other compute"},{"line_number":46,"context_line":"  node, we put this node to source group, and other nodes to destination"},{"line_number":47,"context_line":"  group. repeating this process untill all compute nodes have been putted"},{"line_number":48,"context_line":"  into source or destination group."},{"line_number":49,"context_line":"  For `continuous` audit, if there is server that had failed during previous"},{"line_number":50,"context_line":"  actionplan, we should put this compute node to destination group."}],"source_content_type":"text/x-rst","patch_set":2,"id":"7faddb67_5ba24baf","line":47,"range":{"start_line":47,"start_character":36,"end_line":47,"end_character":38},"updated":"2019-08-28 13:29:24.000000000","message":"until","commit_id":"716f1a6e90f9c6b7bcba307076a99b67f1a358d3"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"483ef58b3453b0d0544c073209f187627baaed26","unresolved":false,"context_lines":[{"line_number":44,"context_line":"  * dividing compute nodes into source group and destination group."},{"line_number":45,"context_line":"  For one compute node, if all servers can be migrated to other compute"},{"line_number":46,"context_line":"  node, we put this node to source group, and other nodes to destination"},{"line_number":47,"context_line":"  group. repeating this process untill all compute nodes have been putted"},{"line_number":48,"context_line":"  into source or destination group."},{"line_number":49,"context_line":"  For `continuous` audit, if there is server that had failed during previous"},{"line_number":50,"context_line":"  actionplan, we should put this compute node to destination group."}],"source_content_type":"text/x-rst","patch_set":2,"id":"7faddb67_e1654fe2","line":47,"range":{"start_line":47,"start_character":36,"end_line":47,"end_character":38},"in_reply_to":"7faddb67_5ba24baf","updated":"2019-08-31 08:16:58.000000000","message":"Done","commit_id":"716f1a6e90f9c6b7bcba307076a99b67f1a358d3"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"483ef58b3453b0d0544c073209f187627baaed26","unresolved":false,"context_lines":[{"line_number":44,"context_line":"  * dividing compute nodes into source group and destination group."},{"line_number":45,"context_line":"  For one compute node, if all servers can be migrated to other compute"},{"line_number":46,"context_line":"  node, we put this node to source group, and other nodes to destination"},{"line_number":47,"context_line":"  group. repeating this process untill all compute nodes have been putted"},{"line_number":48,"context_line":"  into source or destination group."},{"line_number":49,"context_line":"  For `continuous` audit, if there is server that had failed during previous"},{"line_number":50,"context_line":"  actionplan, we should put this compute node to destination group."}],"source_content_type":"text/x-rst","patch_set":2,"id":"7faddb67_815edb10","line":47,"range":{"start_line":47,"start_character":67,"end_line":47,"end_character":73},"in_reply_to":"7faddb67_9b976346","updated":"2019-08-31 08:16:58.000000000","message":"Done","commit_id":"716f1a6e90f9c6b7bcba307076a99b67f1a358d3"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"483ef58b3453b0d0544c073209f187627baaed26","unresolved":false,"context_lines":[{"line_number":42,"context_line":"  * caculating the resource used percent of compute noedes"},{"line_number":43,"context_line":"  * sorting compute nodes by the resource used percent"},{"line_number":44,"context_line":"  * dividing compute nodes into source group and destination group."},{"line_number":45,"context_line":"  For one compute node, if all servers can be migrated to other compute"},{"line_number":46,"context_line":"  node, we put this node to source group, and other nodes to destination"},{"line_number":47,"context_line":"  group. repeating this process untill all compute nodes have been putted"},{"line_number":48,"context_line":"  into source or destination group."},{"line_number":49,"context_line":"  For `continuous` audit, if there is server that had failed during previous"},{"line_number":50,"context_line":"  actionplan, we should put this compute node to destination group."}],"source_content_type":"text/x-rst","patch_set":2,"id":"7faddb67_a15bd71f","line":47,"range":{"start_line":45,"start_character":2,"end_line":47,"end_character":72},"in_reply_to":"7faddb67_fb59b78d","updated":"2019-08-31 08:16:58.000000000","message":"Done","commit_id":"716f1a6e90f9c6b7bcba307076a99b67f1a358d3"},{"author":{"_account_id":29911,"name":"Dantali0n","email":"info@dantalion.nl","username":"Dantali0n"},"change_message_id":"afe6b6c0409a4a06c04d612e546048f0591642f7","unresolved":false,"context_lines":[{"line_number":53,"context_line":"    group. repeating this process until all compute nodes are placed in"},{"line_number":54,"context_line":"    the source or destination group."},{"line_number":55,"context_line":"    For `continuous` audit, if there is server that had failed during previous"},{"line_number":56,"context_line":"    actionplan, we should put this compute node to the destination group."},{"line_number":57,"context_line":"  * Creating strategy solution:"},{"line_number":58,"context_line":"    If the parameter `host_choice` is `auto`, creating a migration action for"},{"line_number":59,"context_line":"    each VM in the source group and compute nodes in source should be disabled"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5faad753_b83f8fb2","line":56,"updated":"2019-09-13 06:40:03.000000000","message":"Is this why the new planner is needed? to identify migrations that failed previously.","commit_id":"e634b830228b5eaace9faa7bb6ff622572c8c0fc"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"23be614d7adfd31d85e78cf943a9822d8e76f8ed","unresolved":false,"context_lines":[{"line_number":53,"context_line":"    group. repeating this process until all compute nodes are placed in"},{"line_number":54,"context_line":"    the source or destination group."},{"line_number":55,"context_line":"    For `continuous` audit, if there is server that had failed during previous"},{"line_number":56,"context_line":"    actionplan, we should put this compute node to the destination group."},{"line_number":57,"context_line":"  * Creating strategy solution:"},{"line_number":58,"context_line":"    If the parameter `host_choice` is `auto`, creating a migration action for"},{"line_number":59,"context_line":"    each VM in the source group and compute nodes in source should be disabled"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5faad753_c9cdba31","line":56,"in_reply_to":"5faad753_b83f8fb2","updated":"2019-09-16 02:38:01.000000000","message":"No. The default planner can\u0027t create actions with correct order, so we need a new planner to do it. For example, if there are 3 actions in solution.actions:[change_nova_sevice(disabled),migrate,change_nova_service(enabled)], the default planner will create actions: [change_nova_service(disabled), change_nova_service(enabled),migrate], That\u0027s not what we want.","commit_id":"e634b830228b5eaace9faa7bb6ff622572c8c0fc"},{"author":{"_account_id":29911,"name":"Dantali0n","email":"info@dantalion.nl","username":"Dantali0n"},"change_message_id":"afe6b6c0409a4a06c04d612e546048f0591642f7","unresolved":false,"context_lines":[{"line_number":125,"context_line":""},{"line_number":126,"context_line":"* Add a new parameter `audit` to the method do_execute of strategy."},{"line_number":127,"context_line":"* Add the new strategy."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"Dependencies"},{"line_number":131,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5faad753_1878238e","line":128,"updated":"2019-09-13 06:40:03.000000000","message":"nit: add creating tests to works items.","commit_id":"e634b830228b5eaace9faa7bb6ff622572c8c0fc"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"23be614d7adfd31d85e78cf943a9822d8e76f8ed","unresolved":false,"context_lines":[{"line_number":125,"context_line":""},{"line_number":126,"context_line":"* Add a new parameter `audit` to the method do_execute of strategy."},{"line_number":127,"context_line":"* Add the new strategy."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"Dependencies"},{"line_number":131,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5faad753_e9e1969c","line":128,"in_reply_to":"5faad753_1878238e","updated":"2019-09-16 02:38:01.000000000","message":"unittest and tempest are located section \u0027Testing\u0027.","commit_id":"e634b830228b5eaace9faa7bb6ff622572c8c0fc"}]}
