diff options
| author | Rui Chen <chenrui.momo@gmail.com> | 2016-03-21 16:29:14 +0800 |
|---|---|---|
| committer | Rui Chen <chenrui.momo@gmail.com> | 2016-03-24 10:33:23 +0800 |
| commit | 4cbcd02a5787f402a95c84da613d3f8cd7d09312 (patch) | |
| tree | 1280129ea1798fe1c4fc14d1896f7fc1409b192c /openstackclient/compute | |
| parent | 4b4349ee6821f08fb1483d5281d568081649a0d9 (diff) | |
| download | python-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.py | 31 |
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) |
