summaryrefslogtreecommitdiff
path: root/openstackclient/compute
diff options
context:
space:
mode:
authorRui Chen <chenrui.momo@gmail.com>2016-03-21 16:29:14 +0800
committerRui Chen <chenrui.momo@gmail.com>2016-03-24 10:33:23 +0800
commit4cbcd02a5787f402a95c84da613d3f8cd7d09312 (patch)
tree1280129ea1798fe1c4fc14d1896f7fc1409b192c /openstackclient/compute
parent4b4349ee6821f08fb1483d5281d568081649a0d9 (diff)
downloadpython-openstackclient-4cbcd02a5787f402a95c84da613d3f8cd7d09312.tar.gz
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
Diffstat (limited to 'openstackclient/compute')
-rw-r--r--openstackclient/compute/v2/aggregate.py31
1 files changed, 31 insertions, 0 deletions
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="<aggregate>",
+ help="Aggregate to modify (name or ID)",
+ )
+ parser.add_argument(
+ "--property",
+ metavar="<key>",
+ 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)