diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2020-10-16 16:10:02 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-16 16:10:02 -0400 |
commit | 9d5f28ba9e437204127e943f22e89c466dedea95 (patch) | |
tree | 028778884ef7248d78b9bda3be9d34afd0a98a8a | |
parent | 9f98b3447c7a1c34d328a387993722e4e7113cd2 (diff) | |
parent | 97fec292123939d2cb505c26c327726163ff1867 (diff) | |
download | podman-9d5f28ba9e437204127e943f22e89c466dedea95.tar.gz podman-9d5f28ba9e437204127e943f22e89c466dedea95.tar.bz2 podman-9d5f28ba9e437204127e943f22e89c466dedea95.zip |
Merge pull request #8039 from zhangguanzhang/runlabel-panic
Fix panic when runlabel is missing
-rw-r--r-- | pkg/domain/infra/abi/containers_runlabel.go | 3 | ||||
-rw-r--r-- | test/e2e/runlabel_test.go | 5 |
2 files changed, 7 insertions, 1 deletions
diff --git a/pkg/domain/infra/abi/containers_runlabel.go b/pkg/domain/infra/abi/containers_runlabel.go index 30a5a55b8..41fdf8f34 100644 --- a/pkg/domain/infra/abi/containers_runlabel.go +++ b/pkg/domain/infra/abi/containers_runlabel.go @@ -28,6 +28,9 @@ func (ic *ContainerEngine) ContainerRunlabel(ctx context.Context, label string, if err != nil { return err } + if runlabel == "" { + return errors.Errorf("cannot find the value of label: %s in image: %s", label, imageRef) + } cmd, env, err := generateRunlabelCommand(runlabel, img, args, options) if err != nil { diff --git a/test/e2e/runlabel_test.go b/test/e2e/runlabel_test.go index 81a746b86..7c0b8bc9b 100644 --- a/test/e2e/runlabel_test.go +++ b/test/e2e/runlabel_test.go @@ -88,12 +88,15 @@ var _ = Describe("podman container runlabel", func() { result := podmanTest.Podman([]string{"container", "runlabel", "RUN", ALPINE}) result.WaitWithDefaultTimeout() Expect(result).To(ExitWithError()) + // should not panic when label missing the value or don't have the label + Expect(result.LineInOutputContains("panic")).NotTo(BeTrue()) }) It("podman container runlabel bogus label in remote image should result in non-zero exit", func() { result := podmanTest.Podman([]string{"container", "runlabel", "RUN", "docker.io/library/ubuntu:latest"}) result.WaitWithDefaultTimeout() Expect(result).To(ExitWithError()) - + // should not panic when label missing the value or don't have the label + Expect(result.LineInOutputContains("panic")).NotTo(BeTrue()) }) It("podman container runlabel global options", func() { |