)]}'
{"rally/plugins/openstack/validators.py":[{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"553c09039255288265e0cdad9400fbda33f106e7","unresolved":false,"context_lines":[{"line_number":298,"context_line":"        \"\"\"Validator checks component API versions."},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"        :param component: name of required component"},{"line_number":301,"context_line":"        :param versions: version of required component"},{"line_number":302,"context_line":"        \"\"\""},{"line_number":303,"context_line":"        super(RequiredAPIVersionsValidator, self).__init__()"},{"line_number":304,"context_line":"        self.component \u003d component"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f044301_a7c5b63e","line":301,"range":{"start_line":301,"start_character":25,"end_line":301,"end_character":33},"updated":"2017-05-05 08:56:41.000000000","message":"s/version/version or versions","commit_id":"33d73223339d4536ad728c873a42cc59b981dcbe"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"553c09039255288265e0cdad9400fbda33f106e7","unresolved":false,"context_lines":[{"line_number":302,"context_line":"        \"\"\""},{"line_number":303,"context_line":"        super(RequiredAPIVersionsValidator, self).__init__()"},{"line_number":304,"context_line":"        self.component \u003d component"},{"line_number":305,"context_line":"        self.versions \u003d versions"},{"line_number":306,"context_line":""},{"line_number":307,"context_line":"    def validate(self, config, credentials, plugin_cls, plugin_cfg):"},{"line_number":308,"context_line":"        versions \u003d [str(v) for v in self.versions]"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f044301_470b928d","line":305,"range":{"start_line":305,"start_character":24,"end_line":305,"end_character":32},"updated":"2017-05-05 08:56:41.000000000","message":"self.versions \u003d versions if isinstance(versions, (list, tuple)) else [versions]\n\nAlso, let\u0027s rename it to just \"version\"","commit_id":"33d73223339d4536ad728c873a42cc59b981dcbe"},{"author":{"_account_id":19011,"name":"Anton Studenov","email":"tohin1332@gmail.com","username":"tohin"},"change_message_id":"9a565464fce647192957b9ae3ac0c04bc06a3772","unresolved":false,"context_lines":[{"line_number":360,"context_line":""},{"line_number":361,"context_line":"    def validate(self, config, credentials, plugin_cls, plugin_cfg):"},{"line_number":362,"context_line":"        versions \u003d [str(v) for v in self.versions]"},{"line_number":363,"context_line":"        versions_str \u003d \", \" .join(versions)"},{"line_number":364,"context_line":"        msg \u003d (\"Task was designed to be used with %(component)s \""},{"line_number":365,"context_line":"               \"V%(version)s, but V%(found_version)s is \""},{"line_number":366,"context_line":"               \"selected.\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f044301_72e26ea2","line":363,"range":{"start_line":363,"start_character":27,"end_line":363,"end_character":28},"updated":"2017-05-10 19:30:44.000000000","message":"extra space","commit_id":"71d12e395c495a3abc4ac63f98875f4bf453bf92"},{"author":{"_account_id":21528,"name":"chenhb","email":"chen.haibing1@zte.com.cn","username":"chenhb"},"change_message_id":"258dfa6239ae8c453d7bd75bd199b6491b1746a7","unresolved":false,"context_lines":[{"line_number":364,"context_line":"        msg \u003d (\"Task was designed to be used with %(component)s \""},{"line_number":365,"context_line":"               \"V%(version)s, but V%(found_version)s is \""},{"line_number":366,"context_line":"               \"selected.\")"},{"line_number":367,"context_line":"        for user in credentials[\"openstack\"][\"users\"]:"},{"line_number":368,"context_line":"            clients \u003d user[\"credential\"].clients()"},{"line_number":369,"context_line":"            if self.component \u003d\u003d \"keystone\":"},{"line_number":370,"context_line":"                if \"2.0\" not in versions and hasattr("},{"line_number":371,"context_line":"                        clients.keystone(), \"tenants\"):"},{"line_number":372,"context_line":"                    return self.fail(msg % {\"component\": self.component,"},{"line_number":373,"context_line":"                                            \"version\": versions_str,"},{"line_number":374,"context_line":"                                            \"found_version\": \"2.0\"})"},{"line_number":375,"context_line":"                if \"3\" not in versions and hasattr("},{"line_number":376,"context_line":"                        clients.keystone(), \"projects\"):"},{"line_number":377,"context_line":"                    return self.fail(msg % {\"component\": self.component,"},{"line_number":378,"context_line":"                                            \"version\": versions_str,"},{"line_number":379,"context_line":"                                            \"found_version\": \"3\"})"},{"line_number":380,"context_line":"            else:"},{"line_number":381,"context_line":"                used_version \u003d config.get("},{"line_number":382,"context_line":"                    \"context\", {}).get("},{"line_number":383,"context_line":"                    \"api_versions\", {}).get("},{"line_number":384,"context_line":"                    self.component, {}).get("},{"line_number":385,"context_line":"                    \"version\", getattr("},{"line_number":386,"context_line":"                        clients, self.component).choose_version())"},{"line_number":387,"context_line":"                if not used_version:"},{"line_number":388,"context_line":"                    return self.fail(\"Unable to determine the API version.\")"},{"line_number":389,"context_line":"                if str(used_version) not in versions:"},{"line_number":390,"context_line":"                    return self.fail(msg % {\"component\": self.component,"},{"line_number":391,"context_line":"                                            \"version\": versions_str,"},{"line_number":392,"context_line":"                                            \"found_version\": used_version})"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f044301_3b75f332","line":392,"range":{"start_line":367,"start_character":0,"end_line":392,"end_character":75},"updated":"2017-05-10 08:54:46.000000000","message":"not sure it is necessary that check version of client for every user.","commit_id":"71d12e395c495a3abc4ac63f98875f4bf453bf92"}]}
