)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"64f586c9e47f3736a8cf88f2ba97941f1ace8e0f","unresolved":false,"context_lines":[{"line_number":11,"context_line":"This custom strategy bases on linear strategy and allow task with"},{"line_number":12,"context_line":"``not_run_all`` tag can be run same as serial function."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"``serial_ratio`` affects how many hosts will run in a batch."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Co-Authored-By: Ha Manh Dong \u003cdonghm@vn.fujitsu.com\u003e"},{"line_number":17,"context_line":"Change-Id: I4bcfc7ab58ed13e5cdae32396100a76bce28faf6"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"3f79a3b5_d3f2326f","line":14,"updated":"2018-09-20 16:54:41.000000000","message":"There were problems with licensing previously. Could you explain how these have been mitigated in the commit message?","commit_id":"9325f2beba93a2ae6af826939bc95d643cc53de2"}],"ansible/strategy_plugins/not_run_all.py":[{"author":{"_account_id":23717,"name":"Surya Prakash Singh","email":"singh.surya64mnnit@gmail.com","username":"SuryaPrakash"},"change_message_id":"9e3a3fbfe25931d09473b4b874a66f9b7bc8d02d","unresolved":false,"context_lines":[{"line_number":53,"context_line":"                            serial_ratio \u003d float(serial_ratio)"},{"line_number":54,"context_line":"                        else:"},{"line_number":55,"context_line":"                            serial_ratio \u003d 0.5"},{"line_number":56,"context_line":"                    self._batch_size \u003d int(self._original_length * serial_ratio)"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"                    self._original_length \u003d len(host_tasks)"},{"line_number":59,"context_line":"                    self._pending_host \u003d host_tasks[(self._batch_size):]"}],"source_content_type":"text/x-python","patch_set":5,"id":"df3967d1_ba20f1b1","line":56,"range":{"start_line":56,"start_character":19,"end_line":56,"end_character":80},"updated":"2017-08-02 05:18:44.000000000","message":"PEP8 is failing due to this, seems one character is more.","commit_id":"a5e0c002609c0a850babfa5d8b564d13f8c67c3c"},{"author":{"_account_id":23717,"name":"Surya Prakash Singh","email":"singh.surya64mnnit@gmail.com","username":"SuryaPrakash"},"change_message_id":"f3e122afcab1315e38eb0a1875822a32ae01b935","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class StrategyModule(with_metaclass(type, LinearStrategyModule)):"},{"line_number":25,"context_line":"    def __init__(self, tqm):"},{"line_number":26,"context_line":"        super(StrategyModule, self).__init__(tqm)"},{"line_number":27,"context_line":"        self._pending_host \u003d {}"},{"line_number":28,"context_line":"        self._original_length \u003d 0"}],"source_content_type":"text/x-python","patch_set":7,"id":"bf659307_09e01996","line":25,"updated":"2018-03-27 05:16:40.000000000","message":"good to have doc string for the working of the class. Like \"Allowing task as Serial Function Execution\"","commit_id":"3411194a45c9b6101da5dc544942c5e7d09a6db7"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"64f586c9e47f3736a8cf88f2ba97941f1ace8e0f","unresolved":false,"context_lines":[{"line_number":19,"context_line":"plugin: not_run_all"},{"line_number":20,"context_line":"short_description: Plugin for Ansible strategy"},{"line_number":21,"context_line":"description:"},{"line_number":22,"context_line":"     - Allowed task with \u0027not_run_all\u0027 tag can be run same as serial function."},{"line_number":23,"context_line":"     The\u0027serial_ratio\u0027 tag affects how many hosts will run in a batch."},{"line_number":24,"context_line":"options:"},{"line_number":25,"context_line":"  not_run_all:"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f79a3b5_16f978c3","line":22,"range":{"start_line":22,"start_character":39,"end_line":22,"end_character":42},"updated":"2018-09-20 16:54:41.000000000","message":"Current implementation uses variables. Tags would be nicer, if possible.","commit_id":"9325f2beba93a2ae6af826939bc95d643cc53de2"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"64f586c9e47f3736a8cf88f2ba97941f1ace8e0f","unresolved":false,"context_lines":[{"line_number":19,"context_line":"plugin: not_run_all"},{"line_number":20,"context_line":"short_description: Plugin for Ansible strategy"},{"line_number":21,"context_line":"description:"},{"line_number":22,"context_line":"     - Allowed task with \u0027not_run_all\u0027 tag can be run same as serial function."},{"line_number":23,"context_line":"     The\u0027serial_ratio\u0027 tag affects how many hosts will run in a batch."},{"line_number":24,"context_line":"options:"},{"line_number":25,"context_line":"  not_run_all:"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f79a3b5_93e83a7b","line":22,"range":{"start_line":22,"start_character":5,"end_line":22,"end_character":6},"updated":"2018-09-20 16:54:41.000000000","message":"Needs to be deindented.","commit_id":"9325f2beba93a2ae6af826939bc95d643cc53de2"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"64f586c9e47f3736a8cf88f2ba97941f1ace8e0f","unresolved":false,"context_lines":[{"line_number":59,"context_line":"from six import with_metaclass"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"class StrategyModule(with_metaclass(type, LinearStrategyModule)):"},{"line_number":63,"context_line":"    def __init__(self, tqm):"},{"line_number":64,"context_line":"        super(StrategyModule, self).__init__(tqm)"},{"line_number":65,"context_line":"        self._pending_host \u003d {}"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f79a3b5_563610e9","line":62,"updated":"2018-09-20 16:54:41.000000000","message":"This needs some comments.","commit_id":"9325f2beba93a2ae6af826939bc95d643cc53de2"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"64f586c9e47f3736a8cf88f2ba97941f1ace8e0f","unresolved":false,"context_lines":[{"line_number":62,"context_line":"class StrategyModule(with_metaclass(type, LinearStrategyModule)):"},{"line_number":63,"context_line":"    def __init__(self, tqm):"},{"line_number":64,"context_line":"        super(StrategyModule, self).__init__(tqm)"},{"line_number":65,"context_line":"        self._pending_host \u003d {}"},{"line_number":66,"context_line":"        self._original_length \u003d 0"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    def _get_next_task_lockstep(self, hosts, iterator):"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f79a3b5_9626e866","line":65,"updated":"2018-09-20 16:54:41.000000000","message":"this is a list.","commit_id":"9325f2beba93a2ae6af826939bc95d643cc53de2"},{"author":{"_account_id":19779,"name":"Chason Chan","display_name":"chenxing","email":"chason.chan@foxmail.com","username":"chenxing"},"change_message_id":"326e5f4db384cc31e20f596b9701112768794383","unresolved":false,"context_lines":[{"line_number":84,"context_line":"                                      .get(\u0027not_run_all\u0027) is not None:"},{"line_number":85,"context_line":"                    serial_ratio \u003d current_task.get_vars() \\"},{"line_number":86,"context_line":"                                          .get(\u0027serial_ratio\u0027)"},{"line_number":87,"context_line":"                    if serial_ratio is None:"},{"line_number":88,"context_line":"                        serial_ratio \u003d 0.5"},{"line_number":89,"context_line":"                    else:"},{"line_number":90,"context_line":"                        if serial_ratio.isdigit():"},{"line_number":91,"context_line":"                            serial_ratio \u003d float(serial_ratio)"},{"line_number":92,"context_line":"                        else:"},{"line_number":93,"context_line":"                            serial_ratio \u003d 0.5"},{"line_number":94,"context_line":"                    self._batch_size \u003d \\"},{"line_number":95,"context_line":"                        int(self._original_length * serial_ratio)"},{"line_number":96,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"3f79a3b5_0145d06e","line":93,"range":{"start_line":87,"start_character":20,"end_line":93,"end_character":46},"updated":"2018-09-19 16:36:59.000000000","message":"In this case, the \"serial_ratio\" will be set to 0.5 unless it is given a decimal.\nSo we can simplify this code block as:\nif serial_ratio.isdigit():\n    serial_ratio \u003d float(serial_ratio)\nelse:\n    serial_ratio \u003d 0.5","commit_id":"9325f2beba93a2ae6af826939bc95d643cc53de2"},{"author":{"_account_id":22165,"name":"caoyuan","email":"cao.yingjunz@gmail.com","username":"caoyuan"},"change_message_id":"bf70410802e65b82c117009199bde5f87d86a2da","unresolved":false,"context_lines":[{"line_number":84,"context_line":"                                      .get(\u0027not_run_all\u0027) is not None:"},{"line_number":85,"context_line":"                    serial_ratio \u003d current_task.get_vars() \\"},{"line_number":86,"context_line":"                                          .get(\u0027serial_ratio\u0027)"},{"line_number":87,"context_line":"                    if serial_ratio is None:"},{"line_number":88,"context_line":"                        serial_ratio \u003d 0.5"},{"line_number":89,"context_line":"                    else:"},{"line_number":90,"context_line":"                        if serial_ratio.isdigit():"},{"line_number":91,"context_line":"                            serial_ratio \u003d float(serial_ratio)"},{"line_number":92,"context_line":"                        else:"},{"line_number":93,"context_line":"                            serial_ratio \u003d 0.5"},{"line_number":94,"context_line":"                    self._batch_size \u003d \\"},{"line_number":95,"context_line":"                        int(self._original_length * serial_ratio)"},{"line_number":96,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"3f79a3b5_a10f3237","line":93,"range":{"start_line":87,"start_character":20,"end_line":93,"end_character":46},"in_reply_to":"3f79a3b5_0145d06e","updated":"2018-09-20 02:36:59.000000000","message":"I agree with the simplify, but use serial_ratio,isdigit() is not a good idea, because when the serial_ratio is a float such as \u00270.8\u0027, the \u00270.8\u0027.isdigit() is false\nin my opinion\n\nif not serial_ratio:\n    serial_ratio \u003d 0.5\nelse:\n    serial_ratio \u003d float(seral_ratio)","commit_id":"9325f2beba93a2ae6af826939bc95d643cc53de2"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"64f586c9e47f3736a8cf88f2ba97941f1ace8e0f","unresolved":false,"context_lines":[{"line_number":84,"context_line":"                                      .get(\u0027not_run_all\u0027) is not None:"},{"line_number":85,"context_line":"                    serial_ratio \u003d current_task.get_vars() \\"},{"line_number":86,"context_line":"                                          .get(\u0027serial_ratio\u0027)"},{"line_number":87,"context_line":"                    if serial_ratio is None:"},{"line_number":88,"context_line":"                        serial_ratio \u003d 0.5"},{"line_number":89,"context_line":"                    else:"},{"line_number":90,"context_line":"                        if serial_ratio.isdigit():"},{"line_number":91,"context_line":"                            serial_ratio \u003d float(serial_ratio)"},{"line_number":92,"context_line":"                        else:"},{"line_number":93,"context_line":"                            serial_ratio \u003d 0.5"},{"line_number":94,"context_line":"                    self._batch_size \u003d \\"},{"line_number":95,"context_line":"                        int(self._original_length * serial_ratio)"},{"line_number":96,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"3f79a3b5_13a2ea3f","line":93,"range":{"start_line":87,"start_character":20,"end_line":93,"end_character":46},"in_reply_to":"3f79a3b5_a10f3237","updated":"2018-09-20 16:54:41.000000000","message":"try:\n    serial_ratio \u003d float(serial_ratio)\nexcept ValueError:\n    # Handle the error...","commit_id":"9325f2beba93a2ae6af826939bc95d643cc53de2"},{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"977d5d3e69833ba2ec9f91c98f769b47c08340c5","unresolved":false,"context_lines":[{"line_number":20,"context_line":"plugin: not_run_all"},{"line_number":21,"context_line":"short_description: Plugin for Ansible strategy"},{"line_number":22,"context_line":"description:"},{"line_number":23,"context_line":"  - Allowing tasks with \u0027not_run_all\u0027 variable to be \u0027true\u0027 can be run"},{"line_number":24,"context_line":"    same as the serial function. The\u0027serial_ratio\u0027 variable affects"},{"line_number":25,"context_line":"    how many hosts will run in a batch."},{"line_number":26,"context_line":"options:"}],"source_content_type":"text/x-python","patch_set":13,"id":"3f79a3b5_aed7f2bc","line":23,"range":{"start_line":23,"start_character":25,"end_line":23,"end_character":36},"updated":"2018-10-30 10:56:04.000000000","message":"nit: staggered_restart ?","commit_id":"d97d788d9fdc37f99ef23a41383c696871cab43b"},{"author":{"_account_id":28176,"name":"Ha Manh Dong","email":"donghm@omzcloud.vn","username":"donghm"},"change_message_id":"9df43af5a03f4eb17f54e51d43b277f78dc001f5","unresolved":false,"context_lines":[{"line_number":20,"context_line":"plugin: not_run_all"},{"line_number":21,"context_line":"short_description: Plugin for Ansible strategy"},{"line_number":22,"context_line":"description:"},{"line_number":23,"context_line":"  - Allowing tasks with \u0027not_run_all\u0027 variable to be \u0027true\u0027 can be run"},{"line_number":24,"context_line":"    same as the serial function. The\u0027serial_ratio\u0027 variable affects"},{"line_number":25,"context_line":"    how many hosts will run in a batch."},{"line_number":26,"context_line":"options:"}],"source_content_type":"text/x-python","patch_set":13,"id":"3f79a3b5_5ca7d852","line":23,"range":{"start_line":23,"start_character":25,"end_line":23,"end_character":36},"in_reply_to":"3f79a3b5_aed7f2bc","updated":"2018-10-31 15:06:34.000000000","message":"Yeah, thanks for your suggestion. But I think staggered_restart is also not a suitable name, because this strategy can use in any type of task: normal task or meta task. For now I did not found another name to replace it. Can you give me other suggested name, or maybe we should keep this name :)","commit_id":"d97d788d9fdc37f99ef23a41383c696871cab43b"},{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"977d5d3e69833ba2ec9f91c98f769b47c08340c5","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    required: True"},{"line_number":31,"context_line":"    default: false"},{"line_number":32,"context_line":"    type: boolean"},{"line_number":33,"context_line":"  serial_ratio:"},{"line_number":34,"context_line":"    description:"},{"line_number":35,"context_line":"      - Specific how many percent hosts will run in a batch"},{"line_number":36,"context_line":"    default: 0.5"}],"source_content_type":"text/x-python","patch_set":13,"id":"3f79a3b5_6eef9a85","line":33,"range":{"start_line":33,"start_character":2,"end_line":33,"end_character":14},"updated":"2018-10-30 10:56:04.000000000","message":"nit: s/serial_ratio/host_fraction?","commit_id":"d97d788d9fdc37f99ef23a41383c696871cab43b"},{"author":{"_account_id":28176,"name":"Ha Manh Dong","email":"donghm@omzcloud.vn","username":"donghm"},"change_message_id":"9df43af5a03f4eb17f54e51d43b277f78dc001f5","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    required: True"},{"line_number":31,"context_line":"    default: false"},{"line_number":32,"context_line":"    type: boolean"},{"line_number":33,"context_line":"  serial_ratio:"},{"line_number":34,"context_line":"    description:"},{"line_number":35,"context_line":"      - Specific how many percent hosts will run in a batch"},{"line_number":36,"context_line":"    default: 0.5"}],"source_content_type":"text/x-python","patch_set":13,"id":"3f79a3b5_371a3519","line":33,"range":{"start_line":33,"start_character":2,"end_line":33,"end_character":14},"in_reply_to":"3f79a3b5_6eef9a85","updated":"2018-10-31 15:06:34.000000000","message":"Because the not_run_all strategy overridden the linear strategy. So we can also use the serial tag in the not_run_all strategy. In that case, the serial_ratio will be applied to the number of host that was defined by the value of serial tag. But English is not my native language, so please explain to me if the variable name is not suitable, thank you!!!","commit_id":"d97d788d9fdc37f99ef23a41383c696871cab43b"},{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"977d5d3e69833ba2ec9f91c98f769b47c08340c5","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    type: boolean"},{"line_number":33,"context_line":"  serial_ratio:"},{"line_number":34,"context_line":"    description:"},{"line_number":35,"context_line":"      - Specific how many percent hosts will run in a batch"},{"line_number":36,"context_line":"    default: 0.5"},{"line_number":37,"context_line":"    required: False"},{"line_number":38,"context_line":"    type: float"}],"source_content_type":"text/x-python","patch_set":13,"id":"3f79a3b5_0ee2a69c","line":35,"range":{"start_line":35,"start_character":26,"end_line":35,"end_character":33},"updated":"2018-10-30 10:56:04.000000000","message":"nit: Specify the fraction of hosts which will..","commit_id":"d97d788d9fdc37f99ef23a41383c696871cab43b"},{"author":{"_account_id":28176,"name":"Ha Manh Dong","email":"donghm@omzcloud.vn","username":"donghm"},"change_message_id":"9df43af5a03f4eb17f54e51d43b277f78dc001f5","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    type: boolean"},{"line_number":33,"context_line":"  serial_ratio:"},{"line_number":34,"context_line":"    description:"},{"line_number":35,"context_line":"      - Specific how many percent hosts will run in a batch"},{"line_number":36,"context_line":"    default: 0.5"},{"line_number":37,"context_line":"    required: False"},{"line_number":38,"context_line":"    type: float"}],"source_content_type":"text/x-python","patch_set":13,"id":"3f79a3b5_d79e6167","line":35,"range":{"start_line":35,"start_character":26,"end_line":35,"end_character":33},"in_reply_to":"3f79a3b5_0ee2a69c","updated":"2018-10-31 15:06:34.000000000","message":"Yeah, agreed, thank you.","commit_id":"d97d788d9fdc37f99ef23a41383c696871cab43b"},{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"977d5d3e69833ba2ec9f91c98f769b47c08340c5","unresolved":false,"context_lines":[{"line_number":79,"context_line":"            host_tasks \u003d super(StrategyModule, self) \\"},{"line_number":80,"context_line":"                ._get_next_task_lockstep(hosts, iterator)"},{"line_number":81,"context_line":"            self._original_length \u003d len(host_tasks)"},{"line_number":82,"context_line":"            if len(host_tasks) \u003e 0:"},{"line_number":83,"context_line":"                host, cur_task \u003d host_tasks[0]"},{"line_number":84,"context_line":"                rvals \u003d host_tasks"},{"line_number":85,"context_line":"                if cur_task:"}],"source_content_type":"text/x-python","patch_set":13,"id":"3f79a3b5_ae85b2ac","line":82,"range":{"start_line":82,"start_character":12,"end_line":82,"end_character":35},"updated":"2018-10-30 10:56:04.000000000","message":"nit: return here if len(host_tasks) \u003d\u003d 0 to reduce nesting?","commit_id":"d97d788d9fdc37f99ef23a41383c696871cab43b"},{"author":{"_account_id":28176,"name":"Ha Manh Dong","email":"donghm@omzcloud.vn","username":"donghm"},"change_message_id":"9df43af5a03f4eb17f54e51d43b277f78dc001f5","unresolved":false,"context_lines":[{"line_number":79,"context_line":"            host_tasks \u003d super(StrategyModule, self) \\"},{"line_number":80,"context_line":"                ._get_next_task_lockstep(hosts, iterator)"},{"line_number":81,"context_line":"            self._original_length \u003d len(host_tasks)"},{"line_number":82,"context_line":"            if len(host_tasks) \u003e 0:"},{"line_number":83,"context_line":"                host, cur_task \u003d host_tasks[0]"},{"line_number":84,"context_line":"                rvals \u003d host_tasks"},{"line_number":85,"context_line":"                if cur_task:"}],"source_content_type":"text/x-python","patch_set":13,"id":"3f79a3b5_72a3dbb1","line":82,"range":{"start_line":82,"start_character":12,"end_line":82,"end_character":35},"in_reply_to":"3f79a3b5_ae85b2ac","updated":"2018-10-31 15:06:34.000000000","message":"I don\u0027t think we need it because if len(host_tasks) \u003d\u003d 0, it will jump to the return at line 110.","commit_id":"d97d788d9fdc37f99ef23a41383c696871cab43b"},{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"977d5d3e69833ba2ec9f91c98f769b47c08340c5","unresolved":false,"context_lines":[{"line_number":83,"context_line":"                host, cur_task \u003d host_tasks[0]"},{"line_number":84,"context_line":"                rvals \u003d host_tasks"},{"line_number":85,"context_line":"                if cur_task:"},{"line_number":86,"context_line":"                    not_run_all \u003d cur_task.get_vars().get(\u0027not_run_all\u0027)"},{"line_number":87,"context_line":"                    task_vars \u003d self._variable_manager.get_vars("},{"line_number":88,"context_line":"                        play\u003diterator._play,"},{"line_number":89,"context_line":"                        host\u003dhost,"}],"source_content_type":"text/x-python","patch_set":13,"id":"3f79a3b5_8ea31644","line":86,"range":{"start_line":86,"start_character":57,"end_line":86,"end_character":59},"updated":"2018-10-30 10:56:04.000000000","message":"Could you remove not_run_all and simply check if serial_ratio is set?","commit_id":"d97d788d9fdc37f99ef23a41383c696871cab43b"},{"author":{"_account_id":28176,"name":"Ha Manh Dong","email":"donghm@omzcloud.vn","username":"donghm"},"change_message_id":"9df43af5a03f4eb17f54e51d43b277f78dc001f5","unresolved":false,"context_lines":[{"line_number":83,"context_line":"                host, cur_task \u003d host_tasks[0]"},{"line_number":84,"context_line":"                rvals \u003d host_tasks"},{"line_number":85,"context_line":"                if cur_task:"},{"line_number":86,"context_line":"                    not_run_all \u003d cur_task.get_vars().get(\u0027not_run_all\u0027)"},{"line_number":87,"context_line":"                    task_vars \u003d self._variable_manager.get_vars("},{"line_number":88,"context_line":"                        play\u003diterator._play,"},{"line_number":89,"context_line":"                        host\u003dhost,"}],"source_content_type":"text/x-python","patch_set":13,"id":"3f79a3b5_b89dd5bb","line":86,"range":{"start_line":86,"start_character":57,"end_line":86,"end_character":59},"in_reply_to":"3f79a3b5_8ea31644","updated":"2018-10-31 15:06:34.000000000","message":"Yeah, great suggestion. Formerly, I want to clear about the role of each variable. The not_run_all variable is for mark the task that will use this strategy and serial_ratio is for the fraction of hosts. \n\nWith your suggestion, I think I can use only serial_ratio. When serial_ratio is set to -1, the task will not be applied this strategy.","commit_id":"d97d788d9fdc37f99ef23a41383c696871cab43b"},{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"977d5d3e69833ba2ec9f91c98f769b47c08340c5","unresolved":false,"context_lines":[{"line_number":99,"context_line":"                        self._batch_size \u003d \\"},{"line_number":100,"context_line":"                            int(self._original_length * serial_ratio)"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"                        # ensure the task will run on at lead one host"},{"line_number":103,"context_line":"                        # in case the serial_ratio is too small"},{"line_number":104,"context_line":"                        if self._batch_size \u003d\u003d 0:"},{"line_number":105,"context_line":"                            self._batch_size \u003d 1"}],"source_content_type":"text/x-python","patch_set":13,"id":"3f79a3b5_4e489e88","line":102,"range":{"start_line":102,"start_character":57,"end_line":102,"end_character":61},"updated":"2018-10-30 10:56:04.000000000","message":"s/lead/least","commit_id":"d97d788d9fdc37f99ef23a41383c696871cab43b"},{"author":{"_account_id":28176,"name":"Ha Manh Dong","email":"donghm@omzcloud.vn","username":"donghm"},"change_message_id":"9df43af5a03f4eb17f54e51d43b277f78dc001f5","unresolved":false,"context_lines":[{"line_number":99,"context_line":"                        self._batch_size \u003d \\"},{"line_number":100,"context_line":"                            int(self._original_length * serial_ratio)"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"                        # ensure the task will run on at lead one host"},{"line_number":103,"context_line":"                        # in case the serial_ratio is too small"},{"line_number":104,"context_line":"                        if self._batch_size \u003d\u003d 0:"},{"line_number":105,"context_line":"                            self._batch_size \u003d 1"}],"source_content_type":"text/x-python","patch_set":13,"id":"3f79a3b5_574b31b1","line":102,"range":{"start_line":102,"start_character":57,"end_line":102,"end_character":61},"in_reply_to":"3f79a3b5_4e489e88","updated":"2018-10-31 15:06:34.000000000","message":"Done","commit_id":"d97d788d9fdc37f99ef23a41383c696871cab43b"},{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"977d5d3e69833ba2ec9f91c98f769b47c08340c5","unresolved":false,"context_lines":[{"line_number":131,"context_line":"                    templar \u003d Templar(loader\u003dself._loader, variables\u003dtask_vars)"},{"line_number":132,"context_line":"                    if str(templar.template(not_run_all)).lower() \u003d\u003d \u0027true\u0027:"},{"line_number":133,"context_line":"                        serial_ratio \u003d templar.template("},{"line_number":134,"context_line":"                            handler.get_vars().get(\u0027serial_ratio\u0027))"},{"line_number":135,"context_line":"                        if serial_ratio is None:"},{"line_number":136,"context_line":"                            serial_ratio \u003d 0.5"},{"line_number":137,"context_line":"                        else:"}],"source_content_type":"text/x-python","patch_set":13,"id":"3f79a3b5_ce202eb4","line":134,"range":{"start_line":134,"start_character":0,"end_line":134,"end_character":28},"updated":"2018-10-30 10:56:04.000000000","message":"There is a lot of logic in common with the other method, can we factor it out?","commit_id":"d97d788d9fdc37f99ef23a41383c696871cab43b"}]}
