Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support Identity v3 #109

Open
stenstad opened this issue Feb 15, 2016 · 6 comments
Open

Support Identity v3 #109

stenstad opened this issue Feb 15, 2016 · 6 comments

Comments

@stenstad
Copy link

Hi!

Since the release of Openstack Havana the preferred version of Identity to use is v3. Some cloud providers have now migrated to only supporting v3 for token generation to get support for domains.

Currently the Cloudify Openstack plugin does not work with providers that require support for Identity v3.

As far as I can see, you're already using keystoneclient.v3.client, so it should basically amount to adding the correct arguments.

Would it be possible to add support for Identity v3 in this project as well?

@EarthmanT
Copy link
Collaborator

Keystone isn't really used in the openstack plugin. There is a class for the client, but it isn't called anywhere. All of the connections are handled by the Neutron, Cinder, and Nova clients. They authenticate with Keystone on their own. Currently, I know that Nova does not support V3, and it seems that Neutron and Cinder also do not.
What are the specific features that v3 offers that you want?

@tadeboro
Copy link

Upstream is migrating towards using keystoneauth library for creating session that can be used by all of the clients (I know for sure that nova, neutron and cinder support sessions).

And as far as why using v3 is important: OpenStack Mitaka does not support v2 version anymore, so using v3 is a necessity.

@01000101
Copy link

01000101 commented Nov 8, 2016

Guys, is this why I can no longer do anything with Datacentred? I've tried many combinations of keystone endpoint (/, /v2, /v3) with zero success. Every time a resource goes to be provisioned I get something along these lines (using v1.4 of the plugin):

2016-11-08 16:09:44 CFY <local> [floating_ip_14ae3.create] Task failed 'neutron_plugin.floatingip.create' -> {"error": {"message": "The resource could not be found.", "code": 404, "title": "Not Found"}} [status_code=401]
Traceback (most recent call last):
  File "/home/jcornutt/Desktop/Dev/Cloudify/venv-vnf/lib/python2.7/site-packages/cloudify/workflows/tasks.py", line 507, in local_task_wrapper
    result = self.local_task(**self.kwargs)
  File "/home/jcornutt/Desktop/Dev/Cloudify/venv-vnf/lib/python2.7/site-packages/cloudify/dispatch.py", line 577, in dispatch
    return handler.handle_or_dispatch_to_subprocess_if_remote()
  File "/home/jcornutt/Desktop/Dev/Cloudify/venv-vnf/lib/python2.7/site-packages/cloudify/dispatch.py", line 100, in handle_or_dispatch_to_subprocess_if_remote
    return self.handle()
  File "/home/jcornutt/Desktop/Dev/Cloudify/venv-vnf/lib/python2.7/site-packages/cloudify/dispatch.py", line 366, in handle
    result = self.func(*self.args, **kwargs)
  File "/home/jcornutt/Desktop/Dev/Cloudify/venv-vnf/lib/python2.7/site-packages/openstack_plugin_common/__init__.py", line 523, in wrapper
    _re_raise(e, recoverable=False, status_code=e.status_code)
  File "/home/jcornutt/Desktop/Dev/Cloudify/venv-vnf/lib/python2.7/site-packages/openstack_plugin_common/__init__.py", line 520, in wrapper
    return f(*args, **kw)
  File "/home/jcornutt/Desktop/Dev/Cloudify/venv-vnf/lib/python2.7/site-packages/neutron_plugin/floatingip.py", line 49, in create
    'network', floatingip['floating_network_name'])['id']
  File "/home/jcornutt/Desktop/Dev/Cloudify/venv-vnf/lib/python2.7/site-packages/openstack_plugin_common/__init__.py", line 609, in cosmo_get_named
    return self.cosmo_get(obj_type_single, name=name, **kw)
  File "/home/jcornutt/Desktop/Dev/Cloudify/venv-vnf/lib/python2.7/site-packages/openstack_plugin_common/__init__.py", line 612, in cosmo_get
    return self._cosmo_get(obj_type_single, False, **kw)
  File "/home/jcornutt/Desktop/Dev/Cloudify/venv-vnf/lib/python2.7/site-packages/openstack_plugin_common/__init__.py", line 618, in _cosmo_get
    ls = list(self.cosmo_list(obj_type_single, **kw))
  File "/home/jcornutt/Desktop/Dev/Cloudify/venv-vnf/lib/python2.7/site-packages/openstack_plugin_common/__init__.py", line 679, in cosmo_list
    for obj in getattr(self, 'list_' + obj_type_plural)(**kw)[
  File "/home/jcornutt/Desktop/Dev/Cloudify/venv-vnf/lib/python2.7/site-packages/neutronclient/v2_0/client.py", line 102, in with_params
    ret = self.function(instance, *args, **kwargs)
  File "/home/jcornutt/Desktop/Dev/Cloudify/venv-vnf/lib/python2.7/site-packages/neutronclient/v2_0/client.py", line 561, in list_networks
    **_params)
  File "/home/jcornutt/Desktop/Dev/Cloudify/venv-vnf/lib/python2.7/site-packages/neutronclient/v2_0/client.py", line 307, in list
    for r in self._pagination(collection, path, **params):
  File "/home/jcornutt/Desktop/Dev/Cloudify/venv-vnf/lib/python2.7/site-packages/neutronclient/v2_0/client.py", line 320, in _pagination
    res = self.get(path, params=params)
  File "/home/jcornutt/Desktop/Dev/Cloudify/venv-vnf/lib/python2.7/site-packages/neutronclient/v2_0/client.py", line 293, in get
    headers=headers, params=params)
  File "/home/jcornutt/Desktop/Dev/Cloudify/venv-vnf/lib/python2.7/site-packages/neutronclient/v2_0/client.py", line 270, in retry_request
    headers=headers, params=params)
  File "/home/jcornutt/Desktop/Dev/Cloudify/venv-vnf/lib/python2.7/site-packages/neutronclient/v2_0/client.py", line 200, in do_request
    content_type=self.content_type())
  File "/home/jcornutt/Desktop/Dev/Cloudify/venv-vnf/lib/python2.7/site-packages/neutronclient/client.py", line 158, in do_request
    self.authenticate_and_fetch_endpoint_url()
  File "/home/jcornutt/Desktop/Dev/Cloudify/venv-vnf/lib/python2.7/site-packages/neutronclient/client.py", line 123, in authenticate_and_fetch_endpoint_url
    self.authenticate()
  File "/home/jcornutt/Desktop/Dev/Cloudify/venv-vnf/lib/python2.7/site-packages/neutronclient/client.py", line 237, in authenticate
    self._authenticate_keystone()
  File "/home/jcornutt/Desktop/Dev/Cloudify/venv-vnf/lib/python2.7/site-packages/neutronclient/client.py", line 218, in _authenticate_keystone
    raise exceptions.Unauthorized(message=resp_body)
NonRecoverableError: {"error": {"message": "The resource could not be found.", "code": 404, "title": "Not Found"}} [status_code=401]

@geokala
Copy link

geokala commented Nov 8, 2016

@01000101 I don't have the config file with me at the moment, but I think you can work around that by adding /v2.0 to the end of the URL (not just /v2).

@01000101
Copy link

01000101 commented Nov 9, 2016

That resolved issues w/ Keystone, but both Krzysztof and I are having a lot of OpenStack plugin issues now w/ Datacentred.

@fifieldt
Copy link

This looks like it was updated in version 2.0 of the plugin:

https://github.com/cloudify-cosmo/cloudify-openstack-plugin/blob/master/CHANGELOG.txt

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants