Object API commands using our REST API layer
* Add object-store API to ClientManager
* Add object-store client
* Add Object API library in openstackclient.object.v1.lib
* Add Object API {container,object} list commands
* Add library tests
* Add command tests
This should complete the Object v1 container and object list commands
Change-Id: Ib1770d45efa8871959826b85faafa1e0bcef0a03
This commit is contained in:
@@ -20,6 +20,7 @@ import logging
|
||||
from openstackclient.compute import client as compute_client
|
||||
from openstackclient.identity import client as identity_client
|
||||
from openstackclient.image import client as image_client
|
||||
from openstackclient.object import client as object_client
|
||||
from openstackclient.volume import client as volume_client
|
||||
|
||||
|
||||
@@ -44,6 +45,7 @@ class ClientManager(object):
|
||||
compute = ClientCache(compute_client.make_client)
|
||||
identity = ClientCache(identity_client.make_client)
|
||||
image = ClientCache(image_client.make_client)
|
||||
object = ClientCache(object_client.make_client)
|
||||
volume = ClientCache(volume_client.make_client)
|
||||
|
||||
def __init__(self, token=None, url=None, auth_url=None, project_name=None,
|
||||
|
||||
@@ -38,6 +38,7 @@ KEYRING_SERVICE = 'openstack'
|
||||
DEFAULT_COMPUTE_API_VERSION = '2'
|
||||
DEFAULT_IDENTITY_API_VERSION = '2.0'
|
||||
DEFAULT_IMAGE_API_VERSION = '1'
|
||||
DEFAULT_OBJECT_API_VERSION = '1'
|
||||
DEFAULT_VOLUME_API_VERSION = '1'
|
||||
DEFAULT_DOMAIN = 'default'
|
||||
|
||||
@@ -187,6 +188,15 @@ class OpenStackShell(app.App):
|
||||
help='Image API version, default=' +
|
||||
DEFAULT_IMAGE_API_VERSION +
|
||||
' (Env: OS_IMAGE_API_VERSION)')
|
||||
parser.add_argument(
|
||||
'--os-object-api-version',
|
||||
metavar='<object-api-version>',
|
||||
default=env(
|
||||
'OS_OBJECT_API_VERSION',
|
||||
default=DEFAULT_OBJECT_API_VERSION),
|
||||
help='Object API version, default=' +
|
||||
DEFAULT_OBJECT_API_VERSION +
|
||||
' (Env: OS_OBJECT_API_VERSION)')
|
||||
parser.add_argument(
|
||||
'--os-volume-api-version',
|
||||
metavar='<volume-api-version>',
|
||||
@@ -339,14 +349,15 @@ class OpenStackShell(app.App):
|
||||
'compute': self.options.os_compute_api_version,
|
||||
'identity': self.options.os_identity_api_version,
|
||||
'image': self.options.os_image_api_version,
|
||||
'object-store': self.options.os_object_api_version,
|
||||
'volume': self.options.os_volume_api_version,
|
||||
}
|
||||
|
||||
# Add the API version-specific commands
|
||||
for api in self.api_version.keys():
|
||||
version = '.v' + self.api_version[api].replace('.', '_')
|
||||
self.command_manager.add_command_group(
|
||||
'openstack.' + api + version)
|
||||
cmd_group = 'openstack.' + api.replace('-', '_') + version
|
||||
self.command_manager.add_command_group(cmd_group)
|
||||
|
||||
# Commands that span multiple APIs
|
||||
self.command_manager.add_command_group(
|
||||
|
||||
@@ -44,6 +44,11 @@ class FakeClientManager(object):
|
||||
pass
|
||||
|
||||
|
||||
class FakeRESTApi(object):
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
|
||||
class FakeResource(object):
|
||||
def __init__(self, manager, info, loaded=False):
|
||||
self.manager = manager
|
||||
|
||||
@@ -71,6 +71,7 @@ class TestCommand(TestCase):
|
||||
self.fake_stdout = fakes.FakeStdout()
|
||||
self.app = fakes.FakeApp(self.fake_stdout)
|
||||
self.app.client_manager = fakes.FakeClientManager()
|
||||
self.app.restapi = fakes.FakeRESTApi()
|
||||
|
||||
def check_parser(self, cmd, args, verify_args):
|
||||
cmd_parser = cmd.get_parser('check_parser')
|
||||
|
||||
@@ -239,6 +239,10 @@ openstack.compute.v2 =
|
||||
server_unrescue = openstackclient.compute.v2.server:UnrescueServer
|
||||
server_unset = openstackclient.compute.v2.server:UnsetServer
|
||||
|
||||
openstack.object_store.v1 =
|
||||
container_list = openstackclient.object.v1.container:ListContainer
|
||||
object_list = openstackclient.object.v1.object:ListObject
|
||||
|
||||
openstack.volume.v1 =
|
||||
snapshot_create = openstackclient.volume.v1.snapshot:CreateSnapshot
|
||||
snapshot_delete = openstackclient.volume.v1.snapshot:DeleteSnapshot
|
||||
|
||||
Reference in New Issue
Block a user