On Thu, Feb 16, 2012 at 11:21 PM, Jay Doane <j...@almery.com> wrote:

> 2012/2/16 Tomaž Muraus <to...@apache.org>
>
> > Do you get the same "300, Multiple choices" response back if you change
> > ex_force_base_url to http://%s:8774/v2.0?
>
>
> Correct.  Here is the response.  The "/v2/v2.0" part of the path looks
> strange to me.
>

Yeah, you are right - it looks like the correct version is "v2" and not
"v2.0".


> # -------- begin 19425200:19295648 response ----------
> HTTP/1.1 300 Multiple Choices
> Date: Fri, 17 Feb 2012 07:18:54 GMT
> Content-Length: 332
> Content-Type: application/json
>
> {"choices": [{"status": "CURRENT", "media-types": [{"base":
> "application/xml", "type":
> "application/vnd.openstack.compute+xml;version=2"}, {"base":
> "application/json", "type":
> "application/vnd.openstack.compute+json;version=2"}], "id": "v2.0",
> "links": [{"href": "http://50.56.213.226:8774/v2/v2.0/images/detail";,
> "rel": "self"}]}]}
> # -------- end 19425200:19295648 response ----------
>
>
> > If so, then it seems like an
> > OpenStack bug because the documentation states that the version can be
> > provided in the URL.
> >
>
> Can you point to the docs to which you are referring?
>

Here is a link to the keystone docs -
http://docs.openstack.org/incubation/identity-dev-guide/content/Versions-d1e472.html
and
it looks like the same concept is also used with nova.

