summaryrefslogtreecommitdiff
path: root/pkg/util/utils.go
diff options
context:
space:
mode:
authorQi Wang <qiwan@redhat.com>2019-07-22 09:47:42 -0400
committerQi Wang <qiwan@redhat.com>2019-08-09 15:21:34 -0400
commitdecfea65bed9e84373c8cdc538f79686c0ad40b9 (patch)
treefce60eb1ae070ef691432d63970ded2eabf8b67d /pkg/util/utils.go
parentd05798e5e8efcb1acdd8794edfa0f82bf5f01045 (diff)
downloadpodman-decfea65bed9e84373c8cdc538f79686c0ad40b9.tar.gz
podman-decfea65bed9e84373c8cdc538f79686c0ad40b9.tar.bz2
podman-decfea65bed9e84373c8cdc538f79686c0ad40b9.zip
add --pull flag for podman create&run
Requirement from https://github.com/containers/libpod/issues/3575#issuecomment-512238393 Added --pull for podman create and pull to match the newly added flag in docker CLI. `missing`: default value, podman will pull the image if it does not exist in the local. `always`: podman will always pull the image. `never`: podman will never pull the image. Signed-off-by: Qi Wang <qiwan@redhat.com>
Diffstat (limited to 'pkg/util/utils.go')
-rw-r--r--pkg/util/utils.go29
1 files changed, 29 insertions, 0 deletions
diff --git a/pkg/util/utils.go b/pkg/util/utils.go
index 520e41438..3f73639e7 100644
--- a/pkg/util/utils.go
+++ b/pkg/util/utils.go
@@ -356,3 +356,32 @@ func OpenExclusiveFile(path string) (*os.File, error) {
}
return os.OpenFile(path, os.O_RDWR|os.O_CREATE|os.O_EXCL, 0666)
}
+
+// PullType whether to pull new image
+type PullType int
+
+const (
+ // PullImageAlways always try to pull new image when create or run
+ PullImageAlways PullType = iota
+ // PullImageMissing pulls image if it is not locally
+ PullImageMissing
+ // PullImageNever will never pull new image
+ PullImageNever
+)
+
+// ValidatePullType check if the pullType from CLI is valid and returns the valid enum type
+// if the value from CLI is invalid returns the error
+func ValidatePullType(pullType string) (PullType, error) {
+ switch pullType {
+ case "always":
+ return PullImageAlways, nil
+ case "missing":
+ return PullImageMissing, nil
+ case "never":
+ return PullImageNever, nil
+ case "":
+ return PullImageMissing, nil
+ default:
+ return PullImageMissing, errors.Errorf("invalid pull type %q", pullType)
+ }
+}