Merge "Don't manipulate config for admin creds"
diff --git a/common/clients.py b/common/clients.py
index 9f58678..96a34b7 100644
--- a/common/clients.py
+++ b/common/clients.py
@@ -67,8 +67,10 @@
NOVA_API_VERSION = '2.1'
CEILOMETER_VERSION = '2'
- def __init__(self, conf):
+ def __init__(self, conf, admin_credentials=False):
self.conf = conf
+ self.admin_credentials = admin_credentials
+
if self.conf.auth_url.find('/v'):
self.auth_version = self.conf.auth_url.split('/v')[1]
else:
@@ -85,6 +87,21 @@
self.object_client = self._get_object_client()
self.metering_client = self._get_metering_client()
+ def _username(self):
+ if self.admin_credentials:
+ return self.conf.admin_username
+ return self.conf.username
+
+ def _password(self):
+ if self.admin_credentials:
+ return self.conf.admin_password
+ return self.conf.password
+
+ def _tenant_name(self):
+ if self.admin_credentials:
+ return self.conf.admin_tenant_name
+ return self.conf.tenant_name
+
def _get_orchestration_client(self):
endpoint = os.environ.get('HEAT_URL')
if os.environ.get('OS_NO_CLIENT_AUTH') == 'True':
@@ -102,16 +119,16 @@
self.HEATCLIENT_VERSION,
endpoint,
token=token,
- username=self.conf.username,
- password=self.conf.password)
+ username=self._username(),
+ password=self._password())
def _get_identity_client(self):
user_domain_name = self.conf.user_domain_name
project_domain_name = self.conf.project_domain_name
kwargs = {
- 'username': self.conf.username,
- 'password': self.conf.password,
- 'tenant_name': self.conf.tenant_name,
+ 'username': self._username(),
+ 'password': self._password(),
+ 'tenant_name': self._tenant_name(),
'auth_url': self.conf.auth_url
}
# keystone v2 can't ignore domain details
@@ -166,8 +183,8 @@
# swiftclient does not support keystone sessions yet
args = {
'auth_version': self.auth_version,
- 'tenant_name': self.conf.tenant_name,
- 'user': self.conf.username,
+ 'tenant_name': self._tenant_name(),
+ 'user': self._username(),
'key': self.conf.password,
'authurl': self.conf.auth_url,
'os_options': {'endpoint_type': 'publicURL'},
diff --git a/common/test.py b/common/test.py
index 413e51f..2bf7771 100644
--- a/common/test.py
+++ b/common/test.py
@@ -89,8 +89,8 @@
else:
self.verify_cert = self.conf.ca_file or True
- def setup_clients(self, conf):
- self.manager = clients.ClientManager(conf)
+ def setup_clients(self, conf, admin_credentials=False):
+ self.manager = clients.ClientManager(conf, admin_credentials)
self.identity_client = self.manager.identity_client
self.orchestration_client = self.manager.orchestration_client
self.compute_client = self.manager.compute_client
@@ -102,15 +102,7 @@
self.client = self.orchestration_client
def setup_clients_for_admin(self):
- self.assertIsNotNone(self.conf.admin_username,
- 'No admin username configured')
- self.assertIsNotNone(self.conf.admin_password,
- 'No admin password configured')
- conf = config.init_conf().heat_plugin
- conf.username = self.conf.admin_username
- conf.password = self.conf.admin_password
- conf.tenant_name = self.conf.admin_tenant_name
- self.setup_clients(conf)
+ self.setup_clients(self.conf, True)
def get_remote_client(self, server_or_ip, username, private_key=None):
if isinstance(server_or_ip, six.string_types):