)]}'
{"rally-jobs/rally-watcher.yaml":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"a8621bebe6f132d2dada0ea9f23cf442e6afeca3","unresolved":false,"context_lines":[{"line_number":7,"context_line":"        concurrency: 2"},{"line_number":8,"context_line":"      context:"},{"line_number":9,"context_line":"        users:"},{"line_number":10,"context_line":"          tenants: 1"},{"line_number":11,"context_line":"          users_per_tenant: 1"},{"line_number":12,"context_line":"        audit_templates:"},{"line_number":13,"context_line":"          - goal:"},{"line_number":14,"context_line":"                name: \"dummy\""}],"source_content_type":"text/x-yaml","patch_set":3,"id":"1aa78d24_e61dd167","line":11,"range":{"start_line":10,"start_character":5,"end_line":11,"end_character":29},"updated":"2016-07-03 22:19:26.000000000","message":"Too small values. Please increase it to 2. To check how it works with multiple","commit_id":"a6e453b279f2c7b538555169007151fa82e9cc69"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"a8621bebe6f132d2dada0ea9f23cf442e6afeca3","unresolved":false,"context_lines":[{"line_number":36,"context_line":"      runner:"},{"line_number":37,"context_line":"        type: \"constant\""},{"line_number":38,"context_line":"        times: 10"},{"line_number":39,"context_line":"        concurrency: 1"},{"line_number":40,"context_line":"      context:"},{"line_number":41,"context_line":"        users:"},{"line_number":42,"context_line":"          tenants: 1"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"1aa78d24_460e6535","line":39,"updated":"2016-07-03 22:19:26.000000000","message":"Too small concurrency. Please increase it to 2","commit_id":"a6e453b279f2c7b538555169007151fa82e9cc69"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"a8621bebe6f132d2dada0ea9f23cf442e6afeca3","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        concurrency: 1"},{"line_number":40,"context_line":"      context:"},{"line_number":41,"context_line":"        users:"},{"line_number":42,"context_line":"          tenants: 1"},{"line_number":43,"context_line":"          users_per_tenant: 1"},{"line_number":44,"context_line":"        audit_templates:"},{"line_number":45,"context_line":"          - goal:"},{"line_number":46,"context_line":"                name: \"workload_balancing\""}],"source_content_type":"text/x-yaml","patch_set":3,"id":"1aa78d24_86104d50","line":43,"range":{"start_line":42,"start_character":5,"end_line":43,"end_character":29},"updated":"2016-07-03 22:19:26.000000000","message":"Too small values. Please increase it to 2. To check how it works with multiple","commit_id":"a6e453b279f2c7b538555169007151fa82e9cc69"}],"rally/osclients.py":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"a8621bebe6f132d2dada0ea9f23cf442e6afeca3","unresolved":false,"context_lines":[{"line_number":751,"context_line":"        \"\"\"Return watcher client.\"\"\""},{"line_number":752,"context_line":"        from watcherclient import client as watcher_client"},{"line_number":753,"context_line":"        kc \u003d self.keystone()"},{"line_number":754,"context_line":"        watcher_api_url \u003d kc.service_catalog.url_for("},{"line_number":755,"context_line":"            service_type\u003dself.choose_service_type(service_type),"},{"line_number":756,"context_line":"            endpoint_type\u003dself.credential.endpoint_type,"},{"line_number":757,"context_line":"            region_name\u003dself.credential.region_name)"},{"line_number":758,"context_line":"        client \u003d watcher_client.Client("},{"line_number":759,"context_line":"            self.choose_version(version),"},{"line_number":760,"context_line":"            watcher_api_url,"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_062bbd83","line":757,"range":{"start_line":754,"start_character":7,"end_line":757,"end_character":52},"updated":"2016-07-03 22:19:26.000000000","message":"Please use get_endpoint function from line 179","commit_id":"a6e453b279f2c7b538555169007151fa82e9cc69"}],"rally/plugins/openstack/cleanup/resources.py":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"a8621bebe6f132d2dada0ea9f23cf442e6afeca3","unresolved":false,"context_lines":[{"line_number":766,"context_line":""},{"line_number":767,"context_line":"# WATCHER"},{"line_number":768,"context_line":""},{"line_number":769,"context_line":"_watcher_order \u003d get_order(1400)"},{"line_number":770,"context_line":""},{"line_number":771,"context_line":""},{"line_number":772,"context_line":"@base.resource(\"watcher\", \"audit_template\", order\u003d_watcher_order,"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_26823953","line":769,"updated":"2016-07-03 22:19:26.000000000","message":"Please choose order that would differ from the fuel","commit_id":"a6e453b279f2c7b538555169007151fa82e9cc69"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"a8621bebe6f132d2dada0ea9f23cf442e6afeca3","unresolved":false,"context_lines":[{"line_number":771,"context_line":""},{"line_number":772,"context_line":"@base.resource(\"watcher\", \"audit_template\", order\u003d_watcher_order,"},{"line_number":773,"context_line":"               tenant_resource\u003dTrue)"},{"line_number":774,"context_line":"class WatcherTemplate(base.ResourceManager):"},{"line_number":775,"context_line":"    pass"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_667c4173","line":774,"range":{"start_line":774,"start_character":35,"end_line":774,"end_character":36},"updated":"2016-07-03 22:19:26.000000000","message":"Looks like we need to override some basic functions. See what are they by default https://github.com/openstack/rally/blob/master/rally/plugins/openstack/cleanup/base.py#L79 For example what about limit parameter?\nis_delete should be overrided https://github.com/openstack/python-watcherclient/blob/master/watcherclient/v1/audit_template.py#L85 https://github.com/openstack/rally/blob/master/rally/plugins/openstack/cleanup/base.py#L115\nAlso this is related to https://github.com/openstack/python-watcherclient/blob/master/watcherclient/common/apiclient/base.py#L440 id() https://github.com/openstack/rally/blob/master/rally/plugins/openstack/cleanup/base.py#L101 and possibly to the name","commit_id":"a6e453b279f2c7b538555169007151fa82e9cc69"}],"rally/plugins/openstack/context/watcher/audit_templates.py":[{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"1c6e0f98228d256575586b6f995075b06649c22b","unresolved":false,"context_lines":[{"line_number":64,"context_line":"            {\"user\": self.context[\"users\"][0]})"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"        for template in self.config:"},{"line_number":67,"context_line":"            goal \u003d template[\"goal\"]"},{"line_number":68,"context_line":"            strategy \u003d template[\"strategy\"]"},{"line_number":69,"context_line":"            clients \u003d osclients.Clients(self.context[\"users\"][0][\"credential\"])"},{"line_number":70,"context_line":"            goal_id \u003d types.WatcherGoal.transform(clients\u003dclients,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_3970fadb","line":67,"updated":"2016-06-24 13:26:21.000000000","message":"This can raise KeyError in some cases, so there are choices:\n\nuse template.get(\"goal\", \u003cdefault value\u003e)\n\nor\n\nadd \"required\": [\"goal\", \"strategy\"] to L57\nExample: https://github.com/openstack/rally/blob/master/rally/plugins/openstack/context/nova/flavors.py#L69\n\nor\n\nadd DEFAULT_CONFIG property\nExample: https://github.com/openstack/rally/blob/master/rally/plugins/openstack/context/keystone/users.py#L135-L143","commit_id":"7e9bbdfd2cccfd69d043eab4001446ae660d3c3a"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"bcef03c0109dafd045eb44bc765c71cc65c0baf4","unresolved":false,"context_lines":[{"line_number":64,"context_line":"            {\"user\": self.context[\"users\"][0]})"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"        for template in self.config:"},{"line_number":67,"context_line":"            goal \u003d template[\"goal\"]"},{"line_number":68,"context_line":"            strategy \u003d template[\"strategy\"]"},{"line_number":69,"context_line":"            clients \u003d osclients.Clients(self.context[\"users\"][0][\"credential\"])"},{"line_number":70,"context_line":"            goal_id \u003d types.WatcherGoal.transform(clients\u003dclients,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_4e74619b","line":67,"in_reply_to":"3aaa91ec_3970fadb","updated":"2016-07-01 13:47:27.000000000","message":"I\u0027ve added \"required\": [\"goal\", \"strategy\"]","commit_id":"7e9bbdfd2cccfd69d043eab4001446ae660d3c3a"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"1c6e0f98228d256575586b6f995075b06649c22b","unresolved":false,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":"        for template in self.config:"},{"line_number":67,"context_line":"            goal \u003d template[\"goal\"]"},{"line_number":68,"context_line":"            strategy \u003d template[\"strategy\"]"},{"line_number":69,"context_line":"            clients \u003d osclients.Clients(self.context[\"users\"][0][\"credential\"])"},{"line_number":70,"context_line":"            goal_id \u003d types.WatcherGoal.transform(clients\u003dclients,"},{"line_number":71,"context_line":"                                                  resource_config\u003dgoal)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_1c288c85","line":68,"updated":"2016-06-24 13:26:21.000000000","message":"same here","commit_id":"7e9bbdfd2cccfd69d043eab4001446ae660d3c3a"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"bcef03c0109dafd045eb44bc765c71cc65c0baf4","unresolved":false,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":"        for template in self.config:"},{"line_number":67,"context_line":"            goal \u003d template[\"goal\"]"},{"line_number":68,"context_line":"            strategy \u003d template[\"strategy\"]"},{"line_number":69,"context_line":"            clients \u003d osclients.Clients(self.context[\"users\"][0][\"credential\"])"},{"line_number":70,"context_line":"            goal_id \u003d types.WatcherGoal.transform(clients\u003dclients,"},{"line_number":71,"context_line":"                                                  resource_config\u003dgoal)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_2e7755a0","line":68,"in_reply_to":"3aaa91ec_1c288c85","updated":"2016-07-01 13:47:27.000000000","message":"Done","commit_id":"7e9bbdfd2cccfd69d043eab4001446ae660d3c3a"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"c1ff590dd290924312752163009008eb23516221","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        for template in self.config:"},{"line_number":67,"context_line":"            goal \u003d template[\"goal\"]"},{"line_number":68,"context_line":"            strategy \u003d template[\"strategy\"]"},{"line_number":69,"context_line":"            clients \u003d osclients.Clients(self.context[\"users\"][0][\"credential\"])"},{"line_number":70,"context_line":"            goal_id \u003d types.WatcherGoal.transform(clients\u003dclients,"},{"line_number":71,"context_line":"                                                  resource_config\u003dgoal)"},{"line_number":72,"context_line":"            strategy_id \u003d types.WatcherStrategy.transform("}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_77e769e4","line":69,"updated":"2016-06-29 10:29:10.000000000","message":"Maybe admin user is required?\n\nIf so, use clients \u003d osclients.Clients(self.context[\"admin\"][\"credential\"])","commit_id":"7e9bbdfd2cccfd69d043eab4001446ae660d3c3a"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"bcef03c0109dafd045eb44bc765c71cc65c0baf4","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        for template in self.config:"},{"line_number":67,"context_line":"            goal \u003d template[\"goal\"]"},{"line_number":68,"context_line":"            strategy \u003d template[\"strategy\"]"},{"line_number":69,"context_line":"            clients \u003d osclients.Clients(self.context[\"users\"][0][\"credential\"])"},{"line_number":70,"context_line":"            goal_id \u003d types.WatcherGoal.transform(clients\u003dclients,"},{"line_number":71,"context_line":"                                                  resource_config\u003dgoal)"},{"line_number":72,"context_line":"            strategy_id \u003d types.WatcherStrategy.transform("}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_f26ac0ec","line":69,"in_reply_to":"3aaa91ec_77e769e4","updated":"2016-07-01 13:47:27.000000000","message":"Done","commit_id":"7e9bbdfd2cccfd69d043eab4001446ae660d3c3a"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"1c6e0f98228d256575586b6f995075b06649c22b","unresolved":false,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":"            audit_template \u003d watcher_scenario._create_audit_template("},{"line_number":76,"context_line":"                goal_id, strategy_id)"},{"line_number":77,"context_line":"            self.context[\"audit_template\"].append(audit_template.uuid)"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    @logging.log_task_wrapper(LOG.info, _(\"Exit context: `Audit Templates`\"))"},{"line_number":80,"context_line":"    def cleanup(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_1cd24c5c","line":77,"updated":"2016-06-24 13:26:21.000000000","message":"Is it normal that one specific non-admin user creates audit templates for all users?","commit_id":"7e9bbdfd2cccfd69d043eab4001446ae660d3c3a"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"bcef03c0109dafd045eb44bc765c71cc65c0baf4","unresolved":false,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":"            audit_template \u003d watcher_scenario._create_audit_template("},{"line_number":76,"context_line":"                goal_id, strategy_id)"},{"line_number":77,"context_line":"            self.context[\"audit_template\"].append(audit_template.uuid)"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    @logging.log_task_wrapper(LOG.info, _(\"Exit context: `Audit Templates`\"))"},{"line_number":80,"context_line":"    def cleanup(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_d26fc4fa","line":77,"in_reply_to":"3aaa91ec_1cd24c5c","updated":"2016-07-01 13:47:27.000000000","message":"Done","commit_id":"7e9bbdfd2cccfd69d043eab4001446ae660d3c3a"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"0c0ef5494e00c8aedbc10aa425b67f8abc826172","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        for template in self.config:"},{"line_number":68,"context_line":"            goal \u003d template[\"goal\"]"},{"line_number":69,"context_line":"            strategy \u003d template[\"strategy\"]"},{"line_number":70,"context_line":"            clients \u003d osclients.Clients(self.context[\"admin\"][\"credential\"])"},{"line_number":71,"context_line":"            goal_id \u003d types.WatcherGoal.transform(clients\u003dclients,"},{"line_number":72,"context_line":"                                                  resource_config\u003dgoal)"},{"line_number":73,"context_line":"            strategy_id \u003d types.WatcherStrategy.transform("}],"source_content_type":"text/x-python","patch_set":2,"id":"1aa78d24_94ad258b","line":70,"range":{"start_line":70,"start_character":12,"end_line":70,"end_character":76},"updated":"2016-07-02 07:59:10.000000000","message":"let\u0027s move it before for loop and create Clients object once","commit_id":"6425c0443eba57209c469ab3c2a546784642d061"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"fe322ee5f13a52f0947a7e2154c2f3311c8fa90a","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        for template in self.config:"},{"line_number":68,"context_line":"            goal \u003d template[\"goal\"]"},{"line_number":69,"context_line":"            strategy \u003d template[\"strategy\"]"},{"line_number":70,"context_line":"            clients \u003d osclients.Clients(self.context[\"admin\"][\"credential\"])"},{"line_number":71,"context_line":"            goal_id \u003d types.WatcherGoal.transform(clients\u003dclients,"},{"line_number":72,"context_line":"                                                  resource_config\u003dgoal)"},{"line_number":73,"context_line":"            strategy_id \u003d types.WatcherStrategy.transform("}],"source_content_type":"text/x-python","patch_set":2,"id":"1aa78d24_6db6ec3e","line":70,"range":{"start_line":70,"start_character":12,"end_line":70,"end_character":76},"in_reply_to":"1aa78d24_94ad258b","updated":"2016-07-02 12:55:36.000000000","message":"Done","commit_id":"6425c0443eba57209c469ab3c2a546784642d061"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"a8621bebe6f132d2dada0ea9f23cf442e6afeca3","unresolved":false,"context_lines":[{"line_number":24,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"@context.configure(name\u003d\"audit_templates\", order\u003d430)"},{"line_number":28,"context_line":"class AuditTemplateGenerator(context.Context):"},{"line_number":29,"context_line":"    \"\"\"Context class for adding temporary audit template for benchmarks.\"\"\""},{"line_number":30,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_063c5d92","line":27,"updated":"2016-07-03 22:19:26.000000000","message":"As I member 430 order is busy. If so please choose differ","commit_id":"a6e453b279f2c7b538555169007151fa82e9cc69"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"a8621bebe6f132d2dada0ea9f23cf442e6afeca3","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"            audit_template \u003d watcher_scenario._create_audit_template("},{"line_number":79,"context_line":"                goal_id, strategy_id)"},{"line_number":80,"context_line":"            self.context[\"audit_templates\"].append(audit_template.uuid)"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    @logging.log_task_wrapper(LOG.info, _(\"Exit context: `Audit Templates`\"))"},{"line_number":83,"context_line":"    def cleanup(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_6658c1fb","line":80,"updated":"2016-07-03 22:19:26.000000000","message":"If this is tenant resource(which is wrote in clean up manager by you) then you should put it into self.context[\"tenant\"][$tenant_uuid][\"audit_templates\"] but is is conflic to what you wrote here. You are not iterate through tenants just like this is shared resource. If its not please use https://github.com/openstack/rally/blob/master/rally/common/utils.py#L216 here is an example https://github.com/openstack/rally/blob/master/rally/plugins/openstack/context/designate/zones.py#L49","commit_id":"a6e453b279f2c7b538555169007151fa82e9cc69"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"a8621bebe6f132d2dada0ea9f23cf442e6afeca3","unresolved":false,"context_lines":[{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    @logging.log_task_wrapper(LOG.info, _(\"Exit context: `Audit Templates`\"))"},{"line_number":83,"context_line":"    def cleanup(self):"},{"line_number":84,"context_line":"        watcher_scenario \u003d watcher_utils.WatcherScenario("},{"line_number":85,"context_line":"            {\"user\": self.context[\"users\"][0], \"task\": self.context[\"task\"]})"},{"line_number":86,"context_line":"        for audit_template in self.context[\"audit_templates\"]:"},{"line_number":87,"context_line":"            watcher_scenario._delete_audit_template(audit_template)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_e655d1c6","line":87,"range":{"start_line":84,"start_character":0,"end_line":87,"end_character":67},"updated":"2016-07-03 22:19:26.000000000","message":"This should be done by our cleanup manager. See examples","commit_id":"a6e453b279f2c7b538555169007151fa82e9cc69"}],"rally/plugins/openstack/scenarios/watcher/basic.py":[{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"1c6e0f98228d256575586b6f995075b06649c22b","unresolved":false,"context_lines":[{"line_number":26,"context_line":"    @types.convert(strategy\u003d{\"type\": \"watcher_strategy\"},"},{"line_number":27,"context_line":"                   goal\u003d{\"type\": \"watcher_goal\"})"},{"line_number":28,"context_line":"    @validation.required_services(consts.Service.WATCHER)"},{"line_number":29,"context_line":"    @scenario.configure()"},{"line_number":30,"context_line":"    def create_audit_template_and_delete(self, goal, strategy,"},{"line_number":31,"context_line":"                                         min_sleep\u003d0, max_sleep\u003d0):"},{"line_number":32,"context_line":"        \"\"\"Create audit template and delete it."}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_bca85878","line":29,"updated":"2016-06-24 13:26:21.000000000","message":"@scenario.configure(context\u003d{\"cleanup\": [\"watcher\"]})","commit_id":"7e9bbdfd2cccfd69d043eab4001446ae660d3c3a"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"bcef03c0109dafd045eb44bc765c71cc65c0baf4","unresolved":false,"context_lines":[{"line_number":26,"context_line":"    @types.convert(strategy\u003d{\"type\": \"watcher_strategy\"},"},{"line_number":27,"context_line":"                   goal\u003d{\"type\": \"watcher_goal\"})"},{"line_number":28,"context_line":"    @validation.required_services(consts.Service.WATCHER)"},{"line_number":29,"context_line":"    @scenario.configure()"},{"line_number":30,"context_line":"    def create_audit_template_and_delete(self, goal, strategy,"},{"line_number":31,"context_line":"                                         min_sleep\u003d0, max_sleep\u003d0):"},{"line_number":32,"context_line":"        \"\"\"Create audit template and delete it."}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_6feb1779","line":29,"in_reply_to":"3aaa91ec_bca85878","updated":"2016-07-01 13:47:27.000000000","message":"Done","commit_id":"7e9bbdfd2cccfd69d043eab4001446ae660d3c3a"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"1c6e0f98228d256575586b6f995075b06649c22b","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        self._delete_audit_template(audit_template.uuid)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    @validation.required_services(consts.Service.WATCHER)"},{"line_number":46,"context_line":"    @scenario.configure(context\u003d{\"cleanup\": [\"watcher\"]})"},{"line_number":47,"context_line":"    def list_audit_template(self):"},{"line_number":48,"context_line":"        \"\"\"List existing audit templates."},{"line_number":49,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_7c943042","line":46,"updated":"2016-06-24 13:26:21.000000000","message":"Since there is only a listing (no resources created), then cleanup is not required, use just @scenario.configure() instead","commit_id":"7e9bbdfd2cccfd69d043eab4001446ae660d3c3a"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"bcef03c0109dafd045eb44bc765c71cc65c0baf4","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        self._delete_audit_template(audit_template.uuid)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    @validation.required_services(consts.Service.WATCHER)"},{"line_number":46,"context_line":"    @scenario.configure(context\u003d{\"cleanup\": [\"watcher\"]})"},{"line_number":47,"context_line":"    def list_audit_template(self):"},{"line_number":48,"context_line":"        \"\"\"List existing audit templates."},{"line_number":49,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_8fe8037e","line":46,"in_reply_to":"3aaa91ec_7c943042","updated":"2016-07-01 13:47:27.000000000","message":"Done","commit_id":"7e9bbdfd2cccfd69d043eab4001446ae660d3c3a"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"1c6e0f98228d256575586b6f995075b06649c22b","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    @validation.required_services(consts.Service.WATCHER)"},{"line_number":46,"context_line":"    @scenario.configure(context\u003d{\"cleanup\": [\"watcher\"]})"},{"line_number":47,"context_line":"    def list_audit_template(self):"},{"line_number":48,"context_line":"        \"\"\"List existing audit templates."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        Audit templates are being created by Audit Template Context."}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_fcd94058","line":47,"updated":"2016-06-24 13:26:21.000000000","message":"s/template/templates/","commit_id":"7e9bbdfd2cccfd69d043eab4001446ae660d3c3a"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"bcef03c0109dafd045eb44bc765c71cc65c0baf4","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    @validation.required_services(consts.Service.WATCHER)"},{"line_number":46,"context_line":"    @scenario.configure(context\u003d{\"cleanup\": [\"watcher\"]})"},{"line_number":47,"context_line":"    def list_audit_template(self):"},{"line_number":48,"context_line":"        \"\"\"List existing audit templates."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        Audit templates are being created by Audit Template Context."}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_affdff3c","line":47,"in_reply_to":"3aaa91ec_fcd94058","updated":"2016-07-01 13:47:27.000000000","message":"Done","commit_id":"7e9bbdfd2cccfd69d043eab4001446ae660d3c3a"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"1c6e0f98228d256575586b6f995075b06649c22b","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        :param max_sleep: Maximum sleep time in seconds (non-negative)"},{"line_number":68,"context_line":"        \"\"\""},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        audit_template_uuid \u003d self.context[\"audit_templates\"][0]"},{"line_number":71,"context_line":"        audit \u003d self._create_audit(audit_template_uuid)"},{"line_number":72,"context_line":"        self._launch_audit(audit)"},{"line_number":73,"context_line":"        self.sleep_between(min_sleep, max_sleep)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_dc4724ba","line":70,"updated":"2016-06-24 13:26:21.000000000","message":"Use @validation.required_contexts(\"audit_template\") above, otherwise there could be KeyError","commit_id":"7e9bbdfd2cccfd69d043eab4001446ae660d3c3a"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"bcef03c0109dafd045eb44bc765c71cc65c0baf4","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        :param max_sleep: Maximum sleep time in seconds (non-negative)"},{"line_number":68,"context_line":"        \"\"\""},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        audit_template_uuid \u003d self.context[\"audit_templates\"][0]"},{"line_number":71,"context_line":"        audit \u003d self._create_audit(audit_template_uuid)"},{"line_number":72,"context_line":"        self._launch_audit(audit)"},{"line_number":73,"context_line":"        self.sleep_between(min_sleep, max_sleep)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_6fb95779","line":70,"in_reply_to":"3aaa91ec_dc4724ba","updated":"2016-07-01 13:47:27.000000000","message":"Done","commit_id":"7e9bbdfd2cccfd69d043eab4001446ae660d3c3a"}],"rally/plugins/openstack/scenarios/watcher/utils.py":[{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"1c6e0f98228d256575586b6f995075b06649c22b","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        at \u003d self.clients(\"watcher\").audit_template.create("},{"line_number":43,"context_line":"            goal\u003dgoal,"},{"line_number":44,"context_line":"            strategy\u003dstrategy,"},{"line_number":45,"context_line":"            name\u003dstr(uuid.uuid4()))"},{"line_number":46,"context_line":"        return at"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    @atomic.action_timer(\"watcher.delete_audit_template\")"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_1c97ecec","line":45,"updated":"2016-06-24 13:26:21.000000000","message":"Can we use self.generate_random_name() here? This approach is more flexible and potentially allows to find resources created by Rally","commit_id":"7e9bbdfd2cccfd69d043eab4001446ae660d3c3a"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"bcef03c0109dafd045eb44bc765c71cc65c0baf4","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        at \u003d self.clients(\"watcher\").audit_template.create("},{"line_number":43,"context_line":"            goal\u003dgoal,"},{"line_number":44,"context_line":"            strategy\u003dstrategy,"},{"line_number":45,"context_line":"            name\u003dstr(uuid.uuid4()))"},{"line_number":46,"context_line":"        return at"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    @atomic.action_timer(\"watcher.delete_audit_template\")"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_c1413f3b","line":45,"in_reply_to":"3aaa91ec_1c97ecec","updated":"2016-07-01 13:47:27.000000000","message":"Done","commit_id":"7e9bbdfd2cccfd69d043eab4001446ae660d3c3a"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"0c0ef5494e00c8aedbc10aa425b67f8abc826172","unresolved":false,"context_lines":[{"line_number":22,"context_line":"CONF \u003d cfg.CONF"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"WATCHER_BENCHMARK_OPTS \u003d ["},{"line_number":26,"context_line":"    cfg.FloatOpt(\"watcher_audit_launch_poll_interval\", default\u003d2.0,"},{"line_number":27,"context_line":"                 help\u003d\"Watcher audit launch interval (floating point value)\"),"},{"line_number":28,"context_line":"    cfg.IntOpt(\"watcher_audit_launch_timeout\", default\u003d300,"},{"line_number":29,"context_line":"               help\u003d\"Watcher audit launch timeout (floating point value)\")"},{"line_number":30,"context_line":"]"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"benchmark_group \u003d cfg.OptGroup(name\u003d\"benchmark\", title\u003d\"benchmark options\")"},{"line_number":33,"context_line":"CONF.register_opts(WATCHER_BENCHMARK_OPTS, group\u003dbenchmark_group)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"class WatcherScenario(scenario.OpenStackScenario):"}],"source_content_type":"text/x-python","patch_set":2,"id":"1aa78d24_54ca9d50","line":33,"range":{"start_line":25,"start_character":0,"end_line":33,"end_character":65},"updated":"2016-07-02 07:59:10.000000000","message":"You need to add new opts to rally.opts and execute `tox -egenconfig` to update sample of rally config","commit_id":"6425c0443eba57209c469ab3c2a546784642d061"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"c424447f5f1eb93b33b5b52249ea2c2ef2b92b9d","unresolved":false,"context_lines":[{"line_number":22,"context_line":"CONF \u003d cfg.CONF"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"WATCHER_BENCHMARK_OPTS \u003d ["},{"line_number":26,"context_line":"    cfg.FloatOpt(\"watcher_audit_launch_poll_interval\", default\u003d2.0,"},{"line_number":27,"context_line":"                 help\u003d\"Watcher audit launch interval (floating point value)\"),"},{"line_number":28,"context_line":"    cfg.IntOpt(\"watcher_audit_launch_timeout\", default\u003d300,"},{"line_number":29,"context_line":"               help\u003d\"Watcher audit launch timeout (floating point value)\")"},{"line_number":30,"context_line":"]"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"benchmark_group \u003d cfg.OptGroup(name\u003d\"benchmark\", title\u003d\"benchmark options\")"},{"line_number":33,"context_line":"CONF.register_opts(WATCHER_BENCHMARK_OPTS, group\u003dbenchmark_group)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"class WatcherScenario(scenario.OpenStackScenario):"}],"source_content_type":"text/x-python","patch_set":2,"id":"1aa78d24_5713bf5c","line":33,"range":{"start_line":25,"start_character":0,"end_line":33,"end_character":65},"in_reply_to":"1aa78d24_54ca9d50","updated":"2016-07-02 09:06:47.000000000","message":"Done","commit_id":"6425c0443eba57209c469ab3c2a546784642d061"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"0c0ef5494e00c8aedbc10aa425b67f8abc826172","unresolved":false,"context_lines":[{"line_number":51,"context_line":"    def _list_audit_templates(self):"},{"line_number":52,"context_line":"        return self.clients(\"watcher\").audit_template.list()"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    @atomic.action_timer(\"watcher.create_audit\")"},{"line_number":55,"context_line":"    def _create_audit(self, audit_template_uuid):"},{"line_number":56,"context_line":"        return self.clients(\"watcher\").audit.create("},{"line_number":57,"context_line":"            audit_template_uuid\u003daudit_template_uuid,"},{"line_number":58,"context_line":"            type\u003d\"ONESHOT\")"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    @atomic.action_timer(\"watcher.launch_audit\")"},{"line_number":61,"context_line":"    def _launch_audit(self, audit):"},{"line_number":62,"context_line":"        utils.wait_for_status("},{"line_number":63,"context_line":"            audit,"},{"line_number":64,"context_line":"            ready_statuses\u003d[\"SUCCEEDED\"],"},{"line_number":65,"context_line":"            failure_statuses\u003d[\"FAILED\"],"},{"line_number":66,"context_line":"            status_attr\u003d\"state\","},{"line_number":67,"context_line":"            update_resource\u003dutils.get_from_manager(),"},{"line_number":68,"context_line":"            timeout\u003dCONF.benchmark.watcher_audit_launch_timeout,"},{"line_number":69,"context_line":"            check_interval\u003dCONF.benchmark.watcher_audit_launch_poll_interval,"},{"line_number":70,"context_line":"            id_attr\u003d\"uuid\""},{"line_number":71,"context_line":"        )"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    @atomic.action_timer(\"watcher.delete_audit\")"},{"line_number":74,"context_line":"    def _delete_audit(self, audit):"}],"source_content_type":"text/x-python","patch_set":2,"id":"1aa78d24_94c40541","line":71,"range":{"start_line":54,"start_character":4,"end_line":71,"end_character":9},"updated":"2016-07-02 07:59:10.000000000","message":"maybe we should merge these two methods?","commit_id":"6425c0443eba57209c469ab3c2a546784642d061"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"c424447f5f1eb93b33b5b52249ea2c2ef2b92b9d","unresolved":false,"context_lines":[{"line_number":51,"context_line":"    def _list_audit_templates(self):"},{"line_number":52,"context_line":"        return self.clients(\"watcher\").audit_template.list()"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    @atomic.action_timer(\"watcher.create_audit\")"},{"line_number":55,"context_line":"    def _create_audit(self, audit_template_uuid):"},{"line_number":56,"context_line":"        return self.clients(\"watcher\").audit.create("},{"line_number":57,"context_line":"            audit_template_uuid\u003daudit_template_uuid,"},{"line_number":58,"context_line":"            type\u003d\"ONESHOT\")"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    @atomic.action_timer(\"watcher.launch_audit\")"},{"line_number":61,"context_line":"    def _launch_audit(self, audit):"},{"line_number":62,"context_line":"        utils.wait_for_status("},{"line_number":63,"context_line":"            audit,"},{"line_number":64,"context_line":"            ready_statuses\u003d[\"SUCCEEDED\"],"},{"line_number":65,"context_line":"            failure_statuses\u003d[\"FAILED\"],"},{"line_number":66,"context_line":"            status_attr\u003d\"state\","},{"line_number":67,"context_line":"            update_resource\u003dutils.get_from_manager(),"},{"line_number":68,"context_line":"            timeout\u003dCONF.benchmark.watcher_audit_launch_timeout,"},{"line_number":69,"context_line":"            check_interval\u003dCONF.benchmark.watcher_audit_launch_poll_interval,"},{"line_number":70,"context_line":"            id_attr\u003d\"uuid\""},{"line_number":71,"context_line":"        )"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    @atomic.action_timer(\"watcher.delete_audit\")"},{"line_number":74,"context_line":"    def _delete_audit(self, audit):"}],"source_content_type":"text/x-python","patch_set":2,"id":"1aa78d24_771a3b70","line":71,"range":{"start_line":54,"start_character":4,"end_line":71,"end_character":9},"in_reply_to":"1aa78d24_94c40541","updated":"2016-07-02 09:06:47.000000000","message":"I\u0027d like to upload more scenarios a little bit later so I want to have this methods separated.","commit_id":"6425c0443eba57209c469ab3c2a546784642d061"}],"samples/tasks/scenarios/watcher/list-audit-template.json":[{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"1c6e0f98228d256575586b6f995075b06649c22b","unresolved":false,"context_lines":[{"line_number":3,"context_line":"        {"},{"line_number":4,"context_line":"            \"runner\": {"},{"line_number":5,"context_line":"                \"type\": \"constant\","},{"line_number":6,"context_line":"                \"times\": 1,"},{"line_number":7,"context_line":"                \"concurrency\": 1"},{"line_number":8,"context_line":"            },"},{"line_number":9,"context_line":"            \"context\": {"}],"source_content_type":"application/json","patch_set":1,"id":"3aaa91ec_6f959485","line":6,"updated":"2016-06-24 13:26:21.000000000","message":"Why 1? Let it be at least 2 (or more!)","commit_id":"7e9bbdfd2cccfd69d043eab4001446ae660d3c3a"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"bcef03c0109dafd045eb44bc765c71cc65c0baf4","unresolved":false,"context_lines":[{"line_number":3,"context_line":"        {"},{"line_number":4,"context_line":"            \"runner\": {"},{"line_number":5,"context_line":"                \"type\": \"constant\","},{"line_number":6,"context_line":"                \"times\": 1,"},{"line_number":7,"context_line":"                \"concurrency\": 1"},{"line_number":8,"context_line":"            },"},{"line_number":9,"context_line":"            \"context\": {"}],"source_content_type":"application/json","patch_set":1,"id":"3aaa91ec_61716ba8","line":6,"in_reply_to":"3aaa91ec_6f959485","updated":"2016-07-01 13:47:27.000000000","message":"Set it to 10.","commit_id":"7e9bbdfd2cccfd69d043eab4001446ae660d3c3a"}]}
