)]}'
{"ceilometerclient/client.py":[{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"3098bc4ee96d3406005ad124772c5bc818c12cd8","unresolved":false,"context_lines":[{"line_number":219,"context_line":"    module \u003d utils.import_versioned_module(version, \u0027client\u0027)"},{"line_number":220,"context_line":"    client_class \u003d getattr(module, \u0027Client\u0027)"},{"line_number":221,"context_line":"    kwargs[\u0027token\u0027] \u003d kwargs.get(\u0027token\u0027) or kwargs.get(\u0027auth_token\u0027)"},{"line_number":222,"context_line":"    kwargs.update(_adjust_params(kwargs))"},{"line_number":223,"context_line":"    return client_class(*args, **kwargs)"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9a80dd14_83f19b97","line":222,"updated":"2015-03-11 16:04:51.000000000","message":"Why don\u0027t we need any more insecure params in get_client?\nProbably we should add _adjust_params in Client not just move it. But may be I\u0027ve missed something.","commit_id":"a1ece81a9a0a8be2b9f10fa48b3688af75c8decd"},{"author":{"_account_id":12637,"name":"Srinivas Sakhamuri","email":"srini.openstack@gmail.com","username":"srsakhamuri"},"change_message_id":"22b0dc8f2e1c5abb9e53742894fd59325f68d62b","unresolved":false,"context_lines":[{"line_number":219,"context_line":"    module \u003d utils.import_versioned_module(version, \u0027client\u0027)"},{"line_number":220,"context_line":"    client_class \u003d getattr(module, \u0027Client\u0027)"},{"line_number":221,"context_line":"    kwargs[\u0027token\u0027] \u003d kwargs.get(\u0027token\u0027) or kwargs.get(\u0027auth_token\u0027)"},{"line_number":222,"context_line":"    kwargs.update(_adjust_params(kwargs))"},{"line_number":223,"context_line":"    return client_class(*args, **kwargs)"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9a80dd14_6f15699a","line":222,"in_reply_to":"9a80dd14_83f19b97","updated":"2015-03-11 16:22:42.000000000","message":"get_client calls Client() anyways so keeping it in both places duplicates the logic.","commit_id":"a1ece81a9a0a8be2b9f10fa48b3688af75c8decd"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"998db6a337a484ca690d0fe8e9d686d7c0aff5ea","unresolved":false,"context_lines":[{"line_number":295,"context_line":"        \u0027project_domain_id\u0027: kwargs.get(\u0027os_project_domain_id\u0027),"},{"line_number":296,"context_line":"    }"},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"    cli_kwargs.update(kwargs)"},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"    return Client(version, endpoint, **cli_kwargs)"},{"line_number":301,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9a80dd14_4367a3ea","line":298,"updated":"2015-03-11 15:53:23.000000000","message":"should we just move all the logic into Client?","commit_id":"a1ece81a9a0a8be2b9f10fa48b3688af75c8decd"},{"author":{"_account_id":12637,"name":"Srinivas Sakhamuri","email":"srini.openstack@gmail.com","username":"srsakhamuri"},"change_message_id":"703d324d6126de8a147b705d59efab9d04653134","unresolved":false,"context_lines":[{"line_number":295,"context_line":"        \u0027project_domain_id\u0027: kwargs.get(\u0027os_project_domain_id\u0027),"},{"line_number":296,"context_line":"    }"},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"    cli_kwargs.update(kwargs)"},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"    return Client(version, endpoint, **cli_kwargs)"},{"line_number":301,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9a80dd14_7e1b5580","line":298,"in_reply_to":"9a80dd14_43015e05","updated":"2015-03-11 17:54:07.000000000","message":"Yes the cli_kwargs is a superset of all the valid params.\n\nEach client seem to have slightly different ways to construct Client, some use get_client others use Client to construct the client class. So looks like it doesn\u0027t hurt to merge into Client function.\n\nI found one instance similar to our usage, May be they copied our code :-)\nhttps://github.com/openstack/python-ironicclient/blob/master/ironicclient/client.py#L56","commit_id":"a1ece81a9a0a8be2b9f10fa48b3688af75c8decd"},{"author":{"_account_id":12637,"name":"Srinivas Sakhamuri","email":"srini.openstack@gmail.com","username":"srsakhamuri"},"change_message_id":"22b0dc8f2e1c5abb9e53742894fd59325f68d62b","unresolved":false,"context_lines":[{"line_number":295,"context_line":"        \u0027project_domain_id\u0027: kwargs.get(\u0027os_project_domain_id\u0027),"},{"line_number":296,"context_line":"    }"},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"    cli_kwargs.update(kwargs)"},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"    return Client(version, endpoint, **cli_kwargs)"},{"line_number":301,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9a80dd14_4fdd0514","line":298,"in_reply_to":"9a80dd14_4367a3ea","updated":"2015-03-11 16:22:42.000000000","message":"It looks like get_client is invoked via shell/CLI, and Client is used for internal use.\n\nThe documentation recommends using get_client which converts any os_* params to simpler names. I think it doesn\u0027t hurt to move everything to Client but this distinction seems like it could be useful!","commit_id":"a1ece81a9a0a8be2b9f10fa48b3688af75c8decd"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"8cb75e8d91b0f968dae83914f7b3fe27c4f7facb","unresolved":false,"context_lines":[{"line_number":295,"context_line":"        \u0027project_domain_id\u0027: kwargs.get(\u0027os_project_domain_id\u0027),"},{"line_number":296,"context_line":"    }"},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"    cli_kwargs.update(kwargs)"},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"    return Client(version, endpoint, **cli_kwargs)"},{"line_number":301,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9a80dd14_43015e05","line":298,"in_reply_to":"9a80dd14_4fdd0514","updated":"2015-03-11 17:39:08.000000000","message":"as i understand it, it doesn\u0027t actually convert but creates a second set with simpler names... so you\u0027d still have original.\n\ni\u0027m trying to find a case where another client does something similar as this but i haven\u0027t found it yet. so maybe it might be safer to just move it all?","commit_id":"a1ece81a9a0a8be2b9f10fa48b3688af75c8decd"}],"ceilometerclient/tests/test_client.py":[{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"7aa232d044fa197bd4b184dbcb98314c44587b87","unresolved":false,"context_lines":[{"line_number":160,"context_line":"        # Run the same tests with direct instantiation of the Client"},{"line_number":161,"context_line":"        return client.Client(api_version, endpoint, **env)"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"    def setUp(self):"},{"line_number":164,"context_line":"        super(ClientTest2, self).setUp()"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a80dd14_cb1b89c8","line":163,"updated":"2015-03-12 07:17:46.000000000","message":"I think this method can be removed, so does L45","commit_id":"c49bc7784286f14767335abc2ac45fbc869d43e4"}]}
