)]}'
{"refstack_client/refstack_client.py":[{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"878c1cab5e38f815a7cce64978d7b726ae64a99c","unresolved":false,"context_lines":[{"line_number":182,"context_line":"            try:"},{"line_number":183,"context_line":"                headers \u003d {\u0027content-type\u0027: \u0027application/json\u0027}"},{"line_number":184,"context_line":"                if auth_version \u003d\u003d \u0027v2\u0027:"},{"line_number":185,"context_line":"                    auth_url \u003d conf_file.get(\u0027identity\u0027, \u0027uri\u0027)"},{"line_number":186,"context_line":"                    password_credential \u003d {\u0027username\u0027: username,"},{"line_number":187,"context_line":"                                           \u0027password\u0027: password}"},{"line_number":188,"context_line":"                    if tenant_id:"}],"source_content_type":"text/x-python","patch_set":1,"id":"da6ed579_acba0b6d","line":185,"range":{"start_line":185,"start_character":20,"end_line":185,"end_character":63},"updated":"2016-01-12 01:10:48.000000000","message":"So the endpoint for tokens would have \u0027/tokens\u0027 at the end for v2.","commit_id":"53bec9107708c0305517a1295e4b7f2df9f6a6ac"},{"author":{"_account_id":17700,"name":"David Liu","email":"david.liu@cn.ibm.com","username":"lzbj"},"change_message_id":"d01e5618f6909c96a35cfb054a600450267f5b10","unresolved":false,"context_lines":[{"line_number":182,"context_line":"            try:"},{"line_number":183,"context_line":"                headers \u003d {\u0027content-type\u0027: \u0027application/json\u0027}"},{"line_number":184,"context_line":"                if auth_version \u003d\u003d \u0027v2\u0027:"},{"line_number":185,"context_line":"                    auth_url \u003d conf_file.get(\u0027identity\u0027, \u0027uri\u0027)"},{"line_number":186,"context_line":"                    password_credential \u003d {\u0027username\u0027: username,"},{"line_number":187,"context_line":"                                           \u0027password\u0027: password}"},{"line_number":188,"context_line":"                    if tenant_id:"}],"source_content_type":"text/x-python","patch_set":1,"id":"da6ed579_c5290439","line":185,"range":{"start_line":185,"start_character":20,"end_line":185,"end_character":63},"in_reply_to":"da6ed579_acba0b6d","updated":"2016-01-13 07:39:40.000000000","message":"Correct.","commit_id":"53bec9107708c0305517a1295e4b7f2df9f6a6ac"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"878c1cab5e38f815a7cce64978d7b726ae64a99c","unresolved":false,"context_lines":[{"line_number":215,"context_line":"                    # can be caught and have an appropriate error displayed."},{"line_number":216,"context_line":"                        raise KeyError"},{"line_number":217,"context_line":"                    else:"},{"line_number":218,"context_line":"                        raise IOError"},{"line_number":219,"context_line":"                elif auth_version \u003d\u003d \u0027v3\u0027:"},{"line_number":220,"context_line":"                    auth_url \u003d conf_file.get(\u0027identity\u0027, \u0027uri_v3\u0027)"},{"line_number":221,"context_line":"                    identity \u003d {\u0027methods\u0027: [\u0027password\u0027], \u0027password\u0027:"}],"source_content_type":"text/x-python","patch_set":1,"id":"da6ed579_cf873111","line":218,"range":{"start_line":218,"start_character":30,"end_line":218,"end_character":37},"updated":"2016-01-12 01:10:48.000000000","message":"Perhaps requests.exceptions.HTTPError would be more fitting?\n\nAlso, let\u0027s have a log warning message here showing the status_code and possible the error returned in the json body.","commit_id":"53bec9107708c0305517a1295e4b7f2df9f6a6ac"},{"author":{"_account_id":17700,"name":"David Liu","email":"david.liu@cn.ibm.com","username":"lzbj"},"change_message_id":"d01e5618f6909c96a35cfb054a600450267f5b10","unresolved":false,"context_lines":[{"line_number":215,"context_line":"                    # can be caught and have an appropriate error displayed."},{"line_number":216,"context_line":"                        raise KeyError"},{"line_number":217,"context_line":"                    else:"},{"line_number":218,"context_line":"                        raise IOError"},{"line_number":219,"context_line":"                elif auth_version \u003d\u003d \u0027v3\u0027:"},{"line_number":220,"context_line":"                    auth_url \u003d conf_file.get(\u0027identity\u0027, \u0027uri_v3\u0027)"},{"line_number":221,"context_line":"                    identity \u003d {\u0027methods\u0027: [\u0027password\u0027], \u0027password\u0027:"}],"source_content_type":"text/x-python","patch_set":1,"id":"da6ed579_251b401d","line":218,"range":{"start_line":218,"start_character":30,"end_line":218,"end_character":37},"in_reply_to":"da6ed579_cf873111","updated":"2016-01-13 07:39:40.000000000","message":"Done.","commit_id":"53bec9107708c0305517a1295e4b7f2df9f6a6ac"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"878c1cab5e38f815a7cce64978d7b726ae64a99c","unresolved":false,"context_lines":[{"line_number":217,"context_line":"                    else:"},{"line_number":218,"context_line":"                        raise IOError"},{"line_number":219,"context_line":"                elif auth_version \u003d\u003d \u0027v3\u0027:"},{"line_number":220,"context_line":"                    auth_url \u003d conf_file.get(\u0027identity\u0027, \u0027uri_v3\u0027)"},{"line_number":221,"context_line":"                    identity \u003d {\u0027methods\u0027: [\u0027password\u0027], \u0027password\u0027:"},{"line_number":222,"context_line":"                                {\u0027user\u0027: {\u0027name\u0027: username,"},{"line_number":223,"context_line":"                                          \u0027password\u0027: password}}}"}],"source_content_type":"text/x-python","patch_set":1,"id":"da6ed579_8c6ce709","line":220,"range":{"start_line":220,"start_character":20,"end_line":220,"end_character":66},"updated":"2016-01-12 01:10:48.000000000","message":"The endpoint here would have \u0027/auth/tokens\u0027 at the end of the auth url.","commit_id":"53bec9107708c0305517a1295e4b7f2df9f6a6ac"},{"author":{"_account_id":17700,"name":"David Liu","email":"david.liu@cn.ibm.com","username":"lzbj"},"change_message_id":"d01e5618f6909c96a35cfb054a600450267f5b10","unresolved":false,"context_lines":[{"line_number":217,"context_line":"                    else:"},{"line_number":218,"context_line":"                        raise IOError"},{"line_number":219,"context_line":"                elif auth_version \u003d\u003d \u0027v3\u0027:"},{"line_number":220,"context_line":"                    auth_url \u003d conf_file.get(\u0027identity\u0027, \u0027uri_v3\u0027)"},{"line_number":221,"context_line":"                    identity \u003d {\u0027methods\u0027: [\u0027password\u0027], \u0027password\u0027:"},{"line_number":222,"context_line":"                                {\u0027user\u0027: {\u0027name\u0027: username,"},{"line_number":223,"context_line":"                                          \u0027password\u0027: password}}}"}],"source_content_type":"text/x-python","patch_set":1,"id":"da6ed579_451674f2","line":220,"range":{"start_line":220,"start_character":20,"end_line":220,"end_character":66},"in_reply_to":"da6ed579_8c6ce709","updated":"2016-01-13 07:39:40.000000000","message":"Done","commit_id":"53bec9107708c0305517a1295e4b7f2df9f6a6ac"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"878c1cab5e38f815a7cce64978d7b726ae64a99c","unresolved":false,"context_lines":[{"line_number":234,"context_line":"                                }"},{"line_number":235,"context_line":"                            }"},{"line_number":236,"context_line":"                        }"},{"line_number":237,"context_line":"                    else:"},{"line_number":238,"context_line":"                        data \u003d {"},{"line_number":239,"context_line":"                            \u0027auth\u0027: {"},{"line_number":240,"context_line":"                                \u0027identity\u0027: identity"}],"source_content_type":"text/x-python","patch_set":1,"id":"da6ed579_a37bf67a","line":237,"range":{"start_line":237,"start_character":20,"end_line":237,"end_character":24},"updated":"2016-01-12 01:10:48.000000000","message":"When running your code without a domain_name in my tempest.conf, I get:\n\n{u\u0027error\u0027: {u\u0027message\u0027: u\u0027Expecting to find domain in user. The server could not comply with the request since it is either malformed or otherwise incorrect. The client is assumed to be in error.\u0027, u\u0027code\u0027: 400, u\u0027title\u0027: u\u0027Bad Request\u0027}}\n\nMaybe we do what keystone client did and default domain_name to \u0027default\u0027 if no explicit domain name is passed in. I believe \u0027default\u0027 is what keystone sets it to anyway.","commit_id":"53bec9107708c0305517a1295e4b7f2df9f6a6ac"},{"author":{"_account_id":17700,"name":"David Liu","email":"david.liu@cn.ibm.com","username":"lzbj"},"change_message_id":"d01e5618f6909c96a35cfb054a600450267f5b10","unresolved":false,"context_lines":[{"line_number":234,"context_line":"                                }"},{"line_number":235,"context_line":"                            }"},{"line_number":236,"context_line":"                        }"},{"line_number":237,"context_line":"                    else:"},{"line_number":238,"context_line":"                        data \u003d {"},{"line_number":239,"context_line":"                            \u0027auth\u0027: {"},{"line_number":240,"context_line":"                                \u0027identity\u0027: identity"}],"source_content_type":"text/x-python","patch_set":1,"id":"da6ed579_a5ddf043","line":237,"range":{"start_line":237,"start_character":20,"end_line":237,"end_character":24},"in_reply_to":"da6ed579_a37bf67a","updated":"2016-01-13 07:39:40.000000000","message":"Done","commit_id":"53bec9107708c0305517a1295e4b7f2df9f6a6ac"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"878c1cab5e38f815a7cce64978d7b726ae64a99c","unresolved":false,"context_lines":[{"line_number":255,"context_line":"                        # It will be caught below as well."},{"line_number":256,"context_line":"                        raise KeyError"},{"line_number":257,"context_line":"                    else:"},{"line_number":258,"context_line":"                        raise IOError"},{"line_number":259,"context_line":"                else:"},{"line_number":260,"context_line":"                    raise ValueError(\u0027Auth_version %s is unsupported\u0027"},{"line_number":261,"context_line":"                                     \u0027\u0027 % auth_version)"}],"source_content_type":"text/x-python","patch_set":1,"id":"da6ed579_8f8139fe","line":258,"range":{"start_line":258,"start_character":30,"end_line":258,"end_character":37},"updated":"2016-01-12 01:10:48.000000000","message":"Same as above.","commit_id":"53bec9107708c0305517a1295e4b7f2df9f6a6ac"},{"author":{"_account_id":17700,"name":"David Liu","email":"david.liu@cn.ibm.com","username":"lzbj"},"change_message_id":"d01e5618f6909c96a35cfb054a600450267f5b10","unresolved":false,"context_lines":[{"line_number":255,"context_line":"                        # It will be caught below as well."},{"line_number":256,"context_line":"                        raise KeyError"},{"line_number":257,"context_line":"                    else:"},{"line_number":258,"context_line":"                        raise IOError"},{"line_number":259,"context_line":"                else:"},{"line_number":260,"context_line":"                    raise ValueError(\u0027Auth_version %s is unsupported\u0027"},{"line_number":261,"context_line":"                                     \u0027\u0027 % auth_version)"}],"source_content_type":"text/x-python","patch_set":1,"id":"da6ed579_c5e024fd","line":258,"range":{"start_line":258,"start_character":30,"end_line":258,"end_character":37},"in_reply_to":"da6ed579_8f8139fe","updated":"2016-01-13 07:39:40.000000000","message":"Done","commit_id":"53bec9107708c0305517a1295e4b7f2df9f6a6ac"},{"author":{"_account_id":9377,"name":"Sergey Slipushenko","email":"slipushenko@gmail.com","username":"sslypushenko"},"change_message_id":"c8a2ca767edd676d392d8f8e2c8c0ecbde59f642","unresolved":false,"context_lines":[{"line_number":138,"context_line":""},{"line_number":139,"context_line":"        return os.path.join(tempest_dir, \u0027.testrepository\u0027, subunit_file)"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    def _get_keystone_config(self, conf_file):"},{"line_number":142,"context_line":"        try:"},{"line_number":143,"context_line":"            # Prefer Keystone V3 API if it is enabled"},{"line_number":144,"context_line":"            auth_version \u003d ("}],"source_content_type":"text/x-python","patch_set":5,"id":"da6ed579_7ab9e02d","line":141,"range":{"start_line":141,"start_character":8,"end_line":141,"end_character":28},"updated":"2016-01-18 14:23:42.000000000","message":"Please add a new docstring","commit_id":"8a37b44284d2924fdfeab938471d1a50dca3f1dd"},{"author":{"_account_id":17700,"name":"David Liu","email":"david.liu@cn.ibm.com","username":"lzbj"},"change_message_id":"2806340ac23e6be77786ddb3b440cb57f9e736fe","unresolved":false,"context_lines":[{"line_number":138,"context_line":""},{"line_number":139,"context_line":"        return os.path.join(tempest_dir, \u0027.testrepository\u0027, subunit_file)"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    def _get_keystone_config(self, conf_file):"},{"line_number":142,"context_line":"        try:"},{"line_number":143,"context_line":"            # Prefer Keystone V3 API if it is enabled"},{"line_number":144,"context_line":"            auth_version \u003d ("}],"source_content_type":"text/x-python","patch_set":5,"id":"ba63e191_133f92b5","line":141,"range":{"start_line":141,"start_character":8,"end_line":141,"end_character":28},"in_reply_to":"da6ed579_7ab9e02d","updated":"2016-01-19 09:06:25.000000000","message":"Done","commit_id":"8a37b44284d2924fdfeab938471d1a50dca3f1dd"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"dd9f8b96fe9a7e0340f81d900baf872af7e0fc11","unresolved":false,"context_lines":[{"line_number":149,"context_line":"                         and conf_file.has_option(\u0027identity\u0027, \u0027uri_v3\u0027))"},{"line_number":150,"context_line":"                else \u0027v2\u0027)"},{"line_number":151,"context_line":"            if auth_version \u003d\u003d \u0027v2\u0027:"},{"line_number":152,"context_line":"                auth_url \u003d conf_file.get(\u0027identity\u0027, \u0027uri\u0027) + \u0027/tokens\u0027"},{"line_number":153,"context_line":"            elif auth_version \u003d\u003d \u0027v3\u0027:"},{"line_number":154,"context_line":"                auth_url \u003d conf_file.get(\u0027identity\u0027, \u0027uri_v3\u0027) + \u0027/auth/tokens\u0027"},{"line_number":155,"context_line":"            domain_name \u003d \u0027Default\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba63e191_ce0e45e5","line":152,"range":{"start_line":152,"start_character":27,"end_line":152,"end_character":59},"updated":"2016-01-19 01:17:32.000000000","message":"Perhaps add a .strip(\u0027/\u0027) here just in case a user has a trailing slash in the uri. I think it most cases double slashes in the url path will resolve to a single slash, but just in case.\n\ni.e.: conf_file.get(\u0027identity\u0027, \u0027uri\u0027).strip(\u0027/\u0027) + ...","commit_id":"8a37b44284d2924fdfeab938471d1a50dca3f1dd"},{"author":{"_account_id":17700,"name":"David Liu","email":"david.liu@cn.ibm.com","username":"lzbj"},"change_message_id":"2806340ac23e6be77786ddb3b440cb57f9e736fe","unresolved":false,"context_lines":[{"line_number":149,"context_line":"                         and conf_file.has_option(\u0027identity\u0027, \u0027uri_v3\u0027))"},{"line_number":150,"context_line":"                else \u0027v2\u0027)"},{"line_number":151,"context_line":"            if auth_version \u003d\u003d \u0027v2\u0027:"},{"line_number":152,"context_line":"                auth_url \u003d conf_file.get(\u0027identity\u0027, \u0027uri\u0027) + \u0027/tokens\u0027"},{"line_number":153,"context_line":"            elif auth_version \u003d\u003d \u0027v3\u0027:"},{"line_number":154,"context_line":"                auth_url \u003d conf_file.get(\u0027identity\u0027, \u0027uri_v3\u0027) + \u0027/auth/tokens\u0027"},{"line_number":155,"context_line":"            domain_name \u003d \u0027Default\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba63e191_d35fba0c","line":152,"range":{"start_line":152,"start_character":27,"end_line":152,"end_character":59},"in_reply_to":"ba63e191_ce0e45e5","updated":"2016-01-19 09:06:25.000000000","message":"Done","commit_id":"8a37b44284d2924fdfeab938471d1a50dca3f1dd"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"dd9f8b96fe9a7e0340f81d900baf872af7e0fc11","unresolved":false,"context_lines":[{"line_number":151,"context_line":"            if auth_version \u003d\u003d \u0027v2\u0027:"},{"line_number":152,"context_line":"                auth_url \u003d conf_file.get(\u0027identity\u0027, \u0027uri\u0027) + \u0027/tokens\u0027"},{"line_number":153,"context_line":"            elif auth_version \u003d\u003d \u0027v3\u0027:"},{"line_number":154,"context_line":"                auth_url \u003d conf_file.get(\u0027identity\u0027, \u0027uri_v3\u0027) + \u0027/auth/tokens\u0027"},{"line_number":155,"context_line":"            domain_name \u003d \u0027Default\u0027"},{"line_number":156,"context_line":"            if conf_file.has_option(\u0027identity\u0027, \u0027domain_name\u0027):"},{"line_number":157,"context_line":"                domain_name \u003d conf_file.get(\u0027identity\u0027, \u0027domain_name\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba63e191_aef671d5","line":154,"range":{"start_line":154,"start_character":27,"end_line":154,"end_character":62},"updated":"2016-01-19 01:17:32.000000000","message":"Same as above.","commit_id":"8a37b44284d2924fdfeab938471d1a50dca3f1dd"},{"author":{"_account_id":17700,"name":"David Liu","email":"david.liu@cn.ibm.com","username":"lzbj"},"change_message_id":"2806340ac23e6be77786ddb3b440cb57f9e736fe","unresolved":false,"context_lines":[{"line_number":151,"context_line":"            if auth_version \u003d\u003d \u0027v2\u0027:"},{"line_number":152,"context_line":"                auth_url \u003d conf_file.get(\u0027identity\u0027, \u0027uri\u0027) + \u0027/tokens\u0027"},{"line_number":153,"context_line":"            elif auth_version \u003d\u003d \u0027v3\u0027:"},{"line_number":154,"context_line":"                auth_url \u003d conf_file.get(\u0027identity\u0027, \u0027uri_v3\u0027) + \u0027/auth/tokens\u0027"},{"line_number":155,"context_line":"            domain_name \u003d \u0027Default\u0027"},{"line_number":156,"context_line":"            if conf_file.has_option(\u0027identity\u0027, \u0027domain_name\u0027):"},{"line_number":157,"context_line":"                domain_name \u003d conf_file.get(\u0027identity\u0027, \u0027domain_name\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba63e191_93a062f6","line":154,"range":{"start_line":154,"start_character":27,"end_line":154,"end_character":62},"in_reply_to":"ba63e191_aef671d5","updated":"2016-01-19 09:06:25.000000000","message":"Done","commit_id":"8a37b44284d2924fdfeab938471d1a50dca3f1dd"},{"author":{"_account_id":9377,"name":"Sergey Slipushenko","email":"slipushenko@gmail.com","username":"sslypushenko"},"change_message_id":"c8a2ca767edd676d392d8f8e2c8c0ecbde59f642","unresolved":false,"context_lines":[{"line_number":207,"context_line":"                password_credential \u003d {\u0027username\u0027: auth_config[\u0027username\u0027],"},{"line_number":208,"context_line":"                                       \u0027password\u0027: auth_config[\u0027password\u0027]}"},{"line_number":209,"context_line":"                if auth_config[\u0027tenant_id\u0027]:"},{"line_number":210,"context_line":"                    data \u003d {"},{"line_number":211,"context_line":"                        \u0027auth\u0027: {"},{"line_number":212,"context_line":"                            \u0027tenantId\u0027: auth_config[\u0027tenant_id\u0027],"},{"line_number":213,"context_line":"                            \u0027passwordCredentials\u0027: password_credential"}],"source_content_type":"text/x-python","patch_set":5,"id":"da6ed579_dd0ec631","line":210,"range":{"start_line":210,"start_character":20,"end_line":210,"end_character":24},"updated":"2016-01-18 14:23:42.000000000","message":"Lets put code which generated data in some dedicated method. It makes current method to fuzzy","commit_id":"8a37b44284d2924fdfeab938471d1a50dca3f1dd"},{"author":{"_account_id":17700,"name":"David Liu","email":"david.liu@cn.ibm.com","username":"lzbj"},"change_message_id":"2806340ac23e6be77786ddb3b440cb57f9e736fe","unresolved":false,"context_lines":[{"line_number":207,"context_line":"                password_credential \u003d {\u0027username\u0027: auth_config[\u0027username\u0027],"},{"line_number":208,"context_line":"                                       \u0027password\u0027: auth_config[\u0027password\u0027]}"},{"line_number":209,"context_line":"                if auth_config[\u0027tenant_id\u0027]:"},{"line_number":210,"context_line":"                    data \u003d {"},{"line_number":211,"context_line":"                        \u0027auth\u0027: {"},{"line_number":212,"context_line":"                            \u0027tenantId\u0027: auth_config[\u0027tenant_id\u0027],"},{"line_number":213,"context_line":"                            \u0027passwordCredentials\u0027: password_credential"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba63e191_f3af5ee1","line":210,"range":{"start_line":210,"start_character":20,"end_line":210,"end_character":24},"in_reply_to":"da6ed579_dd0ec631","updated":"2016-01-19 09:06:25.000000000","message":"Correct.","commit_id":"8a37b44284d2924fdfeab938471d1a50dca3f1dd"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"dd9f8b96fe9a7e0340f81d900baf872af7e0fc11","unresolved":false,"context_lines":[{"line_number":224,"context_line":"                                         data\u003djson.dumps(data),"},{"line_number":225,"context_line":"                                         headers\u003dheaders,"},{"line_number":226,"context_line":"                                         verify\u003dnot self.args.insecure)"},{"line_number":227,"context_line":"                if response.status_code \u003d\u003d 200 \\"},{"line_number":228,"context_line":"                    or response.status_code \u003d\u003d 203:"},{"line_number":229,"context_line":"                    rsp \u003d response.json()"},{"line_number":230,"context_line":"                    access \u003d rsp[\u0027access\u0027]"},{"line_number":231,"context_line":"                    for service in access[\u0027serviceCatalog\u0027]:"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba63e191_eef789f3","line":228,"range":{"start_line":227,"start_character":16,"end_line":228,"end_character":51},"updated":"2016-01-19 01:17:32.000000000","message":"Perhaps to make this more concise, do:\n\nif response.status_code in (200, 203):","commit_id":"8a37b44284d2924fdfeab938471d1a50dca3f1dd"},{"author":{"_account_id":17700,"name":"David Liu","email":"david.liu@cn.ibm.com","username":"lzbj"},"change_message_id":"2806340ac23e6be77786ddb3b440cb57f9e736fe","unresolved":false,"context_lines":[{"line_number":224,"context_line":"                                         data\u003djson.dumps(data),"},{"line_number":225,"context_line":"                                         headers\u003dheaders,"},{"line_number":226,"context_line":"                                         verify\u003dnot self.args.insecure)"},{"line_number":227,"context_line":"                if response.status_code \u003d\u003d 200 \\"},{"line_number":228,"context_line":"                    or response.status_code \u003d\u003d 203:"},{"line_number":229,"context_line":"                    rsp \u003d response.json()"},{"line_number":230,"context_line":"                    access \u003d rsp[\u0027access\u0027]"},{"line_number":231,"context_line":"                    for service in access[\u0027serviceCatalog\u0027]:"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba63e191_53818a49","line":228,"range":{"start_line":227,"start_character":16,"end_line":228,"end_character":51},"in_reply_to":"ba63e191_eef789f3","updated":"2016-01-19 09:06:25.000000000","message":"correct.","commit_id":"8a37b44284d2924fdfeab938471d1a50dca3f1dd"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"dd9f8b96fe9a7e0340f81d900baf872af7e0fc11","unresolved":false,"context_lines":[{"line_number":226,"context_line":"                                         verify\u003dnot self.args.insecure)"},{"line_number":227,"context_line":"                if response.status_code \u003d\u003d 200 \\"},{"line_number":228,"context_line":"                    or response.status_code \u003d\u003d 203:"},{"line_number":229,"context_line":"                    rsp \u003d response.json()"},{"line_number":230,"context_line":"                    access \u003d rsp[\u0027access\u0027]"},{"line_number":231,"context_line":"                    for service in access[\u0027serviceCatalog\u0027]:"},{"line_number":232,"context_line":"                        if service[\u0027type\u0027] \u003d\u003d \u0027identity\u0027:"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba63e191_2e3cc192","line":229,"range":{"start_line":229,"start_character":20,"end_line":229,"end_character":41},"updated":"2016-01-19 01:17:32.000000000","message":"Can move this line above the if instead of having it in both the if and else section.","commit_id":"8a37b44284d2924fdfeab938471d1a50dca3f1dd"},{"author":{"_account_id":17700,"name":"David Liu","email":"david.liu@cn.ibm.com","username":"lzbj"},"change_message_id":"2806340ac23e6be77786ddb3b440cb57f9e736fe","unresolved":false,"context_lines":[{"line_number":226,"context_line":"                                         verify\u003dnot self.args.insecure)"},{"line_number":227,"context_line":"                if response.status_code \u003d\u003d 200 \\"},{"line_number":228,"context_line":"                    or response.status_code \u003d\u003d 203:"},{"line_number":229,"context_line":"                    rsp \u003d response.json()"},{"line_number":230,"context_line":"                    access \u003d rsp[\u0027access\u0027]"},{"line_number":231,"context_line":"                    for service in access[\u0027serviceCatalog\u0027]:"},{"line_number":232,"context_line":"                        if service[\u0027type\u0027] \u003d\u003d \u0027identity\u0027:"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba63e191_f3967e93","line":229,"range":{"start_line":229,"start_character":20,"end_line":229,"end_character":41},"in_reply_to":"ba63e191_2e3cc192","updated":"2016-01-19 09:06:25.000000000","message":"Done","commit_id":"8a37b44284d2924fdfeab938471d1a50dca3f1dd"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"dd9f8b96fe9a7e0340f81d900baf872af7e0fc11","unresolved":false,"context_lines":[{"line_number":237,"context_line":"                    raise KeyError"},{"line_number":238,"context_line":"                else:"},{"line_number":239,"context_line":"                    rsp \u003d response.json()"},{"line_number":240,"context_line":"                    message \u003d (\u0027Invalid request with error\u0027"},{"line_number":241,"context_line":"                               \u0027message: %s and error code: %s\u0027"},{"line_number":242,"context_line":"                               \u0027\u0027 % (rsp[\u0027error\u0027][\u0027message\u0027],"},{"line_number":243,"context_line":"                               rsp[\u0027error\u0027][\u0027code\u0027]))"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba63e191_aece7158","line":240,"range":{"start_line":240,"start_character":53,"end_line":240,"end_character":58},"updated":"2016-01-19 01:17:32.000000000","message":"Space after \u0027error\u0027 here.","commit_id":"8a37b44284d2924fdfeab938471d1a50dca3f1dd"},{"author":{"_account_id":17700,"name":"David Liu","email":"david.liu@cn.ibm.com","username":"lzbj"},"change_message_id":"2806340ac23e6be77786ddb3b440cb57f9e736fe","unresolved":false,"context_lines":[{"line_number":237,"context_line":"                    raise KeyError"},{"line_number":238,"context_line":"                else:"},{"line_number":239,"context_line":"                    rsp \u003d response.json()"},{"line_number":240,"context_line":"                    message \u003d (\u0027Invalid request with error\u0027"},{"line_number":241,"context_line":"                               \u0027message: %s and error code: %s\u0027"},{"line_number":242,"context_line":"                               \u0027\u0027 % (rsp[\u0027error\u0027][\u0027message\u0027],"},{"line_number":243,"context_line":"                               rsp[\u0027error\u0027][\u0027code\u0027]))"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba63e191_13947289","line":240,"range":{"start_line":240,"start_character":53,"end_line":240,"end_character":58},"in_reply_to":"ba63e191_aece7158","updated":"2016-01-19 09:06:25.000000000","message":"Done","commit_id":"8a37b44284d2924fdfeab938471d1a50dca3f1dd"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"dd9f8b96fe9a7e0340f81d900baf872af7e0fc11","unresolved":false,"context_lines":[{"line_number":276,"context_line":"                    raise KeyError"},{"line_number":277,"context_line":"                else:"},{"line_number":278,"context_line":"                    rsp \u003d response.json()"},{"line_number":279,"context_line":"                    message \u003d (\u0027Invalid request with error\u0027"},{"line_number":280,"context_line":"                               \u0027message: %s and error code: %s\u0027"},{"line_number":281,"context_line":"                               \u0027\u0027 % (rsp[\u0027error\u0027][\u0027message\u0027],"},{"line_number":282,"context_line":"                               rsp[\u0027error\u0027][\u0027code\u0027]))"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba63e191_6ed8791e","line":279,"range":{"start_line":279,"start_character":53,"end_line":279,"end_character":58},"updated":"2016-01-19 01:17:32.000000000","message":"Space after \u0027error\u0027 here as well.","commit_id":"8a37b44284d2924fdfeab938471d1a50dca3f1dd"},{"author":{"_account_id":17700,"name":"David Liu","email":"david.liu@cn.ibm.com","username":"lzbj"},"change_message_id":"2806340ac23e6be77786ddb3b440cb57f9e736fe","unresolved":false,"context_lines":[{"line_number":276,"context_line":"                    raise KeyError"},{"line_number":277,"context_line":"                else:"},{"line_number":278,"context_line":"                    rsp \u003d response.json()"},{"line_number":279,"context_line":"                    message \u003d (\u0027Invalid request with error\u0027"},{"line_number":280,"context_line":"                               \u0027message: %s and error code: %s\u0027"},{"line_number":281,"context_line":"                               \u0027\u0027 % (rsp[\u0027error\u0027][\u0027message\u0027],"},{"line_number":282,"context_line":"                               rsp[\u0027error\u0027][\u0027code\u0027]))"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba63e191_73e92e1a","line":279,"range":{"start_line":279,"start_character":53,"end_line":279,"end_character":58},"in_reply_to":"ba63e191_6ed8791e","updated":"2016-01-19 09:06:25.000000000","message":"Done","commit_id":"8a37b44284d2924fdfeab938471d1a50dca3f1dd"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"dd9f8b96fe9a7e0340f81d900baf872af7e0fc11","unresolved":false,"context_lines":[{"line_number":296,"context_line":"            self.logger.warning(\u0027Problems retrieving CPID from Keystone \u0027"},{"line_number":297,"context_line":"                                \u0027using %s endpoint (%s)\u0027"},{"line_number":298,"context_line":"                                % (auth_version, auth_config[\u0027auth_url\u0027]))"},{"line_number":299,"context_line":"            self.logger.warning(\u0027Problems retrieving cpid from keystone %s\u0027"},{"line_number":300,"context_line":"                                % e)"},{"line_number":301,"context_line":"        return self._generate_cpid_from_endpoint(auth_config[\u0027auth_url\u0027])"},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"    def _generate_cpid_from_endpoint(self, endpoint):"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba63e191_6e4b99b1","line":300,"range":{"start_line":299,"start_character":12,"end_line":300,"end_character":36},"updated":"2016-01-19 01:17:32.000000000","message":"This warning message will be a repeat of the warning messages before the HTTPErrors are raised. So can probably just remove those warnings and just do the self.logger.warning here, combining it with the first warning above this one.","commit_id":"8a37b44284d2924fdfeab938471d1a50dca3f1dd"},{"author":{"_account_id":17700,"name":"David Liu","email":"david.liu@cn.ibm.com","username":"lzbj"},"change_message_id":"2806340ac23e6be77786ddb3b440cb57f9e736fe","unresolved":false,"context_lines":[{"line_number":296,"context_line":"            self.logger.warning(\u0027Problems retrieving CPID from Keystone \u0027"},{"line_number":297,"context_line":"                                \u0027using %s endpoint (%s)\u0027"},{"line_number":298,"context_line":"                                % (auth_version, auth_config[\u0027auth_url\u0027]))"},{"line_number":299,"context_line":"            self.logger.warning(\u0027Problems retrieving cpid from keystone %s\u0027"},{"line_number":300,"context_line":"                                % e)"},{"line_number":301,"context_line":"        return self._generate_cpid_from_endpoint(auth_config[\u0027auth_url\u0027])"},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"    def _generate_cpid_from_endpoint(self, endpoint):"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba63e191_53f8aae5","line":300,"range":{"start_line":299,"start_character":12,"end_line":300,"end_character":36},"in_reply_to":"ba63e191_6e4b99b1","updated":"2016-01-19 09:06:25.000000000","message":"correct. Done.","commit_id":"8a37b44284d2924fdfeab938471d1a50dca3f1dd"},{"author":{"_account_id":9377,"name":"Sergey Slipushenko","email":"slipushenko@gmail.com","username":"sslypushenko"},"change_message_id":"f1078005ace126d5dac16684a07784c43c5fd920","unresolved":false,"context_lines":[{"line_number":151,"context_line":"                         and conf_file.has_option(\u0027identity\u0027, \u0027uri_v3\u0027))"},{"line_number":152,"context_line":"                else \u0027v2\u0027)"},{"line_number":153,"context_line":"            if auth_version \u003d\u003d \u0027v2\u0027:"},{"line_number":154,"context_line":"                auth_url \u003d conf_file.get(\u0027identity\u0027, \u0027uri\u0027).rstrip(\u0027/\u0027) + \\"},{"line_number":155,"context_line":"                    \u0027/tokens\u0027"},{"line_number":156,"context_line":"            elif auth_version \u003d\u003d \u0027v3\u0027:"},{"line_number":157,"context_line":"                auth_url \u003d conf_file.get(\u0027identity\u0027, \u0027uri_v3\u0027).rstrip(\u0027/\u0027) + \\"}],"source_content_type":"text/x-python","patch_set":8,"id":"9a68dd71_21f142ce","line":154,"range":{"start_line":154,"start_character":27,"end_line":154,"end_character":36},"updated":"2016-01-20 13:45:22.000000000","message":"It would be better to have some kind of constant templates\nAUTH_URL_V2\u003d\u0027%s/tokens\u0027\nAUTH_URL_V3\u003d\u0027%s/auth/tokens\u0027","commit_id":"6277debc19509bf51b2ef5971dbf17754d545669"},{"author":{"_account_id":17700,"name":"David Liu","email":"david.liu@cn.ibm.com","username":"lzbj"},"change_message_id":"816324caf51f5143cc715f74e8e69735ac994a1c","unresolved":false,"context_lines":[{"line_number":151,"context_line":"                         and conf_file.has_option(\u0027identity\u0027, \u0027uri_v3\u0027))"},{"line_number":152,"context_line":"                else \u0027v2\u0027)"},{"line_number":153,"context_line":"            if auth_version \u003d\u003d \u0027v2\u0027:"},{"line_number":154,"context_line":"                auth_url \u003d conf_file.get(\u0027identity\u0027, \u0027uri\u0027).rstrip(\u0027/\u0027) + \\"},{"line_number":155,"context_line":"                    \u0027/tokens\u0027"},{"line_number":156,"context_line":"            elif auth_version \u003d\u003d \u0027v3\u0027:"},{"line_number":157,"context_line":"                auth_url \u003d conf_file.get(\u0027identity\u0027, \u0027uri_v3\u0027).rstrip(\u0027/\u0027) + \\"}],"source_content_type":"text/x-python","patch_set":8,"id":"9a68dd71_11b463f0","line":154,"range":{"start_line":154,"start_character":27,"end_line":154,"end_character":36},"in_reply_to":"9a68dd71_21f142ce","updated":"2016-01-21 03:37:03.000000000","message":"Done","commit_id":"6277debc19509bf51b2ef5971dbf17754d545669"},{"author":{"_account_id":9377,"name":"Sergey Slipushenko","email":"slipushenko@gmail.com","username":"sslypushenko"},"change_message_id":"f1078005ace126d5dac16684a07784c43c5fd920","unresolved":false,"context_lines":[{"line_number":282,"context_line":"                raise requests.exceptions.HTTPError(message)"},{"line_number":283,"context_line":"            # If a Key or Index Error was raised, one of the expected keys or"},{"line_number":284,"context_line":"            # indices for retrieving the identity service ID was not found."},{"line_number":285,"context_line":"        except (KeyError, IndexError) as e:"},{"line_number":286,"context_line":"            self.logger.warning(\u0027Unable to retrieve CPID from Keystone %s \u0027"},{"line_number":287,"context_line":"                                \u0027catalog. The catalog or the identity \u0027"},{"line_number":288,"context_line":"                                \u0027service endpoint was not \u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"9a68dd71_a1f21205","line":285,"range":{"start_line":285,"start_character":26,"end_line":285,"end_character":36},"updated":"2016-01-20 13:45:22.000000000","message":"requests.exceptions.HTTPError should added here and then we can remove next \"except\" statement","commit_id":"6277debc19509bf51b2ef5971dbf17754d545669"},{"author":{"_account_id":17700,"name":"David Liu","email":"david.liu@cn.ibm.com","username":"lzbj"},"change_message_id":"816324caf51f5143cc715f74e8e69735ac994a1c","unresolved":false,"context_lines":[{"line_number":282,"context_line":"                raise requests.exceptions.HTTPError(message)"},{"line_number":283,"context_line":"            # If a Key or Index Error was raised, one of the expected keys or"},{"line_number":284,"context_line":"            # indices for retrieving the identity service ID was not found."},{"line_number":285,"context_line":"        except (KeyError, IndexError) as e:"},{"line_number":286,"context_line":"            self.logger.warning(\u0027Unable to retrieve CPID from Keystone %s \u0027"},{"line_number":287,"context_line":"                                \u0027catalog. The catalog or the identity \u0027"},{"line_number":288,"context_line":"                                \u0027service endpoint was not \u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"9a68dd71_11ab038b","line":285,"range":{"start_line":285,"start_character":26,"end_line":285,"end_character":36},"in_reply_to":"9a68dd71_a1f21205","updated":"2016-01-21 03:37:03.000000000","message":"please see my next reply.","commit_id":"6277debc19509bf51b2ef5971dbf17754d545669"},{"author":{"_account_id":9377,"name":"Sergey Slipushenko","email":"slipushenko@gmail.com","username":"sslypushenko"},"change_message_id":"f1078005ace126d5dac16684a07784c43c5fd920","unresolved":false,"context_lines":[{"line_number":287,"context_line":"                                \u0027catalog. The catalog or the identity \u0027"},{"line_number":288,"context_line":"                                \u0027service endpoint was not \u0027"},{"line_number":289,"context_line":"                                \u0027found.\u0027 % auth_version)"},{"line_number":290,"context_line":"        except Exception as e:"},{"line_number":291,"context_line":"            self.logger.warning(\u0027Problems retrieving CPID from Keystone \u0027"},{"line_number":292,"context_line":"                                \u0027using %s endpoint (%s) with error (%s)\u0027"},{"line_number":293,"context_line":"                                % (auth_version, auth_url, e))"}],"source_content_type":"text/x-python","patch_set":8,"id":"9a68dd71_61af3ae4","line":290,"range":{"start_line":290,"start_character":15,"end_line":290,"end_character":24},"updated":"2016-01-20 13:45:22.000000000","message":"I was not happy having this code before. I suggest to get rid of it now. If we catch expected exception, it is enough to get message from previous line.","commit_id":"6277debc19509bf51b2ef5971dbf17754d545669"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"1496addbba2410c7deff24ac1de3436c45dda1c3","unresolved":false,"context_lines":[{"line_number":287,"context_line":"                                \u0027catalog. The catalog or the identity \u0027"},{"line_number":288,"context_line":"                                \u0027service endpoint was not \u0027"},{"line_number":289,"context_line":"                                \u0027found.\u0027 % auth_version)"},{"line_number":290,"context_line":"        except Exception as e:"},{"line_number":291,"context_line":"            self.logger.warning(\u0027Problems retrieving CPID from Keystone \u0027"},{"line_number":292,"context_line":"                                \u0027using %s endpoint (%s) with error (%s)\u0027"},{"line_number":293,"context_line":"                                % (auth_version, auth_url, e))"}],"source_content_type":"text/x-python","patch_set":8,"id":"9a68dd71_fd0da13e","line":290,"range":{"start_line":290,"start_character":15,"end_line":290,"end_character":24},"in_reply_to":"9a68dd71_61af3ae4","updated":"2016-01-22 06:06:09.000000000","message":"I think for the scope of this patch, leaving the exception handling as-is is fine. \n\nBut I agree that it may be a bit iffy just catching all exceptions and generating a cpid regardless. We can open a bug regarding this issue and address it another patch if it comes to it.","commit_id":"6277debc19509bf51b2ef5971dbf17754d545669"},{"author":{"_account_id":17700,"name":"David Liu","email":"david.liu@cn.ibm.com","username":"lzbj"},"change_message_id":"816324caf51f5143cc715f74e8e69735ac994a1c","unresolved":false,"context_lines":[{"line_number":287,"context_line":"                                \u0027catalog. The catalog or the identity \u0027"},{"line_number":288,"context_line":"                                \u0027service endpoint was not \u0027"},{"line_number":289,"context_line":"                                \u0027found.\u0027 % auth_version)"},{"line_number":290,"context_line":"        except Exception as e:"},{"line_number":291,"context_line":"            self.logger.warning(\u0027Problems retrieving CPID from Keystone \u0027"},{"line_number":292,"context_line":"                                \u0027using %s endpoint (%s) with error (%s)\u0027"},{"line_number":293,"context_line":"                                % (auth_version, auth_url, e))"}],"source_content_type":"text/x-python","patch_set":8,"id":"9a68dd71_51ddfb12","line":290,"range":{"start_line":290,"start_character":15,"end_line":290,"end_character":24},"in_reply_to":"9a68dd71_61af3ae4","updated":"2016-01-21 03:37:03.000000000","message":"Yes, I agree with you we\u0027d better be specific. In fact I tried your idea, but when run unitary test, I got the requests.exceptions.ConnectionError, so we need to exhaust every exception if we remove it, or the final _generate_cpid_from_endpoint would not be run. So I would keep this one.","commit_id":"6277debc19509bf51b2ef5971dbf17754d545669"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"8b41c7dc67a34f185ed1e6471fd71273c4148090","unresolved":false,"context_lines":[{"line_number":139,"context_line":"        return os.path.join(tempest_dir, \u0027.testrepository\u0027, subunit_file)"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    def _get_keystone_config(self, conf_file):"},{"line_number":142,"context_line":"        \u0027\u0027\u0027This will get and return the keystone configs\u0027\u0027\u0027"},{"line_number":143,"context_line":"        \u0027\u0027\u0027from config file.\u0027\u0027\u0027"},{"line_number":144,"context_line":"        try:"},{"line_number":145,"context_line":"            # Prefer Keystone V3 API if it is enabled"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a68dd71_3a4109aa","line":142,"range":{"start_line":142,"start_character":56,"end_line":142,"end_character":59},"updated":"2016-01-22 06:06:24.000000000","message":"Can remove these. Dont need closing quotes on each line, only the final line. Same with beginning quotes except they are only needed on the first line.","commit_id":"60dd2e50b3c63ff98f3270c94bf114a821f1824b"},{"author":{"_account_id":17700,"name":"David Liu","email":"david.liu@cn.ibm.com","username":"lzbj"},"change_message_id":"413411f976b2bc3b2010d8c254ace616c9bed182","unresolved":false,"context_lines":[{"line_number":139,"context_line":"        return os.path.join(tempest_dir, \u0027.testrepository\u0027, subunit_file)"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    def _get_keystone_config(self, conf_file):"},{"line_number":142,"context_line":"        \u0027\u0027\u0027This will get and return the keystone configs\u0027\u0027\u0027"},{"line_number":143,"context_line":"        \u0027\u0027\u0027from config file.\u0027\u0027\u0027"},{"line_number":144,"context_line":"        try:"},{"line_number":145,"context_line":"            # Prefer Keystone V3 API if it is enabled"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a68dd71_35ed57b7","line":142,"range":{"start_line":142,"start_character":56,"end_line":142,"end_character":59},"in_reply_to":"9a68dd71_3a4109aa","updated":"2016-01-23 06:53:21.000000000","message":"correct, done.","commit_id":"60dd2e50b3c63ff98f3270c94bf114a821f1824b"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"8b41c7dc67a34f185ed1e6471fd71273c4148090","unresolved":false,"context_lines":[{"line_number":204,"context_line":""},{"line_number":205,"context_line":"    def _generate_keystone_data(self, auth_config):"},{"line_number":206,"context_line":"        \u0027\u0027\u0027This will generate data for http post to keystone\u0027\u0027\u0027"},{"line_number":207,"context_line":"        \u0027\u0027\u0027API from auth_config.\u0027\u0027\u0027"},{"line_number":208,"context_line":"        auth_version \u003d auth_config[\u0027auth_version\u0027]"},{"line_number":209,"context_line":"        auth_url \u003d auth_config[\u0027auth_url\u0027]"},{"line_number":210,"context_line":"        if auth_version \u003d\u003d \u0027v2\u0027:"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a68dd71_25748efb","line":207,"range":{"start_line":207,"start_character":8,"end_line":207,"end_character":11},"updated":"2016-01-22 06:06:24.000000000","message":"Same here regarding the quotes.","commit_id":"60dd2e50b3c63ff98f3270c94bf114a821f1824b"},{"author":{"_account_id":17700,"name":"David Liu","email":"david.liu@cn.ibm.com","username":"lzbj"},"change_message_id":"413411f976b2bc3b2010d8c254ace616c9bed182","unresolved":false,"context_lines":[{"line_number":204,"context_line":""},{"line_number":205,"context_line":"    def _generate_keystone_data(self, auth_config):"},{"line_number":206,"context_line":"        \u0027\u0027\u0027This will generate data for http post to keystone\u0027\u0027\u0027"},{"line_number":207,"context_line":"        \u0027\u0027\u0027API from auth_config.\u0027\u0027\u0027"},{"line_number":208,"context_line":"        auth_version \u003d auth_config[\u0027auth_version\u0027]"},{"line_number":209,"context_line":"        auth_url \u003d auth_config[\u0027auth_url\u0027]"},{"line_number":210,"context_line":"        if auth_version \u003d\u003d \u0027v2\u0027:"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a68dd71_d52cfb03","line":207,"range":{"start_line":207,"start_character":8,"end_line":207,"end_character":11},"in_reply_to":"9a68dd71_25748efb","updated":"2016-01-23 06:53:21.000000000","message":"Done","commit_id":"60dd2e50b3c63ff98f3270c94bf114a821f1824b"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"8b41c7dc67a34f185ed1e6471fd71273c4148090","unresolved":false,"context_lines":[{"line_number":274,"context_line":"                # It will be caught below as well."},{"line_number":275,"context_line":"                raise KeyError"},{"line_number":276,"context_line":"            else:"},{"line_number":277,"context_line":"                message \u003d (\u0027Invalid request with error \u0027"},{"line_number":278,"context_line":"                           \u0027message: %s and error code: %s\u0027"},{"line_number":279,"context_line":"                           \u0027\u0027 % (rsp[\u0027error\u0027][\u0027message\u0027],"},{"line_number":280,"context_line":"                           rsp[\u0027error\u0027][\u0027code\u0027]))"},{"line_number":281,"context_line":"                self.logger.warning(message)"},{"line_number":282,"context_line":"                raise requests.exceptions.HTTPError(message)"},{"line_number":283,"context_line":"            # If a Key or Index Error was raised, one of the expected keys or"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a68dd71_ca049ac1","line":280,"range":{"start_line":277,"start_character":16,"end_line":280,"end_character":49},"updated":"2016-01-22 06:06:24.000000000","message":"Nitpicky stylistic comments: Putting the Error code first, I think, would be better because\n\n\"The request you have made requires authentication. and error code: 401\"\n\nlooks off.\n\nSo, maybe:\n\n  message \u003d (\u0027Invalid request with error code %s.\u0027\n             \u0027Error message: %s                     \n             \u0027\u0027 % (rsp[\u0027error\u0027][\u0027code\u0027],\n             rsp[\u0027error\u0027][\u0027message\u0027]))","commit_id":"60dd2e50b3c63ff98f3270c94bf114a821f1824b"},{"author":{"_account_id":17700,"name":"David Liu","email":"david.liu@cn.ibm.com","username":"lzbj"},"change_message_id":"413411f976b2bc3b2010d8c254ace616c9bed182","unresolved":false,"context_lines":[{"line_number":274,"context_line":"                # It will be caught below as well."},{"line_number":275,"context_line":"                raise KeyError"},{"line_number":276,"context_line":"            else:"},{"line_number":277,"context_line":"                message \u003d (\u0027Invalid request with error \u0027"},{"line_number":278,"context_line":"                           \u0027message: %s and error code: %s\u0027"},{"line_number":279,"context_line":"                           \u0027\u0027 % (rsp[\u0027error\u0027][\u0027message\u0027],"},{"line_number":280,"context_line":"                           rsp[\u0027error\u0027][\u0027code\u0027]))"},{"line_number":281,"context_line":"                self.logger.warning(message)"},{"line_number":282,"context_line":"                raise requests.exceptions.HTTPError(message)"},{"line_number":283,"context_line":"            # If a Key or Index Error was raised, one of the expected keys or"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a68dd71_9532035d","line":280,"range":{"start_line":277,"start_character":16,"end_line":280,"end_character":49},"in_reply_to":"9a68dd71_ca049ac1","updated":"2016-01-23 06:53:21.000000000","message":"Done","commit_id":"60dd2e50b3c63ff98f3270c94bf114a821f1824b"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"8b41c7dc67a34f185ed1e6471fd71273c4148090","unresolved":false,"context_lines":[{"line_number":278,"context_line":"                           \u0027message: %s and error code: %s\u0027"},{"line_number":279,"context_line":"                           \u0027\u0027 % (rsp[\u0027error\u0027][\u0027message\u0027],"},{"line_number":280,"context_line":"                           rsp[\u0027error\u0027][\u0027code\u0027]))"},{"line_number":281,"context_line":"                self.logger.warning(message)"},{"line_number":282,"context_line":"                raise requests.exceptions.HTTPError(message)"},{"line_number":283,"context_line":"            # If a Key or Index Error was raised, one of the expected keys or"},{"line_number":284,"context_line":"            # indices for retrieving the identity service ID was not found."}],"source_content_type":"text/x-python","patch_set":9,"id":"9a68dd71_14e979e6","line":281,"range":{"start_line":281,"start_character":17,"end_line":281,"end_character":44},"updated":"2016-01-22 06:06:24.000000000","message":"Remove this line. The error message will be printed out in the except clause below.","commit_id":"60dd2e50b3c63ff98f3270c94bf114a821f1824b"},{"author":{"_account_id":17700,"name":"David Liu","email":"david.liu@cn.ibm.com","username":"lzbj"},"change_message_id":"413411f976b2bc3b2010d8c254ace616c9bed182","unresolved":false,"context_lines":[{"line_number":278,"context_line":"                           \u0027message: %s and error code: %s\u0027"},{"line_number":279,"context_line":"                           \u0027\u0027 % (rsp[\u0027error\u0027][\u0027message\u0027],"},{"line_number":280,"context_line":"                           rsp[\u0027error\u0027][\u0027code\u0027]))"},{"line_number":281,"context_line":"                self.logger.warning(message)"},{"line_number":282,"context_line":"                raise requests.exceptions.HTTPError(message)"},{"line_number":283,"context_line":"            # If a Key or Index Error was raised, one of the expected keys or"},{"line_number":284,"context_line":"            # indices for retrieving the identity service ID was not found."}],"source_content_type":"text/x-python","patch_set":9,"id":"9a68dd71_b537074c","line":281,"range":{"start_line":281,"start_character":17,"end_line":281,"end_character":44},"in_reply_to":"9a68dd71_14e979e6","updated":"2016-01-23 06:53:21.000000000","message":"Oops, done.","commit_id":"60dd2e50b3c63ff98f3270c94bf114a821f1824b"}],"refstack_client/tests/unit/test_client.py":[{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"8b41c7dc67a34f185ed1e6471fd71273c4148090","unresolved":false,"context_lines":[{"line_number":408,"context_line":"        cpid \u003d client._get_cpid_from_keystone(client.conf)"},{"line_number":409,"context_line":"        self.assertEqual(\u0027test-id2\u0027, cpid)"},{"line_number":410,"context_line":""},{"line_number":411,"context_line":"    def test_get_cpid_from_keystone_v3_varying_catalogs(self):"},{"line_number":412,"context_line":"        \"\"\""},{"line_number":413,"context_line":"        Test getting the CPID from keystone API v3 with varying catalogs."},{"line_number":414,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":9,"id":"9a68dd71_000e0e3b","side":"PARENT","line":411,"range":{"start_line":411,"start_character":8,"end_line":411,"end_character":55},"updated":"2016-01-22 06:06:24.000000000","message":"Don\u0027t want to eliminate what this test is testing. I think just using httmock to mock the varying catalog responses from the api call.","commit_id":"5e5233c1990998d39bb4b5e0403f5d90575df2d6"},{"author":{"_account_id":17700,"name":"David Liu","email":"david.liu@cn.ibm.com","username":"lzbj"},"change_message_id":"413411f976b2bc3b2010d8c254ace616c9bed182","unresolved":false,"context_lines":[{"line_number":408,"context_line":"        cpid \u003d client._get_cpid_from_keystone(client.conf)"},{"line_number":409,"context_line":"        self.assertEqual(\u0027test-id2\u0027, cpid)"},{"line_number":410,"context_line":""},{"line_number":411,"context_line":"    def test_get_cpid_from_keystone_v3_varying_catalogs(self):"},{"line_number":412,"context_line":"        \"\"\""},{"line_number":413,"context_line":"        Test getting the CPID from keystone API v3 with varying catalogs."},{"line_number":414,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":9,"id":"9a68dd71_55280be2","side":"PARENT","line":411,"range":{"start_line":411,"start_character":8,"end_line":411,"end_character":55},"in_reply_to":"9a68dd71_000e0e3b","updated":"2016-01-23 06:53:21.000000000","message":"Yes, restore with little twist.","commit_id":"5e5233c1990998d39bb4b5e0403f5d90575df2d6"}]}
