)]}'
{"cloudkitty/tenant_fetcher/keystone.py":[{"author":{"_account_id":7042,"name":"Stéphane Albert","email":"sheeprine@nullplace.com","username":"sheeprine"},"change_message_id":"8ee81b39c3387f19ffaa22f8cdf089f9fb0e8a68","unresolved":false,"context_lines":[{"line_number":56,"context_line":"            auth_url\u003dself.auth.auth_url)"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def get_tenants(self):"},{"line_number":59,"context_line":"        if CONF.keystone_fetcher.keystone_version \u003c 3:"},{"line_number":60,"context_line":"            tenant_list \u003d self.admin_ks.tenants.list()"},{"line_number":61,"context_line":"        else:"},{"line_number":62,"context_line":"            tenant_list \u003d self.admin_ks.projects.list()"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba8a016a_3f8dd37b","line":59,"updated":"2015-11-16 11:34:06.000000000","message":"keystone_version is an StrOpt, you need to cast it to an int or compare strings this is suboptimal.\nUse keystoneclient.discover and use discover.version_match() it\u0027s meant to do this.","commit_id":"480789fe448614922b336e314ff22bca9566a1b2"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"afe8e1ede0ff5c25cb2b5c5c8b8bf289a18d5759","unresolved":false,"context_lines":[{"line_number":56,"context_line":"            auth_url\u003dself.auth.auth_url)"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def get_tenants(self):"},{"line_number":59,"context_line":"        if CONF.keystone_fetcher.keystone_version \u003c 3:"},{"line_number":60,"context_line":"            tenant_list \u003d self.admin_ks.tenants.list()"},{"line_number":61,"context_line":"        else:"},{"line_number":62,"context_line":"            tenant_list \u003d self.admin_ks.projects.list()"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba8a016a_a75d0eeb","line":59,"in_reply_to":"ba8a016a_3f8dd37b","updated":"2015-11-17 11:23:45.000000000","message":"Done","commit_id":"480789fe448614922b336e314ff22bca9566a1b2"},{"author":{"_account_id":13001,"name":"lixiangjun","email":"xiangjun.li@easystack.cn","username":"lixiangjun"},"change_message_id":"3ae5494379dbad34ffa69ceedf8c5df56ffce372","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    def get_tenants(self):"},{"line_number":60,"context_line":"        keystone_version \u003d CONF.keystone_fetcher.keystone_version"},{"line_number":61,"context_line":"        if discover.version_match((2,), keystone_version):"},{"line_number":62,"context_line":"            tenant_list \u003d self.admin_ks.tenants.list()"},{"line_number":63,"context_line":"        else:"},{"line_number":64,"context_line":"            tenant_list \u003d self.admin_ks.projects.list()"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba8a016a_d673db7e","line":61,"updated":"2015-11-18 08:16:40.000000000","message":"The second parameter of function version_match should be tuple type too, also keep the type of elements in the two tuple consistent, otherwise True execution path will never executes.","commit_id":"2fcd402bd61e963e698fd77e49fd20858fb182d8"},{"author":{"_account_id":7042,"name":"Stéphane Albert","email":"sheeprine@nullplace.com","username":"sheeprine"},"change_message_id":"ac4a779521fa82d41bcbbaee2ce94637818bae20","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    def get_tenants(self):"},{"line_number":60,"context_line":"        keystone_version \u003d CONF.keystone_fetcher.keystone_version"},{"line_number":61,"context_line":"        if discover.version_match((2,), keystone_version):"},{"line_number":62,"context_line":"            tenant_list \u003d self.admin_ks.tenants.list()"},{"line_number":63,"context_line":"        else:"},{"line_number":64,"context_line":"            tenant_list \u003d self.admin_ks.projects.list()"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba8a016a_aca60a51","line":61,"in_reply_to":"ba8a016a_d673db7e","updated":"2015-11-18 09:13:06.000000000","message":"The parameter is going first through a normalization function. See https://git.openstack.org/cgit/openstack/python-keystoneclient/tree/keystoneclient/_discover.py#n73\nYou can use string if you want, I prefer it as it enables user to specify a specific API version.","commit_id":"2fcd402bd61e963e698fd77e49fd20858fb182d8"},{"author":{"_account_id":13001,"name":"lixiangjun","email":"xiangjun.li@easystack.cn","username":"lixiangjun"},"change_message_id":"3ae5494379dbad34ffa69ceedf8c5df56ffce372","unresolved":false,"context_lines":[{"line_number":64,"context_line":"            tenant_list \u003d self.admin_ks.projects.list()"},{"line_number":65,"context_line":"        my_user_id \u003d self.session.get_user_id()"},{"line_number":66,"context_line":"        for tenant in tenant_list[:]:"},{"line_number":67,"context_line":"            if discover.version_match((2,), keystone_version):"},{"line_number":68,"context_line":"                roles \u003d self.admin_ks.roles.roles_for_user("},{"line_number":69,"context_line":"                    my_user_id,"},{"line_number":70,"context_line":"                    tenant)"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba8a016a_36e107ff","line":67,"updated":"2015-11-18 08:16:40.000000000","message":"ditto","commit_id":"2fcd402bd61e963e698fd77e49fd20858fb182d8"},{"author":{"_account_id":7042,"name":"Stéphane Albert","email":"sheeprine@nullplace.com","username":"sheeprine"},"change_message_id":"b045aac69510af097f0c705327383674ce1a6cfe","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    def get_tenants(self):"},{"line_number":60,"context_line":"        keystone_version \u003d discover.normalize_version_number("},{"line_number":61,"context_line":"            CONF.keystone_fetcher.keystone_version)"},{"line_number":62,"context_line":"        if discover.version_match((2,), keystone_version):"},{"line_number":63,"context_line":"            tenant_list \u003d self.admin_ks.tenants.list()"},{"line_number":64,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba8a016a_c269d5bf","line":61,"updated":"2015-11-18 09:44:30.000000000","message":"This call is directly made by the discover.version_match IMHO you don\u0027t need to call it outside as we never process the tuple.","commit_id":"399cb5ab293ffbe615ff6dd503ad6fee6bd84af9"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"dace1850a148ac2941b70c1d96e0fb582cff7be4","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    def get_tenants(self):"},{"line_number":60,"context_line":"        keystone_version \u003d discover.normalize_version_number("},{"line_number":61,"context_line":"            CONF.keystone_fetcher.keystone_version)"},{"line_number":62,"context_line":"        if discover.version_match((2,), keystone_version):"},{"line_number":63,"context_line":"            tenant_list \u003d self.admin_ks.tenants.list()"},{"line_number":64,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba8a016a_942d4497","line":61,"in_reply_to":"ba8a016a_607b42f6","updated":"2015-11-18 11:20:22.000000000","message":"Agree with lixiangjun, i didn\u0027t find it is called by discover.version_match also: https://github.com/openstack/python-keystoneclient/blob/master/keystoneclient/_discover.py#L106","commit_id":"399cb5ab293ffbe615ff6dd503ad6fee6bd84af9"},{"author":{"_account_id":7042,"name":"Stéphane Albert","email":"sheeprine@nullplace.com","username":"sheeprine"},"change_message_id":"e1420e269635c7ca1168ce6e4179da1122d7a654","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    def get_tenants(self):"},{"line_number":60,"context_line":"        keystone_version \u003d discover.normalize_version_number("},{"line_number":61,"context_line":"            CONF.keystone_fetcher.keystone_version)"},{"line_number":62,"context_line":"        if discover.version_match((2,), keystone_version):"},{"line_number":63,"context_line":"            tenant_list \u003d self.admin_ks.tenants.list()"},{"line_number":64,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba8a016a_2e14129e","line":61,"in_reply_to":"ba8a016a_942d4497","updated":"2015-11-19 09:49:05.000000000","message":"Yeah you\u0027re right, stuff got messed in my head. I was pretty sure that the version_match was doing the conversion. I guess I wanted really bad it to behave like that :)","commit_id":"399cb5ab293ffbe615ff6dd503ad6fee6bd84af9"},{"author":{"_account_id":13001,"name":"lixiangjun","email":"xiangjun.li@easystack.cn","username":"lixiangjun"},"change_message_id":"0a62f3a69c2f965c91082a2ab9ced090e103ebba","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    def get_tenants(self):"},{"line_number":60,"context_line":"        keystone_version \u003d discover.normalize_version_number("},{"line_number":61,"context_line":"            CONF.keystone_fetcher.keystone_version)"},{"line_number":62,"context_line":"        if discover.version_match((2,), keystone_version):"},{"line_number":63,"context_line":"            tenant_list \u003d self.admin_ks.tenants.list()"},{"line_number":64,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba8a016a_607b42f6","line":61,"in_reply_to":"ba8a016a_c269d5bf","updated":"2015-11-18 10:15:34.000000000","message":"Hi Albert, seems need an explicit call in my side for discover.normalize_version_number, is it something wrong in my side, e.g. configuration?","commit_id":"399cb5ab293ffbe615ff6dd503ad6fee6bd84af9"}]}
