summaryrefslogtreecommitdiff
path: root/openstackclient/image/client.py
diff options
context:
space:
mode:
authorDean Troyer <dtroyer@gmail.com>2014-09-18 00:56:38 -0500
committerDean Troyer <dtroyer@gmail.com>2015-01-20 17:01:23 -0600
commit1ecf1bee2d5c1566533cdd8fad99733ea8336aa8 (patch)
treeaaf60bd664d98b17dbb703f7b14fb681ccf24aaf /openstackclient/image/client.py
parent95fe3fda3d041a4fa761040c80214d4ca5f29aaa (diff)
downloadpython-openstackclient-1ecf1bee2d5c1566533cdd8fad99733ea8336aa8.tar.gz
Begin low-level API for Image v1 and v2
image list for v1 and v2: * Add --public|--private to command parsers * Implement local public/private filtering for v1 image_list() * Pass public/private filter to server for v2 image_list() Change-Id: Ie7c24ea2d1bf2b3b1b7fa342eb45fee45894634d
Diffstat (limited to 'openstackclient/image/client.py')
-rw-r--r--openstackclient/image/client.py28
1 files changed, 26 insertions, 2 deletions
diff --git a/openstackclient/image/client.py b/openstackclient/image/client.py
index c55ff853..35779664 100644
--- a/openstackclient/image/client.py
+++ b/openstackclient/image/client.py
@@ -31,9 +31,15 @@ API_VERSIONS = {
"2": "glanceclient.v2.client.Client",
}
+IMAGE_API_TYPE = 'image'
+IMAGE_API_VERSIONS = {
+ '1': 'openstackclient.api.image_v1.APIv1',
+ '2': 'openstackclient.api.image_v2.APIv2',
+}
+
def make_client(instance):
- """Returns an image service client."""
+ """Returns an image service client"""
image_client = utils.get_client_class(
API_NAME,
instance._api_version[API_NAME],
@@ -45,13 +51,31 @@ def make_client(instance):
region_name=instance._region_name,
)
- return image_client(
+ client = image_client(
endpoint,
token=instance.auth.get_token(instance.session),
cacert=instance._cacert,
insecure=instance._insecure,
)
+ # Create the low-level API
+
+ image_api = utils.get_client_class(
+ API_NAME,
+ instance._api_version[API_NAME],
+ IMAGE_API_VERSIONS)
+ LOG.debug('Instantiating image api: %s', image_api)
+
+ client.api = image_api(
+ session=instance.session,
+ endpoint=instance.get_endpoint_for_service_type(
+ IMAGE_API_TYPE,
+ region_name=instance._region_name,
+ )
+ )
+
+ return client
+
def build_option_parser(parser):
"""Hook to add global options"""