diff options
author | Sujil02 <sushah@redhat.com> | 2020-05-21 03:50:33 -0400 |
---|---|---|
committer | Sujil02 <sushah@redhat.com> | 2020-05-21 11:56:17 -0400 |
commit | 9415670722373d1c374da3587ce953b3d99f8961 (patch) | |
tree | 81de0c544fcd77be0c00586e1f1c511623f31c1d | |
parent | 09f8f14b4f7d09946d3d5cfc5460ec9923f7da59 (diff) | |
download | podman-9415670722373d1c374da3587ce953b3d99f8961.tar.gz podman-9415670722373d1c374da3587ce953b3d99f8961.tar.bz2 podman-9415670722373d1c374da3587ce953b3d99f8961.zip |
Fixes podman pod create --pod-id-file #6292
Prints pod id to file and adds relevant test case
Signed-off-by: Sujil02 <sushah@redhat.com>
-rw-r--r-- | cmd/podman/pods/create.go | 6 | ||||
-rw-r--r-- | test/e2e/pod_create_test.go | 24 |
2 files changed, 30 insertions, 0 deletions
diff --git a/cmd/podman/pods/create.go b/cmd/podman/pods/create.go index e24cdef98..88b615fab 100644 --- a/cmd/podman/pods/create.go +++ b/cmd/podman/pods/create.go @@ -3,6 +3,7 @@ package pods import ( "context" "fmt" + "io/ioutil" "os" "strings" @@ -147,6 +148,11 @@ func create(cmd *cobra.Command, args []string) error { if err != nil { return err } + if len(podIDFile) > 0 { + if err = ioutil.WriteFile(podIDFile, []byte(response.Id), 0644); err != nil { + return errors.Wrapf(err, "failed to write pod ID to file %q", podIDFile) + } + } fmt.Println(response.Id) return nil } diff --git a/test/e2e/pod_create_test.go b/test/e2e/pod_create_test.go index 2f86776cc..0ac1f9f84 100644 --- a/test/e2e/pod_create_test.go +++ b/test/e2e/pod_create_test.go @@ -2,7 +2,9 @@ package integration import ( "fmt" + "io/ioutil" "os" + "path/filepath" "strings" . "github.com/containers/libpod/test/utils" @@ -284,4 +286,26 @@ var _ = Describe("Podman pod create", func() { podCreate.WaitWithDefaultTimeout() Expect(podCreate.ExitCode()).To(Equal(125)) }) + + It("podman create pod and print id to external file", func() { + // Switch to temp dir and restore it afterwards + cwd, err := os.Getwd() + Expect(err).To(BeNil()) + Expect(os.Chdir(os.TempDir())).To(BeNil()) + targetPath := filepath.Join(os.TempDir(), "dir") + Expect(os.MkdirAll(targetPath, 0755)).To(BeNil()) + targetFile := filepath.Join(targetPath, "idFile") + defer Expect(os.RemoveAll(targetFile)).To(BeNil()) + defer Expect(os.Chdir(cwd)).To(BeNil()) + + session := podmanTest.Podman([]string{"pod", "create", "--name=abc", "--pod-id-file", targetFile}) + session.WaitWithDefaultTimeout() + Expect(session.ExitCode()).To(Equal(0)) + + id, _ := ioutil.ReadFile(targetFile) + check := podmanTest.Podman([]string{"pod", "inspect", "abc"}) + check.WaitWithDefaultTimeout() + data := check.InspectPodToJSON() + Expect(data.ID).To(Equal(string(id))) + }) }) |