2012/3/28 Tomaž Muraus <to...@apache.org>

>
> Like you have noticed, version 0.9.0 which should be
> released in the upcoming days makes the default OpenStack driver work with
> trystack.org without needing to change the service_name attribute.
>

Hi Tomaž,

In that case, there's a comment on line 130 of
libcloud/compute/drivers/openstack.py that says

    # default config for http://devstack.org/

which is somewhat misleading.

Which version of devstack are you using?


It's a very recent version, maybe a couple days old now.

stack@devstack-2:~/devstack/tools$ ./info.sh
git|devstack|master[17ff976]
...

It would be great if you could
> provide a reference to the docs which says that the new compute endpoint is
> now called "Compute Service".


I can't really speak to the documentation of devstack, but file you want to
look at is devstack/files/default_catalog.templates, line 12


> I think that the default endpoint in the
> current release is still named "nova" and that is why I will wait with
> merging your patch.
>

I may have been "nova" until commit [a96a418] on February 2, where
the above mentioned file was first added to devstack.

In any case, I will add your example to the documentation -
> http://libcloud.apache.org/docs/compute-examples.html.
>

Thanks!
Jay


> On Wed, Mar 28, 2012 at 2:09 PM, Jay Doane <j...@almery.com> wrote:
>
> > I wanted to follow up this thread with a solution.
> >
> > Thanks to the recently implemented updates in the openstack driver, I'm
> now
> > able to access a vanilla devstack deployment from libcloud.  With
> debugging
> > on, it was useful to compare the requests and responses from the
> (working)
> > python-novaclient library to the (not working, for me at the time)
> libcloud
> > library.
> >
> > One key issue I was having is that the default compute service names were
> > mismatched, with libcloud using the older "nova" instead of the more
> recent
> > "Compute Service".  I've submitted a pull request which addresses that
> > issue.
> >
> > Below is a short script showing how I am able to access host
> "devstack-2",
> > defined in my /etc/hosts file.
> >
> > Cheers,
> > Jay
> >
> > # List the nodes on a devstack installation
> > from libcloud.compute.types import Provider
> > from libcloud.compute.providers import get_driver
> >
> > STACKHOST = 'devstack-2'
> > TENANTNAME = 'demo'
> > USERNAME = 'demo'
> > PASSWORD = 'password'
> >
> > def devstack_driver():
> >    Driver = get_driver(Provider.OPENSTACK)
> >    driver = Driver(USERNAME, PASSWORD, host=STACKHOST, port=8774,
> > secure=False,
> >                    ex_tenant_name=TENANTNAME,
> >                    ex_force_auth_version='2.0_password',
> >                    ex_force_service_name='Compute Service',
> >                    ex_force_auth_url='http://%s:5000/v2.0/' % STACKHOST)
> >    return driver
> >
> > print devstack_driver().list_nodes()
> >
> >
> > 2012/2/20 Tomaž Muraus <to...@apache.org>
> >
> > > You need to re-run stack.sh after putting those lines in your localrc.
> > >
> > > On Mon, Feb 20, 2012 at 4:28 PM, Jay Doane <j...@almery.com> wrote:
> > >
> > > > 2012/2/20 Tomaž Muraus <to...@apache.org>
> > > >
> > > > >
> > > > > One thing I would still try is using a stable release instead of
> the
> > > > latest
> > > > > master - e.g. essex:
> > > > >
> > > > > : How do I run a specific OpenStack milestone?
> > > > > > A: OpenStack milestones have tags set in the git repo. Set the
> > > > > appropriate
> > > > > > tag in the *_BRANCH variables in localrc. Swift is on its own
> > release
> > > > > > schedule so pick a tag in the Swift repo that is just before the
> > > > > milestone
> > > > > > release. For example:
> > > > > > GLANCE_BRANCH=essex-3
> > > > > > HORIZON_BRANCH=essex-3
> > > > > > KEYSTONE_BRANCH=essex-3
> > > > > > KEYSTONECLIENT_BRANCH=essex-3
> > > > > > NOVA_BRANCH=essex-3
> > > > > > NOVACLIENT_BRANCH=essex-3
> > > > > > QUANTUM_BRANCH=essex-3
> > > > > > QUANTUM_CLIENT_BRANCH=essex-3
> > > > > > SWIFT_BRANCH=1.4.5
> > > >
> > > >
> > > > Good idea.  I added those lines to my localrc, but still got the same
> > 500
> > > > error as before.
> > > >
> > > > Also, I'm seeing the following stack trace from the stack's n-api
> > > process:
> > > >
> > > > 2012-02-20 15:53:44 WARNING nova.api.ec2 [-] Configuration setting
> for
> > > > keystone_ec2_url needs to be updated to /tokens only. The /ec2 prefix
> > is
> > > > being deprecated
> > > > 2012-02-20 15:53:44 ERROR nova.api.ec2 [-] FaultWrapper: Extra data:
> > > line 1
> > > > column 4 - line 5 column 4 (char 4 - 43)
> > > > (nova.api.ec2): TRACE: Traceback (most recent call last):
> > > > (nova.api.ec2): TRACE:   File
> > "/opt/stack/nova/nova/api/ec2/__init__.py",
> > > > line 89, in __call__
> > > > (nova.api.ec2): TRACE:     return req.get_response(self.application)
> > > > (nova.api.ec2): TRACE:   File
> > > > "/usr/lib/python2.7/dist-packages/webob/request.py", line 1053, in
> > > > get_response
> > > > (nova.api.ec2): TRACE:     application, catch_exc_info=False)
> > > > (nova.api.ec2): TRACE:   File
> > > > "/usr/lib/python2.7/dist-packages/webob/request.py", line 1022, in
> > > > call_application
> > > > (nova.api.ec2): TRACE:     app_iter = application(self.environ,
> > > > start_response)
> > > > (nova.api.ec2): TRACE:   File
> > > > "/usr/lib/python2.7/dist-packages/webob/dec.py", line 147, in
> __call__
> > > > (nova.api.ec2): TRACE:     resp = self.call_func(req, *args,
> > > **self.kwargs)
> > > > (nova.api.ec2): TRACE:   File
> > > > "/usr/lib/python2.7/dist-packages/webob/dec.py", line 208, in
> call_func
> > > > (nova.api.ec2): TRACE:     return self.func(req, *args, **kwargs)
> > > > (nova.api.ec2): TRACE:   File
> > "/opt/stack/nova/nova/api/ec2/__init__.py",
> > > > line 101, in __call__
> > > > (nova.api.ec2): TRACE:     rv = req.get_response(self.application)
> > > > (nova.api.ec2): TRACE:   File
> > > > "/usr/lib/python2.7/dist-packages/webob/request.py", line 1053, in
> > > > get_response
> > > > (nova.api.ec2): TRACE:     application, catch_exc_info=False)
> > > > (nova.api.ec2): TRACE:   File
> > > > "/usr/lib/python2.7/dist-packages/webob/request.py", line 1022, in
> > > > call_application
> > > > (nova.api.ec2): TRACE:     app_iter = application(self.environ,
> > > > start_response)
> > > > (nova.api.ec2): TRACE:   File
> > > > "/usr/lib/python2.7/dist-packages/webob/dec.py", line 147, in
> __call__
> > > > (nova.api.ec2): TRACE:     resp = self.call_func(req, *args,
> > > **self.kwargs)
> > > > (nova.api.ec2): TRACE:   File
> > > > "/usr/lib/python2.7/dist-packages/webob/dec.py", line 208, in
> call_func
> > > > (nova.api.ec2): TRACE:     return self.func(req, *args, **kwargs)
> > > > (nova.api.ec2): TRACE:   File
> > "/opt/stack/nova/nova/api/ec2/__init__.py",
> > > > line 243, in __call__
> > > > (nova.api.ec2): TRACE:     result = utils.loads(response)
> > > > (nova.api.ec2): TRACE:   File "/opt/stack/nova/nova/utils.py", line
> > 757,
> > > in
> > > > loads
> > > > (nova.api.ec2): TRACE:     return json.loads(s)
> > > > (nova.api.ec2): TRACE:   File "/usr/lib/python2.7/json/__init__.py",
> > line
> > > > 326, in loads
> > > > (nova.api.ec2): TRACE:     return _default_decoder.decode(s)
> > > > (nova.api.ec2): TRACE:   File "/usr/lib/python2.7/json/decoder.py",
> > line
> > > > 369, in decode
> > > > (nova.api.ec2): TRACE:     raise ValueError(errmsg("Extra data", s,
> > end,
> > > > len(s)))
> > > > (nova.api.ec2): TRACE: ValueError: Extra data: line 1 column 4 -
> line 5
> > > > column 4 (char 4 - 43)
> > > > (nova.api.ec2): TRACE:
> > > >
> > >
> >
>

Reply via email to