diff options
| author | Jenkins <jenkins@review.openstack.org> | 2016-09-22 17:57:54 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2016-09-22 17:57:54 +0000 |
| commit | 9440509fa0e2287ba530f97a5a352754644476c4 (patch) | |
| tree | 2e994230997a1d6b4ab20ca974d1ad5d0b917695 /openstackclient/volume/v2 | |
| parent | 41f7de22d6f99b25d49187bf532197a20f640c7c (diff) | |
| parent | ddf84429f297b34ce7067250d834ea897e37f37c (diff) | |
| download | python-openstackclient-9440509fa0e2287ba530f97a5a352754644476c4.tar.gz | |
Merge "Add "volume backup set" command in volume v2"
Diffstat (limited to 'openstackclient/volume/v2')
| -rw-r--r-- | openstackclient/volume/v2/backup.py | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/openstackclient/volume/v2/backup.py b/openstackclient/volume/v2/backup.py index 07c1c94f..4a133d36 100644 --- a/openstackclient/volume/v2/backup.py +++ b/openstackclient/volume/v2/backup.py @@ -281,6 +281,65 @@ class RestoreBackup(RestoreVolumeBackup): return super(RestoreBackup, self).take_action(parsed_args) +class SetVolumeBackup(command.Command): + """Set volume backup properties""" + + def get_parser(self, prog_name): + parser = super(SetVolumeBackup, self).get_parser(prog_name) + parser.add_argument( + "backup", + metavar="<backup>", + help=_("Backup to modify (name or ID)") + ) + parser.add_argument( + '--name', + metavar='<name>', + help=_('New backup name') + ) + parser.add_argument( + '--description', + metavar='<description>', + help=_('New backup description') + ) + parser.add_argument( + '--state', + metavar='<state>', + choices=['available', 'error'], + help=_('New backup state ("available" or "error") (admin only)'), + ) + return parser + + def take_action(self, parsed_args): + volume_client = self.app.client_manager.volume + backup = utils.find_resource(volume_client.backups, + parsed_args.backup) + result = 0 + if parsed_args.state: + try: + volume_client.backups.reset_state( + backup.id, parsed_args.state) + except Exception as e: + LOG.error(_("Failed to set backup state: %s"), e) + result += 1 + + kwargs = {} + if parsed_args.name: + kwargs['name'] = parsed_args.name + if parsed_args.description: + kwargs['description'] = parsed_args.description + if kwargs: + try: + volume_client.backups.update(backup.id, **kwargs) + except Exception as e: + LOG.error(_("Failed to update backup name " + "or description: %s"), e) + result += 1 + + if result > 0: + raise exceptions.CommandError(_("One or more of the " + "set operations failed")) + + class ShowVolumeBackup(command.ShowOne): """Display volume backup details""" |
