summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2016-06-02 07:31:31 +0000
committerGerrit Code Review <review@openstack.org>2016-06-02 07:31:31 +0000
commit5d36663f1a4234af8d44f72d83aed07dce75b771 (patch)
tree9cb05036782e21534f1021bf3b64428748b11d21
parentafbb28817e4caef902b4987c6a1812f00c5eada3 (diff)
parent7d63f12eddb250542587cab8e4a2ca9088ec0fbb (diff)
downloados-client-config-5d36663f1a4234af8d44f72d83aed07dce75b771.tar.gz
Merge "Add shade constructor helper method"
-rw-r--r--README.rst33
-rw-r--r--os_client_config/__init__.py12
-rw-r--r--releasenotes/notes/shade-helper-568f8cb372eef6d9.yaml4
3 files changed, 49 insertions, 0 deletions
diff --git a/README.rst b/README.rst
index 99ed287..3d97476 100644
--- a/README.rst
+++ b/README.rst
@@ -392,6 +392,39 @@ for additional flexibility. If the helper function here does not meet your
needs, you should see the `from_config` method of
`openstack.connection.Connection <http://developer.openstack.org/sdks/python/openstacksdk/users/guides/connect_from_config.html>`_
+Constructing shade objects
+--------------------------
+
+If what you want to do is get a
+`shade <http://docs.openstack.org/infra/shade/>`_ OpenStackCloud object, a
+helper function that honors clouds.yaml and `OS_` environment variables is
+provided. The following will get you a fully configured `OpenStackCloud`
+instance.
+
+.. code-block:: python
+
+ import os_client_config
+
+ cloud = os_client_config.make_shade()
+
+If you want to do the same thing but on a named cloud.
+
+.. code-block:: python
+
+ import os_client_config
+
+ cloud = os_client_config.make_shade(cloud='mtvexx')
+
+If you want to do the same thing but also support command line parsing.
+
+.. code-block:: python
+
+ import argparse
+
+ import os_client_config
+
+ cloud = os_client_config.make_shade(options=argparse.ArgumentParser())
+
Constructing REST API Clients
-----------------------------
diff --git a/os_client_config/__init__.py b/os_client_config/__init__.py
index 6142853..09d7442 100644
--- a/os_client_config/__init__.py
+++ b/os_client_config/__init__.py
@@ -82,3 +82,15 @@ def make_sdk(options=None, **kwargs):
from openstack import connection
cloud = get_config(options=options, **kwargs)
return connection.from_config(cloud_config=cloud, options=options)
+
+
+def make_shade(options=None, **kwargs):
+ """Simple wrapper for getting a Shade OpenStackCloud object
+
+ A mechanism that matches make_sdk, make_client and make_rest_client.
+
+ :rtype: :class:`~shade.OpenStackCloud`
+ """
+ import shade
+ cloud = get_config(options=options, **kwargs)
+ return shade.OpenStackCloud(cloud_config=cloud, **kwargs)
diff --git a/releasenotes/notes/shade-helper-568f8cb372eef6d9.yaml b/releasenotes/notes/shade-helper-568f8cb372eef6d9.yaml
new file mode 100644
index 0000000..70aab0a
--- /dev/null
+++ b/releasenotes/notes/shade-helper-568f8cb372eef6d9.yaml
@@ -0,0 +1,4 @@
+---
+features:
+ - Added helper method for constructing shade
+ OpenStackCloud objects.