[
https://issues.apache.org/jira/browse/LIBCLOUD-635?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14395907#comment-14395907
]
ASF subversion and git services commented on LIBCLOUD-635:
----------------------------------------------------------
Commit 06cdd4e4b98c2ad4bf9857218c26cc423214823b in libcloud's branch
refs/heads/trunk from [~fifieldt]
[ https://git-wip-us.apache.org/repos/asf?p=libcloud.git;h=06cdd4e ]
Fix bug LIBCLOUD-635 - openstack-swift auth v2
As reported by James in LIBCLOUD-635
https://issues.apache.org/jira/browse/LIBCLOUD-635
OpenStack-Swift authentication is broken from at least
0.16. I confirmed the bug in 0.17 and master.
the code here tries to perform operations on a
OpenStackServiceCatalogEntryEndpoint that cannot
be performed on this class.
Since get_endpoint() will return an endpoint with
a URL (not 3 different URLs: publicURL/internalURL/
adminURL) or error, it should be safe to test for
existence and use the url. However, review very
welcome!
This fix has been tested against OpenStack Juno.
Closes #492
Signed-off-by: Tomaz Muraus <[email protected]>
> openstack swift authentication problem in 0.16.0
> ------------------------------------------------
>
> Key: LIBCLOUD-635
> URL: https://issues.apache.org/jira/browse/LIBCLOUD-635
> Project: Libcloud
> Issue Type: Bug
> Components: Storage
> Reporter: James
>
> On 0.16.0, after connection to an OpenStack installation with code of the
> form:
> {noformat}
> cls = get_driver(Provider.OPENSTACK_SWIFT)
> driver = cls("user", "password" , ex_force_auth_url="url",
> ex_tenant_name="tenant",
> ex_force_auth_version="2.0_password",ex_force_service_type='object-store',
> ex_force_service_name='swift', ex_force_service_region="region")
> {noformat}
> When trying to do
> {noformat}
> driver.list_containers()
> {noformat}
> I get an exception, the bottom of the traceback for which looks like:
> {noformat}
> /home/ubuntu/verify/local/lib/python2.7/site-packages/libcloud/common/openstack.pyc
> in morph_action_hook(self, action)
> 253
> 254 def morph_action_hook(self, action):
> --> 255 self._populate_hosts_and_request_paths()
> 256 return super(OpenStackBaseConnection,
> self).morph_action_hook(action)
> 257
> /home/ubuntu/verify/local/lib/python2.7/site-packages/libcloud/common/openstack.pyc
> in _populate_hosts_and_request_paths(self)
> 297 self.service_catalog = osc
> 298
> --> 299 url = self._ex_force_base_url or self.get_endpoint()
> 300 self._set_up_connection_info(url=url)
> 301
> /home/ubuntu/verify/local/lib/python2.7/site-packages/libcloud/storage/drivers/cloudfiles.pyc
> in get_endpoint(self, *args, **kwargs)
> 139 name=self._service_name, region=self._service_region)
> 140
> --> 141 if PUBLIC_ENDPOINT_KEY in endpoint:
> 142 return endpoint[PUBLIC_ENDPOINT_KEY]
> 143 else:
> TypeError: argument of type 'OpenStackServiceCatalogEntryEndpoint' is not
> iterable
> {noformat}
> The same code works without error on 0.15.1
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)