summaryrefslogtreecommitdiff
path: root/libs/keystone.py
diff options
context:
space:
mode:
authorCarlos Konstanski <ckonstanski@pippiandcarlos.com>2017-10-26 15:16:59 -0600
committerCarlos Konstanski <ckonstanski@pippiandcarlos.com>2017-10-26 15:16:59 -0600
commit4a1c4e8c3e6ca4ffbcd9ef38f07a1527226d7430 (patch)
tree2ce07ca014433fd0349514b065595db48be94e8d /libs/keystone.py
initial commit
Diffstat (limited to 'libs/keystone.py')
-rw-r--r--libs/keystone.py39
1 files changed, 39 insertions, 0 deletions
diff --git a/libs/keystone.py b/libs/keystone.py
new file mode 100644
index 0000000..05c4d8c
--- /dev/null
+++ b/libs/keystone.py
@@ -0,0 +1,39 @@
+from keystoneauth1.identity import v3
+from keystoneauth1 import session
+from keystoneclient.v3 import client as keystoneclient
+
+
+class Project(object):
+ def __init__(self, name, uuid):
+ self.name = name
+ self.uuid = uuid
+
+
+class Keystone(object):
+ def __init__(self, env):
+ if env.os_identity_api_version != "3":
+ raise Exception("Keystone v3 is required. You are using version %s" % env.os_identity_api_version)
+ self.os_identity_api_version = env.os_identity_api_version
+ self.os_image_api_version = env.os_image_api_version
+ self.os_auth_url = env.os_auth_url.replace("v2.0", "v3")
+
+ auth = v3.Password(username=env.os_username,
+ password=env.os_password,
+ project_domain_name=env.os_project_domain_name,
+ user_domain_name=env.os_user_domain_name,
+ project_name=env.os_project_name,
+ auth_url=self.os_auth_url)
+ self.session = session.Session(auth=auth)
+ self.client = keystoneclient.Client(session=self.session,
+ region_name=env.os_region)
+
+ def get_projects(self):
+ return map(lambda x: Project(x.name, x.id),
+ [p for p in self.client.projects.list() if p.enabled])
+
+ def get_catalog_url(self, service_type=None, endpoint_type="publicURL"):
+ return self.session.get_endpoint(service_type=service_type,
+ endpoint_type=endpoint_type)
+
+ def get_glance_url(self, endpoint_type="publicURL"):
+ return self.get_catalog_url(service_type="image", endpoint_type=endpoint_type)