From 2614d6de09ae44194d4dea04d65eaad19e5e46b8 Mon Sep 17 00:00:00 2001 From: gecong1973 Date: Thu, 18 Oct 2018 18:39:28 -0700 Subject: [PATCH] Add backup create client support for freezer Currently, freezer client doesnt support backup create command, it is not so convenient. This patch add this command for debug. Change-Id: I0313f431f066a59b6d57130b81e943bce300511b --- freezerclient/shell.py | 1 + freezerclient/v2/backups.py | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/freezerclient/shell.py b/freezerclient/shell.py index 5901ebe..756ae76 100644 --- a/freezerclient/shell.py +++ b/freezerclient/shell.py @@ -59,6 +59,7 @@ class FreezerCommandManager(commandmanager.CommandManager): 'backup-list': backups.BackupList, 'backup-show': backups.BackupShow, 'backup-delete': backups.BackupDelete, + 'backup-create': backups.BackupCreate, 'session-list': sessions.SessionList, 'session-show': sessions.SessionShow, 'session-create': sessions.SessionCreate, diff --git a/freezerclient/v2/backups.py b/freezerclient/v2/backups.py index 7f1f37b..fcce6dc 100644 --- a/freezerclient/v2/backups.py +++ b/freezerclient/v2/backups.py @@ -117,3 +117,19 @@ class BackupDelete(command.Command): def take_action(self, parsed_args): self.app.client.backups.delete(parsed_args.backup_uuid) logging.info('Backup {0} deleted'.format(parsed_args.backup_uuid)) + + +class BackupCreate(command.Command): + """Create an backup from a file""" + def get_parser(self, prog_name): + parser = super(BackupCreate, self).get_parser(prog_name) + parser.add_argument('--file', + dest='file', + required=True, + help='Path to json file with the backup') + return parser + + def take_action(self, parsed_args): + backup = utils.doc_from_json_file(parsed_args.file) + backup_id = self.app.client.backups.create(backup) + logging.info('Backup {0} created'.format(backup_id))