mirror of
https://github.com/containers/podman
synced 2024-10-20 17:23:30 +00:00
6ce70a33c5
Inspect should be able to inspect one or more containers depending on the user input. Therefore, inspect output should be in array format so the consumer could potentially iterate it. This PR allows users to specify one more or containers|images|or a mix for inspection. The output, as stated, is therefore in array form. This holds true even for a singular image. In the case that the user enters an invalid container|image "name", we handle that gracefully. Podman will output json for the valid names until it reaches the invalid one. For example: In this case, podman will out the json for alpine and then print an error about 123 being invalid. It will not continute onto busybox. This behavior imatates docker. This addresses issue #360 Signed-off-by: baude <bbaude@redhat.com> Closes: #371 Approved by: baude
108 lines
3.4 KiB
Go
108 lines
3.4 KiB
Go
package integration
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
|
|
. "github.com/onsi/ginkgo"
|
|
. "github.com/onsi/gomega"
|
|
)
|
|
|
|
var _ = Describe("Podman import", func() {
|
|
var (
|
|
tempdir string
|
|
err error
|
|
podmanTest PodmanTest
|
|
)
|
|
|
|
BeforeEach(func() {
|
|
tempdir, err = CreateTempDirInTempDir()
|
|
if err != nil {
|
|
os.Exit(1)
|
|
}
|
|
podmanTest = PodmanCreate(tempdir)
|
|
podmanTest.RestoreAllArtifacts()
|
|
})
|
|
|
|
AfterEach(func() {
|
|
podmanTest.Cleanup()
|
|
})
|
|
|
|
It("podman import with source and reference", func() {
|
|
outfile := filepath.Join(podmanTest.TempDir, "container.tar")
|
|
_, ec, cid := podmanTest.RunLsContainer("")
|
|
Expect(ec).To(Equal(0))
|
|
|
|
export := podmanTest.Podman([]string{"export", "-o", outfile, cid})
|
|
export.WaitWithDefaultTimeout()
|
|
Expect(export.ExitCode()).To(Equal(0))
|
|
|
|
importImage := podmanTest.Podman([]string{"import", outfile, "foobar.com/imported-image:latest"})
|
|
importImage.WaitWithDefaultTimeout()
|
|
Expect(importImage.ExitCode()).To(Equal(0))
|
|
|
|
results := podmanTest.Podman([]string{"inspect", "--type", "image", "foobar.com/imported-image:latest"})
|
|
results.WaitWithDefaultTimeout()
|
|
Expect(results.ExitCode()).To(Equal(0))
|
|
})
|
|
|
|
It("podman import without reference", func() {
|
|
outfile := filepath.Join(podmanTest.TempDir, "container.tar")
|
|
_, ec, cid := podmanTest.RunLsContainer("")
|
|
Expect(ec).To(Equal(0))
|
|
|
|
export := podmanTest.Podman([]string{"export", "-o", outfile, cid})
|
|
export.WaitWithDefaultTimeout()
|
|
Expect(export.ExitCode()).To(Equal(0))
|
|
|
|
importImage := podmanTest.Podman([]string{"import", outfile})
|
|
importImage.WaitWithDefaultTimeout()
|
|
Expect(importImage.ExitCode()).To(Equal(0))
|
|
|
|
results := podmanTest.Podman([]string{"images", "-q"})
|
|
results.WaitWithDefaultTimeout()
|
|
Expect(results.ExitCode()).To(Equal(0))
|
|
Expect(len(results.OutputToStringArray())).To(Equal(3))
|
|
})
|
|
|
|
It("podman import with message flag", func() {
|
|
outfile := filepath.Join(podmanTest.TempDir, "container.tar")
|
|
_, ec, cid := podmanTest.RunLsContainer("")
|
|
Expect(ec).To(Equal(0))
|
|
|
|
export := podmanTest.Podman([]string{"export", "-o", outfile, cid})
|
|
export.WaitWithDefaultTimeout()
|
|
Expect(export.ExitCode()).To(Equal(0))
|
|
|
|
importImage := podmanTest.Podman([]string{"import", "--message", "importing container test message", outfile, "imported-image"})
|
|
importImage.WaitWithDefaultTimeout()
|
|
Expect(importImage.ExitCode()).To(Equal(0))
|
|
|
|
results := podmanTest.Podman([]string{"history", "imported-image", "--format", "{{.Comment}}"})
|
|
results.WaitWithDefaultTimeout()
|
|
Expect(results.ExitCode()).To(Equal(0))
|
|
Expect(results.LineInOuputStartsWith("importing container test message")).To(BeTrue())
|
|
})
|
|
|
|
It("podman import with change flag", func() {
|
|
outfile := filepath.Join(podmanTest.TempDir, "container.tar")
|
|
_, ec, cid := podmanTest.RunLsContainer("")
|
|
Expect(ec).To(Equal(0))
|
|
|
|
export := podmanTest.Podman([]string{"export", "-o", outfile, cid})
|
|
export.WaitWithDefaultTimeout()
|
|
Expect(export.ExitCode()).To(Equal(0))
|
|
|
|
importImage := podmanTest.Podman([]string{"import", "--change", "CMD=/bin/bash", outfile, "imported-image"})
|
|
importImage.WaitWithDefaultTimeout()
|
|
Expect(importImage.ExitCode()).To(Equal(0))
|
|
|
|
results := podmanTest.Podman([]string{"inspect", "imported-image"})
|
|
results.WaitWithDefaultTimeout()
|
|
Expect(results.ExitCode()).To(Equal(0))
|
|
imageData := results.InspectImageJSON()
|
|
Expect(imageData[0].ContainerConfig.Cmd[0]).To(Equal("/bin/bash"))
|
|
})
|
|
|
|
})
|