)]}'
{"rally/common/plugin/meta.py":[{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"0ca86d243eb35b0a710cbf752a60c506ce959c8b","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"DEFAULT_META_CONCATENATION \u003d {"},{"line_number":20,"context_line":"    \"default_context\": \"dict\","},{"line_number":21,"context_line":"    \"validators\": \"list\","},{"line_number":22,"context_line":"}"},{"line_number":23,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3f1d235d_cbfe7904","line":20,"updated":"2017-07-11 01:26:05.000000000","message":"Can we split this change to separate patch with separate commit message. \n\nChanging something from meta is not directly related to work on removing some context.","commit_id":"9da5fe50026a5e9e36cb705d8734296536cc3618"}],"rally/plugins/openstack/context/keystone/users.py":[{"author":{"_account_id":22960,"name":"Hai Shi","email":"shihai1992@gmail.com","username":"haishi"},"change_message_id":"2da9267f472c50d63bc3f2ba6663ea63df32fc65","unresolved":false,"context_lines":[{"line_number":306,"context_line":"        for user_credential in self.existing_users:"},{"line_number":307,"context_line":"            user_clients \u003d user_credential.clients()"},{"line_number":308,"context_line":"            user_id \u003d user_clients.keystone.auth_ref.user_id"},{"line_number":309,"context_line":"            tenant_id \u003d user_clients.keystone.auth_ref.project_id"},{"line_number":310,"context_line":""},{"line_number":311,"context_line":"            if tenant_id not in self.context[\"tenants\"]:"},{"line_number":312,"context_line":"                self.context[\"tenants\"][tenant_id] \u003d {"}],"source_content_type":"text/x-python","patch_set":2,"id":"5ff73747_633f8925","line":309,"range":{"start_line":309,"start_character":11,"end_line":309,"end_character":65},"updated":"2017-04-25 17:05:47.000000000","message":"It looks only support keystone_v3.","commit_id":"54738da66de12d351c900c60d60d99c6bbcc339b"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"832c62b0021ed9302f221e2d3afa0a7d567a4db5","unresolved":false,"context_lines":[{"line_number":306,"context_line":"        for user_credential in self.existing_users:"},{"line_number":307,"context_line":"            user_clients \u003d user_credential.clients()"},{"line_number":308,"context_line":"            user_id \u003d user_clients.keystone.auth_ref.user_id"},{"line_number":309,"context_line":"            tenant_id \u003d user_clients.keystone.auth_ref.project_id"},{"line_number":310,"context_line":""},{"line_number":311,"context_line":"            if tenant_id not in self.context[\"tenants\"]:"},{"line_number":312,"context_line":"                self.context[\"tenants\"][tenant_id] \u003d {"}],"source_content_type":"text/x-python","patch_set":2,"id":"5ff73747_96607003","line":309,"range":{"start_line":309,"start_character":11,"end_line":309,"end_character":65},"in_reply_to":"5ff73747_633f8925","updated":"2017-04-26 15:39:11.000000000","message":"keystoneclient duplicates that key for both V2 and V3 :)","commit_id":"54738da66de12d351c900c60d60d99c6bbcc339b"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"0ca86d243eb35b0a710cbf752a60c506ce959c8b","unresolved":false,"context_lines":[{"line_number":82,"context_line":"                 \"user_domain\": {"},{"line_number":83,"context_line":"                     \"type\": \"string\","},{"line_number":84,"context_line":"                     \"description\": USER_DOMAIN_DESCR},"},{"line_number":85,"context_line":"                 \"user_choice_method\": USER_CHOICE_METHOD},"},{"line_number":86,"context_line":"             \"additionalProperties\": False},"},{"line_number":87,"context_line":"            # TODO(andreykurilin): add ability to specify users here."},{"line_number":88,"context_line":"            {\"description\": \"Use existing users and tenants.\","}],"source_content_type":"text/x-python","patch_set":4,"id":"3f1d235d_cb831956","line":85,"updated":"2017-07-11 01:26:05.000000000","message":"let\u0027s use reference instead of copy pasting","commit_id":"9da5fe50026a5e9e36cb705d8734296536cc3618"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"40016013d2b2f12435f05e2dac73905ac3906d80","unresolved":false,"context_lines":[{"line_number":82,"context_line":"                 \"user_domain\": {"},{"line_number":83,"context_line":"                     \"type\": \"string\","},{"line_number":84,"context_line":"                     \"description\": USER_DOMAIN_DESCR},"},{"line_number":85,"context_line":"                 \"user_choice_method\": USER_CHOICE_METHOD},"},{"line_number":86,"context_line":"             \"additionalProperties\": False},"},{"line_number":87,"context_line":"            # TODO(andreykurilin): add ability to specify users here."},{"line_number":88,"context_line":"            {\"description\": \"Use existing users and tenants.\","}],"source_content_type":"text/x-python","patch_set":4,"id":"1f1a1f67_3c18d07f","line":85,"in_reply_to":"3f1d235d_cb831956","updated":"2017-07-12 11:55:29.000000000","message":"it is not copy-pasting, it is usage of python variables ;)\n\nbut I got your point, will use jsonschema\u0027s definitions.","commit_id":"9da5fe50026a5e9e36cb705d8734296536cc3618"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"0fbb15e8437d6c5952de1a4c6633a7c10c7fc329","unresolved":false,"context_lines":[{"line_number":115,"context_line":"            self.existing_users \u003d existing_users"},{"line_number":116,"context_line":"        else:"},{"line_number":117,"context_line":"            self.existing_users \u003d []"},{"line_number":118,"context_line":"            self.credential \u003d context[\"admin\"][\"credential\"]"},{"line_number":119,"context_line":"            project_domain \u003d (self.credential.project_domain_name or"},{"line_number":120,"context_line":"                              cfg.CONF.users_context.project_domain)"},{"line_number":121,"context_line":"            user_domain \u003d (self.credential.user_domain_name or"}],"source_content_type":"text/x-python","patch_set":6,"id":"1f1a1f67_7cb4a435","line":118,"updated":"2017-07-14 18:46:52.000000000","message":"What will happen if we specify deployment without admin, and add section for creating tenant \u0026 users. This line is going to fail? or we have some validation?","commit_id":"0f71f39ba435aff0cf507ca4446bcbd75928f62a"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"c009f58670ed054384388a7ec2544d444fe98461","unresolved":false,"context_lines":[{"line_number":115,"context_line":"            self.existing_users \u003d existing_users"},{"line_number":116,"context_line":"        else:"},{"line_number":117,"context_line":"            self.existing_users \u003d []"},{"line_number":118,"context_line":"            self.credential \u003d context[\"admin\"][\"credential\"]"},{"line_number":119,"context_line":"            project_domain \u003d (self.credential.project_domain_name or"},{"line_number":120,"context_line":"                              cfg.CONF.users_context.project_domain)"},{"line_number":121,"context_line":"            user_domain \u003d (self.credential.user_domain_name or"}],"source_content_type":"text/x-python","patch_set":6,"id":"1f1a1f67_51730e4e","line":118,"in_reply_to":"1f1a1f67_7cb4a435","updated":"2017-07-14 21:30:21.000000000","message":"yes, it will fail. I will add a new validator for that case, but let\u0027s do it in separate patch since this patch is a blocker and contains a lot of merge conflicts.","commit_id":"0f71f39ba435aff0cf507ca4446bcbd75928f62a"}],"rally/task/engine.py":[{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"0ca86d243eb35b0a710cbf752a60c506ce959c8b","unresolved":false,"context_lines":[{"line_number":441,"context_line":"        creds \u003d self.deployment.get_credentials_for(namespace)"},{"line_number":442,"context_line":""},{"line_number":443,"context_line":"        scenario_context \u003d copy.deepcopy(scenario_cls.get_default_context())"},{"line_number":444,"context_line":"        if \"users\" not in [c.split(\"@\", 1)[0] for c in ctx.keys()]:"},{"line_number":445,"context_line":"            scenario_context.setdefault(\"users\", {})"},{"line_number":446,"context_line":""},{"line_number":447,"context_line":"        scenario_context.update(ctx)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f1d235d_ab07bdc9","line":444,"updated":"2017-07-11 01:26:05.000000000","message":"why @ is used for separation? don\u0027t get this line","commit_id":"9da5fe50026a5e9e36cb705d8734296536cc3618"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"40016013d2b2f12435f05e2dac73905ac3906d80","unresolved":false,"context_lines":[{"line_number":441,"context_line":"        creds \u003d self.deployment.get_credentials_for(namespace)"},{"line_number":442,"context_line":""},{"line_number":443,"context_line":"        scenario_context \u003d copy.deepcopy(scenario_cls.get_default_context())"},{"line_number":444,"context_line":"        if \"users\" not in [c.split(\"@\", 1)[0] for c in ctx.keys()]:"},{"line_number":445,"context_line":"            scenario_context.setdefault(\"users\", {})"},{"line_number":446,"context_line":""},{"line_number":447,"context_line":"        scenario_context.update(ctx)"}],"source_content_type":"text/x-python","patch_set":4,"id":"1f1a1f67_5f213e9f","line":444,"in_reply_to":"3f1d235d_ab07bdc9","updated":"2017-07-12 11:55:29.000000000","message":"@ is used a separator between name of plugin and its namespace.","commit_id":"9da5fe50026a5e9e36cb705d8734296536cc3618"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"0fbb15e8437d6c5952de1a4c6633a7c10c7fc329","unresolved":false,"context_lines":[{"line_number":400,"context_line":"            if admin:"},{"line_number":401,"context_line":"                admin.verify_connection()"},{"line_number":402,"context_line":""},{"line_number":403,"context_line":"            workloads_with_users \u003d []"},{"line_number":404,"context_line":"            workloads_with_existing_users \u003d []"},{"line_number":405,"context_line":""},{"line_number":406,"context_line":"            for workload in workloads:"}],"source_content_type":"text/x-python","patch_set":6,"id":"1f1a1f67_6103e110","side":"PARENT","line":403,"updated":"2017-07-14 18:46:52.000000000","message":"wow this removes so many hacks","commit_id":"ac2b4c51b624a43a48e97084692852633faec328"}]}
