)]}'
{"rally-jobs/rally-keystone-api-v2.yaml":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"529ad5c5f847f1f3679ba396eb3650187fcf2386","unresolved":false,"context_lines":[{"line_number":1005,"context_line":"      runner:"},{"line_number":1006,"context_line":"        type: \"constant\""},{"line_number":1007,"context_line":"        times: 10"},{"line_number":1008,"context_line":"        concurrency: 10"},{"line_number":1009,"context_line":"      sla:"},{"line_number":1010,"context_line":"        failure_rate:"},{"line_number":1011,"context_line":"          max: 0"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"3a98d1f4_d23a1b36","line":1008,"updated":"2016-09-29 10:26:48.000000000","message":"decrease it to 5","commit_id":"589cd8e8c69ba8e4183451940e6bbd53782064b3"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"0a016b1c5df056e650b7d0cb65ee13c534affd6d","unresolved":false,"context_lines":[{"line_number":1076,"context_line":""},{"line_number":1077,"context_line":"  KeystoneBasic.create_and_list_roles:"},{"line_number":1078,"context_line":"    -"},{"line_number":1079,"context_line":"      args:"},{"line_number":1080,"context_line":"        create_role_kwargs: {}"},{"line_number":1081,"context_line":"        list_role_kwargs: {}"},{"line_number":1082,"context_line":"      runner:"},{"line_number":1083,"context_line":"        type: \"constant\""},{"line_number":1084,"context_line":"        times: 10"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"1a6eadb0_dab88feb","line":1081,"range":{"start_line":1079,"start_character":0,"end_line":1081,"end_character":28},"updated":"2016-12-19 08:50:51.000000000","message":"it is redundant now","commit_id":"dc2565303d2da969bec3ce1a9e4bfe5b2f5a0b04"}],"rally-jobs/rally.yaml":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"529ad5c5f847f1f3679ba396eb3650187fcf2386","unresolved":false,"context_lines":[{"line_number":115,"context_line":"      runner:"},{"line_number":116,"context_line":"        type: \"constant\""},{"line_number":117,"context_line":"        times: 10"},{"line_number":118,"context_line":"        concurrency: 10"},{"line_number":119,"context_line":"      sla:"},{"line_number":120,"context_line":"        failure_rate:"},{"line_number":121,"context_line":"          max: 0"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"3a98d1f4_92309358","line":118,"updated":"2016-09-29 10:26:48.000000000","message":"decrease it to 5","commit_id":"589cd8e8c69ba8e4183451940e6bbd53782064b3"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"0a016b1c5df056e650b7d0cb65ee13c534affd6d","unresolved":false,"context_lines":[{"line_number":140,"context_line":""},{"line_number":141,"context_line":"  KeystoneBasic.create_and_list_roles:"},{"line_number":142,"context_line":"    -"},{"line_number":143,"context_line":"      args:"},{"line_number":144,"context_line":"        create_role_kwargs: {}"},{"line_number":145,"context_line":"        list_role_kwargs: {}"},{"line_number":146,"context_line":"      runner:"},{"line_number":147,"context_line":"        type: \"constant\""},{"line_number":148,"context_line":"        times: 10"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"1a6eadb0_7ae3fb05","line":145,"range":{"start_line":143,"start_character":0,"end_line":145,"end_character":28},"updated":"2016-12-19 08:50:51.000000000","message":"it is redundant now","commit_id":"dc2565303d2da969bec3ce1a9e4bfe5b2f5a0b04"}],"rally/plugins/openstack/scenarios/keystone/basic.py":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"529ad5c5f847f1f3679ba396eb3650187fcf2386","unresolved":false,"context_lines":[{"line_number":319,"context_line":"@validation.required_openstack(admin\u003dTrue)"},{"line_number":320,"context_line":"@validation.required_api_versions(component\u003d\"keystone\", versions\u003d[2.0])"},{"line_number":321,"context_line":"@scenario.configure(context\u003d{\"admin_cleanup\": [\"keystone\"]},"},{"line_number":322,"context_line":"                    name\u003d\"KeystoneBasic.create_and_list_all_roles\")"},{"line_number":323,"context_line":"class CreateAddListAllRoles(kutils.KeystoneScenario):"},{"line_number":324,"context_line":"    def run(self):"},{"line_number":325,"context_line":"        \"\"\"Create a List all roles.\"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"3a98d1f4_d25f7b70","line":322,"updated":"2016-09-29 10:26:48.000000000","message":"create_and_list_roles","commit_id":"589cd8e8c69ba8e4183451940e6bbd53782064b3"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"529ad5c5f847f1f3679ba396eb3650187fcf2386","unresolved":false,"context_lines":[{"line_number":320,"context_line":"@validation.required_api_versions(component\u003d\"keystone\", versions\u003d[2.0])"},{"line_number":321,"context_line":"@scenario.configure(context\u003d{\"admin_cleanup\": [\"keystone\"]},"},{"line_number":322,"context_line":"                    name\u003d\"KeystoneBasic.create_and_list_all_roles\")"},{"line_number":323,"context_line":"class CreateAddListAllRoles(kutils.KeystoneScenario):"},{"line_number":324,"context_line":"    def run(self):"},{"line_number":325,"context_line":"        \"\"\"Create a List all roles.\"\"\""},{"line_number":326,"context_line":"        self._role_create()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a98d1f4_72c78712","line":323,"updated":"2016-09-29 10:26:48.000000000","message":"the same as above","commit_id":"589cd8e8c69ba8e4183451940e6bbd53782064b3"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"c9043f1fa33ebb2feedbeea26870f8ff0786040c","unresolved":false,"context_lines":[{"line_number":378,"context_line":"                                   roles create"},{"line_number":379,"context_line":"        :param list_role_kwargs: Optional additional arguments for roles list"},{"line_number":380,"context_line":"        \"\"\""},{"line_number":381,"context_line":"        self.admin_keystone.create_role(**create_role_kwargs)"},{"line_number":382,"context_line":"        self.admin_keystone.list_roles(**list_role_kwargs)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a71b18c_d4ec46bd","line":381,"range":{"start_line":381,"start_character":40,"end_line":381,"end_character":60},"updated":"2016-12-12 13:34:33.000000000","message":"**create_role_kwargs can produce an error if user will not transmit anything to create_role_kwargs. you need special check:\n\n    if create_role_kwargs is None:\n         create_role_kwargs \u003d {}\n\nThe same for list_role_kwargs.","commit_id":"15e9f6793aa3a52e1707aee3fa0a5eb15c7f7dc3"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"c9043f1fa33ebb2feedbeea26870f8ff0786040c","unresolved":false,"context_lines":[{"line_number":378,"context_line":"                                   roles create"},{"line_number":379,"context_line":"        :param list_role_kwargs: Optional additional arguments for roles list"},{"line_number":380,"context_line":"        \"\"\""},{"line_number":381,"context_line":"        self.admin_keystone.create_role(**create_role_kwargs)"},{"line_number":382,"context_line":"        self.admin_keystone.list_roles(**list_role_kwargs)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a71b18c_f4b6a2da","line":382,"range":{"start_line":381,"start_character":8,"end_line":382,"end_character":58},"updated":"2016-12-12 13:34:33.000000000","message":"let\u0027s do it like https://review.openstack.org/#/c/402102/ . I mean we need a check that new role is in list of all roles.","commit_id":"15e9f6793aa3a52e1707aee3fa0a5eb15c7f7dc3"}],"rally/plugins/openstack/scenarios/keystone/utils.py":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"529ad5c5f847f1f3679ba396eb3650187fcf2386","unresolved":false,"context_lines":[{"line_number":130,"context_line":"            user, tenant)"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    @atomic.action_timer(\"keystone.list_all_roles\")"},{"line_number":133,"context_line":"    def _list_all_roles(self):"},{"line_number":134,"context_line":"        \"\"\"List all roles.\"\"\""},{"line_number":135,"context_line":"        return self.admin_clients(\"keystone\").roles.list()"},{"line_number":136,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3a98d1f4_d2ecdbc9","line":133,"updated":"2016-09-29 10:26:48.000000000","message":"please rename it to _list_roles","commit_id":"589cd8e8c69ba8e4183451940e6bbd53782064b3"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"78986170eb57be8177a7c0b7c7ad98070d3f977b","unresolved":false,"context_lines":[{"line_number":132,"context_line":"    @atomic.action_timer(\"keystone.list_all_roles\")"},{"line_number":133,"context_line":"    def _list_all_roles(self):"},{"line_number":134,"context_line":"        \"\"\"List all roles.\"\"\""},{"line_number":135,"context_line":"        return self.admin_clients(\"keystone\").roles.list()"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    @atomic.action_timer(\"keystone.add_role\")"},{"line_number":138,"context_line":"    def _role_add(self, user, role, tenant):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a98d1f4_2d35a4d9","line":135,"updated":"2016-09-29 10:48:03.000000000","message":"Those method have different arguments in different keystone versions. So you need to use keystone wrapper for that https://github.com/openstack/rally/blob/master/rally/plugins/openstack/wrappers/keystone.py See examples how glance wrapper was used by glance utils https://github.com/openstack/rally/blob/master/rally/plugins/openstack/scenarios/glance/utils.py#L62","commit_id":"589cd8e8c69ba8e4183451940e6bbd53782064b3"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"f500416864d9b43b85c24c64f45f934bd782fd30","unresolved":false,"context_lines":[{"line_number":134,"context_line":"    def _list_roles(self):"},{"line_number":135,"context_line":"        \"\"\"List all roles.\"\"\""},{"line_number":136,"context_line":"        admin_clients \u003d keystone_wrapper.wrap(self.admin_clients(\"keystone\"))"},{"line_number":137,"context_line":"        admin_clients.roles.list()"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"    @atomic.action_timer(\"keystone.add_role\")"},{"line_number":140,"context_line":"    def _role_add(self, user, role, tenant):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a98d1f4_aa279a10","line":137,"updated":"2016-09-30 09:43:28.000000000","message":"this will not work in case of keystone v3 and paased argument but it should.\n\nSo you need:\n1) to pass arguments to _list_roles line 134 like _list_roles(self, **kwargs)\n2) to override https://github.com/openstack/rally/blob/master/rally/plugins/openstack/wrappers/keystone.py#L94 in KeystoneV3Wrapper to enable it to get an arguments\n3) modify 137 line like admin_clients.roles.list(**kwargs)\n\nBe aware of bugs I don\u0027t test this code\u003d)","commit_id":"3c444a1fe0825e133832b4e3f445c1874305ee1f"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"bcfdf87515f03fbab7ebf505e66ec9e1fef409b5","unresolved":false,"context_lines":[{"line_number":169,"context_line":"        return self.admin_clients(\"keystone\").roles.roles_for_user("},{"line_number":170,"context_line":"            user, tenant)"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"    @atomic.action_timer(\"keystone.list_all_roles\")"},{"line_number":173,"context_line":"    def _list_roles(self, **kwargs):"},{"line_number":174,"context_line":"        \"\"\"List all roles."},{"line_number":175,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a629dbe_08f2afd2","line":172,"updated":"2016-11-07 23:51:48.000000000","message":"this should be called \"keystone.list_roles\"\nand atomic at 163 line should be renamed to keystone.roles_for_user","commit_id":"e1d67264f39124803d7c6f57c857302f8b32e712"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"bcfdf87515f03fbab7ebf505e66ec9e1fef409b5","unresolved":false,"context_lines":[{"line_number":176,"context_line":"        :param kwargs: Optional additional arguments for roles list"},{"line_number":177,"context_line":"        \"\"\""},{"line_number":178,"context_line":"        admin_clients \u003d keystone_wrapper.wrap(self.admin_clients(\"keystone\"))"},{"line_number":179,"context_line":"        admin_clients.list_roles(**kwargs)"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"    @atomic.action_timer(\"keystone.add_role\")"},{"line_number":182,"context_line":"    def _role_add(self, user, role, tenant):"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a629dbe_c84b572a","line":179,"updated":"2016-11-07 23:51:48.000000000","message":"You\u0027ve forgot to add `return` here","commit_id":"e1d67264f39124803d7c6f57c857302f8b32e712"}],"samples/tasks/scenarios/keystone/create-and-list-all-roles.json":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"529ad5c5f847f1f3679ba396eb3650187fcf2386","unresolved":false,"context_lines":[{"line_number":5,"context_line":"            \"runner\": {"},{"line_number":6,"context_line":"                \"type\": \"constant\","},{"line_number":7,"context_line":"                \"times\": 10,"},{"line_number":8,"context_line":"                \"concurrency\": 1"},{"line_number":9,"context_line":"            },"},{"line_number":10,"context_line":"            \"sla\": {"},{"line_number":11,"context_line":"                \"failure_rate\": {"}],"source_content_type":"application/json","patch_set":1,"id":"3a98d1f4_b2fe6f69","line":8,"updated":"2016-09-29 10:26:48.000000000","message":"please increase it","commit_id":"589cd8e8c69ba8e4183451940e6bbd53782064b3"}],"samples/tasks/scenarios/keystone/create-and-list-all-roles.yaml":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"529ad5c5f847f1f3679ba396eb3650187fcf2386","unresolved":false,"context_lines":[{"line_number":5,"context_line":"      runner:"},{"line_number":6,"context_line":"        type: \"constant\""},{"line_number":7,"context_line":"        times: 10"},{"line_number":8,"context_line":"        concurrency: 1"},{"line_number":9,"context_line":"      sla:"},{"line_number":10,"context_line":"        failure_rate:"},{"line_number":11,"context_line":"          max: 0"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"3a98d1f4_f2f8f77e","line":8,"updated":"2016-09-29 10:26:48.000000000","message":"please increase it","commit_id":"589cd8e8c69ba8e4183451940e6bbd53782064b3"}],"samples/tasks/scenarios/keystone/create-and-list-roles.yaml":[{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"c9043f1fa33ebb2feedbeea26870f8ff0786040c","unresolved":false,"context_lines":[{"line_number":2,"context_line":"  KeystoneBasic.create_and_list_roles:"},{"line_number":3,"context_line":"    -"},{"line_number":4,"context_line":"      args:"},{"line_number":5,"context_line":"        create_role_kwargs: {}"},{"line_number":6,"context_line":"        list_role_kwargs: {}"},{"line_number":7,"context_line":"      runner:"},{"line_number":8,"context_line":"        type: \"constant\""},{"line_number":9,"context_line":"        times: 10"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"3a71b18c_5437564c","line":6,"range":{"start_line":5,"start_character":0,"end_line":6,"end_character":28},"updated":"2016-12-12 13:34:33.000000000","message":"it should be redundant","commit_id":"15e9f6793aa3a52e1707aee3fa0a5eb15c7f7dc3"}]}
