From 2c72fbdd82253835e7a082cd1ced1fa21f543bea Mon Sep 17 00:00:00 2001 From: Brent Baude Date: Mon, 13 Jul 2020 10:34:41 -0500 Subject: Fix systemd pid 1 test fedora removed the systemd package from its standard container image causing our systemd pid1 test to fail. Replacing usage of fedora to ubi-init. adding ubi images to the cache for local tests. also, remove installation of test/policy.json to the system wide /etc/containers Signed-off-by: Brent Baude --- test/e2e/config_amd64.go | 4 +++- test/e2e/system_df_test.go | 2 +- test/e2e/systemd_test.go | 7 +------ 3 files changed, 5 insertions(+), 8 deletions(-) (limited to 'test') diff --git a/test/e2e/config_amd64.go b/test/e2e/config_amd64.go index 7e5765ac7..151120058 100644 --- a/test/e2e/config_amd64.go +++ b/test/e2e/config_amd64.go @@ -5,9 +5,11 @@ var ( STORAGE_OPTIONS = "--storage-driver vfs" ROOTLESS_STORAGE_FS = "vfs" ROOTLESS_STORAGE_OPTIONS = "--storage-driver vfs" - CACHE_IMAGES = []string{ALPINE, BB, fedoraMinimal, nginx, redis, registry, infra, labels, healthcheck} + CACHE_IMAGES = []string{ALPINE, BB, fedoraMinimal, nginx, redis, registry, infra, labels, healthcheck, ubi_init, ubi_minimal} nginx = "quay.io/libpod/alpine_nginx:latest" BB_GLIBC = "docker.io/library/busybox:glibc" registry = "docker.io/library/registry:2.6" labels = "quay.io/libpod/alpine_labels:latest" + ubi_minimal = "registry.access.redhat.com/ubi8-minimal" + ubi_init = "registry.access.redhat.com/ubi8-init" ) diff --git a/test/e2e/system_df_test.go b/test/e2e/system_df_test.go index d1a43798e..e882756f9 100644 --- a/test/e2e/system_df_test.go +++ b/test/e2e/system_df_test.go @@ -56,7 +56,7 @@ var _ = Describe("podman system df", func() { images := strings.Fields(session.OutputToStringArray()[1]) containers := strings.Fields(session.OutputToStringArray()[2]) volumes := strings.Fields(session.OutputToStringArray()[3]) - Expect(images[1]).To(Equal("9")) + Expect(images[1]).To(Equal("11")) Expect(containers[1]).To(Equal("2")) Expect(volumes[2]).To(Equal("1")) }) diff --git a/test/e2e/systemd_test.go b/test/e2e/systemd_test.go index fb9e77b3d..143b8f59f 100644 --- a/test/e2e/systemd_test.go +++ b/test/e2e/systemd_test.go @@ -81,13 +81,8 @@ WantedBy=multi-user.target }) It("podman run container with systemd PID1", func() { - systemdImage := "fedora" - pull := podmanTest.Podman([]string{"pull", systemdImage}) - pull.WaitWithDefaultTimeout() - Expect(pull.ExitCode()).To(Equal(0)) - ctrName := "testSystemd" - run := podmanTest.Podman([]string{"run", "--name", ctrName, "-t", "-i", "-d", systemdImage, "/usr/sbin/init"}) + run := podmanTest.Podman([]string{"run", "--name", ctrName, "-t", "-i", "-d", ubi_init, "/sbin/init"}) run.WaitWithDefaultTimeout() Expect(run.ExitCode()).To(Equal(0)) ctrID := run.OutputToString() -- cgit v1.2.3-54-g00ecf From 660208cea38fdebb302f674b40bfd755f02def2d Mon Sep 17 00:00:00 2001 From: Valentin Rothberg Date: Tue, 16 Jun 2020 14:06:55 +0200 Subject: search: allow wildcards Allow wildcards in the search term. Note that not all registries support wildcards and it may only work with v1 registries. Note that searching implies figuring out if the specified search term includes a registry. If there's not registry detected, the search term will be used against all configured "unqualified-serach-registries" in the registries.conf. The parsing logic considers a registry to be the substring before the first slash `/`. With these changes we now not only support wildcards but arbitrary input; ultimately it's up to the registries to decide whether they support given input or not. Fixes: bugzilla.redhat.com/show_bug.cgi?id=1846629 Cherry-pick-of: commit b05888a97dbb Signed-off-by: Valentin Rothberg --- libpod/image/search.go | 17 ++++++++++------- pkg/registries/registries.go | 16 ---------------- test/e2e/search_test.go | 12 ++++++++++++ 3 files changed, 22 insertions(+), 23 deletions(-) (limited to 'test') diff --git a/libpod/image/search.go b/libpod/image/search.go index 0950921ed..ee1ff0312 100644 --- a/libpod/image/search.go +++ b/libpod/image/search.go @@ -64,13 +64,16 @@ type SearchFilter struct { // SearchImages searches images based on term and the specified SearchOptions // in all registries. func SearchImages(term string, options SearchOptions) ([]SearchResult, error) { - // Check if search term has a registry in it - registry, err := sysreg.GetRegistry(term) - if err != nil { - return nil, errors.Wrapf(err, "error getting registry from %q", term) - } - if registry != "" { - term = term[len(registry)+1:] + registry := "" + + // Try to extract a registry from the specified search term. We + // consider everything before the first slash to be the registry. Note + // that we cannot use the reference parser from the containers/image + // library as the search term may container arbitrary input such as + // wildcards. See bugzilla.redhat.com/show_bug.cgi?id=1846629. + if spl := strings.SplitN(term, "/", 2); len(spl) > 1 { + registry = spl[0] + term = spl[1] } registries, err := getRegistries(registry) diff --git a/pkg/registries/registries.go b/pkg/registries/registries.go index 927e7a62a..ab7accd5e 100644 --- a/pkg/registries/registries.go +++ b/pkg/registries/registries.go @@ -3,12 +3,10 @@ package registries import ( "os" "path/filepath" - "strings" "github.com/containers/image/v5/pkg/sysregistriesv2" "github.com/containers/image/v5/types" "github.com/containers/libpod/v2/pkg/rootless" - "github.com/docker/distribution/reference" "github.com/pkg/errors" ) @@ -77,17 +75,3 @@ func GetInsecureRegistries() ([]string, error) { } return insecureRegistries, nil } - -// GetRegistry returns the registry name from a string if specified -func GetRegistry(image string) (string, error) { - // It is possible to only have the registry name in the format "myregistry/" - // if so, just trim the "/" from the end and return the registry name - if strings.HasSuffix(image, "/") { - return strings.TrimSuffix(image, "/"), nil - } - imgRef, err := reference.Parse(image) - if err != nil { - return "", err - } - return reference.Domain(imgRef.(reference.Named)), nil -} diff --git a/test/e2e/search_test.go b/test/e2e/search_test.go index 2848e52ce..c62e0fabd 100644 --- a/test/e2e/search_test.go +++ b/test/e2e/search_test.go @@ -400,4 +400,16 @@ registries = ['{{.Host}}:{{.Port}}']` search.WaitWithDefaultTimeout() Expect(search.ExitCode()).To(Not(Equal(0))) }) + + It("podman search with wildcards", func() { + search := podmanTest.Podman([]string{"search", "--limit", "30", "registry.redhat.io/*"}) + search.WaitWithDefaultTimeout() + Expect(search.ExitCode()).To(Equal(0)) + Expect(len(search.OutputToStringArray())).To(Equal(31)) + + search = podmanTest.Podman([]string{"search", "registry.redhat.io/*openshift*"}) + search.WaitWithDefaultTimeout() + Expect(search.ExitCode()).To(Equal(0)) + Expect(len(search.OutputToStringArray()) > 1).To(BeTrue()) + }) }) -- cgit v1.2.3-54-g00ecf