[sheepdog] [PATCH] collie: add -f option for force vdi rollback
Hitoshi Mitake
mitake.hitoshi at gmail.com
Mon May 27 16:40:54 CEST 2013
"collie vdi rollback" does confirmation before actual rollback. The -f
option for skipping it should be supported for external programs which
use collie as a backend.
Signed-off-by: Hitoshi Mitake <mitake.hitoshi at lab.ntt.co.jp>
---
collie/vdi.c | 11 ++++++++---
1 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/collie/vdi.c b/collie/vdi.c
index 7dea4f3..9f3ac56 100644
--- a/collie/vdi.c
+++ b/collie/vdi.c
@@ -29,6 +29,7 @@ static struct sd_option vdi_options[] = {
{'w', "writeback", false, "use writeback mode"},
{'c', "copies", true, "specify the data redundancy (number of copies)"},
{'F', "from", true, "create a differential backup from the snapshot"},
+ {'f', "force", false, "do operation forcibly"},
{ 0, NULL, false, NULL },
};
@@ -43,6 +44,7 @@ static struct vdi_cmd_data {
bool writeback;
int from_snapshot_id;
char from_snapshot_tag[SD_MAX_VDI_TAG_LEN];
+ bool force;
} vdi_cmd_data = { ~0, };
struct get_vdi_info {
@@ -831,8 +833,9 @@ static int vdi_rollback(int argc, char **argv)
if (ret != EXIT_SUCCESS)
return ret;
- confirm("This operation dicards any changes made since the previous\n"
- "snapshot was taken. Continue? [yes/no]: ");
+ if (!vdi_cmd_data.force)
+ confirm("This operation dicards any changes made since the"
+ " previous\nsnapshot was taken. Continue? [yes/no]: ");
ret = do_vdi_delete(vdiname, 0, NULL);
if (ret != SD_RES_SUCCESS) {
@@ -2059,7 +2062,7 @@ static struct subcommand vdi_cmd[] = {
{"delete", "<vdiname>", "saph", "delete an image",
NULL, SUBCMD_FLAG_NEED_ARG,
vdi_delete, vdi_options},
- {"rollback", "<vdiname>", "saph", "rollback to a snapshot",
+ {"rollback", "<vdiname>", "saphf", "rollback to a snapshot",
NULL, SUBCMD_FLAG_NEED_ARG,
vdi_rollback, vdi_options},
{"list", "[vdiname]", "aprh", "list images",
@@ -2157,6 +2160,8 @@ static int vdi_parser(int ch, char *opt)
pstrcpy(vdi_cmd_data.from_snapshot_tag,
sizeof(vdi_cmd_data.from_snapshot_tag), opt);
}
+ case 'f':
+ vdi_cmd_data.force = true;
break;
}
--
1.7.5.1
More information about the sheepdog
mailing list