From e1bfd96c65383863048a7caabb668616b4e7a621 Mon Sep 17 00:00:00 2001 From: Rajat Gupta <37516416+r4rajat@users.noreply.github.com> Date: Tue, 11 Oct 2022 12:09:09 +0530 Subject: [PATCH] Add Tags in SnapshotCreate Kopia Wrapper (#1664) --- pkg/kopia/command/common.go | 8 ++++++++ pkg/kopia/command/const.go | 1 + pkg/kopia/command/snapshot.go | 3 ++- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/pkg/kopia/command/common.go b/pkg/kopia/command/common.go index fc445efa87..4305bb14a5 100644 --- a/pkg/kopia/command/common.go +++ b/pkg/kopia/command/common.go @@ -55,6 +55,14 @@ func commonArgs(password, configFilePath, logDirectory string, requireInfoLevel return c } +func addTags(tags []string, args logsafe.Cmd) logsafe.Cmd { + // kopia required tags in name:value format, but all checks are performed on kopia side + for _, tag := range tags { + args = args.AppendLoggable(tagsFlag, tag) + } + return args +} + // ExecKopiaArgs returns the basic Argv for executing kopia with the given config file path. func ExecKopiaArgs(configFilePath string) []string { return commonArgs("", configFilePath, "", false).StringSliceCMD() diff --git a/pkg/kopia/command/const.go b/pkg/kopia/command/const.go index 6eb1b4eab3..500d52a167 100644 --- a/pkg/kopia/command/const.go +++ b/pkg/kopia/command/const.go @@ -48,6 +48,7 @@ const ( progressUpdateIntervalFlag = "--progress-update-interval" rawFlag = "--raw" showIdenticalFlag = "--show-identical" + tagsFlag = "--tags" unsafeIgnoreSourceFlag = "--unsafe-ignore-source" ownerFlag = "--owner" sparseFlag = "--sparse" diff --git a/pkg/kopia/command/snapshot.go b/pkg/kopia/command/snapshot.go index 8d31c93599..38aa12173f 100644 --- a/pkg/kopia/command/snapshot.go +++ b/pkg/kopia/command/snapshot.go @@ -32,6 +32,7 @@ const ( type SnapshotCreateCommandArgs struct { *CommandArgs PathToBackup string + Tags []string } // SnapshotCreate returns the kopia command for creation of a snapshot @@ -42,7 +43,7 @@ func SnapshotCreate(cmdArgs SnapshotCreateCommandArgs) []string { args = args.AppendLoggable(snapshotSubCommand, createSubCommand, cmdArgs.PathToBackup, jsonFlag) args = args.AppendLoggableKV(parallelFlag, parallelismStr) args = args.AppendLoggableKV(progressUpdateIntervalFlag, longUpdateInterval) - + args = addTags(cmdArgs.Tags, args) return stringSliceCommand(args) }