Remove keystone v2 related code

Kyestone V2 support was removed in Train, so it's safe to do such cleanup.

Change-Id: I6a379ef79429eb218c6095397949fd8116a934c2
This commit is contained in:
Caihui 2020-06-19 19:44:44 -07:00
parent 85111f528b
commit 1e304b5826
7 changed files with 35 additions and 84 deletions

View File

@ -131,8 +131,6 @@ class OSClientManager(object):
os_options['region_name'] = self.swift_args.get('region_name')
if 'endpoint_type' in self.swift_args.keys():
os_options['endpoint_type'] = self.swift_args.get('endpoint_type')
if 'tenant_id' in self.swift_args.keys():
os_options['tenant_id'] = self.swift_args.get('tenant_id')
if 'identity_api_version' in self.swift_args.keys():
os_options['identity_api_version'] = \
self.swift_args.get('identity_api_version')
@ -348,14 +346,14 @@ class OSClientManager(object):
class OpenstackOpts(object):
"""
Gathering and maintaining the right Openstack credentials that will be used
to authenticate against keystone. Now we support keystone v2 and v3.
We need to provide a correct url that ends with either v2.0 or v3
to authenticate against keystone. Now we support keystone v3.
We need to provide a correct url that ends with either v3
or provide auth_version or identity_api_version
"""
def __init__(self, auth_url, auth_method='password', auth_version=None,
username=None, password=None, region_name=None, cacert=None,
identity_api_version=None, project_id=None, project_name=None,
tenant_id=None, tenant_name=None, token=None, insecure=False,
token=None, insecure=False,
endpoint_type='internalURL', interface=None,
compute_api_version=2, image_api_version=2,
volume_api_version=2, user_domain_name=None, domain_id=None,
@ -364,10 +362,10 @@ class OpenstackOpts(object):
"""
Authentication Options to build a valid opts dict to be used to
authenticate against keystone. You must provide auth_url with a vaild
Openstack version at the end v2.0 or v3 or provide auth_version.
Openstack version at the end v3 or provide auth_version.
:param auth_url: string Keystone API URL
:param auth_method: string defaults to password or token (not tested)
:param auth_version: string Keystone API version. 2.0 or 3
:param auth_version: string Keystone API version. v3
:param username: string A valid Username
:param password: string A valid Password
:param region_name: string Region name or None
@ -375,9 +373,6 @@ class OpenstackOpts(object):
:param identity_api_version: string Keystone API version to use
:param project_id: UUID string Project ID
:param project_name: string Project Name
:param tenant_id: string Project/ Tenant ID.
Use with keystone v2.0 only
:param tenant_name: string Project/ Tenant Name. keystone v2.0 only
:param token: string Valid token. Only if auth_method is token
:param insecure: boolean Use insecure connections
:param endpoint_type: string publicURL, adminURL, internalURL
@ -402,10 +397,8 @@ class OpenstackOpts(object):
self.region_name = region_name
self.cacert = cacert
self.identity_api_version = identity_api_version
self.tenant_id = tenant_id or project_id
self.project_id = project_id or tenant_id
self.project_name = project_name or tenant_name
self.tenant_name = tenant_name or project_name
self.project_id = project_id
self.project_name = project_name
self.token = token
self.insecure = insecure
self.endpoint_type = endpoint_type
@ -457,27 +450,8 @@ class OpenstackOpts(object):
self.auth_version = str(self.auth_version)
self.identity_api_version = str(self.identity_api_version)
if self.auth_version == '3' or self.identity_api_version == '3':
opts['auth_version'] = opts['identity_api_version'] = '3'
opts.pop('tenant_id', None)
opts.pop('tenant_name', None)
opts['auth_version'] = opts['identity_api_version'] = '3'
elif (self.auth_version in ['2.0', '2'] or
self.identity_api_version in ['2.0', '2']):
opts['auth_version'] = opts['identity_api_version'] = '2.0'
# these parameters won't work with keystone v2.0
opts.pop('project_id', None)
opts.pop('project_name', None)
opts.pop('project_domain_id', None)
opts.pop('project_domain_name', None)
opts.pop('user_domain_id', None)
opts.pop('user_domain_name', None)
opts.pop('domain_id', None)
opts.pop('domain_name', None)
else:
raise Exception('Keystone Auth version {0} is not supported!. '
'Generated from auth_url: {1}'.
format(self.auth_version, self.auth_url))
for i in opts.copy().keys():
if opts.get(i) is None:
opts.pop(i)
@ -505,8 +479,6 @@ class OpenstackOpts(object):
auth_version=src_dict.get('OS_AUTH_VERSION', None),
username=src_dict.get('OS_USERNAME', None),
password=src_dict.get('OS_PASSWORD', None),
tenant_id=src_dict.get('OS_TENANT_ID', None),
tenant_name=src_dict.get('OS_TENANT_NAME', None),
project_id=src_dict.get('OS_PROJECT_ID', None),
project_name=src_dict.get('OS_PROJECT_NAME', None),
region_name=src_dict.get('OS_REGION_NAME', None),

View File

@ -62,7 +62,7 @@ def get_common_opts():
short='c',
help='Specifies the client_id used when contacting the '
'service.\n If not specified it will be automatically '
'created \n using the tenant-id and the machine '
'created \n using the project-id and the machine '
'hostname.'),
cfg.BoolOpt('no-api',
default=False,
@ -154,16 +154,6 @@ def build_os_options():
help='User\'s domain name. Defaults to '
'env[OS_USER_DOMAIN_NAME].',
dest='os_user_domain_name'),
cfg.StrOpt('os-tenant-name',
default=env('OS_TENANT_NAME'),
help='Tenant to request authorization on. Defaults to '
'env[OS_TENANT_NAME].',
dest='os_tenant_name'),
cfg.StrOpt('os-tenant-id',
default=env('OS_TENANT_ID'),
help='Tenant to request authorization on. Defaults to '
'env[OS_TENANT_ID].',
dest='os_tenant_id'),
cfg.StrOpt('os-auth-url',
default=env('OS_AUTH_URL'),
help='Specify the Identity endpoint to use for '

View File

@ -70,30 +70,19 @@ class PySvc(win32serviceutil.ServiceFramework):
if os.environ.get('SERVICE_INSECURE'):
self.insecure = True
# Add support for keystone v2 and v3
# only support for keystone v3
credentials = {}
if os.environ['OS_IDENTITY_API_VERSION'] == 2:
credentials = {
'version': 2,
'username': os.environ['OS_USERNAME'],
'password': os.environ['OS_PASSWORD'],
'auth_url': os.environ['OS_AUTH_URL'],
'endpoint': os.environ['OS_BACKUP_URL'],
'tenant_name': os.environ['OS_TENANT_NAME'],
'insecure': self.insecure
}
elif os.environ['OS_IDENTITY_API_VERSION'] == 3:
credentials = {
'version': 3,
'username': os.environ['OS_USERNAME'],
'password': os.environ['OS_PASSWORD'],
'auth_url': os.environ['OS_AUTH_URL'],
'endpoint': os.environ['OS_BACKUP_URL'],
'project_name': os.environ['OS_PROJECT_NAME'],
'user_domain_name': os.environ['OS_USER_DOMAIN_NAME'],
'project_domain_name': os.environ['OS_PROJECT_DOMAIN_NAME'],
'insecure': self.insecure
}
# if os.environ['OS_IDENTITY_API_VERSION'] == 3:
credentials = {
'username': os.environ['OS_USERNAME'],
'password': os.environ['OS_PASSWORD'],
'auth_url': os.environ['OS_AUTH_URL'],
'endpoint': os.environ['OS_BACKUP_URL'],
'project_name': os.environ['OS_PROJECT_NAME'],
'user_domain_name': os.environ['OS_USER_DOMAIN_NAME'],
'project_domain_name': os.environ['OS_PROJECT_DOMAIN_NAME'],
'insecure': self.insecure
}
client = Client(**credentials)

View File

@ -30,11 +30,11 @@ from freezer.storage import swift
CONF = cfg.CONF
os.environ['OS_REGION_NAME'] = 'testregion'
os.environ['OS_TENANT_ID'] = '0123456789'
os.environ['OS_PROJECT_ID'] = '0123456789'
os.environ['OS_PASSWORD'] = 'testpassword'
os.environ['OS_AUTH_URL'] = 'http://testauthurl/v2.0'
os.environ['OS_AUTH_URL'] = 'http://testauthurl/v3'
os.environ['OS_USERNAME'] = 'testusername'
os.environ['OS_TENANT_NAME'] = 'testtenantename'
os.environ['OS_PROJECT_NAME'] = 'testtenantename'
class FakeSubProcess(object):

View File

@ -243,20 +243,20 @@ class TestFS(unittest.TestCase):
container = os.environ.get('FREEZER_TEST_CONTAINER')
use_ssh = ssh_key and ssh_username and ssh_host and container
os_tenant_name = os.environ.get('FREEZER_TEST_OS_TENANT_NAME')
os_project_name = os.environ.get('FREEZER_TEST_OS_TENANT_NAME')
os_user_name = os.environ.get('FREEZER_TEST_OS_USERNAME')
os_region = os.environ.get('FREEZER_TEST_OS_REGION_NAME')
os_password = os.environ.get('FREEZER_TEST_OS_PASSWORD')
os_auth_url = os.environ.get('FREEZER_TEST_OS_AUTH_URL')
use_os = (os_tenant_name and os_user_name and os_region and
use_os = (os_project_name and os_user_name and os_region and
os_password and os_auth_url)
if use_os:
os.environ['OS_USERNAME'] = os_user_name
os.environ['OS_TENANT_NAME'] = os_tenant_name
os.environ['OS_PROJECT_NAME'] = os_project_name
os.environ['OS_AUTH_URL'] = os_auth_url
os.environ['OS_PASSWORD'] = os_password
os.environ['OS_REGION_NAME'] = os_region
os.environ['OS_TENANT_ID'] = ''
os.environ['OS_PROJECT_ID'] = ''
openstack_executable = distutils.spawn.find_executable('openstack')
swift_executable = distutils.spawn.find_executable('swift')

View File

@ -22,7 +22,7 @@ from freezer.openstack import osclients
class TestOsClients(unittest.TestCase):
def setUp(self):
self.opts = osclients.OpenstackOpts(
username="user", tenant_name="tenant", project_name="project",
username="user", project_name="project",
auth_url="url/v3", password="password", identity_api_version="3",
insecure=False, cacert='cert', user_domain_name='Default',
project_domain_name='Default').get_opts_dicts()

View File

@ -76,24 +76,24 @@ class TestUtils(commons.FreezerBaseTestCase):
self.__dict__.update(opts)
env_dict = dict(OS_USERNAME='testusername',
OS_TENANT_NAME='testtenantename',
OS_PROJECT_NAME='testtenantename',
OS_AUTH_URL='testauthurl',
OS_PASSWORD='testpassword',
OS_REGION_NAME='testregion',
OS_TENANT_ID='0123456789',
OS_PROJECT_ID='0123456789',
OS_AUTH_VERSION='2.0')
options = osclients.OpenstackOpts.create_from_dict(
env_dict).get_opts_dicts()
options = FreezerOpts(options)
assert options.username == env_dict['OS_USERNAME']
assert options.tenant_name == env_dict['OS_TENANT_NAME']
assert options.project_name == env_dict['OS_PROJECT_NAME']
assert options.auth_url == env_dict['OS_AUTH_URL']
assert options.password == env_dict['OS_PASSWORD']
assert options.region_name == env_dict['OS_REGION_NAME']
assert options.tenant_id == env_dict['OS_TENANT_ID']
assert options.project_id == env_dict['OS_PROJECT_ID']
env_dict = dict(OS_USERNAME='testusername',
OS_TENANT_NAME='testtenantename',
OS_PROJECT_NAME='testtenantename',
OS_AUTH_URL='testauthurl',
OS_PASSWORD='testpassword',
OS_AUTH_VERSION='2.0')
@ -101,7 +101,7 @@ class TestUtils(commons.FreezerBaseTestCase):
env_dict).get_opts_dicts()
options = FreezerOpts(options)
assert options.username == env_dict['OS_USERNAME']
assert options.tenant_name == env_dict['OS_TENANT_NAME']
assert options.project_name == env_dict['OS_PROJECT_NAME']
assert options.auth_url == env_dict['OS_AUTH_URL']
assert options.password == env_dict['OS_PASSWORD']