summaryrefslogtreecommitdiff
path: root/examples/object_api.py
diff options
context:
space:
mode:
authorDean Troyer <dtroyer@gmail.com>2015-03-02 17:05:35 -0600
committerDean Troyer <dtroyer@gmail.com>2015-04-18 23:04:51 -0500
commit5649695c658505b0217fb6d03cf199797b90ca4c (patch)
tree277dc72a93e7fa4c557a1dbe0d4d021d69e94c5d /examples/object_api.py
parenta5e79d58ae508e218a113bfa3976fae369980688 (diff)
downloadpython-openstackclient-5649695c658505b0217fb6d03cf199797b90ca4c.tar.gz
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
Diffstat (limited to 'examples/object_api.py')
-rwxr-xr-xexamples/object_api.py17
1 files changed, 14 insertions, 3 deletions
diff --git a/examples/object_api.py b/examples/object_api.py
index 5c6bd9f0..441013ca 100755
--- a/examples/object_api.py
+++ b/examples/object_api.py
@@ -30,6 +30,8 @@ import common
from openstackclient.api import object_store_v1 as object_store
from openstackclient.identity import client as identity_client
+from os_client_config import config as cloud_config
+
LOG = logging.getLogger('')
@@ -37,6 +39,15 @@ LOG = logging.getLogger('')
def run(opts):
"""Run the examples"""
+ # Look for configuration file
+ # To support token-flow we have no required values
+ # print "options: %s" % self.options
+ cloud = cloud_config.OpenStackConfig().get_one_cloud(
+ cloud=opts.cloud,
+ argparse=opts,
+ )
+ LOG.debug("cloud cfg: %s", cloud.config)
+
# Set up certificate verification and CA bundle
# NOTE(dtroyer): This converts from the usual OpenStack way to the single
# requests argument and is an app-specific thing because
@@ -52,13 +63,13 @@ def run(opts):
# The returned session will have a configured auth object
# based on the selected plugin's available options.
# So to do...oh, just go to api.auth.py and look at what it does.
- session = common.make_session(opts, verify=verify)
+ session = common.make_session(cloud, verify=verify)
# Extract an endpoint
auth_ref = session.auth.get_auth_ref(session)
- if opts.os_url:
- endpoint = opts.os_url
+ if opts.url:
+ endpoint = opts.url
else:
endpoint = auth_ref.service_catalog.url_for(
service_type='object-store',