diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2018-12-19 13:07:10 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-12-19 13:07:10 -0800 |
commit | 8ec8ee935eb43976e9d73aa557932d800acc4f07 (patch) | |
tree | 15be71b19c0ca0db7b1083eb672b4febb2f12a97 /libpod | |
parent | eddfe6ba628d17435559ba32a8ef748c386105aa (diff) | |
parent | 31edf47285ca9d56cd838aaaf5dae2f5403f7ea1 (diff) | |
download | podman-8ec8ee935eb43976e9d73aa557932d800acc4f07.tar.gz podman-8ec8ee935eb43976e9d73aa557932d800acc4f07.tar.bz2 podman-8ec8ee935eb43976e9d73aa557932d800acc4f07.zip |
Merge pull request #1899 from QiWang19/trustimg
Support podman image trust command
Diffstat (limited to 'libpod')
-rw-r--r-- | libpod/image/utils.go | 22 | ||||
-rw-r--r-- | libpod/runtime.go | 5 |
2 files changed, 27 insertions, 0 deletions
diff --git a/libpod/image/utils.go b/libpod/image/utils.go index 9a75ca6dc..b944de1bb 100644 --- a/libpod/image/utils.go +++ b/libpod/image/utils.go @@ -2,6 +2,8 @@ package image import ( "io" + "net/url" + "regexp" "strings" cp "github.com/containers/image/copy" @@ -117,3 +119,23 @@ func GetAdditionalTags(images []string) ([]reference.NamedTagged, error) { } return allTags, nil } + +// IsValidImageURI checks if image name has valid format +func IsValidImageURI(imguri string) (bool, error) { + uri := "http://" + imguri + u, err := url.Parse(uri) + if err != nil { + return false, errors.Wrapf(err, "invalid image uri: %s", imguri) + } + reg := regexp.MustCompile(`^[a-zA-Z0-9-_\.]+\/?:?[0-9]*[a-z0-9-\/:]*$`) + ret := reg.FindAllString(u.Host, -1) + if len(ret) == 0 { + return false, errors.Wrapf(err, "invalid image uri: %s", imguri) + } + reg = regexp.MustCompile(`^[a-z0-9-:\./]*$`) + ret = reg.FindAllString(u.Fragment, -1) + if len(ret) == 0 { + return false, errors.Wrapf(err, "invalid image uri: %s", imguri) + } + return true, nil +} diff --git a/libpod/runtime.go b/libpod/runtime.go index 82473aae9..2dfebf565 100644 --- a/libpod/runtime.go +++ b/libpod/runtime.go @@ -877,3 +877,8 @@ func (r *Runtime) generateName() (string, error) { func (r *Runtime) ImageRuntime() *image.Runtime { return r.imageRuntime } + +// SystemContext returns the imagecontext +func (r *Runtime) SystemContext() *types.SystemContext { + return r.imageContext +} |