)]}'
{"rally/osclients.py":[{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"78d1f8dad481cd1f56dcdae4fd1d6c82967694c5","unresolved":false,"context_lines":[{"line_number":148,"context_line":"                                            self.cache)"},{"line_number":149,"context_line":"        return keystone(*args, **kwargs)"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    def _get_keystoneauth_session(self, auth\u003dNone, endpoint\u003dNone):"},{"line_number":152,"context_line":"        from keystoneauth1 import identity"},{"line_number":153,"context_line":"        from keystoneauth1 import session"},{"line_number":154,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3aaa91ec_08d6b4f0","line":151,"range":{"start_line":151,"start_character":40,"end_line":151,"end_character":50},"updated":"2016-06-29 15:59:43.000000000","message":"It will not work in case of keystoneclient, since you override this argument.","commit_id":"38e5d0f1c18c532aed447833c6e586ac1613fbbe"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"78d1f8dad481cd1f56dcdae4fd1d6c82967694c5","unresolved":false,"context_lines":[{"line_number":148,"context_line":"                                            self.cache)"},{"line_number":149,"context_line":"        return keystone(*args, **kwargs)"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    def _get_keystoneauth_session(self, auth\u003dNone, endpoint\u003dNone):"},{"line_number":152,"context_line":"        from keystoneauth1 import identity"},{"line_number":153,"context_line":"        from keystoneauth1 import session"},{"line_number":154,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3aaa91ec_e8f9a881","line":151,"range":{"start_line":151,"start_character":8,"end_line":151,"end_character":33},"updated":"2016-06-29 15:59:43.000000000","message":"Let\u0027s leave old name","commit_id":"38e5d0f1c18c532aed447833c6e586ac1613fbbe"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"78d1f8dad481cd1f56dcdae4fd1d6c82967694c5","unresolved":false,"context_lines":[{"line_number":152,"context_line":"        from keystoneauth1 import identity"},{"line_number":153,"context_line":"        from keystoneauth1 import session"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"        if auth is None:"},{"line_number":156,"context_line":"            kc \u003d self.keystone()"},{"line_number":157,"context_line":"            #NOTE(rvasilets) Do we need auth_token?"},{"line_number":158,"context_line":"            auth \u003d identity.Token(auth_url\u003dendpoint or self._get_endpoint(),"},{"line_number":159,"context_line":"                                  token\u003dkc.auth_token)"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        auth \u003d identity.Password("},{"line_number":162,"context_line":"            username\u003dself.credential.username,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3aaa91ec_487f1ce0","line":159,"range":{"start_line":155,"start_character":8,"end_line":159,"end_character":54},"updated":"2016-06-29 15:59:43.000000000","message":"Imo, we do not need to use Token plugin. Password plugin should satisfy all cases, so you can remove this code.","commit_id":"38e5d0f1c18c532aed447833c6e586ac1613fbbe"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"db8523115a6f9af6fbf3e2615a28532ff7074ef4","unresolved":false,"context_lines":[{"line_number":152,"context_line":"        from keystoneauth1 import identity"},{"line_number":153,"context_line":"        from keystoneauth1 import session"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"        if auth is None:"},{"line_number":156,"context_line":"            kc \u003d self.keystone()"},{"line_number":157,"context_line":"            #NOTE(rvasilets) Do we need auth_token?"},{"line_number":158,"context_line":"            auth \u003d identity.Token(auth_url\u003dendpoint or self._get_endpoint(),"},{"line_number":159,"context_line":"                                  token\u003dkc.auth_token)"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        auth \u003d identity.Password("},{"line_number":162,"context_line":"            username\u003dself.credential.username,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3aaa91ec_c152a234","line":159,"range":{"start_line":155,"start_character":8,"end_line":159,"end_character":54},"in_reply_to":"3aaa91ec_487f1ce0","updated":"2016-06-30 10:06:15.000000000","message":"But this part approved by keystone team in you novaclient patch","commit_id":"38e5d0f1c18c532aed447833c6e586ac1613fbbe"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"9ba89b0385be4a4d5f6bec0ef18d35e16fd06caf","unresolved":false,"context_lines":[{"line_number":152,"context_line":"        from keystoneauth1 import identity"},{"line_number":153,"context_line":"        from keystoneauth1 import session"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"        if auth is None:"},{"line_number":156,"context_line":"            kc \u003d self.keystone()"},{"line_number":157,"context_line":"            #NOTE(rvasilets) Do we need auth_token?"},{"line_number":158,"context_line":"            auth \u003d identity.Token(auth_url\u003dendpoint or self._get_endpoint(),"},{"line_number":159,"context_line":"                                  token\u003dkc.auth_token)"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        auth \u003d identity.Password("},{"line_number":162,"context_line":"            username\u003dself.credential.username,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3aaa91ec_e7552e1e","line":159,"range":{"start_line":155,"start_character":8,"end_line":159,"end_character":54},"in_reply_to":"3aaa91ec_c152a234","updated":"2016-06-30 10:43:44.000000000","message":"novaclient supports different ways of initialization. This part relates to token-authentification. I think we do need need it in our code.","commit_id":"38e5d0f1c18c532aed447833c6e586ac1613fbbe"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"78d1f8dad481cd1f56dcdae4fd1d6c82967694c5","unresolved":false,"context_lines":[{"line_number":165,"context_line":"            project_id\u003dNone,"},{"line_number":166,"context_line":"            auth_url\u003dself.credential.auth_url,"},{"line_number":167,"context_line":"            project_domain_id\u003dNone,"},{"line_number":168,"context_line":"            project_domain_name\u003dself.credential.project_domain_name,"},{"line_number":169,"context_line":"            user_domain_id\u003dNone,"},{"line_number":170,"context_line":"            user_domain_name\u003dself.credential.user_domain_name)"},{"line_number":171,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3aaa91ec_489b9c18","line":168,"range":{"start_line":168,"start_character":12,"end_line":168,"end_character":68},"updated":"2016-06-29 15:59:43.000000000","message":"please, read comment at L249","commit_id":"38e5d0f1c18c532aed447833c6e586ac1613fbbe"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"78d1f8dad481cd1f56dcdae4fd1d6c82967694c5","unresolved":false,"context_lines":[{"line_number":246,"context_line":"            \"username\", \"project_name\", \"tenant_name\", \"auth_url\","},{"line_number":247,"context_line":"            \"password\","},{"line_number":248,"context_line":"        ]"},{"line_number":249,"context_line":"        # NOTE(bigjools): If forcing a v2.0 URL then you cannot specify"},{"line_number":250,"context_line":"        # domain-related info, or the service discovery will fail."},{"line_number":251,"context_line":"        if \"v2.0\" not in args[\"auth_url\"] and version !\u003d \"2\":"},{"line_number":252,"context_line":"            auth_arg_list.extend("},{"line_number":253,"context_line":"                [\"user_domain_name\", \"domain_name\", \"project_domain_name\"])"},{"line_number":254,"context_line":"        auth_args \u003d {key: args.get(key) for key in auth_arg_list}"},{"line_number":255,"context_line":"        auth \u003d identity.Password(**auth_args)"},{"line_number":256,"context_line":"        session \u003d self._get_keystoneauth_session(auth\u003dauth)"},{"line_number":257,"context_line":"        args[\"session\"] \u003d session"},{"line_number":258,"context_line":"        # NOTE(bigjools): When using sessions, keystoneclient no longer"}],"source_content_type":"text/x-python","patch_set":2,"id":"3aaa91ec_68bdb867","line":255,"range":{"start_line":249,"start_character":8,"end_line":255,"end_character":45},"updated":"2016-06-29 15:59:43.000000000","message":"it would be nice to move this code to get_session method","commit_id":"38e5d0f1c18c532aed447833c6e586ac1613fbbe"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"db8523115a6f9af6fbf3e2615a28532ff7074ef4","unresolved":false,"context_lines":[{"line_number":246,"context_line":"            \"username\", \"project_name\", \"tenant_name\", \"auth_url\","},{"line_number":247,"context_line":"            \"password\","},{"line_number":248,"context_line":"        ]"},{"line_number":249,"context_line":"        # NOTE(bigjools): If forcing a v2.0 URL then you cannot specify"},{"line_number":250,"context_line":"        # domain-related info, or the service discovery will fail."},{"line_number":251,"context_line":"        if \"v2.0\" not in args[\"auth_url\"] and version !\u003d \"2\":"},{"line_number":252,"context_line":"            auth_arg_list.extend("},{"line_number":253,"context_line":"                [\"user_domain_name\", \"domain_name\", \"project_domain_name\"])"},{"line_number":254,"context_line":"        auth_args \u003d {key: args.get(key) for key in auth_arg_list}"},{"line_number":255,"context_line":"        auth \u003d identity.Password(**auth_args)"},{"line_number":256,"context_line":"        session \u003d self._get_keystoneauth_session(auth\u003dauth)"},{"line_number":257,"context_line":"        args[\"session\"] \u003d session"},{"line_number":258,"context_line":"        # NOTE(bigjools): When using sessions, keystoneclient no longer"}],"source_content_type":"text/x-python","patch_set":2,"id":"3aaa91ec_e1035e0e","line":255,"range":{"start_line":249,"start_character":8,"end_line":255,"end_character":45},"in_reply_to":"3aaa91ec_68bdb867","updated":"2016-06-30 10:06:15.000000000","message":"Yep, Its in my roadmap\u003d)","commit_id":"38e5d0f1c18c532aed447833c6e586ac1613fbbe"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"e203d97891754f37deee228ba8508d1ab083aa53","unresolved":false,"context_lines":[{"line_number":232,"context_line":""},{"line_number":233,"context_line":"    def _create_keystone_client(self, args, version\u003dNone):"},{"line_number":234,"context_line":"        from keystoneclient import client"},{"line_number":235,"context_line":"        auth_arg_list \u003d ["},{"line_number":236,"context_line":"            \"username\", \"project_name\", \"tenant_name\", \"auth_url\","},{"line_number":237,"context_line":"            \"password\","},{"line_number":238,"context_line":"        ]"},{"line_number":239,"context_line":"        # NOTE(bigjools): If forcing a v2.0 URL then you cannot specify"},{"line_number":240,"context_line":"        # domain-related info, or the service discovery will fail."},{"line_number":241,"context_line":"        if \"v2.0\" not in args[\"auth_url\"] and version !\u003d \"2\":"},{"line_number":242,"context_line":"            auth_arg_list.extend("},{"line_number":243,"context_line":"                [\"user_domain_name\", \"domain_name\", \"project_domain_name\"])"},{"line_number":244,"context_line":"        password_args \u003d {key: args.get(key) for key in auth_arg_list}"},{"line_number":245,"context_line":"        sess, plugin \u003d self._get_session(password_args\u003dpassword_args)"},{"line_number":246,"context_line":"        args[\"session\"] \u003d sess"},{"line_number":247,"context_line":"        # NOTE(bigjools): When using sessions, keystoneclient no longer"}],"source_content_type":"text/x-python","patch_set":9,"id":"3aaa91ec_2faea52f","line":244,"range":{"start_line":235,"start_character":8,"end_line":244,"end_character":69},"updated":"2016-07-01 13:31:53.000000000","message":"it should move to get_session method to affect all session initializations or, if it redundant, remove it","commit_id":"d72f2ef2399eb6a894f53f9de33f29ff44fe96c2"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"e203d97891754f37deee228ba8508d1ab083aa53","unresolved":false,"context_lines":[{"line_number":255,"context_line":"        # present."},{"line_number":256,"context_line":"        auth_ref \u003d plugin.get_access(args[\"session\"])"},{"line_number":257,"context_line":"        ks \u003d client.Client(version\u003dversion, **args)"},{"line_number":258,"context_line":"        ks.auth_ref \u003d auth_ref"},{"line_number":259,"context_line":"        return ks"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"    def _remove_url_version(self):"}],"source_content_type":"text/x-python","patch_set":9,"id":"3aaa91ec_0fd649c3","line":258,"range":{"start_line":258,"start_character":8,"end_line":258,"end_character":30},"updated":"2016-07-01 13:31:53.000000000","message":"btw, can you check that we need this line?","commit_id":"d72f2ef2399eb6a894f53f9de33f29ff44fe96c2"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"a41df0d5a7a1e2113827920c754bda2a3479d774","unresolved":false,"context_lines":[{"line_number":162,"context_line":"                [\"user_domain_name\", \"domain_name\", \"project_domain_name\"])"},{"line_number":163,"context_line":"        password_args \u003d {key: password_args.get(key) for key in auth_arg_list}"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"        kw \u003d {"},{"line_number":166,"context_line":"            \"username\": self.credential.username,"},{"line_number":167,"context_line":"            \"password\": self.credential.password,"},{"line_number":168,"context_line":"            \"auth_url\": auth_url or self.credential.auth_url,"},{"line_number":169,"context_line":"            \"project_domain_name\": self.credential.project_domain_name,"},{"line_number":170,"context_line":"            \"user_domain_name\": self.credential.user_domain_name,"},{"line_number":171,"context_line":"        }"},{"line_number":172,"context_line":"        kw.update(password_args)"},{"line_number":173,"context_line":"        plugin \u003d identity.Password(**kw)"},{"line_number":174,"context_line":"        sess \u003d session.Session("},{"line_number":175,"context_line":"            auth\u003dplugin, verify\u003d(not self.credential.insecure),"}],"source_content_type":"text/x-python","patch_set":11,"id":"1aa78d24_065b942f","line":172,"range":{"start_line":165,"start_character":7,"end_line":172,"end_character":32},"updated":"2016-07-04 18:31:54.000000000","message":"you do not need this code at all. use password_args instead in further code","commit_id":"84a525e12ded9bc3c229d255c8eebba78a312b5c"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"a41df0d5a7a1e2113827920c754bda2a3479d774","unresolved":false,"context_lines":[{"line_number":172,"context_line":"        kw.update(password_args)"},{"line_number":173,"context_line":"        plugin \u003d identity.Password(**kw)"},{"line_number":174,"context_line":"        sess \u003d session.Session("},{"line_number":175,"context_line":"            auth\u003dplugin, verify\u003d(not self.credential.insecure),"},{"line_number":176,"context_line":"            timeout\u003dCONF.openstack_client_http_timeout,"},{"line_number":177,"context_line":"            cert\u003dself.credential.cacert)"},{"line_number":178,"context_line":"        return sess, plugin"}],"source_content_type":"text/x-python","patch_set":11,"id":"1aa78d24_e674889d","line":175,"range":{"start_line":175,"start_character":33,"end_line":175,"end_character":61},"updated":"2016-07-04 18:31:54.000000000","message":"it should be:\n   not self.credential.insecure or self.credential.cacert","commit_id":"84a525e12ded9bc3c229d255c8eebba78a312b5c"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"a41df0d5a7a1e2113827920c754bda2a3479d774","unresolved":false,"context_lines":[{"line_number":174,"context_line":"        sess \u003d session.Session("},{"line_number":175,"context_line":"            auth\u003dplugin, verify\u003d(not self.credential.insecure),"},{"line_number":176,"context_line":"            timeout\u003dCONF.openstack_client_http_timeout,"},{"line_number":177,"context_line":"            cert\u003dself.credential.cacert)"},{"line_number":178,"context_line":"        return sess, plugin"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"    def _get_endpoint(self, service_type\u003dNone):"}],"source_content_type":"text/x-python","patch_set":11,"id":"1aa78d24_6669b8be","line":177,"range":{"start_line":177,"start_character":12,"end_line":177,"end_character":16},"updated":"2016-07-04 18:31:54.000000000","message":"we do not have cert. we need to add cert to Credential and Deployment objects","commit_id":"84a525e12ded9bc3c229d255c8eebba78a312b5c"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"f84a0f824e7a96491d9cba77c013418b2d9a7e23","unresolved":false,"context_lines":[{"line_number":239,"context_line":"        plugin \u003d identity.Password(**password_args)"},{"line_number":240,"context_line":"        sess \u003d session.Session("},{"line_number":241,"context_line":"            auth\u003dplugin, verify\u003d(not self.credential.insecure or self.credential.cacert),"},{"line_number":242,"context_line":"            timeout\u003dCONF.openstack_client_http_timeout,"},{"line_number":243,"context_line":"            cert\u003dself.credential.cacert)"},{"line_number":244,"context_line":"        return sess, plugin"},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"    def keystone(self, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":15,"id":"1aa78d24_ea5510fa","line":243,"range":{"start_line":242,"start_character":54,"end_line":243,"end_character":39},"updated":"2016-07-06 11:23:15.000000000","message":"it is not required. please remove this","commit_id":"51ca494606d25fe1c256462938fccf947419a1c2"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"af834ee63f6cc6b0fd5f88eb140b8576ec89e16f","unresolved":false,"context_lines":[{"line_number":148,"context_line":"                                            self.cache)"},{"line_number":149,"context_line":"        return keystone(*args, **kwargs)"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    def _get_session(self, auth_url\u003dNone, password_args\u003dNone, version\u003dNone):"},{"line_number":152,"context_line":"        from keystoneauth1 import discover"},{"line_number":153,"context_line":"        from keystoneauth1 import session"},{"line_number":154,"context_line":"        from keystoneclient.auth import identity"}],"source_content_type":"text/x-python","patch_set":29,"id":"dada55a8_2845b06f","line":151,"range":{"start_line":151,"start_character":42,"end_line":151,"end_character":62},"updated":"2016-07-19 12:46:38.000000000","message":"do we need it? I think no","commit_id":"560bc170097091b176e5c35c24b41b1eec4c5cbb"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"af834ee63f6cc6b0fd5f88eb140b8576ec89e16f","unresolved":false,"context_lines":[{"line_number":153,"context_line":"        from keystoneauth1 import session"},{"line_number":154,"context_line":"        from keystoneclient.auth import identity"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"        auth_arg_list \u003d ["},{"line_number":157,"context_line":"            \"username\", \"project_name\", \"tenant_name\", \"auth_url\","},{"line_number":158,"context_line":"            \"password\","},{"line_number":159,"context_line":"        ]"},{"line_number":160,"context_line":"        # NOTE(rvasilets): If version not specified than we discover"},{"line_number":161,"context_line":"        # available version with the smallest number. To be able to discover"},{"line_number":162,"context_line":"        # versions we need session"},{"line_number":163,"context_line":"        temp_session \u003d session.Session("},{"line_number":164,"context_line":"            verify\u003d(self.credential.cacert or not self.credential.insecure),"},{"line_number":165,"context_line":"            timeout\u003dCONF.openstack_client_http_timeout)"},{"line_number":166,"context_line":"        if password_args is None:"},{"line_number":167,"context_line":"            password_args \u003d self.credential.to_dict()"},{"line_number":168,"context_line":"            pop_list \u003d (\"endpoint\", \"region_name\", \"https_insecure\","},{"line_number":169,"context_line":"                        \"endpoint_type\", \"https_cacert\", \"admin_domain_name\")"},{"line_number":170,"context_line":"            for x in pop_list:"},{"line_number":171,"context_line":"                password_args.pop(x)"},{"line_number":172,"context_line":"        if auth_url:"},{"line_number":173,"context_line":"            password_args[\"auth_url\"] \u003d auth_url"},{"line_number":174,"context_line":""}],"source_content_type":"text/x-python","patch_set":29,"id":"dada55a8_ebd0b255","line":171,"range":{"start_line":156,"start_character":8,"end_line":171,"end_character":36},"updated":"2016-07-19 12:46:38.000000000","message":"I understand that such way was implemented in previous code, but it looks ugly. it would be nice to replace all \nwith simple dict:\n\n   password_args \u003d {\"required_arg_1\": self.credentials.required_arg_1,\n                    \"required_arg_2\": self.credentials.required_arg_2}","commit_id":"560bc170097091b176e5c35c24b41b1eec4c5cbb"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"af834ee63f6cc6b0fd5f88eb140b8576ec89e16f","unresolved":false,"context_lines":[{"line_number":181,"context_line":""},{"line_number":182,"context_line":"        if \"v2.0\" not in password_args[\"auth_url\"] and ("},{"line_number":183,"context_line":"                version !\u003d \"2\"):"},{"line_number":184,"context_line":"            auth_arg_list.extend("},{"line_number":185,"context_line":"                [\"user_domain_name\", \"domain_name\", \"project_domain_name\"])"},{"line_number":186,"context_line":"        password_args \u003d {"},{"line_number":187,"context_line":"            key: password_args.get(key) for key in auth_arg_list}"},{"line_number":188,"context_line":"        identity_plugin \u003d identity.Password(**password_args)"},{"line_number":189,"context_line":"        sess \u003d session.Session("},{"line_number":190,"context_line":"            auth\u003didentity_plugin, verify\u003d("}],"source_content_type":"text/x-python","patch_set":29,"id":"dada55a8_6bc5e28c","line":187,"range":{"start_line":184,"start_character":12,"end_line":187,"end_character":65},"updated":"2016-07-19 12:46:38.000000000","message":"same here","commit_id":"560bc170097091b176e5c35c24b41b1eec4c5cbb"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"af834ee63f6cc6b0fd5f88eb140b8576ec89e16f","unresolved":false,"context_lines":[{"line_number":285,"context_line":""},{"line_number":286,"context_line":"        version \u003d self.choose_version(version)"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"        kw \u003d self.credential.to_dict()"},{"line_number":289,"context_line":"        kw[\"timeout\"] \u003d CONF.openstack_client_http_timeout"},{"line_number":290,"context_line":"        if version is not None:"},{"line_number":291,"context_line":"            kw[\"auth_url\"] \u003d self._remove_url_version()"},{"line_number":292,"context_line":"        sess, plugin \u003d self._get_session(password_args\u003dkw, version\u003dversion)"}],"source_content_type":"text/x-python","patch_set":29,"id":"dada55a8_283c90e1","line":289,"range":{"start_line":288,"start_character":8,"end_line":289,"end_character":58},"updated":"2016-07-19 12:46:38.000000000","message":"let\u0027s move it to _get_session method","commit_id":"560bc170097091b176e5c35c24b41b1eec4c5cbb"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"af834ee63f6cc6b0fd5f88eb140b8576ec89e16f","unresolved":false,"context_lines":[{"line_number":288,"context_line":"        kw \u003d self.credential.to_dict()"},{"line_number":289,"context_line":"        kw[\"timeout\"] \u003d CONF.openstack_client_http_timeout"},{"line_number":290,"context_line":"        if version is not None:"},{"line_number":291,"context_line":"            kw[\"auth_url\"] \u003d self._remove_url_version()"},{"line_number":292,"context_line":"        sess, plugin \u003d self._get_session(password_args\u003dkw, version\u003dversion)"},{"line_number":293,"context_line":"        kw[\"session\"] \u003d sess"},{"line_number":294,"context_line":"        # NOTE(bigjools): When using sessions, keystoneclient no longer"}],"source_content_type":"text/x-python","patch_set":29,"id":"dada55a8_cb020e09","line":291,"range":{"start_line":291,"start_character":12,"end_line":291,"end_character":55},"updated":"2016-07-19 12:46:38.000000000","message":"transmit it via auth_url argument","commit_id":"560bc170097091b176e5c35c24b41b1eec4c5cbb"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"a623f5c46ee1ae6941dcefde691e41862b3af974","unresolved":false,"context_lines":[{"line_number":153,"context_line":"        from keystoneauth1 import session"},{"line_number":154,"context_line":"        from keystoneclient.auth import identity"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"        # NOTE(rvasilets): If version not specified than we discover"},{"line_number":157,"context_line":"        # available version with the smallest number. To be able to discover"},{"line_number":158,"context_line":"        # versions we need session"},{"line_number":159,"context_line":"        temp_session \u003d session.Session("},{"line_number":160,"context_line":"            verify\u003d(self.credential.cacert or not self.credential.insecure),"},{"line_number":161,"context_line":"            timeout\u003dCONF.openstack_client_http_timeout)"},{"line_number":162,"context_line":"        password_args \u003d {"},{"line_number":163,"context_line":"            \"auth_url\": auth_url or self.credential.auth_url,"},{"line_number":164,"context_line":"            \"username\": self.credential.username,"}],"source_content_type":"text/x-python","patch_set":32,"id":"dada55a8_d4b6e1f7","line":161,"range":{"start_line":156,"start_character":8,"end_line":161,"end_character":55},"updated":"2016-07-20 18:00:18.000000000","message":"where is if statement?\n\n   if not version:\n       tmp_session \u003d ...\n       version \u003d discover...","commit_id":"0f708f48e6bacfad8c9c769d3ca646f2c9269a01"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"3d3c7cca5c4d5aef60fe73b0fbfff8ea11895120","unresolved":false,"context_lines":[{"line_number":153,"context_line":"        from keystoneauth1 import session"},{"line_number":154,"context_line":"        from keystoneclient.auth import identity"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"        # NOTE(rvasilets): If version not specified than we discover"},{"line_number":157,"context_line":"        # available version with the smallest number. To be able to discover"},{"line_number":158,"context_line":"        # versions we need session"},{"line_number":159,"context_line":"        temp_session \u003d session.Session("},{"line_number":160,"context_line":"            verify\u003d(self.credential.cacert or not self.credential.insecure),"},{"line_number":161,"context_line":"            timeout\u003dCONF.openstack_client_http_timeout)"},{"line_number":162,"context_line":"        password_args \u003d {"},{"line_number":163,"context_line":"            \"auth_url\": auth_url or self.credential.auth_url,"},{"line_number":164,"context_line":"            \"username\": self.credential.username,"}],"source_content_type":"text/x-python","patch_set":32,"id":"dada55a8_1e019438","line":161,"range":{"start_line":156,"start_character":8,"end_line":161,"end_character":55},"in_reply_to":"dada55a8_d4b6e1f7","updated":"2016-07-21 11:09:06.000000000","message":"Done","commit_id":"0f708f48e6bacfad8c9c769d3ca646f2c9269a01"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"a623f5c46ee1ae6941dcefde691e41862b3af974","unresolved":false,"context_lines":[{"line_number":166,"context_line":"            \"tenant_name\": self.credential.tenant_name"},{"line_number":167,"context_line":"        }"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"        version \u003d version or str("},{"line_number":170,"context_line":"            discover.Discover("},{"line_number":171,"context_line":"                temp_session, password_args[\"auth_url\"]).version_data()"},{"line_number":172,"context_line":"            [0][\"version\"][0])"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"        if \"v2.0\" not in password_args[\"auth_url\"] and ("},{"line_number":175,"context_line":"                version !\u003d \"2\"):"}],"source_content_type":"text/x-python","patch_set":32,"id":"dada55a8_f47fa514","line":172,"range":{"start_line":169,"start_character":8,"end_line":172,"end_character":30},"updated":"2016-07-20 18:00:18.000000000","message":"it will not work in case of setting keystone version via api_version context. it would be nice to repeat call choose_version on keystone version:\n\n    version \u003d self.choose_version(version)\n    if not version:\n        # do discover","commit_id":"0f708f48e6bacfad8c9c769d3ca646f2c9269a01"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"3d3c7cca5c4d5aef60fe73b0fbfff8ea11895120","unresolved":false,"context_lines":[{"line_number":166,"context_line":"            \"tenant_name\": self.credential.tenant_name"},{"line_number":167,"context_line":"        }"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"        version \u003d version or str("},{"line_number":170,"context_line":"            discover.Discover("},{"line_number":171,"context_line":"                temp_session, password_args[\"auth_url\"]).version_data()"},{"line_number":172,"context_line":"            [0][\"version\"][0])"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"        if \"v2.0\" not in password_args[\"auth_url\"] and ("},{"line_number":175,"context_line":"                version !\u003d \"2\"):"}],"source_content_type":"text/x-python","patch_set":32,"id":"dada55a8_d99b9664","line":172,"range":{"start_line":169,"start_character":8,"end_line":172,"end_character":30},"in_reply_to":"dada55a8_f47fa514","updated":"2016-07-21 11:09:06.000000000","message":"Done","commit_id":"0f708f48e6bacfad8c9c769d3ca646f2c9269a01"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"a623f5c46ee1ae6941dcefde691e41862b3af974","unresolved":false,"context_lines":[{"line_number":278,"context_line":""},{"line_number":279,"context_line":"        version \u003d self.choose_version(version)"},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"        auth_url \u003d self.credential.to_dict()[\"auth_url\"]"},{"line_number":282,"context_line":"        if version is not None:"},{"line_number":283,"context_line":"            auth_url \u003d self._remove_url_version()"},{"line_number":284,"context_line":"        sess, plugin \u003d self._get_session(auth_url\u003dauth_url, version\u003dversion)"}],"source_content_type":"text/x-python","patch_set":32,"id":"dada55a8_14a23999","line":281,"range":{"start_line":281,"start_character":19,"end_line":281,"end_character":56},"updated":"2016-07-20 18:00:18.000000000","message":"em...why not self.credential.auth_url?","commit_id":"0f708f48e6bacfad8c9c769d3ca646f2c9269a01"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"3d3c7cca5c4d5aef60fe73b0fbfff8ea11895120","unresolved":false,"context_lines":[{"line_number":278,"context_line":""},{"line_number":279,"context_line":"        version \u003d self.choose_version(version)"},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"        auth_url \u003d self.credential.to_dict()[\"auth_url\"]"},{"line_number":282,"context_line":"        if version is not None:"},{"line_number":283,"context_line":"            auth_url \u003d self._remove_url_version()"},{"line_number":284,"context_line":"        sess, plugin \u003d self._get_session(auth_url\u003dauth_url, version\u003dversion)"}],"source_content_type":"text/x-python","patch_set":32,"id":"dada55a8_f9981a6c","line":281,"range":{"start_line":281,"start_character":19,"end_line":281,"end_character":56},"in_reply_to":"dada55a8_14a23999","updated":"2016-07-21 11:09:06.000000000","message":"Done","commit_id":"0f708f48e6bacfad8c9c769d3ca646f2c9269a01"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"ea2826eac3cc71ce8fc64edfea216e88f5d08bcb","unresolved":false,"context_lines":[{"line_number":170,"context_line":"            \"tenant_name\": self.credential.tenant_name"},{"line_number":171,"context_line":"        }"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"        version \u003d version or str("},{"line_number":174,"context_line":"            discover.Discover("},{"line_number":175,"context_line":"                temp_session, password_args[\"auth_url\"]).version_data()"},{"line_number":176,"context_line":"            [0][\"version\"][0])"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"        if \"v2.0\" not in password_args[\"auth_url\"] and ("},{"line_number":179,"context_line":"                version !\u003d \"2\"):"}],"source_content_type":"text/x-python","patch_set":33,"id":"dada55a8_af3ad096","line":176,"range":{"start_line":173,"start_character":29,"end_line":176,"end_character":30},"updated":"2016-07-21 11:10:25.000000000","message":"NIT: let\u0027s move it to L166 under `if version is None` block.","commit_id":"b9dcf733c711232e3d7cfddd44f94faed52e51e3"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"2b00fc1c94480b821537939ab51e0de569c20682","unresolved":false,"context_lines":[{"line_number":170,"context_line":"                verify\u003d("},{"line_number":171,"context_line":"                    self.credential.cacert or not self.credential.insecure),"},{"line_number":172,"context_line":"                timeout\u003dCONF.openstack_client_http_timeout)"},{"line_number":173,"context_line":"            version \u003d version or str("},{"line_number":174,"context_line":"                discover.Discover("},{"line_number":175,"context_line":"                    temp_session, password_args[\"auth_url\"]).version_data()"},{"line_number":176,"context_line":"                [0][\"version\"][0])"}],"source_content_type":"text/x-python","patch_set":34,"id":"dada55a8_b793d8f9","line":173,"range":{"start_line":173,"start_character":22,"end_line":173,"end_character":33},"updated":"2016-07-24 10:34:50.000000000","message":"We already checked that version is None, so we can remove this check here :)","commit_id":"406df8e58772c3bc1d9ef20ceb0b8f257681187e"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"f19124dd15154a88f476824310a62d1f99a667c4","unresolved":false,"context_lines":[{"line_number":417,"context_line":"            **self._get_auth_info(password_key\u003d\"api_key\","},{"line_number":418,"context_line":"                                  project_name_key\u003d\"project_name\"))"},{"line_number":419,"context_line":"        kc \u003d self.keystone()"},{"line_number":420,"context_line":"        manila_client.client.management_url \u003d kc.service_catalog.url_for("},{"line_number":421,"context_line":"            service_type\u003dself.choose_service_type(service_type),"},{"line_number":422,"context_line":"            endpoint_type\u003dself.credential.endpoint_type,"},{"line_number":423,"context_line":"            region_name\u003dself.credential.region_name)"},{"line_number":424,"context_line":"        manila_client.client.auth_token \u003d kc.auth_token"},{"line_number":425,"context_line":"        return manila_client"},{"line_number":426,"context_line":""}],"source_content_type":"text/x-python","patch_set":34,"id":"dada55a8_3a098d2d","line":423,"range":{"start_line":420,"start_character":8,"end_line":423,"end_character":52},"updated":"2016-07-24 11:00:57.000000000","message":"you forgot to replace this code by get_endpoint :(","commit_id":"406df8e58772c3bc1d9ef20ceb0b8f257681187e"}]}
