)]}'
{"heat/engine/clients.py":[{"author":{"_account_id":4328,"name":"Steven Hardy","email":"steven.hardy@suse.com","username":"shardy"},"change_message_id":"479f67cf9e157075f7bbb158c2a74d981e05996d","unresolved":false,"context_lines":[{"line_number":220,"context_line":"            \u0027proxy_token\u0027: con.auth_token,"},{"line_number":221,"context_line":"            \u0027username\u0027: con.username,"},{"line_number":222,"context_line":"            \u0027password\u0027: None,"},{"line_number":223,"context_line":"            \u0027project_id\u0027: con.tenant"},{"line_number":224,"context_line":"        }"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"        self._trove \u003d troveclient.Client(\u00271.0\u0027, **args)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2BHso%3D","line":223,"updated":"2013-12-02 11:39:21.000000000","message":"This looks wrong - you\u0027re passing the context tenant *name* as project_id\n\nAlso you\u0027re passing both tenant_id and project_id - can we just pass project_id (set to con.tenant_id?\n\nIt may not even be necessary to pass the project/tenant at all, since trove will presumably derive that from the token via auth_token middleware anyway?  (Likewise the username/password).  \n\nI guess this depends on how troveclient is implemented, but in theory all of this info is redundant if we\u0027re using token auth.","commit_id":"0763e35ef7652943c477ec22519b2c89b53c9c65"},{"author":{"_account_id":7256,"name":"Randall Burt","email":"randall.burt@rackspace.com","username":"randall-burt"},"change_message_id":"31132afb592b44a96aedc88d049bc355a3f11f8c","unresolved":false,"context_lines":[{"line_number":220,"context_line":"            \u0027proxy_token\u0027: con.auth_token,"},{"line_number":221,"context_line":"            \u0027username\u0027: con.username,"},{"line_number":222,"context_line":"            \u0027password\u0027: None,"},{"line_number":223,"context_line":"            \u0027project_id\u0027: con.tenant"},{"line_number":224,"context_line":"        }"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"        self._trove \u003d troveclient.Client(\u00271.0\u0027, **args)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2BFMk%3D","line":223,"in_reply_to":"AAAATn%2F%2BFso%3D","updated":"2013-12-02 18:51:55.000000000","message":"Seems like a bug in troveclient if those values are required but can be None.","commit_id":"0763e35ef7652943c477ec22519b2c89b53c9c65"},{"author":{"_account_id":7230,"name":"Vijendar Komalla","email":"vijendar.komalla@rackspace.com","username":"vijendar"},"change_message_id":"97b39072bac31a23727e3f7f0fff99afa441fb58","unresolved":false,"context_lines":[{"line_number":220,"context_line":"            \u0027proxy_token\u0027: con.auth_token,"},{"line_number":221,"context_line":"            \u0027username\u0027: con.username,"},{"line_number":222,"context_line":"            \u0027password\u0027: None,"},{"line_number":223,"context_line":"            \u0027project_id\u0027: con.tenant"},{"line_number":224,"context_line":"        }"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"        self._trove \u003d troveclient.Client(\u00271.0\u0027, **args)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2BFso%3D","line":223,"in_reply_to":"AAAATn%2F%2BHso%3D","updated":"2013-12-02 17:42:15.000000000","message":"Removing tenant_id and project_id.\nusername and password are redundant, but troveclient requires these two(setting them to None).","commit_id":"0763e35ef7652943c477ec22519b2c89b53c9c65"},{"author":{"_account_id":4328,"name":"Steven Hardy","email":"steven.hardy@suse.com","username":"shardy"},"change_message_id":"479f67cf9e157075f7bbb158c2a74d981e05996d","unresolved":false,"context_lines":[{"line_number":226,"context_line":"        self._trove \u003d troveclient.Client(\u00271.0\u0027, **args)"},{"line_number":227,"context_line":"        management_url \u003d self.url_for(service_type\u003dservice_type)"},{"line_number":228,"context_line":"        self._trove.client.auth_token \u003d con.auth_token"},{"line_number":229,"context_line":"        self._trove.client.management_url \u003d management_url"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"        return self._trove"},{"line_number":232,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2BHsk%3D","line":229,"updated":"2013-12-02 11:39:21.000000000","message":"Is patching in auth_token and management_url actually required for troveclient, or is this cut/paste duplication?","commit_id":"0763e35ef7652943c477ec22519b2c89b53c9c65"},{"author":{"_account_id":7256,"name":"Randall Burt","email":"randall.burt@rackspace.com","username":"randall-burt"},"change_message_id":"31132afb592b44a96aedc88d049bc355a3f11f8c","unresolved":false,"context_lines":[{"line_number":226,"context_line":"        self._trove \u003d troveclient.Client(\u00271.0\u0027, **args)"},{"line_number":227,"context_line":"        management_url \u003d self.url_for(service_type\u003dservice_type)"},{"line_number":228,"context_line":"        self._trove.client.auth_token \u003d con.auth_token"},{"line_number":229,"context_line":"        self._trove.client.management_url \u003d management_url"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"        return self._trove"},{"line_number":232,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2BFMU%3D","line":229,"in_reply_to":"AAAATn%2F%2BFxg%3D","updated":"2013-12-02 18:51:55.000000000","message":"Hrm, hacky since we\u0027re passing the token in **args as well, but I guess that can be another trove bug.","commit_id":"0763e35ef7652943c477ec22519b2c89b53c9c65"},{"author":{"_account_id":7230,"name":"Vijendar Komalla","email":"vijendar.komalla@rackspace.com","username":"vijendar"},"change_message_id":"97b39072bac31a23727e3f7f0fff99afa441fb58","unresolved":false,"context_lines":[{"line_number":226,"context_line":"        self._trove \u003d troveclient.Client(\u00271.0\u0027, **args)"},{"line_number":227,"context_line":"        management_url \u003d self.url_for(service_type\u003dservice_type)"},{"line_number":228,"context_line":"        self._trove.client.auth_token \u003d con.auth_token"},{"line_number":229,"context_line":"        self._trove.client.management_url \u003d management_url"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"        return self._trove"},{"line_number":232,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2BFxg%3D","line":229,"in_reply_to":"AAAATn%2F%2BHsk%3D","updated":"2013-12-02 17:42:15.000000000","message":"this patching is required for troveclient. Otherwise, troveclient is not able to authenticate (fails with Expecting username (HTTP 400))","commit_id":"0763e35ef7652943c477ec22519b2c89b53c9c65"}]}
