diff options
| author | Steve Martinelli <stevemar@ca.ibm.com> | 2014-08-03 03:47:10 -0400 |
|---|---|---|
| committer | Steve Martinelli <stevemar@ca.ibm.com> | 2014-08-08 18:33:20 -0400 |
| commit | 8af26a51c3a9ad5808d7c69a07d652121dab27c1 (patch) | |
| tree | 950d60de682186474022221441ef1fce7cbfe19b /openstackclient/object/v1/object.py | |
| parent | fed6921336a516515ce2c543ca7dfb0cdcea4ecd (diff) | |
| download | python-openstackclient-8af26a51c3a9ad5808d7c69a07d652121dab27c1.tar.gz | |
Add commands for object upload and delete
Add commands to upload an object to a container, and to delete
an object from a container.
Change-Id: I37c02315495bba5abe612733d1109a3d4ce256a1
implements: bp swift-client
Diffstat (limited to 'openstackclient/object/v1/object.py')
| -rw-r--r-- | openstackclient/object/v1/object.py | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/openstackclient/object/v1/object.py b/openstackclient/object/v1/object.py index ee30c842..4a99a8f1 100644 --- a/openstackclient/object/v1/object.py +++ b/openstackclient/object/v1/object.py @@ -19,6 +19,7 @@ import logging import six +from cliff import command from cliff import lister from cliff import show @@ -26,6 +27,68 @@ from openstackclient.common import utils from openstackclient.object.v1.lib import object as lib_object +class CreateObject(show.ShowOne): + """Upload an object to a container""" + + log = logging.getLogger(__name__ + '.CreateObject') + + def get_parser(self, prog_name): + parser = super(CreateObject, self).get_parser(prog_name) + parser.add_argument( + 'container', + metavar='<container>', + help='Container to store new object', + ) + parser.add_argument( + 'object', + metavar='<object-name>', + help='Local path of object to upload', + ) + return parser + + def take_action(self, parsed_args): + self.log.debug('take_action(%s)', parsed_args) + + data = lib_object.create_object( + self.app.restapi, + self.app.client_manager.object_store.endpoint, + parsed_args.container, + parsed_args.object, + ) + + return zip(*sorted(six.iteritems(data))) + + +class DeleteObject(command.Command): + """Delete an object within a container""" + + log = logging.getLogger(__name__ + '.DeleteObject') + + def get_parser(self, prog_name): + parser = super(DeleteObject, self).get_parser(prog_name) + parser.add_argument( + 'container', + metavar='<container>', + help='Container that stores the object to delete', + ) + parser.add_argument( + 'object', + metavar='<object-name>', + help='Object to delete', + ) + return parser + + def take_action(self, parsed_args): + self.log.debug('take_action(%s)', parsed_args) + + lib_object.delete_object( + self.app.restapi, + self.app.client_manager.object_store.endpoint, + parsed_args.container, + parsed_args.object, + ) + + class ListObject(lister.Lister): """List objects""" |
