diff options
author | Valentin Rothberg <rothberg@redhat.com> | 2020-05-07 19:28:38 +0200 |
---|---|---|
committer | Valentin Rothberg <rothberg@redhat.com> | 2020-05-08 11:13:42 +0200 |
commit | 051a2bf4378bf73f5dba14b03afb53fd09e2f3f9 (patch) | |
tree | c2343b9fa53fe2b19e2c2e30536cd62131ddca1a /cmd | |
parent | ab518cdba02b85a32d3c2bce4c0b65dcdea4dfcc (diff) | |
download | podman-051a2bf4378bf73f5dba14b03afb53fd09e2f3f9.tar.gz podman-051a2bf4378bf73f5dba14b03afb53fd09e2f3f9.tar.bz2 podman-051a2bf4378bf73f5dba14b03afb53fd09e2f3f9.zip |
auto-update
Add the `podman auto-update` command. There have been no tests in v1, so
there are no in v2 either ... for now :)
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
Diffstat (limited to 'cmd')
-rw-r--r-- | cmd/podman/auto-update.go | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/cmd/podman/auto-update.go b/cmd/podman/auto-update.go new file mode 100644 index 000000000..758cbbc6f --- /dev/null +++ b/cmd/podman/auto-update.go @@ -0,0 +1,46 @@ +package main + +import ( + "fmt" + + "github.com/containers/libpod/cmd/podman/registry" + "github.com/containers/libpod/pkg/domain/entities" + "github.com/containers/libpod/pkg/errorhandling" + "github.com/pkg/errors" + "github.com/spf13/cobra" +) + +var ( + autoUpdateDescription = `Auto update containers according to their auto-update policy. + + Auto-update policies are specified with the "io.containers.autoupdate" label. + Note that this command is experimental.` + autoUpdateCommand = &cobra.Command{ + Use: "auto-update [flags]", + Short: "Auto update containers according to their auto-update policy", + Long: autoUpdateDescription, + RunE: autoUpdate, + Example: `podman auto-update`, + } +) + +func init() { + registry.Commands = append(registry.Commands, registry.CliCommand{ + Mode: []entities.EngineMode{entities.ABIMode}, + Command: autoUpdateCommand, + }) +} + +func autoUpdate(cmd *cobra.Command, args []string) error { + if len(args) > 0 { + // Backwards compat. System tests expext this error string. + return errors.Errorf("`%s` takes no arguments", cmd.CommandPath()) + } + report, failures := registry.ContainerEngine().AutoUpdate(registry.GetContext()) + if report != nil { + for _, unit := range report.Units { + fmt.Println(unit) + } + } + return errorhandling.JoinErrors(failures) +} |