>
>
> > Giving more information on which OpenStack version you are using would
> also
> > be helpful.
> >
>
> I'm not sure what the best way to do that is.  Devstack by default pulls
> from the master branch of all repositories, and the version I have running
> is about 5 days old.  The top of the nova repo's git log is
>
> commit d8f8bad0f26b4438986ab1a469d89d03b22551db
>
> Merge: d03692c b196f4b
>
> Author: Jenkins <jenk...@review.openstack.org>
>
> Date:   Sat Feb 11 18:42:50 2012 +0000
>
>
>
>    Merge "Converting db tables to utf8."
>
> And that of keystone is
>
> commit 9452cf04bc8b0a4dc66dc640615d5ace1ca715f2
>
> Author: Alvaro Lopez Garcia <al...@ifca.unican.es>
>
> Date:   Tue Jan 31 18:14:17 2012 +0100
>
>
>
>    Fixes bug 924391
>
>
>
>    Change-Id: Iccb232a56df6072580cbcb0bc07ef7c0f81ca8fe
>
> In any case, I will try to get devstack working locally and reproduce this
> > problem myself.
> >
>
> Thanks.  I should also update my stack and see if the problem has since
> been resolved.
>
> Jay
>
>
> > On Thu, Feb 16, 2012 at 8:20 PM, Jay Doane <j...@almery.com> wrote:
> >
> > > If I change ex_force_base_url='http://%s:8774/v2.0' % STACK_HOST then
> I
> > > get
> > > the same TypeError as before.
> > >
> > > However, if I change ex_force_base_url='http://%s:8774/v2' %
> STACK_HOST
> > > (note the lack of ".0"), I get the following 404:
> > >
> > > $ LIBCLOUD_DEBUG=/dev/stderr python stack_demo.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 19425200 request ----------
> > > curl -i -X POST -H 'Host: 50.56.213.226:5000' -H 'Accept-Encoding:
> > > gzip,deflate' -H 'X-LC-Request-ID: 19425200' -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 19425200:19425360 response ----------
> > > HTTP/1.1 200 OK
> > > Date: Fri, 17 Feb 2012 04:17:13 GMT
> > > Content-Type: application/json; charset=UTF-8
> > > Content-Length: 772
> > > Vary: X-Auth-Token
> > >
> > > {"access": {"token": {"expires": "2012-02-17T18:11:39", "id":
> > > "2977320b-56d9-47a9-9c38-4a5b2b0ac8c9"}, "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 19425200:19425360 response ----------
> > >
> > > # -------- begin 19425200 request ----------
> > > curl -i -X GET -H 'Host: 50.56.213.226:8774' -H 'X-LC-Request-ID:
> > > 19425200'
> > > -H 'Accept-Encoding: gzip,deflate' -H 'X-Auth-Token:
> > > 2977320b-56d9-47a9-9c38-4a5b2b0ac8c9' -H 'Content-Length: 0' -H
> 'Accept:
> > > application/json' -H 'User-Agent: libcloud/0.8.0 (OpenStack)'
> --compress
> > '
> > >
> >
> https://50.56.213.226:8774/v2/images/detail?cache-busting=786c8c85d9f54028
> > > '
> > > # -------- begin 19425200:19295648 response ----------
> > > HTTP/1.1 404 Not Found
> > > Date: Fri, 17 Feb 2012 04:17:13 GMT
> > > Content-Length: 52
> > > Content-Type: text/plain; charset=UTF-8
> > >
> > > 404 Not Found
> > >
> > > The resource could not be found.
> > >
> > >
> > > # -------- end 19425200:19295648 response ----------
> > >
> > > Traceback (most recent call last):
> > >  File "stack_demo.py", line 17, in <module>
> > >    print driver.list_images()
> > >  File
> > >
> > >
> >
> "/Users/jay/proj/genforma/libcloud.git/libcloud/compute/drivers/openstack.py",
> > > line 209, in list_images
> > >    return self._to_images(self.connection.request('/images/detail')
> > >  File
> > >
> > >
> >
> "/Users/jay/proj/genforma/libcloud.git/libcloud/compute/drivers/openstack.py",
> > > line 151, in request
> > >    method=method, headers=headers)
> > >  File
> > > "/Users/jay/proj/genforma/libcloud.git/libcloud/common/openstack.py",
> > line
> > > 328, in request
> > >    return super(OpenStackBaseConnection, self).request(**kwargs)
> > >  File "/Users/jay/proj/genforma/libcloud.git/libcloud/common/base.py",
> > > line 564, in request
> > >    connection=self)
> > >  File
> > >
> > >
> >
> "/Users/jay/proj/genforma/libcloud.git/libcloud/compute/drivers/openstack.py",
> > > line 774, in __init__
> > >    super(OpenStack_1_1_Response, self).__init__(*args, **kwargs)
> > >  File "/Users/jay/proj/genforma/libcloud.git/libcloud/common/base.py",
> > > line 77, in __init__
> > >    raise Exception(self.parse_error())
> > > Exception: 404 Not Found 404 Not Found
> > >
> > > The resource could not be found.
> > >
> > > 2012/2/16 Tomaž Muraus <to...@apache.org>
> > >
> > > > It looks like you are missing an API version in the URL.
> > > >
> > > > Please change the ex_force_base_url='http://%s:8774' % STACK_HOST
> > > > to ex_force_base_url='http://%s:8774/v2.0' % STACK_HOST
> > > >
> > > > Let us know if this solves your problem.
> > > >
> > > > On Thu, Feb 16, 2012 at 7:17 PM, Jay Doane <j...@almery.com> wrote:
> > > >
> > > > > 2012/2/16 Tomaž Muraus <to...@apache.org>
> > > > >
> > > > > >
> > > > > > 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.
> > > > > >
> > > > >
> > > > > I pulled the latest code, and you were right: it fixed the tenantId
> > > > > KeyError.
> > > > >
> > > > > Unfortunately, I'm now getting a different error.  My
> interpretation
> > is
> > > > > that openstack is giving a 300 response because there is a choice
> of
> > > > > response formats, but the libcloud driver is treating that as an
> > error,
> > > > > since OpenStackResponse.success is implemented to do so.  Details
> > > below.
> > > > >
> > > > > I've simplified my demo code by removing the (working) Eucalyptus
> > > driver
> > > > > example, and changed the name to stack_demo.py.  Here's the
> listing:
> > > > >
> > > > > 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
> > > > >
> > > > > driver = openstack_connect()
> > > > > print driver.list_images()
> > > > >
> > > > > Here's the output:
> > > > >
> > > > > $ LIBCLOUD_DEBUG=/dev/stderr python stack_demo.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 19425240 request ----------
> > > > > curl -i -X POST -H 'Host: 50.56.213.226:5000' -H 'Accept-Encoding:
> > > > > gzip,deflate' -H 'X-LC-Request-ID: 19425240' -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 19425240:19425400 response ----------
> > > > > HTTP/1.1 200 OK
> > > > > Date: Fri, 17 Feb 2012 01:45:20 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 19425240:19425400 response ----------
> > > > >
> > > > > # -------- begin 19425240 request ----------
> > > > > curl -i -X GET -H 'Host: 50.56.213.226:8774' -H 'X-LC-Request-ID:
> > > > > 19425240'
> > > > > -H 'Accept-Encoding: gzip,deflate' -H 'X-Auth-Token:
> > > > > f436424e-6c7d-43e4-ae7c-30f5553c79f3' -H 'Content-Length: 0' -H
> > > 'Accept:
> > > > > application/json' -H 'User-Agent: libcloud/0.8.0 (OpenStack)'
> > > --compress
> > > > '
> > > > >
> > >
> https://50.56.213.226:8774/images/detail?cache-busting=faeee245cd437497'
> > > > > # -------- begin 19425240:19295688 response ----------
> > > > > HTTP/1.1 300 Multiple Choices
> > > > > Date: Fri, 17 Feb 2012 01:45:20 GMT
> > > > > Content-Length: 327
> > > > > Content-Type: application/json
> > > > >
> > > > > {"choices": [{"status": "CURRENT", "media-types": [{"base":
> > > > > "application/xml", "type":
> > > > > "application/vnd.openstack.compute+xml;version=2"}, {"base":
> > > > > "application/json", "type":
> > > > > "application/vnd.openstack.compute+json;version=2"}], "id": "v2.0",
> > > > > "links": [{"href": "http://50.56.213.226:8774/v2/images/detail";,
> > > "rel":
> > > > > "self"}]}]}
> > > > > # -------- end 19425240:19295688 response ----------
> > > > >
> > > > > Traceback (most recent call last):
> > > > >   File "stack_demo.py", line 17, in <module>
> > > > >    print driver.list_images()
> > > > >  File
> > > > >
> > > > >
> > > >
> > >
> >
> "/Users/jay/proj/genforma/libcloud.git/libcloud/compute/drivers/openstack.py",
> > > > > line 209, in list_images
> > > > >    return self._to_images(self.connection.request('/images/detail')
> > > > >  File
> > > > >
> > > > >
> > > >
> > >
> >
> "/Users/jay/proj/genforma/libcloud.git/libcloud/compute/drivers/openstack.py",
> > > > > line 151, in request
> > > > >    method=method, headers=headers)
> > > > >  File
> > > > >
> "/Users/jay/proj/genforma/libcloud.git/libcloud/common/openstack.py",
> > > > line
> > > > > 328, in request
> > > > >    return super(OpenStackBaseConnection, self).request(**kwargs)
> > > > >  File
> > "/Users/jay/proj/genforma/libcloud.git/libcloud/common/base.py",
> > > > > line 564, in request
> > > > >    connection=self)
> > > > >  File
> > > > >
> > > > >
> > > >
> > >
> >
> "/Users/jay/proj/genforma/libcloud.git/libcloud/compute/drivers/openstack.py",
> > > > > line 774, in __init__
> > > > >    super(OpenStack_1_1_Response, self).__init__(*args, **kwargs)
> > > > >  File
> > "/Users/jay/proj/genforma/libcloud.git/libcloud/common/base.py",
> > > > > line 77, in __init__
> > > > >    raise Exception(self.parse_error())
> > > > >  File
> > > > >
> > > > >
> > > >
> > >
> >
> "/Users/jay/proj/genforma/libcloud.git/libcloud/compute/drivers/openstack.py",
> > > > > line 111, in parse_error
> > > > >    in body.values()])
> > > > > TypeError: list indices must be integers, not str
> > > > >
> > > >
> > >
> >
>

Reply via email to