diff options
author | Mohammed Rafi KC <rkavunga@redhat.com> | 2015-02-05 16:12:53 +0530 |
---|---|---|
committer | Krishnan Parthasarathi <kparthas@redhat.com> | 2015-03-10 04:42:00 -0700 |
commit | 1ae8b4c33af175545d6afe99aeb7a21896960a35 (patch) | |
tree | 4e56f0a7b8d760e9ceaea39f1b4c0b863a754218 /cli | |
parent | 8cdd272dcf277aa4148c57458cc5477a49b08383 (diff) |
snapshot: append timestamp with snapname
Appending GMT time stamp with snapname by default.
If no-timestamp flag is given during snapshot creation,
then time stamp will not append with snapname;
Initial consumer of this feature is Samba's Shadow Copy
feature. This feature allows Windows user to get previous
revisions of a file. For this feature to work snapshot
names under .snaps folder (USS) should have timestamp in
following format appended:
@GMT-YYYY.MM.DD-hh.mm.ss
PS: https://www.samba.org/samba/docs/man/manpages/vfs_shadow_copy2.8.html
This format is configurable by Samba conf file. Due to a
limitation in Windows directory access the exact format
cannot be used by USS. Therefore we have modified the file
format to:
_GMT-YYYY.MM.DD-hh.mm.ss
Snapshot scheduling feature also required to append timestamp
to the snapshot name therefore timestamp is appended in
snapshot creation itself instead of doing the changes in
snapview server.
More info:
https://www.mail-archive.com/gluster-users@gluster.org/msg18895.html
Change-Id: Idac24670948cf4c0fbe916ea6690e49cbc832d07
BUG: 1189473
Signed-off-by: Mohammed Rafi KC <rkavunga@redhat.com>
Reviewed-on: http://review.gluster.org/9597
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Rajesh Joseph <rjoseph@redhat.com>
Reviewed-by: Krishnan Parthasarathi <kparthas@redhat.com>
Tested-by: Krishnan Parthasarathi <kparthas@redhat.com>
Diffstat (limited to 'cli')
-rw-r--r-- | cli/src/cli-cmd-parser.c | 20 | ||||
-rw-r--r-- | cli/src/cli-cmd-snapshot.c | 3 |
2 files changed, 19 insertions, 4 deletions
diff --git a/cli/src/cli-cmd-parser.c b/cli/src/cli-cmd-parser.c index bbec6aa5f8d..0981f11b7be 100644 --- a/cli/src/cli-cmd-parser.c +++ b/cli/src/cli-cmd-parser.c @@ -3397,7 +3397,9 @@ cli_snap_create_parse (dict_t *dict, const char **words, int wordcount) { /* Filling volume name in the dictionary */ for (i = cmdi + 1 ; i < wordcount && (strcmp (words[i], "description")) != 0 - && (strcmp (words[i], "force") != 0); i++) { + && (strcmp (words[i], "force") != 0) + && (strcmp (words[i], "no-timestamp") != 0); + i++) { volcount++; /* volume index starts from 1 */ ret = snprintf (key, sizeof (key), "volname%"PRIu64, volcount); @@ -3437,13 +3439,24 @@ cli_snap_create_parse (dict_t *dict, const char **words, int wordcount) { /* Verify how we got out of "for" loop, * if it is by reaching wordcount limit then goto "out", - * because we need not parse for "description" and "force" - * after this. + * because we need not parse for "description","force" and + * "no-timestamp" after this. */ if (i == wordcount) { goto out; } + if (strcmp (words[i], "no-timestamp") == 0) { + ret = dict_set_str (dict, "no-timestamp", "true"); + if (ret) { + gf_log ("cli", GF_LOG_ERROR, "Could not save " + "time-stamp option"); + } + if (i == (wordcount-1)) + goto out; + i++; + } + if ((strcmp (words[i], "description")) == 0) { ++i; if (i > (wordcount - 1)) { @@ -4291,6 +4304,7 @@ cli_cmd_snapshot_parse (const char **words, int wordcount, dict_t **options, case GF_SNAP_OPTION_TYPE_CREATE: /* Syntax : * gluster snapshot create <snapname> <vol-name(s)> + * [no-timestamp] * [description <description>] * [force] */ diff --git a/cli/src/cli-cmd-snapshot.c b/cli/src/cli-cmd-snapshot.c index d03b5b99dd0..7c6a52e0a88 100644 --- a/cli/src/cli-cmd-snapshot.c +++ b/cli/src/cli-cmd-snapshot.c @@ -82,7 +82,8 @@ struct cli_cmd snapshot_cmds[] = { cli_cmd_snapshot_help_cbk, "display help for snapshot commands" }, - { "snapshot create <snapname> <volname(s)> [description <description>] [force]", + { "snapshot create <snapname> <volname(s)> [no-timestamp] " + "[description <description>] [force]", cli_cmd_snapshot_cbk, "Snapshot Create." }, |