Add --os-cloud support
This adds a new option --os-cloud that allows the configuration values for multiple clouds to be stored in a local file and selected with a single option. Internal option names have had 'os_' removed to be comptible with the options returned from OpenStackConfig().get_one_cloud(). The config file is ~/.config/openstack/clouds.yaml: Sample ------ clouds: devstack: auth: auth_url: http://192.168.122.10:35357/ project_name: demo username: demo password: 0penstack region_name: RegionOne devstack: auth: auth_url: http://192.168.122.10:35357/ project_name: demo username: demo password: 0penstack region_name: RegionOne Co-Authored-By: Monty Taylor <mordred@inaugust.com> Change-Id: I4939acf8067e44ffe06a2e26fc28f1adf8985b7d Depends-On: I45e2550af58aee616ca168d20a557077beeab007
This commit is contained in:
@ -29,6 +29,8 @@ import common
|
||||
|
||||
from openstackclient.common import clientmanager
|
||||
|
||||
from os_client_config import config as cloud_config
|
||||
|
||||
|
||||
LOG = logging.getLogger('')
|
||||
|
||||
@ -36,6 +38,16 @@ LOG = logging.getLogger('')
|
||||
def run(opts):
|
||||
"""Run the examples"""
|
||||
|
||||
# Do configuration file handling
|
||||
cc = cloud_config.OpenStackConfig()
|
||||
LOG.debug("defaults: %s", cc.defaults)
|
||||
|
||||
cloud = cc.get_one_cloud(
|
||||
cloud=opts.cloud,
|
||||
argparse=opts,
|
||||
)
|
||||
LOG.debug("cloud cfg: %s", cloud.config)
|
||||
|
||||
# Loop through extensions to get API versions
|
||||
# Currently API versions are statically selected. Once discovery
|
||||
# is working this can go away...
|
||||
@ -59,7 +71,7 @@ def run(opts):
|
||||
# Collect the auth and config options together and give them to
|
||||
# ClientManager and it will wrangle all of the goons into place.
|
||||
client_manager = clientmanager.ClientManager(
|
||||
cli_options=opts,
|
||||
cli_options=cloud,
|
||||
verify=verify,
|
||||
api_version=api_version,
|
||||
)
|
||||
|
Reference in New Issue
Block a user