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>
This commit is contained in:
Sujil02 2020-05-21 03:50:33 -04:00
parent 09f8f14b4f
commit 9415670722
2 changed files with 30 additions and 0 deletions

View File

@ -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
}

View File

@ -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)))
})
})