mirror of
https://github.com/containers/podman.git
synced 2025-06-20 09:03:43 +08:00
Fix handling of --cidfile on create/run
Currently create and run are ignoring the cidfile flag. Enable stop_test.go to make sure this works. Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
This commit is contained in:
@ -2,12 +2,15 @@ package containers
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"os"
|
||||||
|
|
||||||
"github.com/containers/common/pkg/config"
|
"github.com/containers/common/pkg/config"
|
||||||
"github.com/containers/libpod/cmd/podman/common"
|
"github.com/containers/libpod/cmd/podman/common"
|
||||||
"github.com/containers/libpod/cmd/podman/registry"
|
"github.com/containers/libpod/cmd/podman/registry"
|
||||||
"github.com/containers/libpod/pkg/domain/entities"
|
"github.com/containers/libpod/pkg/domain/entities"
|
||||||
|
"github.com/containers/libpod/pkg/errorhandling"
|
||||||
"github.com/containers/libpod/pkg/specgen"
|
"github.com/containers/libpod/pkg/specgen"
|
||||||
|
"github.com/containers/libpod/pkg/util"
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/sirupsen/logrus"
|
"github.com/sirupsen/logrus"
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
@ -79,6 +82,16 @@ func create(cmd *cobra.Command, args []string) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
cidFile, err := openCidFile(cliVals.CIDFile)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if cidFile != nil {
|
||||||
|
defer errorhandling.CloseQuiet(cidFile)
|
||||||
|
defer errorhandling.SyncQuiet(cidFile)
|
||||||
|
}
|
||||||
|
|
||||||
if rfs := cliVals.RootFS; !rfs {
|
if rfs := cliVals.RootFS; !rfs {
|
||||||
rawImageInput = args[0]
|
rawImageInput = args[0]
|
||||||
}
|
}
|
||||||
@ -101,6 +114,14 @@ func create(cmd *cobra.Command, args []string) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if cidFile != nil {
|
||||||
|
_, err = cidFile.WriteString(report.Id)
|
||||||
|
if err != nil {
|
||||||
|
logrus.Error(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fmt.Println(report.Id)
|
fmt.Println(report.Id)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@ -154,3 +175,17 @@ func pullImage(imageName string) error {
|
|||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func openCidFile(cidfile string) (*os.File, error) {
|
||||||
|
if cidfile == "" {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
cidFile, err := util.OpenExclusiveFile(cidfile)
|
||||||
|
if err != nil && os.IsExist(err) {
|
||||||
|
return nil, errors.Errorf("container id file exists. Ensure another container is not using it or delete %s", cidfile)
|
||||||
|
}
|
||||||
|
if err != nil {
|
||||||
|
return nil, errors.Errorf("error opening cidfile %s", cidfile)
|
||||||
|
}
|
||||||
|
return cidFile, nil
|
||||||
|
}
|
||||||
|
@ -9,6 +9,7 @@ import (
|
|||||||
"github.com/containers/libpod/cmd/podman/registry"
|
"github.com/containers/libpod/cmd/podman/registry"
|
||||||
"github.com/containers/libpod/libpod/define"
|
"github.com/containers/libpod/libpod/define"
|
||||||
"github.com/containers/libpod/pkg/domain/entities"
|
"github.com/containers/libpod/pkg/domain/entities"
|
||||||
|
"github.com/containers/libpod/pkg/errorhandling"
|
||||||
"github.com/containers/libpod/pkg/specgen"
|
"github.com/containers/libpod/pkg/specgen"
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/sirupsen/logrus"
|
"github.com/sirupsen/logrus"
|
||||||
@ -89,6 +90,15 @@ func run(cmd *cobra.Command, args []string) error {
|
|||||||
return errors.Wrapf(err, "error checking authfile path %s", af)
|
return errors.Wrapf(err, "error checking authfile path %s", af)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
cidFile, err := openCidFile(cliVals.CIDFile)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if cidFile != nil {
|
||||||
|
defer errorhandling.CloseQuiet(cidFile)
|
||||||
|
defer errorhandling.SyncQuiet(cidFile)
|
||||||
|
}
|
||||||
runOpts.Rm = cliVals.Rm
|
runOpts.Rm = cliVals.Rm
|
||||||
if err := createInit(cmd); err != nil {
|
if err := createInit(cmd); err != nil {
|
||||||
return err
|
return err
|
||||||
@ -140,6 +150,13 @@ func run(cmd *cobra.Command, args []string) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
if cidFile != nil {
|
||||||
|
_, err = cidFile.WriteString(report.Id)
|
||||||
|
if err != nil {
|
||||||
|
logrus.Error(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if cliVals.Detach {
|
if cliVals.Detach {
|
||||||
fmt.Println(report.Id)
|
fmt.Println(report.Id)
|
||||||
return nil
|
return nil
|
||||||
|
@ -18,7 +18,6 @@ var _ = Describe("Podman stop", func() {
|
|||||||
)
|
)
|
||||||
|
|
||||||
BeforeEach(func() {
|
BeforeEach(func() {
|
||||||
Skip(v2fail)
|
|
||||||
tempdir, err = CreateTempDirInTempDir()
|
tempdir, err = CreateTempDirInTempDir()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
|
Reference in New Issue
Block a user