Updated to use keystoneauth1

Change-Id: I098278b7b0fb42b72ac565cdb911ec3693996e1c
This commit is contained in:
mortenhillbom 2017-08-18 16:10:02 -07:00 committed by mortenhillbom
parent e88b7f77c8
commit 0ddd72eb00
3 changed files with 30 additions and 14 deletions

View File

@ -15,7 +15,7 @@ python-glanceclient>=0.15.0
python-neutronclient<3,>=2.3.6
python-novaclient>=2.18.1
python-openstackclient>=0.4.1
python-keystoneclient>=1.7.2
python-keystoneclient>=3.10.0
scp>=0.8.0
tabulate>=0.7.3

View File

@ -15,6 +15,9 @@
# Module for credentials in Openstack
import getpass
from keystoneauth1.identity import v2
from keystoneauth1.identity import v3
from keystoneauth1 import session
import os
import re
@ -35,6 +38,27 @@ class Credentials(object):
dct['tenant_name'] = self.rc_tenant_name
return dct
def get_session(self):
dct = {
'username': self.rc_username,
'password': self.rc_password,
'auth_url': self.rc_auth_url
}
if self.rc_identity_api_version == 3:
dct.update({
'project_name': self.rc_project_name,
'project_domain_name': self.rc_project_domain_name,
'user_domain_name': self.rc_user_domain_name
})
auth = v3.Password(**dct)
else:
dct.update({
'tenant_name': self.rc_tenant_name
})
auth = v2.Password(**dct)
return session.Session(auth=auth, verify=self.rc_cacert)
#
# Read a openrc file and take care of the password
# The 2 args are passed from the command line and can be None
@ -44,7 +68,7 @@ class Credentials(object):
self.rc_username = None
self.rc_tenant_name = None
self.rc_auth_url = None
self.rc_cacert = False
self.rc_cacert = None
self.rc_region_name = None
self.rc_project_name = None
self.rc_project_domain_name = None
@ -75,7 +99,7 @@ class Credentials(object):
self.rc_identity_api_version = int(value)
# now match against wanted variable names
if name == 'USERNAME':
elif name == 'USERNAME':
self.rc_username = value
elif name == 'AUTH_URL':
self.rc_auth_url = value
@ -87,12 +111,12 @@ class Credentials(object):
self.rc_region_name = value
elif name == "PASSWORD" and not pwd:
pwd = value
elif name == "USER_DOMAIN_NAME":
self.rc_user_domain_name = value
elif name == "PROJECT_NAME":
self.rc_project_name = value
elif name == "PROJECT_DOMAIN_NAME":
self.rc_project_domain_name = value
elif name == "USER_DOMAIN_NAME":
self.rc_user_domain_name = value
else:
LOG.error('Error: rc file does not exist %s' % (openrc_file))
success = False

View File

@ -32,10 +32,7 @@ from config import config_loads
import credentials
from glanceclient import client as glanceclient
import iperf_tool
from keystoneclient.auth.identity import v2 as keystone_v2
from keystoneclient.auth.identity import v3 as keystone_v3
from keystoneclient import client as keystoneclient
from keystoneclient import session
from log import CONLOG
from log import FILELOG
from log import LOG
@ -199,12 +196,7 @@ class VmtpTest(object):
# If we need to reuse existing vms just return without setup
if not self.config.reuse_existing_vm:
creds = self.cred.get_credentials()
if self.cred.rc_identity_api_version == 3:
auth = keystone_v3.Password(**creds)
else:
auth = keystone_v2.Password(**creds)
sess = session.Session(auth=auth, verify=self.cred.rc_cacert)
sess = self.cred.get_session()
# Create the nova and neutron instances
nova_client = novaclient.Client('2', session=sess)