You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@libcloud.apache.org by Rolf Seuster <se...@uvic.ca> on 2019/02/25 21:10:13 UTC
authentication problem with openstack - with user domain name
Hi all,
we are trying to use libcloud to boot VMs on various clouds, openstack
based,
but also commercial. We use libcloud-2.4.0.
With one of our openstack clouds, we have a problem with authentication.
These variables are defined and unset in the openstack RC file:
export OS_AUTH_URL=https://<ourcloud>:5000/v3
export OS_PROJECT_ID=522d5924d2844e1b811f77ddd94eab1d
export OS_PROJECT_NAME="Services"
export OS_USER_DOMAIN_NAME="ABCD"
export OS_PROJECT_DOMAIN_ID="default"
unset OS_TENANT_ID
unset OS_TENANT_NAME
export OS_USERNAME="ouruser"
read -sr OS_PASSWORD_INPUT
export OS_PASSWORD=$OS_PASSWORD_INPUT
export OS_REGION_NAME="RegionOne"
export OS_INTERFACE=public
export OS_IDENTITY_API_VERSION=3
The problem seems to be the user domain here, which in our case now seems to
collide with the project domain name.
We are using this code
from libcloud.compute.types import Provider
from libcloud.compute.providers import get_driver
from libcloud.common.openstack_identity import
OpenStackIdentity_3_0_Connection
from libcloud.common.openstack_identity import OpenStackIdentityTokenScope
OpenStack = get_driver(Provider.OPENSTACK)
driver = OpenStack('ouruser', <password>,
ex_domain_name = "ABCD",
ex_tenant_name = "Services",
ex_token_scope = "project",
ex_force_auth_url='https://<ourcloud>:5000',
ex_force_auth_version='3.x_password')
# print(driver.list_supported_versions())
print(driver.list_nodes())
We are getting this error:
$ python3 ./test.py
Traceback (most recent call last):
File "./test.py", line 18, in <module>
print(driver.list_nodes())
File
"/usr/local/lib/python3.5/dist-packages/libcloud/compute/drivers/openstack.py",
line 191, in list_nodes
self.connection.request('/servers/detail', params=params).object)
File
"/usr/local/lib/python3.5/dist-packages/libcloud/common/openstack.py",
line 224, in request
raw=raw)
File
"/usr/local/lib/python3.5/dist-packages/libcloud/common/base.py", line
535, in request
action = self.morph_action_hook(action)
File
"/usr/local/lib/python3.5/dist-packages/libcloud/common/openstack.py",
line 291, in morph_action_hook
self._populate_hosts_and_request_paths()
File
"/usr/local/lib/python3.5/dist-packages/libcloud/common/openstack.py",
line 325, in _populate_hosts_and_request_paths
osa = osa.authenticate(**kwargs) # may throw InvalidCreds
File
"/usr/local/lib/python3.5/dist-packages/libcloud/common/openstack_identity.py",
line 1048, in authenticate
raise InvalidCredsError()
libcloud.common.types.InvalidCredsError: 'Invalid credentials with the
provider'
Any hints ? It appears that "ABCD" shows now up as project name as well
as user domain name.
Thanks, Rolf