)]}'
{"troveclient/client.py":[{"author":{"_account_id":11045,"name":"Bob Thyne","email":"bob.thyne@hp.com","username":"bobt"},"change_message_id":"f86ccdd2f30b5cd188daf749a1ba3e03aee05a41","unresolved":false,"context_lines":[{"line_number":432,"context_line":"        return resp, body"},{"line_number":433,"context_line":""},{"line_number":434,"context_line":"    def get_database_api_version_from_endpoint(self):"},{"line_number":435,"context_line":"        management_url \u003d self.get_endpoint()"},{"line_number":436,"context_line":"        management_url \u003d management_url.rstrip(\u0027/\u0027)"},{"line_number":437,"context_line":""},{"line_number":438,"context_line":"        magic_tuple \u003d urlparse.urlsplit(management_url)"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a890539_a0064484","line":435,"updated":"2014-11-13 18:39:14.000000000","message":"How the management_url is being constructed has to be changed. I\u0027m looking at how to leverage troveclient.ServiceCatalog","commit_id":"9e458af34132a92ed2be683b1ef77adb7435a372"},{"author":{"_account_id":11045,"name":"Bob Thyne","email":"bob.thyne@hp.com","username":"bobt"},"change_message_id":"b1c61e64d5d48b977038e9a7391d845de424c1c6","unresolved":false,"context_lines":[{"line_number":432,"context_line":"        return resp, body"},{"line_number":433,"context_line":""},{"line_number":434,"context_line":"    def get_database_api_version_from_endpoint(self):"},{"line_number":435,"context_line":"        management_url \u003d self.get_endpoint()"},{"line_number":436,"context_line":"        management_url \u003d management_url.rstrip(\u0027/\u0027)"},{"line_number":437,"context_line":""},{"line_number":438,"context_line":"        magic_tuple \u003d urlparse.urlsplit(management_url)"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a890539_dcced42d","line":435,"in_reply_to":"5a890539_a0064484","updated":"2014-11-13 23:06:10.000000000","message":"troveclient.ServiceCatalog is legacy code making reference to the V2 service catalog. For the new V3 code we use keystoneclient.Session.get_endpoint (which is essentially what the above method is). I\u0027ve updated the tests to make sure we test get_database_api_version_from_endpoint.","commit_id":"9e458af34132a92ed2be683b1ef77adb7435a372"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"fea8324d90e0d8d9a5bac717fcef852ae71c6a98","unresolved":false,"context_lines":[{"line_number":483,"context_line":"                             service_name\u003dservice_name,"},{"line_number":484,"context_line":"                             region_name\u003dregion_name,"},{"line_number":485,"context_line":"                             endpoint_type\u003dendpoint_type,"},{"line_number":486,"context_line":"                             database_service_name\u003ddatabase_service_name)"},{"line_number":487,"context_line":""},{"line_number":488,"context_line":"    return HTTPClient(username,"},{"line_number":489,"context_line":"                      password,"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a890539_49d4a9bc","line":486,"updated":"2014-11-17 06:56:37.000000000","message":"It looks like, for some reason, the debug logger is not being set up here. Consequently calls to the SessionClient do not have the HTTP debug request and response printed out when --debug is passed to the client.","commit_id":"be8f5ac11f738472c08cf6ee0d58127daf53779a"},{"author":{"_account_id":11045,"name":"Bob Thyne","email":"bob.thyne@hp.com","username":"bobt"},"change_message_id":"44ea8a419037af63d3792030d4dfa2c7ffb9a89a","unresolved":false,"context_lines":[{"line_number":483,"context_line":"                             service_name\u003dservice_name,"},{"line_number":484,"context_line":"                             region_name\u003dregion_name,"},{"line_number":485,"context_line":"                             endpoint_type\u003dendpoint_type,"},{"line_number":486,"context_line":"                             database_service_name\u003ddatabase_service_name)"},{"line_number":487,"context_line":""},{"line_number":488,"context_line":"    return HTTPClient(username,"},{"line_number":489,"context_line":"                      password,"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a890539_96b3f74b","line":486,"in_reply_to":"5a890539_49d4a9bc","updated":"2014-11-17 21:00:11.000000000","message":"Keystoneclient relies on the relevant logging configuration setup in shell.py in the method setup_debugging. And in fact this seemed to be broken in the trove client because when I was trying to execute:\n\ntrove --debug --os-username demo --os-password all4one --os-tenant-name demo --os-auth-url http://10.0.2.15:5000/v2.0 list\n\nI wasn\u0027t seeing any debug logs as you rightly pointed out. However, the method setup_debugging inside shell.py seemed to be misconfigured. I\u0027ve made a change to troveclient/shell.py inside the function setup_debugging and logging is now working for the calls to the keystoneclient API e.g.\n\ntrove --debug --os-username demo --os-password all4one --os-tenant-name demo --os-auth-url http://10.0.2.15:5000/v2.0 list\n\nDEBUG (session:162) REQ: curl -i -X GET http://10.0.2.15:5000/v2.0 -H \"Accept: application/json\" -H \"User-Agent: python-keystoneclient\"\nINFO (connectionpool:180) Starting new HTTP connection (1): 10.0.2.15\nDEBUG (connectionpool:350) \"GET /v2.0 HTTP/1.1\" 200 419\nDEBUG (session:190) RESP: [200] date: Mon, 17 Nov 2014 20:49:15 GMT vary: X-Auth-Token content-length: 419 content-type: application/json server: Apache/2.2.22 (Ubuntu) \nRESP BODY: {\"version\": {\"status\": \"stable\", \"updated\": \"2014-04-17T00:00:00Z\", \"media-types\": [{\"base\": \"application/json\", \"type\": \"application/vnd.openstack.identity-v2.0+json\"}, {\"base\": \"application/xml\", \"type\": \"application/vnd.openstack.identity-v2.0+xml\"}], \"id\": \"v2.0\", \"links\": [{\"href\": \"http://10.0.2.15:5000/v2.0/\", \"rel\": \"self\"}, {\"href\": \"http://docs.openstack.org/\", \"type\": \"text/html\", \"rel\": \"describedby\"}]}}\n\n...","commit_id":"be8f5ac11f738472c08cf6ee0d58127daf53779a"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"5abc9945e9660b8728987cf3a834f72e1608cecf","unresolved":false,"context_lines":[{"line_number":51,"context_line":"    urlparse.parse_qsl \u003d cgi.parse_qsl"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"class TroveClientMixin(object):"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    def get_database_api_version_from_endpoint(self):"},{"line_number":57,"context_line":"        magic_tuple \u003d urlparse.urlsplit(self.management_url)"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a890539_70a53303","line":54,"updated":"2014-11-20 19:02:22.000000000","message":"it is unclear to me why this mixin object is of much use if it isn\u0027t used as such. there\u0027s a lot of code in the session client that could benefit from this mixin but we don\u0027t seem to do that?","commit_id":"9cb7d94997b371f6a0f15563b604c0c2cbe9d723"},{"author":{"_account_id":11045,"name":"Bob Thyne","email":"bob.thyne@hp.com","username":"bobt"},"change_message_id":"5ad660f8af6abaa050191f5488851dc56675a398","unresolved":false,"context_lines":[{"line_number":51,"context_line":"    urlparse.parse_qsl \u003d cgi.parse_qsl"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"class TroveClientMixin(object):"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    def get_database_api_version_from_endpoint(self):"},{"line_number":57,"context_line":"        magic_tuple \u003d urlparse.urlsplit(self.management_url)"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a890539_12994e1f","line":54,"in_reply_to":"5a890539_70a53303","updated":"2014-11-20 22:31:01.000000000","message":"Done","commit_id":"9cb7d94997b371f6a0f15563b604c0c2cbe9d723"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"5abc9945e9660b8728987cf3a834f72e1608cecf","unresolved":false,"context_lines":[{"line_number":77,"context_line":"                 http_log_debug\u003dFalse, cacert\u003dNone, bypass_url\u003dNone,"},{"line_number":78,"context_line":"                 auth_system\u003d\u0027keystone\u0027, auth_plugin\u003dNone):"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        if auth_system !\u003d \u0027keystone\u0027 and not auth_plugin:"},{"line_number":81,"context_line":"            raise exceptions.AuthSystemNotFound(auth_system)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        if not auth_url and auth_system and auth_system !\u003d \u0027keystone\u0027:"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a890539_f0e68343","line":80,"updated":"2014-11-20 19:02:22.000000000","message":"any specific reason we are checking these things right up here and not later where we do the assignment?","commit_id":"9cb7d94997b371f6a0f15563b604c0c2cbe9d723"},{"author":{"_account_id":11045,"name":"Bob Thyne","email":"bob.thyne@hp.com","username":"bobt"},"change_message_id":"5ad660f8af6abaa050191f5488851dc56675a398","unresolved":false,"context_lines":[{"line_number":77,"context_line":"                 http_log_debug\u003dFalse, cacert\u003dNone, bypass_url\u003dNone,"},{"line_number":78,"context_line":"                 auth_system\u003d\u0027keystone\u0027, auth_plugin\u003dNone):"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        if auth_system !\u003d \u0027keystone\u0027 and not auth_plugin:"},{"line_number":81,"context_line":"            raise exceptions.AuthSystemNotFound(auth_system)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        if not auth_url and auth_system and auth_system !\u003d \u0027keystone\u0027:"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a890539_12678e26","line":80,"in_reply_to":"5a890539_f0e68343","updated":"2014-11-20 22:31:01.000000000","message":"Done","commit_id":"9cb7d94997b371f6a0f15563b604c0c2cbe9d723"}],"troveclient/v1/client.py":[{"author":{"_account_id":11333,"name":"David J Hu","email":"david.hu@hpe.com","username":"dhu"},"change_message_id":"75d373e2ae3a1a51ead51cf28b4c26018502a167","unresolved":false,"context_lines":[{"line_number":109,"context_line":"            retries\u003dretries,"},{"line_number":110,"context_line":"            http_log_debug\u003dhttp_log_debug,"},{"line_number":111,"context_line":"            cacert\u003dcacert,"},{"line_number":112,"context_line":"            bypass_url\u003dbypass_url)"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    def authenticate(self):"},{"line_number":115,"context_line":"        \"\"\"Authenticate against the server."}],"source_content_type":"text/x-python","patch_set":9,"id":"5a890539_0882f6ff","side":"PARENT","line":112,"updated":"2014-12-01 22:42:01.000000000","message":"Just curious to why bypass_url was dropped?","commit_id":"efb0f37f8ded8365a1e6b75b259b5e3d9a01a943"},{"author":{"_account_id":11045,"name":"Bob Thyne","email":"bob.thyne@hp.com","username":"bobt"},"change_message_id":"2e173d47b84ece1ddcea272f868d1fd1703ff5ab","unresolved":false,"context_lines":[{"line_number":109,"context_line":"            retries\u003dretries,"},{"line_number":110,"context_line":"            http_log_debug\u003dhttp_log_debug,"},{"line_number":111,"context_line":"            cacert\u003dcacert,"},{"line_number":112,"context_line":"            bypass_url\u003dbypass_url)"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    def authenticate(self):"},{"line_number":115,"context_line":"        \"\"\"Authenticate against the server."}],"source_content_type":"text/x-python","patch_set":9,"id":"5a890539_c670df42","side":"PARENT","line":112,"in_reply_to":"5a890539_0882f6ff","updated":"2014-12-01 23:59:44.000000000","message":"Good catch. The legacy HttpClient still refers to bypass_url and this variable was chopped in an earlier incarnation of the Keystone V3 patch. For the new V3 Support we don\u0027t use the bypass_url other than in troveclient/shell.py to determine whether or not to use the keystoneclient session. So I\u0027ve added the bypass_url back for the legacy HttpClient.","commit_id":"efb0f37f8ded8365a1e6b75b259b5e3d9a01a943"}]}
