From 4d90cd08d850b5916c93adecbea5b4dcbb22c140 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?L=C3=A9na=C3=AFc=20Huard?= <lhuard@amadeus.com>
Date: Thu, 29 Sep 2016 10:30:23 +0200
Subject: Set the DomainName or DomainID in the OpenStack cloud provider

Whereas with the OpenStack keystone v2 authentication API, the username and
the password are enough, the keystone v3 API requires an additional domain
parameter.

Fixes #2515
---
 bin/cluster | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

(limited to 'bin/cluster')

diff --git a/bin/cluster b/bin/cluster
index 92174954f..68d2a7cd4 100755
--- a/bin/cluster
+++ b/bin/cluster
@@ -73,9 +73,16 @@ class Cluster(object):
             cluster['openshift_cloudprovider_openstack_auth_url']    = os.getenv('OS_AUTH_URL')
             cluster['openshift_cloudprovider_openstack_username']    = os.getenv('OS_USERNAME')
             cluster['openshift_cloudprovider_openstack_password']    = os.getenv('OS_PASSWORD')
-            cluster['openshift_cloudprovider_openstack_tenant_id']   = os.getenv('OS_PROJECT_ID',os.getenv('OS_TENANT_ID'))
-            cluster['openshift_cloudprovider_openstack_tenant_name'] = os.getenv('OS_PROJECT_NAME',os.getenv('OS_TENANT_NAME'))
-            cluster['openshift_cloudprovider_openstack_region']      = os.getenv('OS_REGION_NAME')
+            if 'OS_USER_DOMAIN_ID' in os.environ:
+                cluster['openshift_cloudprovider_openstack_domain_id']   = os.getenv('OS_USER_DOMAIN_ID')
+            if 'OS_USER_DOMAIN_NAME' in os.environ:
+                cluster['openshift_cloudprovider_openstack_domain_name'] = os.getenv('OS_USER_DOMAIN_NAME')
+            if 'OS_PROJECT_ID' in os.environ or 'OS_TENANT_ID' in os.environ:
+                cluster['openshift_cloudprovider_openstack_tenant_id']   = os.getenv('OS_PROJECT_ID',os.getenv('OS_TENANT_ID'))
+            if 'OS_PROJECT_NAME' is os.environ or 'OS_TENANT_NAME' in os.environ:
+                cluster['openshift_cloudprovider_openstack_tenant_name'] = os.getenv('OS_PROJECT_NAME',os.getenv('OS_TENANT_NAME'))
+            if 'OS_REGION_NAME' in os.environ:
+                cluster['openshift_cloudprovider_openstack_region']      = os.getenv('OS_REGION_NAME')
 
         self.action(args, inventory, cluster, playbook)
 
-- 
cgit v1.2.3