Slightly refactor vendor profile loading
In prep for the next patch which will add support for url-based vendor profiles, rearrange a few bits of the vendor profile loading code. This should make the next patch easier to read. Change-Id: I3b18678895006249c0e958944c88f09a365daee0
This commit is contained in:
parent
ca636b92e3
commit
1da367b537
@ -448,12 +448,14 @@ class OpenStackConfig(object):
|
||||
# Expand a profile if it exists. 'cloud' is an old confusing name
|
||||
# for this.
|
||||
profile_name = our_cloud.get('profile', our_cloud.get('cloud', None))
|
||||
if profile_name and profile_name != self.envvar_key:
|
||||
if not profile_name or profile_name == self.envvar_key:
|
||||
return
|
||||
if 'cloud' in our_cloud:
|
||||
warnings.warn(
|
||||
"{0} use the keyword 'cloud' to reference a known "
|
||||
"{0} uses the keyword 'cloud' to reference a known "
|
||||
"vendor profile. This has been deprecated in favor of the "
|
||||
"'profile' keyword.".format(self.config_filename))
|
||||
|
||||
vendor_filename, vendor_file = self._load_vendor_file()
|
||||
if vendor_file and profile_name in vendor_file['public-clouds']:
|
||||
_auth_update(cloud, vendor_file['public-clouds'][profile_name])
|
||||
|
33
openstack/config/vendors/__init__.py
vendored
33
openstack/config/vendors/__init__.py
vendored
@ -18,20 +18,25 @@ import os
|
||||
|
||||
import yaml
|
||||
|
||||
_vendors_path = os.path.dirname(os.path.realpath(__file__))
|
||||
_vendor_defaults = None
|
||||
_VENDORS_PATH = os.path.dirname(os.path.realpath(__file__))
|
||||
_VENDOR_DEFAULTS = {}
|
||||
|
||||
|
||||
def _get_vendor_defaults():
|
||||
global _VENDOR_DEFAULTS
|
||||
if not _VENDOR_DEFAULTS:
|
||||
for vendor in glob.glob(os.path.join(_VENDORS_PATH, '*.yaml')):
|
||||
with open(vendor, 'r') as f:
|
||||
vendor_data = yaml.safe_load(f)
|
||||
_VENDOR_DEFAULTS[vendor_data['name']] = vendor_data['profile']
|
||||
for vendor in glob.glob(os.path.join(_VENDORS_PATH, '*.json')):
|
||||
with open(vendor, 'r') as f:
|
||||
vendor_data = json.load(f)
|
||||
_VENDOR_DEFAULTS[vendor_data['name']] = vendor_data['profile']
|
||||
return _VENDOR_DEFAULTS
|
||||
|
||||
|
||||
def get_profile(profile_name):
|
||||
global _vendor_defaults
|
||||
if _vendor_defaults is None:
|
||||
_vendor_defaults = {}
|
||||
for vendor in glob.glob(os.path.join(_vendors_path, '*.yaml')):
|
||||
with open(vendor, 'r') as f:
|
||||
vendor_data = yaml.safe_load(f)
|
||||
_vendor_defaults[vendor_data['name']] = vendor_data['profile']
|
||||
for vendor in glob.glob(os.path.join(_vendors_path, '*.json')):
|
||||
with open(vendor, 'r') as f:
|
||||
vendor_data = json.load(f)
|
||||
_vendor_defaults[vendor_data['name']] = vendor_data['profile']
|
||||
return _vendor_defaults.get(profile_name)
|
||||
vendor_defaults = _get_vendor_defaults()
|
||||
if profile_name in vendor_defaults:
|
||||
return vendor_defaults[profile_name].copy()
|
||||
|
Loading…
Reference in New Issue
Block a user