diff options
| author | Steve Martinelli <stevemar@ca.ibm.com> | 2015-09-11 00:38:56 -0500 |
|---|---|---|
| committer | Steve Martinelli <stevemar@ca.ibm.com> | 2015-10-06 00:52:24 -0400 |
| commit | e48c7afee4d92f2dd37bb537d25f0f671cef1568 (patch) | |
| tree | 0a4ba480fb0f02fe078202ccab8a8e8e523b1f90 /openstackclient/object/v1 | |
| parent | abaf711e249c36b5fe75439691609c09fb9ef141 (diff) | |
| download | python-openstackclient-e48c7afee4d92f2dd37bb537d25f0f671cef1568.tar.gz | |
add set/unset support for objects in object store
add docs and command support to set and unset metadata of objects
that are stored in an object store (swift).
Closes-Bug: #1501945
Change-Id: If838a4b3343b6ddb97cd4bd1cb63f0ba1c1a00a1
Diffstat (limited to 'openstackclient/object/v1')
| -rw-r--r-- | openstackclient/object/v1/object.py | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/openstackclient/object/v1/object.py b/openstackclient/object/v1/object.py index c90f0319..a023e3a0 100644 --- a/openstackclient/object/v1/object.py +++ b/openstackclient/object/v1/object.py @@ -23,6 +23,7 @@ from cliff import command from cliff import lister from cliff import show +from openstackclient.common import parseractions from openstackclient.common import utils @@ -221,6 +222,42 @@ class SaveObject(command.Command): ) +class SetObject(command.Command): + """Set object properties""" + + log = logging.getLogger(__name__ + '.SetObject') + + def get_parser(self, prog_name): + parser = super(SetObject, self).get_parser(prog_name) + parser.add_argument( + 'container', + metavar='<container>', + help='Modify <object> from <container>', + ) + parser.add_argument( + 'object', + metavar='<object>', + help='Object to modify', + ) + parser.add_argument( + "--property", + metavar="<key=value>", + required=True, + action=parseractions.KeyValueAction, + help="Set a property on this object " + "(repeat option to set multiple properties)" + ) + return parser + + @utils.log_method(log) + def take_action(self, parsed_args): + self.app.client_manager.object_store.object_set( + parsed_args.container, + parsed_args.object, + properties=parsed_args.property, + ) + + class ShowObject(show.ShowOne): """Display object details""" @@ -249,3 +286,40 @@ class ShowObject(show.ShowOne): ) return zip(*sorted(six.iteritems(data))) + + +class UnsetObject(command.Command): + """Unset object properties""" + + log = logging.getLogger(__name__ + '.UnsetObject') + + def get_parser(self, prog_name): + parser = super(UnsetObject, self).get_parser(prog_name) + parser.add_argument( + 'container', + metavar='<container>', + help='Modify <object> from <container>', + ) + parser.add_argument( + 'object', + metavar='<object>', + help='Object to modify', + ) + parser.add_argument( + '--property', + metavar='<key>', + required=True, + action='append', + default=[], + help='Property to remove from object ' + '(repeat option to remove multiple properties)', + ) + return parser + + @utils.log_method(log) + def take_action(self, parsed_args): + self.app.client_manager.object_store.object_unset( + parsed_args.container, + parsed_args.object, + properties=parsed_args.property, + ) |
