From 4cbcd02a5787f402a95c84da613d3f8cd7d09312 Mon Sep 17 00:00:00 2001 From: Rui Chen Date: Mon, 21 Mar 2016 16:29:14 +0800 Subject: Add "aggregate unset" to osc Support "aggregate unset" command in order to remove the property of aggregate object in OSC. Change-Id: I49645135586362f0fd251f5e4a4c03eff273d9e9 Closes-Bug: #1559866 --- openstackclient/compute/v2/aggregate.py | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'openstackclient/compute') diff --git a/openstackclient/compute/v2/aggregate.py b/openstackclient/compute/v2/aggregate.py index e47c13a7..1a02a388 100644 --- a/openstackclient/compute/v2/aggregate.py +++ b/openstackclient/compute/v2/aggregate.py @@ -290,3 +290,34 @@ class ShowAggregate(command.ShowOne): info = {} info.update(data._info) return zip(*sorted(six.iteritems(info))) + + +class UnsetAggregate(command.Command): + """Unset aggregate properties""" + + def get_parser(self, prog_name): + parser = super(UnsetAggregate, self).get_parser(prog_name) + parser.add_argument( + "aggregate", + metavar="", + help="Aggregate to modify (name or ID)", + ) + parser.add_argument( + "--property", + metavar="", + action='append', + help='Property to remove from aggregate ' + '(repeat option to remove multiple properties)', + required=True, + ) + return parser + + def take_action(self, parsed_args): + compute_client = self.app.client_manager.compute + aggregate = utils.find_resource( + compute_client.aggregates, + parsed_args.aggregate) + + unset_property = {key: None for key in parsed_args.property} + compute_client.aggregates.set_metadata(aggregate, + unset_property) -- cgit v1.2.1