mirror of
https://github.com/offen/docker-volume-backup.git
synced 2025-10-30 17:07:12 +08:00
Lay out control flow for spawning container
This commit is contained in:
parent
2d777ad76a
commit
832a1f9d9a
2 changed files with 30 additions and 9 deletions
|
|
@ -36,8 +36,15 @@ func (c *command) runAsCommand() error {
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, config := range configurations {
|
for _, config := range configurations {
|
||||||
if err := runScript(config); err != nil {
|
switch config.ExecutionMode {
|
||||||
return errwrap.Wrap(err, "error running script")
|
case "process":
|
||||||
|
if err := runScript(config); err != nil {
|
||||||
|
return errwrap.Wrap(err, "error running script")
|
||||||
|
}
|
||||||
|
case "container":
|
||||||
|
panic("execution mode container not implemented")
|
||||||
|
default:
|
||||||
|
return errwrap.Wrap(nil, fmt.Sprintf("unknown execution mode %s", config.ExecutionMode))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -110,16 +117,29 @@ func (c *command) schedule(strategy configStrategy) error {
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
if err := runScript(config); err != nil {
|
switch config.ExecutionMode {
|
||||||
|
case "process":
|
||||||
|
if err := runScript(config); err != nil {
|
||||||
|
c.logger.Error(
|
||||||
|
fmt.Sprintf(
|
||||||
|
"Unexpected error running schedule %s: %v",
|
||||||
|
config.BackupCronExpression,
|
||||||
|
errwrap.Unwrap(err),
|
||||||
|
),
|
||||||
|
"error",
|
||||||
|
err,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
case "container":
|
||||||
|
panic("execution mode container not implemented")
|
||||||
|
default:
|
||||||
c.logger.Error(
|
c.logger.Error(
|
||||||
fmt.Sprintf(
|
fmt.Sprintf(
|
||||||
"Unexpected error running schedule %s: %v",
|
"Unkown execution mode %s, please check your configuration",
|
||||||
config.BackupCronExpression,
|
config.ExecutionMode,
|
||||||
errwrap.Unwrap(err),
|
|
||||||
),
|
),
|
||||||
"error",
|
|
||||||
err,
|
|
||||||
)
|
)
|
||||||
|
return
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,6 @@ type Config struct {
|
||||||
AwsIamRoleEndpoint string `split_words:"true"`
|
AwsIamRoleEndpoint string `split_words:"true"`
|
||||||
AwsPartSize int64 `split_words:"true"`
|
AwsPartSize int64 `split_words:"true"`
|
||||||
BackupCompression CompressionType `split_words:"true" default:"gz"`
|
BackupCompression CompressionType `split_words:"true" default:"gz"`
|
||||||
GzipParallelism WholeNumber `split_words:"true" default:"1"`
|
|
||||||
BackupSources string `split_words:"true" default:"/backup"`
|
BackupSources string `split_words:"true" default:"/backup"`
|
||||||
BackupFilename string `split_words:"true" default:"backup-%Y-%m-%dT%H-%M-%S.{{ .Extension }}"`
|
BackupFilename string `split_words:"true" default:"backup-%Y-%m-%dT%H-%M-%S.{{ .Extension }}"`
|
||||||
BackupFilenameExpand bool `split_words:"true"`
|
BackupFilenameExpand bool `split_words:"true"`
|
||||||
|
|
@ -46,6 +45,7 @@ type Config struct {
|
||||||
BackupFromSnapshot bool `split_words:"true"`
|
BackupFromSnapshot bool `split_words:"true"`
|
||||||
BackupExcludeRegexp RegexpDecoder `split_words:"true"`
|
BackupExcludeRegexp RegexpDecoder `split_words:"true"`
|
||||||
BackupSkipBackendsFromPrune []string `split_words:"true"`
|
BackupSkipBackendsFromPrune []string `split_words:"true"`
|
||||||
|
GzipParallelism WholeNumber `split_words:"true" default:"1"`
|
||||||
GpgPassphrase string `split_words:"true"`
|
GpgPassphrase string `split_words:"true"`
|
||||||
GpgPublicKeyRing string `split_words:"true"`
|
GpgPublicKeyRing string `split_words:"true"`
|
||||||
AgePassphrase string `split_words:"true"`
|
AgePassphrase string `split_words:"true"`
|
||||||
|
|
@ -73,6 +73,7 @@ type Config struct {
|
||||||
ExecLabel string `split_words:"true"`
|
ExecLabel string `split_words:"true"`
|
||||||
ExecForwardOutput bool `split_words:"true"`
|
ExecForwardOutput bool `split_words:"true"`
|
||||||
LockTimeout time.Duration `split_words:"true" default:"60m"`
|
LockTimeout time.Duration `split_words:"true" default:"60m"`
|
||||||
|
ExecutionMode string `split_words:"true" default:"process"`
|
||||||
AzureStorageAccountName string `split_words:"true"`
|
AzureStorageAccountName string `split_words:"true"`
|
||||||
AzureStoragePrimaryAccountKey string `split_words:"true"`
|
AzureStoragePrimaryAccountKey string `split_words:"true"`
|
||||||
AzureStorageConnectionString string `split_words:"true"`
|
AzureStorageConnectionString string `split_words:"true"`
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue