)]}'
{"doc/specs/in-progress/hook_section.rst":[{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"1f564a2f9f86c149ce610678f0540d3ee369d853","unresolved":false,"context_lines":[{"line_number":11,"context_line":"Problem description"},{"line_number":12,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Rally lacks of plugin type that would run some code on specified iteration."},{"line_number":15,"context_line":"New plugin type is required for reliability testing of OpenStack. This type of"},{"line_number":16,"context_line":"plugin would give an ability to activate factors on some iteration and provide"},{"line_number":17,"context_line":"timestamps and some info about executed actions to rally report."}],"source_content_type":"text/x-rst","patch_set":4,"id":"9ad45d7e_1cc7a146","line":14,"range":{"start_line":14,"start_character":6,"end_line":14,"end_character":21},"updated":"2016-08-08 11:20:26.000000000","message":"It looks like it should be \u0027lacks a plugin type\u0027.","commit_id":"7a58203802779e6cef9fa8ffe64b11be717cf966"},{"author":{"_account_id":19011,"name":"Anton Studenov","email":"tohin1332@gmail.com","username":"tohin"},"change_message_id":"173400c929168317cf571a4c5824af06ef2e2013","unresolved":false,"context_lines":[{"line_number":11,"context_line":"Problem description"},{"line_number":12,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Rally lacks of plugin type that would run some code on specified iteration."},{"line_number":15,"context_line":"New plugin type is required for reliability testing of OpenStack. This type of"},{"line_number":16,"context_line":"plugin would give an ability to activate factors on some iteration and provide"},{"line_number":17,"context_line":"timestamps and some info about executed actions to rally report."}],"source_content_type":"text/x-rst","patch_set":4,"id":"9ad45d7e_9900b9ac","line":14,"range":{"start_line":14,"start_character":6,"end_line":14,"end_character":21},"in_reply_to":"9ad45d7e_1cc7a146","updated":"2016-08-08 14:40:19.000000000","message":"Done","commit_id":"7a58203802779e6cef9fa8ffe64b11be717cf966"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"0ab4f825ca81992ec9a69f58a20d462310cb7910","unresolved":false,"context_lines":[{"line_number":40,"context_line":"                        \"20\": [               # iteration number"},{"line_number":41,"context_line":"                            {"},{"line_number":42,"context_line":"                                \"example_hook\": {"},{"line_number":43,"context_line":"                                    \"cmd\": \"bash enable_factor_1\""},{"line_number":44,"context_line":"                                }"},{"line_number":45,"context_line":"                            },"},{"line_number":46,"context_line":"                            {"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9ad45d7e_21ad2232","line":43,"updated":"2016-08-08 11:05:47.000000000","message":"Please clarify whether \"cmd\" is the only possible key","commit_id":"7a58203802779e6cef9fa8ffe64b11be717cf966"},{"author":{"_account_id":19011,"name":"Anton Studenov","email":"tohin1332@gmail.com","username":"tohin"},"change_message_id":"173400c929168317cf571a4c5824af06ef2e2013","unresolved":false,"context_lines":[{"line_number":40,"context_line":"                        \"20\": [               # iteration number"},{"line_number":41,"context_line":"                            {"},{"line_number":42,"context_line":"                                \"example_hook\": {"},{"line_number":43,"context_line":"                                    \"cmd\": \"bash enable_factor_1\""},{"line_number":44,"context_line":"                                }"},{"line_number":45,"context_line":"                            },"},{"line_number":46,"context_line":"                            {"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9ad45d7e_0440e755","line":43,"in_reply_to":"9ad45d7e_21ad2232","updated":"2016-08-08 14:40:19.000000000","message":"No, \"cmd\" is an example field. Each hook plugin provides a schema for its configuration","commit_id":"7a58203802779e6cef9fa8ffe64b11be717cf966"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"0ab4f825ca81992ec9a69f58a20d462310cb7910","unresolved":false,"context_lines":[{"line_number":79,"context_line":"        .. code:: json"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"            {"},{"line_number":82,"context_line":"               \"action_name\": \"my_action\","},{"line_number":83,"context_line":"               \"status\": \"success\""},{"line_number":84,"context_line":"            }"},{"line_number":85,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9ad45d7e_16514263","line":82,"updated":"2016-08-08 11:05:47.000000000","message":"let\u0027s name this just \"action\"","commit_id":"7a58203802779e6cef9fa8ffe64b11be717cf966"},{"author":{"_account_id":19011,"name":"Anton Studenov","email":"tohin1332@gmail.com","username":"tohin"},"change_message_id":"173400c929168317cf571a4c5824af06ef2e2013","unresolved":false,"context_lines":[{"line_number":79,"context_line":"        .. code:: json"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"            {"},{"line_number":82,"context_line":"               \"action_name\": \"my_action\","},{"line_number":83,"context_line":"               \"status\": \"success\""},{"line_number":84,"context_line":"            }"},{"line_number":85,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9ad45d7e_991719ed","line":82,"in_reply_to":"9ad45d7e_16514263","updated":"2016-08-08 14:40:19.000000000","message":"Done","commit_id":"7a58203802779e6cef9fa8ffe64b11be717cf966"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"0ab4f825ca81992ec9a69f58a20d462310cb7910","unresolved":false,"context_lines":[{"line_number":80,"context_line":""},{"line_number":81,"context_line":"            {"},{"line_number":82,"context_line":"               \"action_name\": \"my_action\","},{"line_number":83,"context_line":"               \"status\": \"success\""},{"line_number":84,"context_line":"            }"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9ad45d7e_363f2627","line":83,"updated":"2016-08-08 11:05:47.000000000","message":"I would recommend to have status value boolean instead of str - this is more convenient to immediately work with boolean in the code instead of making checks like \u0027status \u003d\u003d \"success\"\u0027","commit_id":"7a58203802779e6cef9fa8ffe64b11be717cf966"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"ad71e1b4c254dfe2f44bf73dd38b347dec9e86b0","unresolved":false,"context_lines":[{"line_number":80,"context_line":""},{"line_number":81,"context_line":"            {"},{"line_number":82,"context_line":"               \"action_name\": \"my_action\","},{"line_number":83,"context_line":"               \"status\": \"success\""},{"line_number":84,"context_line":"            }"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9ad45d7e_d02b2d32","line":83,"in_reply_to":"9ad45d7e_363f2627","updated":"2016-08-08 11:26:06.000000000","message":"Earlier it was \u0027success\u0027: True, but Andrey Kurilin asked Anton to change it to \u0027status\u0027: \u0027success\u0027 since theoretically we can have more than 2 statuses (success, failed, aborted).","commit_id":"7a58203802779e6cef9fa8ffe64b11be717cf966"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"d0ec73d77a1357b35726c16818e79a402da65802","unresolved":false,"context_lines":[{"line_number":80,"context_line":""},{"line_number":81,"context_line":"            {"},{"line_number":82,"context_line":"               \"action_name\": \"my_action\","},{"line_number":83,"context_line":"               \"status\": \"success\""},{"line_number":84,"context_line":"            }"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9ad45d7e_09b000dd","line":83,"in_reply_to":"9ad45d7e_d02b2d32","updated":"2016-08-08 12:22:00.000000000","message":"Okay, clarified","commit_id":"7a58203802779e6cef9fa8ffe64b11be717cf966"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"1f564a2f9f86c149ce610678f0540d3ee369d853","unresolved":false,"context_lines":[{"line_number":94,"context_line":"        .. code:: json"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"            {"},{"line_number":97,"context_line":"                \"hook_name\": \"example_hook\","},{"line_number":98,"context_line":"                \"iteration_number\": 20,"},{"line_number":99,"context_line":"                \"started_at\": 1470331269.134323,"},{"line_number":100,"context_line":"                \"finished_at\": 1470331319.761103,"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9ad45d7e_10578503","line":97,"range":{"start_line":97,"start_character":17,"end_line":97,"end_character":26},"updated":"2016-08-08 11:20:26.000000000","message":"According to Alexander\u0027s comment below maybe we should change it to \u0027hook\u0027.","commit_id":"7a58203802779e6cef9fa8ffe64b11be717cf966"},{"author":{"_account_id":19011,"name":"Anton Studenov","email":"tohin1332@gmail.com","username":"tohin"},"change_message_id":"173400c929168317cf571a4c5824af06ef2e2013","unresolved":false,"context_lines":[{"line_number":94,"context_line":"        .. code:: json"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"            {"},{"line_number":97,"context_line":"                \"hook_name\": \"example_hook\","},{"line_number":98,"context_line":"                \"iteration_number\": 20,"},{"line_number":99,"context_line":"                \"started_at\": 1470331269.134323,"},{"line_number":100,"context_line":"                \"finished_at\": 1470331319.761103,"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9ad45d7e_79cea584","line":97,"range":{"start_line":97,"start_character":17,"end_line":97,"end_character":26},"in_reply_to":"9ad45d7e_10578503","updated":"2016-08-08 14:40:19.000000000","message":"Done","commit_id":"7a58203802779e6cef9fa8ffe64b11be717cf966"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"0ab4f825ca81992ec9a69f58a20d462310cb7910","unresolved":false,"context_lines":[{"line_number":95,"context_line":""},{"line_number":96,"context_line":"            {"},{"line_number":97,"context_line":"                \"hook_name\": \"example_hook\","},{"line_number":98,"context_line":"                \"iteration_number\": 20,"},{"line_number":99,"context_line":"                \"started_at\": 1470331269.134323,"},{"line_number":100,"context_line":"                \"finished_at\": 1470331319.761103,"},{"line_number":101,"context_line":"                \"action_name\": \"my action\","}],"source_content_type":"text/x-rst","patch_set":4,"id":"9ad45d7e_967d32ea","line":98,"updated":"2016-08-08 11:05:47.000000000","message":"let\u0027s simplify this s/iteration_number/iteration/","commit_id":"7a58203802779e6cef9fa8ffe64b11be717cf966"},{"author":{"_account_id":19011,"name":"Anton Studenov","email":"tohin1332@gmail.com","username":"tohin"},"change_message_id":"173400c929168317cf571a4c5824af06ef2e2013","unresolved":false,"context_lines":[{"line_number":95,"context_line":""},{"line_number":96,"context_line":"            {"},{"line_number":97,"context_line":"                \"hook_name\": \"example_hook\","},{"line_number":98,"context_line":"                \"iteration_number\": 20,"},{"line_number":99,"context_line":"                \"started_at\": 1470331269.134323,"},{"line_number":100,"context_line":"                \"finished_at\": 1470331319.761103,"},{"line_number":101,"context_line":"                \"action_name\": \"my action\","}],"source_content_type":"text/x-rst","patch_set":4,"id":"9ad45d7e_39ab8d8b","line":98,"in_reply_to":"9ad45d7e_967d32ea","updated":"2016-08-08 14:40:19.000000000","message":"Done","commit_id":"7a58203802779e6cef9fa8ffe64b11be717cf966"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"0ab4f825ca81992ec9a69f58a20d462310cb7910","unresolved":false,"context_lines":[{"line_number":98,"context_line":"                \"iteration_number\": 20,"},{"line_number":99,"context_line":"                \"started_at\": 1470331269.134323,"},{"line_number":100,"context_line":"                \"finished_at\": 1470331319.761103,"},{"line_number":101,"context_line":"                \"action_name\": \"my action\","},{"line_number":102,"context_line":"                \"status\": \"success\","},{"line_number":103,"context_line":"            }"},{"line_number":104,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9ad45d7e_b65f9674","line":101,"updated":"2016-08-08 11:05:47.000000000","message":"let\u0027s name this just \"action\"","commit_id":"7a58203802779e6cef9fa8ffe64b11be717cf966"},{"author":{"_account_id":19011,"name":"Anton Studenov","email":"tohin1332@gmail.com","username":"tohin"},"change_message_id":"173400c929168317cf571a4c5824af06ef2e2013","unresolved":false,"context_lines":[{"line_number":98,"context_line":"                \"iteration_number\": 20,"},{"line_number":99,"context_line":"                \"started_at\": 1470331269.134323,"},{"line_number":100,"context_line":"                \"finished_at\": 1470331319.761103,"},{"line_number":101,"context_line":"                \"action_name\": \"my action\","},{"line_number":102,"context_line":"                \"status\": \"success\","},{"line_number":103,"context_line":"            }"},{"line_number":104,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9ad45d7e_b9adbd8a","line":101,"in_reply_to":"9ad45d7e_b65f9674","updated":"2016-08-08 14:40:19.000000000","message":"Done","commit_id":"7a58203802779e6cef9fa8ffe64b11be717cf966"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"0ab4f825ca81992ec9a69f58a20d462310cb7910","unresolved":false,"context_lines":[{"line_number":99,"context_line":"                \"started_at\": 1470331269.134323,"},{"line_number":100,"context_line":"                \"finished_at\": 1470331319.761103,"},{"line_number":101,"context_line":"                \"action_name\": \"my action\","},{"line_number":102,"context_line":"                \"status\": \"success\","},{"line_number":103,"context_line":"            }"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"Modify ResultConsumer, that should:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9ad45d7e_9616d2a5","line":102,"updated":"2016-08-08 11:05:47.000000000","message":"same here - boolean value looks better","commit_id":"7a58203802779e6cef9fa8ffe64b11be717cf966"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"d0ec73d77a1357b35726c16818e79a402da65802","unresolved":false,"context_lines":[{"line_number":99,"context_line":"                \"started_at\": 1470331269.134323,"},{"line_number":100,"context_line":"                \"finished_at\": 1470331319.761103,"},{"line_number":101,"context_line":"                \"action_name\": \"my action\","},{"line_number":102,"context_line":"                \"status\": \"success\","},{"line_number":103,"context_line":"            }"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"Modify ResultConsumer, that should:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9ad45d7e_29c7c446","line":102,"in_reply_to":"9ad45d7e_9616d2a5","updated":"2016-08-08 12:22:00.000000000","message":"Clarified above","commit_id":"7a58203802779e6cef9fa8ffe64b11be717cf966"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"0ab4f825ca81992ec9a69f58a20d462310cb7910","unresolved":false,"context_lines":[{"line_number":100,"context_line":"                \"finished_at\": 1470331319.761103,"},{"line_number":101,"context_line":"                \"action_name\": \"my action\","},{"line_number":102,"context_line":"                \"status\": \"success\","},{"line_number":103,"context_line":"            }"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"Modify ResultConsumer, that should:"},{"line_number":106,"context_line":"    - controll HookExecuter and provide info about iterations"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9ad45d7e_1cc16181","line":103,"updated":"2016-08-08 11:05:47.000000000","message":"Let\u0027s consider about additional (optional) keys:\n\n* error (if any) information, like message and return code. I propose \"error\" key identical to iteration results https://github.com/openstack/rally/blob/master/rally/common/objects/task.py#L147-L149\n* data which can render charts in HTML report (why not? these hooks customizes scenarios in a cool way, so let\u0027s allow them to return more data than just a duration and success/failure status). I propose key \"output\", everything identical to iteration results https://github.com/openstack/rally/blob/master/rally/common/objects/task.py#L167 - we could add this charts support later.","commit_id":"7a58203802779e6cef9fa8ffe64b11be717cf966"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"0ab4f825ca81992ec9a69f58a20d462310cb7910","unresolved":false,"context_lines":[{"line_number":114,"context_line":"    @six.add_metaclass(abc.ABCMeta)"},{"line_number":115,"context_line":"    class Hook(plugin.Plugin):"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"        @staticmethod"},{"line_number":118,"context_line":"        def validate(config):"},{"line_number":119,"context_line":"            # schema validation"},{"line_number":120,"context_line":"            pass"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9ad45d7e_a1bab2be","line":117,"updated":"2016-08-08 11:05:47.000000000","message":"@classmethod (need access to cls.CONFIG_SCHEMA)","commit_id":"7a58203802779e6cef9fa8ffe64b11be717cf966"},{"author":{"_account_id":19011,"name":"Anton Studenov","email":"tohin1332@gmail.com","username":"tohin"},"change_message_id":"173400c929168317cf571a4c5824af06ef2e2013","unresolved":false,"context_lines":[{"line_number":114,"context_line":"    @six.add_metaclass(abc.ABCMeta)"},{"line_number":115,"context_line":"    class Hook(plugin.Plugin):"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"        @staticmethod"},{"line_number":118,"context_line":"        def validate(config):"},{"line_number":119,"context_line":"            # schema validation"},{"line_number":120,"context_line":"            pass"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9ad45d7e_b9dbfd1a","line":117,"in_reply_to":"9ad45d7e_a1bab2be","updated":"2016-08-08 14:40:19.000000000","message":"Done","commit_id":"7a58203802779e6cef9fa8ffe64b11be717cf966"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"0ab4f825ca81992ec9a69f58a20d462310cb7910","unresolved":false,"context_lines":[{"line_number":120,"context_line":"            pass"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"        def __init__(self, criterion_value):"},{"line_number":123,"context_line":"            self.criterion_value \u003d criterion_value"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"        @abc.abstractmethod"},{"line_number":126,"context_line":"        def run(self):"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9ad45d7e_e1a30a4e","line":123,"updated":"2016-08-08 11:05:47.000000000","message":"criterion_value? Maybe `command\u0027 or even **kwargs ?","commit_id":"7a58203802779e6cef9fa8ffe64b11be717cf966"},{"author":{"_account_id":19011,"name":"Anton Studenov","email":"tohin1332@gmail.com","username":"tohin"},"change_message_id":"173400c929168317cf571a4c5824af06ef2e2013","unresolved":false,"context_lines":[{"line_number":120,"context_line":"            pass"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"        def __init__(self, criterion_value):"},{"line_number":123,"context_line":"            self.criterion_value \u003d criterion_value"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"        @abc.abstractmethod"},{"line_number":126,"context_line":"        def run(self):"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9ad45d7e_d9ba31c0","line":123,"in_reply_to":"9ad45d7e_e1a30a4e","updated":"2016-08-08 14:40:19.000000000","message":"renamed to config","commit_id":"7a58203802779e6cef9fa8ffe64b11be717cf966"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"0ab4f825ca81992ec9a69f58a20d462310cb7910","unresolved":false,"context_lines":[{"line_number":148,"context_line":"        }"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"        def __init__(self, criterion_value):"},{"line_number":151,"context_line":"            super(ExampleHook, self).__init__(criterion_value)"},{"line_number":152,"context_line":"            self.cmd \u003d self.criterion_value[\"cmd\"]"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"        def run(self):"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9ad45d7e_01445e72","line":151,"updated":"2016-08-08 11:05:47.000000000","message":"`criterion_value\u0027 is not a good argument name","commit_id":"7a58203802779e6cef9fa8ffe64b11be717cf966"},{"author":{"_account_id":19011,"name":"Anton Studenov","email":"tohin1332@gmail.com","username":"tohin"},"change_message_id":"173400c929168317cf571a4c5824af06ef2e2013","unresolved":false,"context_lines":[{"line_number":148,"context_line":"        }"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"        def __init__(self, criterion_value):"},{"line_number":151,"context_line":"            super(ExampleHook, self).__init__(criterion_value)"},{"line_number":152,"context_line":"            self.cmd \u003d self.criterion_value[\"cmd\"]"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"        def run(self):"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9ad45d7e_f930d509","line":151,"in_reply_to":"9ad45d7e_01445e72","updated":"2016-08-08 14:40:19.000000000","message":"renamed to config","commit_id":"7a58203802779e6cef9fa8ffe64b11be717cf966"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"0ab4f825ca81992ec9a69f58a20d462310cb7910","unresolved":false,"context_lines":[{"line_number":157,"context_line":""},{"line_number":158,"context_line":"            return {"},{"line_number":159,"context_line":"                \"action_name\": \"my action\","},{"line_number":160,"context_line":"                \"status\": \"success\","},{"line_number":161,"context_line":"            }"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9ad45d7e_a11c7278","line":160,"updated":"2016-08-08 11:05:47.000000000","message":"Even if this is an example, status should be obtained from L156","commit_id":"7a58203802779e6cef9fa8ffe64b11be717cf966"},{"author":{"_account_id":19011,"name":"Anton Studenov","email":"tohin1332@gmail.com","username":"tohin"},"change_message_id":"173400c929168317cf571a4c5824af06ef2e2013","unresolved":false,"context_lines":[{"line_number":157,"context_line":""},{"line_number":158,"context_line":"            return {"},{"line_number":159,"context_line":"                \"action_name\": \"my action\","},{"line_number":160,"context_line":"                \"status\": \"success\","},{"line_number":161,"context_line":"            }"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9ad45d7e_792505c1","line":160,"in_reply_to":"9ad45d7e_a11c7278","updated":"2016-08-08 14:40:19.000000000","message":"Done","commit_id":"7a58203802779e6cef9fa8ffe64b11be717cf966"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"c188952c9ca71496c6fe4fd5653bfed065bcd240","unresolved":false,"context_lines":[{"line_number":36,"context_line":"                    \"concurrency\": 10"},{"line_number":37,"context_line":"                },"},{"line_number":38,"context_line":"                \"hook\": {                     # new section"},{"line_number":39,"context_line":"                    \"iterations\": {"},{"line_number":40,"context_line":"                        \"20\": [               # iteration number"},{"line_number":41,"context_line":"                            {"},{"line_number":42,"context_line":"                                \"example_hook\": {"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3ac371cc_d7778ad2","line":39,"range":{"start_line":39,"start_character":21,"end_line":39,"end_character":31},"updated":"2016-08-15 13:59:44.000000000","message":"Guys, there is an idea to extend the config in the following way: add subsections \u0027serial\u0027 and \u0027periodic\u0027 under \u0027iterations\u0027 section.\n\nSomething like this http://paste.openstack.org/show/557576/\n\nWhat do you think about it?","commit_id":"e357e0f07c3d4987256b605ab08d0cb870ae2152"},{"author":{"_account_id":14168,"name":"Alexandr Nevenchannyy","email":"anevenchannyy@mirantis.com","username":"anevenchannyy"},"change_message_id":"5db988bde077aa62a4bd8208b5a45f152e259540","unresolved":false,"context_lines":[{"line_number":36,"context_line":"                    \"concurrency\": 10"},{"line_number":37,"context_line":"                },"},{"line_number":38,"context_line":"                \"hook\": {                     # new section"},{"line_number":39,"context_line":"                    \"iterations\": {"},{"line_number":40,"context_line":"                        \"20\": [               # iteration number"},{"line_number":41,"context_line":"                            {"},{"line_number":42,"context_line":"                                \"example_hook\": {"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3ac371cc_7db957e9","line":39,"range":{"start_line":39,"start_character":21,"end_line":39,"end_character":31},"in_reply_to":"3ac371cc_d7778ad2","updated":"2016-08-15 14:14:22.000000000","message":"+1 periodic running is really needed for us","commit_id":"e357e0f07c3d4987256b605ab08d0cb870ae2152"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"9d8fed1ff977e939b67c55d180ba09ad2763d4a3","unresolved":false,"context_lines":[{"line_number":36,"context_line":"                    \"concurrency\": 10"},{"line_number":37,"context_line":"                },"},{"line_number":38,"context_line":"                \"hook\": {                     # new section"},{"line_number":39,"context_line":"                    \"iterations\": {"},{"line_number":40,"context_line":"                        \"20\": [               # iteration number"},{"line_number":41,"context_line":"                            {"},{"line_number":42,"context_line":"                                \"example_hook\": {"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3ac371cc_e3e4853c","line":39,"range":{"start_line":39,"start_character":21,"end_line":39,"end_character":31},"in_reply_to":"3ac371cc_d7778ad2","updated":"2016-08-15 15:21:17.000000000","message":"I think it is reasonable to add hook for periodic iterations however I would like different structure:\n\n1. keep explicitly specified iterations numbers on their place (do not use \"serial\" level)\n\n2. use optional \"periodic\" (or \"each\") key for periodic hooks - it is not clashed with explicitly given iterations since they are numbers only\n\nAs result, the structure is simpler:\n\n \"hook\": {\n   \"iterations\": {\n     \"20\": [ ... ],\n     \"40\": [ ... ],\n     \"each\": {\n       \"10\": [ ... ]  # run on each 10th iteration\n     }\n   }\n }","commit_id":"e357e0f07c3d4987256b605ab08d0cb870ae2152"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"7ba6f286d1d4aa01dc33d457641f04fc1609d8c0","unresolved":false,"context_lines":[{"line_number":36,"context_line":"                    \"concurrency\": 10"},{"line_number":37,"context_line":"                },"},{"line_number":38,"context_line":"                \"hook\": {                     # new section"},{"line_number":39,"context_line":"                    \"iterations\": {"},{"line_number":40,"context_line":"                        \"20\": [               # iteration number"},{"line_number":41,"context_line":"                            {"},{"line_number":42,"context_line":"                                \"example_hook\": {"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3ac371cc_03e601b4","line":39,"range":{"start_line":39,"start_character":21,"end_line":39,"end_character":31},"in_reply_to":"3ac371cc_e3e4853c","updated":"2016-08-15 15:27:43.000000000","message":"Ok, LGTM. Only I would prefer to use \"periodic\" instead of \"each\".","commit_id":"e357e0f07c3d4987256b605ab08d0cb870ae2152"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"202bd0bdd0f36671286f5eb577aa4ee364a17b09","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Rally lacks a plugin type that would run some code on specified iteration."},{"line_number":15,"context_line":"New plugin type is required for reliability testing of OpenStack. This type of"},{"line_number":16,"context_line":"plugin would give an ability to activate factors on some iteration and provide"},{"line_number":17,"context_line":"timestamps and some info about executed actions to rally report."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Proposed change"},{"line_number":20,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3ac371cc_d905cac2","line":17,"range":{"start_line":16,"start_character":71,"end_line":17,"end_character":64},"updated":"2016-08-16 11:45:39.000000000","message":"As far as I remember, sla was used as workaround for hooks. It means that all obtained data was displayed there. And now we need to add one more block in html reports(there is no information about it in the spec). Should it be like SLA(text block) or combined(text+graphs)?\n\n@amaretskiy Any ideas?","commit_id":"2e471d40a8d37212b585bf00bf72c840921cc6df"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"edd721c86788ba10cef39e440dc483cc60d2b44e","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Rally lacks a plugin type that would run some code on specified iteration."},{"line_number":15,"context_line":"New plugin type is required for reliability testing of OpenStack. This type of"},{"line_number":16,"context_line":"plugin would give an ability to activate factors on some iteration and provide"},{"line_number":17,"context_line":"timestamps and some info about executed actions to rally report."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Proposed change"},{"line_number":20,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3ac371cc_cf2b3cea","line":17,"range":{"start_line":16,"start_character":71,"end_line":17,"end_character":64},"in_reply_to":"3ac371cc_2f0f702f","updated":"2016-08-16 12:22:14.000000000","message":"@Andrey, I\u0027m ready to start working under report part, however I\u0027m not sure that this work should be started before we have hooks implemented.\n\nReport is not blocked - we can add arbitrary widgets and display any data in report.\n\nI\u0027m in doubts whether report part should be described in this spec, maybe it should be discussed later","commit_id":"2e471d40a8d37212b585bf00bf72c840921cc6df"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"b5e90b19ab374366c4e4831203cfc4e24f5e292e","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Rally lacks a plugin type that would run some code on specified iteration."},{"line_number":15,"context_line":"New plugin type is required for reliability testing of OpenStack. This type of"},{"line_number":16,"context_line":"plugin would give an ability to activate factors on some iteration and provide"},{"line_number":17,"context_line":"timestamps and some info about executed actions to rally report."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Proposed change"},{"line_number":20,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3ac371cc_2f0f702f","line":17,"range":{"start_line":16,"start_character":71,"end_line":17,"end_character":64},"in_reply_to":"3ac371cc_d4ff4fff","updated":"2016-08-16 12:10:41.000000000","message":"\u003e Should we care about report *before* hooks are implemented?\n\n1) reports are mentioned in the spec that is why I started this question :)\n2) This question can take a lot of discussion in the future, so it would be nice to discuss it.\n\n\u003e Hooks are definitely more complex than SLA, so current report UI must be improved.\n\nyes. Imo, hooks should return some message by default which can be displayed in the table like SLA does + we can add separate optional method for creation custom charts(if this method is called, separate page tab should be added). \nCustom charts are not high priority thing at current moment, we can do first implementation without it, but \"sla-like\" table should be added right away.","commit_id":"2e471d40a8d37212b585bf00bf72c840921cc6df"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"785310e0297b488ab6caec872875b7012357c79b","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Rally lacks a plugin type that would run some code on specified iteration."},{"line_number":15,"context_line":"New plugin type is required for reliability testing of OpenStack. This type of"},{"line_number":16,"context_line":"plugin would give an ability to activate factors on some iteration and provide"},{"line_number":17,"context_line":"timestamps and some info about executed actions to rally report."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Proposed change"},{"line_number":20,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3ac371cc_d4ff4fff","line":17,"range":{"start_line":16,"start_character":71,"end_line":17,"end_character":64},"in_reply_to":"3ac371cc_d905cac2","updated":"2016-08-16 11:54:53.000000000","message":"Hooks are definitely more complex than SLA, so current report UI must be improved. I think that we need separate widgets for hooks, maybe no charts, only tables.\n\nI\u0027m ready to discuss changes related to report and, of course, implement these changes.\n\nShould we care about report *before* hooks are implemented?","commit_id":"2e471d40a8d37212b585bf00bf72c840921cc6df"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"e70581c3d0242b6e3eb8543ef449852b99d7340b","unresolved":false,"context_lines":[{"line_number":215,"context_line":""},{"line_number":216,"context_line":"- astudenov \u003castudenov@mirantis.com\u003e"},{"line_number":217,"context_line":"- ylobankov \u003cylobankov@mirantis.com\u003e"},{"line_number":218,"context_line":""},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"Work Items"},{"line_number":221,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3ac371cc_f45a4b29","line":218,"updated":"2016-08-16 11:56:44.000000000","message":"- amaretskiy \u003camaretskiy@mirantis.com\u003e\n\n\n(part related to report)","commit_id":"2e471d40a8d37212b585bf00bf72c840921cc6df"},{"author":{"_account_id":19011,"name":"Anton Studenov","email":"tohin1332@gmail.com","username":"tohin"},"change_message_id":"7419d236d23a02f00b32bc88b6b1b2013c577ad4","unresolved":false,"context_lines":[{"line_number":215,"context_line":""},{"line_number":216,"context_line":"- astudenov \u003castudenov@mirantis.com\u003e"},{"line_number":217,"context_line":"- ylobankov \u003cylobankov@mirantis.com\u003e"},{"line_number":218,"context_line":""},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"Work Items"},{"line_number":221,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3ac371cc_146e0701","line":218,"in_reply_to":"3ac371cc_f45a4b29","updated":"2016-08-16 12:08:57.000000000","message":"Done","commit_id":"2e471d40a8d37212b585bf00bf72c840921cc6df"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"e70581c3d0242b6e3eb8543ef449852b99d7340b","unresolved":false,"context_lines":[{"line_number":222,"context_line":""},{"line_number":223,"context_line":"- Implement new section in task config"},{"line_number":224,"context_line":"- Add example of hook plugin"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"Dependencies"},{"line_number":227,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":228,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"3ac371cc_9435d7db","line":225,"updated":"2016-08-16 11:56:44.000000000","message":"- Add hooks results into HTML report","commit_id":"2e471d40a8d37212b585bf00bf72c840921cc6df"},{"author":{"_account_id":19011,"name":"Anton Studenov","email":"tohin1332@gmail.com","username":"tohin"},"change_message_id":"7419d236d23a02f00b32bc88b6b1b2013c577ad4","unresolved":false,"context_lines":[{"line_number":222,"context_line":""},{"line_number":223,"context_line":"- Implement new section in task config"},{"line_number":224,"context_line":"- Add example of hook plugin"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"Dependencies"},{"line_number":227,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":228,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"3ac371cc_d463cf18","line":225,"in_reply_to":"3ac371cc_9435d7db","updated":"2016-08-16 12:08:57.000000000","message":"Done","commit_id":"2e471d40a8d37212b585bf00bf72c840921cc6df"}]}
