Previous email didn't contain an attachment (probably mailing list spam filter removed it or something).
In any case, it does look like an auth API issue. I have merged Brad's Auth API changes yesterday so please update your trunk and try again - I think his changes should fix your problem. On Thu, Feb 16, 2012 at 10:04 AM, Jay Doane <j...@almery.com> wrote: > 2012/2/15 Tomaž Muraus <to...@apache.org> > > > > > Can you please attach the code which shows how you are instantiating the > > OpenStack driver (don't forget to mask / remove the credentials)? > > > > The code was attached to my last message, but I'll put it here in the body > as well: > > from libcloud.compute.types import Provider > from libcloud.compute.providers import get_driver > > STACK_HOST = '50.56.213.226' > USERNAME = 'demo' > PASSWORD = 'password' > > def openstack_connect(): > Driver = get_driver(Provider.OPENSTACK) > driver = Driver(USERNAME, PASSWORD, host=STACK_HOST, port=8774, > secure=False, > ex_force_auth_url='http://%s:5000' % STACK_HOST, > ex_force_auth_version='2.0_password', > ex_force_base_url='http://%s:8774' % STACK_HOST) > return driver > > def eucalyptus_connect(): > Driver = get_driver(Provider.EUCALYPTUS) > driver = Driver(USERNAME, PASSWORD, host=STACK_HOST, port=8773, > secure=False, > path="/services/Cloud") > return driver > > print eucalyptus_connect().list_images() > print openstack_connect().list_images() > > It would be also be useful to paste the output of > > LIBCLOUD_DEBUG=/dev/stderr python stack_test.py. > > > > jay@alu:~/proj/genforma/libcloud.git$ LIBCLOUD_DEBUG=/dev/stderr python > > stack_test.py/Users/jay/Library/Python/2.6/site-packages/Crypto/Util/randpool.py:40 > : > RandomPool_DeprecationWarning: This application uses RandomPool, which is > BROKEN in older releases. See http://www.pycrypto.org/randpool-broken > RandomPool_DeprecationWarning) > # -------- begin 19324600 request ---------- > curl -i -X GET -H 'Host: 50.56.213.226:8773' -H 'X-LC-Request-ID: > 19324600' > -H 'Content-Length: 0' -H 'Accept-Encoding: gzip,deflate' -H 'User-Agent: > libcloud/0.8.0 (Eucalyptus)' --compress ' > > https://50.56.213.226:8773/services/Cloud?SignatureVersion=2&AWSAccessKeyId=demo&Timestamp=2012-02-16T18%3A01%3A45Z&SignatureMethod=HmacSHA256&Version=2010-08-31&Signature=%2Fpmh1RDZacElc0hVwojf8rQvMCntjPAkTlg0bGv2woo%3D&Action=DescribeImages > ' > # -------- begin 19324600:19296584 response ---------- > HTTP/1.1 200 OK > Date: Thu, 16 Feb 2012 18:01:53 GMT > Content-Length: 911 > Content-Type: text/xml > > <?xml version="1.0" ?><DescribeImagesResponse xmlns=" > http://ec2.amazonaws.com/doc/2010-08-31/ > "><requestId>req-f2405b03-2463-48a6-80fd-9af99e8de768</requestId><imagesSet><item><description/><imageOwnerId/><isPublic>true</isPublic><imageId>aki-00000001</imageId><imageState>available</imageState><architecture/><imageLocation>None > > (oneiric-server-cloudimg-amd64-kernel)</imageLocation><rootDeviceType>instance-store</rootDeviceType><rootDeviceName>/dev/sda1</rootDeviceName><imageType>kernel</imageType></item><item><description/><imageOwnerId/><isPublic>true</isPublic><imageId>ami-00000002</imageId><imageState>available</imageState><rootDeviceType>instance-store</rootDeviceType><architecture/><imageLocation>None > > (oneiric-server-cloudimg-amd64)</imageLocation><kernelId>aki-00000001</kernelId><rootDeviceName>/dev/sda1</rootDeviceName><imageType>machine</imageType></item></imagesSet></DescribeImagesResponse> > # -------- end 19324600:19296584 response ---------- > > [<NodeImage: id=aki-00000001, name=None > (oneiric-server-cloudimg-amd64-kernel), driver=Eucalyptus ...>, > <NodeImage: id=ami-00000002, name=None (oneiric-server-cloudimg-amd64), > driver=Eucalyptus ...>] > # -------- begin 19457048 request ---------- > curl -i -X POST -H 'Host: 50.56.213.226:5000' -H 'Accept-Encoding: > gzip,deflate' -H 'X-LC-Request-ID: 19457048' -H 'Content-Type: > application/json; charset=UTF-8' -H 'Content-Length: 79' -H 'Accept: > application/json' -H 'User-Agent: libcloud/0.8.0 (OpenStack)' --data-binary > '{"auth": {"passwordCredentials": {"username": "demo", "password": > "password"}}}' --compress https://50.56.213.226:5000/v2.0/tokens/ > # -------- begin 19457048:19481464 response ---------- > HTTP/1.1 200 OK > Date: Thu, 16 Feb 2012 18:01:53 GMT > Content-Type: application/json; charset=UTF-8 > Content-Length: 772 > Vary: X-Auth-Token > > {"access": {"token": {"expires": "2012-02-16T17:54:14", "id": > "f436424e-6c7d-43e4-ae7c-30f5553c79f3"}, "serviceCatalog": [{"endpoints": > [{"id": "2", "region": "RegionOne", "internalURL": " > http://50.56.213.226:8773/services/Cloud", "publicURL": " > http://50.56.213.226:8773/services/Cloud"}], "type": "ec2", "name": > "ec2"}, > {"endpoints": [{"id": "3", "region": "RegionOne", "internalURL": " > http://50.56.213.226:9292/v1", "publicURL": "http://50.56.213.226:9292/v1 > "}], > "type": "image", "name": "glance"}, {"endpoints": [{"id": "4", "region": > "RegionOne", "internalURL": "http://50.56.213.226:5000/v2.0", > "publicURL": " > http://50.56.213.226:5000/v2.0"}], "type": "identity", "name": > "keystone"}], "user": {"id": "a438ea90e1da43e4b895874fdaf83a2d", "roles": > [], "name": "demo"}}} > # -------- end 19457048:19481464 response ---------- > > Traceback (most recent call last): > File "stack_test.py", line 25, in <module> > print openstack_connect().list_images() > File "stack_test.py", line 15, in openstack_connect > ex_force_base_url='http://%s:8774' % STACK_HOST) > File > > "/Users/jay/proj/genforma/libcloud.git/libcloud/compute/drivers/openstack.py", > line 795, in __init__ > super(OpenStack_1_1_NodeDriver, self).__init__(*args, **kwargs) > File "/Users/jay/proj/genforma/libcloud.git/libcloud/compute/base.py", > line 397, in __init__ > api_version=api_version) > File "/Users/jay/proj/genforma/libcloud.git/libcloud/common/base.py", > line 802, in __init__ > self.connection.connect() > File "/Users/jay/proj/genforma/libcloud.git/libcloud/common/base.py", > line 427, in connect > if getattr(self, 'base_url', None) and base_url == None: > File > "/Users/jay/proj/genforma/libcloud.git/libcloud/common/openstack.py", line > 249, in base_url > return self._get_base_url(url_key=self._url_key) > File > "/Users/jay/proj/genforma/libcloud.git/libcloud/common/openstack.py", line > 254, in _get_base_url > self._populate_hosts_and_request_paths() > File > "/Users/jay/proj/genforma/libcloud.git/libcloud/common/openstack.py", line > 300, in _populate_hosts_and_request_paths > self.tenant_ids[service_type] = service['endpoints'][0]['tenantId'] > KeyError: 'tenantId' > > > > > In any case, Brad Morgan has recently made some changes and improvements > to > > the OpenStack authentication classes - > > https://github.com/apache/libcloud/pull/58. Now the tenantId is not > > automatically parsed from the auth API response anymore and this might > fix > > your problem. His changes should be merged to trunk soon - probably today > > or tomorrow. > > > > Great! Thanks for the help. > > Jay > > > > > On Wed, Feb 15, 2012 at 9:06 PM, Jay Doane <j...@almery.com> wrote: > > > > > Greetings, > > > > > > I followed the directions at > http://devstack.org/guides/single-vm.htmlto > > > deploy OpenStack on a single host, and everything works as expected > from > > > the web interface. > > > > > > I would like to access my OpenStack dev environment with (a recent dev > > > version oflibcloud, but seem to only be able to do so using the > > Eucalyptus > > > driver; the OpenStack driver gives me the following error (running the > > > attached code): > > > > > > jay@alu:~/proj/genforma/libcloud.git$ python stack_test.py > > > [<NodeImage: id=aki-00000001, name=None > > > (oneiric-server-cloudimg-amd64-kernel), driver=Eucalyptus ...>, > > > <NodeImage: id=ami-00000002, name=None (oneiric-server-cloudimg-amd64), > > > driver=Eucalyptus ...>] > > > Traceback (most recent call last): > > > File "stack_test.py", line 23, in <module> > > > print openstack_connect().list_images() > > > File "stack_test.py", line 13, in openstack_connect > > > ex_force_base_url='http://%s:8774' % STACK_HOST) > > > File > > > > > > "/Users/jay/proj/genforma/libcloud.git/libcloud/compute/drivers/openstack.py", > > > line 795, in __init__ > > > super(OpenStack_1_1_NodeDriver, self).__init__(*args, **kwargs) > > > File > "/Users/jay/proj/genforma/libcloud.git/libcloud/compute/base.py", > > > line 397, in __init__ > > > api_version=api_version) > > > File "/Users/jay/proj/genforma/libcloud.git/libcloud/common/base.py", > > > line 802, in __init__ > > > self.connection.connect() > > > File "/Users/jay/proj/genforma/libcloud.git/libcloud/common/base.py", > > > line 427, in connect > > > if getattr(self, 'base_url', None) and base_url == None: > > > File > > > "/Users/jay/proj/genforma/libcloud.git/libcloud/common/openstack.py", > > line > > > 249, in base_url > > > return self._get_base_url(url_key=self._url_key) > > > File > > > "/Users/jay/proj/genforma/libcloud.git/libcloud/common/openstack.py", > > line > > > 254, in _get_base_url > > > self._populate_hosts_and_request_paths() > > > File > > > "/Users/jay/proj/genforma/libcloud.git/libcloud/common/openstack.py", > > line > > > 300, in _populate_hosts_and_request_paths > > > self.tenant_ids[service_type] = service['endpoints'][0]['tenantId'] > > > KeyError: 'tenantId' > > > > > > Has anyone else successfully used the libcloud OpenStack driver to > access > > > a recent devstack deployment? Or is there something obviously wrong > with > > > how I'm instantiating my OpenStack driver? > > > > > > Thanks, > > > Jay > > > > > > > > > > > > > > >