[ 
https://issues.apache.org/jira/browse/LIBCLOUD-635?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14389883#comment-14389883
 ] 

ASF GitHub Bot commented on LIBCLOUD-635:
-----------------------------------------

GitHub user fifieldt opened a pull request:

    https://github.com/apache/libcloud/pull/492

    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.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/fifieldt/libcloud trunk

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/libcloud/pull/492.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #492
    
----
commit ec58868c3344a9bfe7a0166fc31c0548ed22ea87
Author: Tom Fifield <[email protected]>
Date:   2015-04-01T02:05:36Z

    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.

----


> 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)

Reply via email to