diff options
author | baude <bbaude@redhat.com> | 2018-12-01 13:51:58 -0600 |
---|---|---|
committer | baude <bbaude@redhat.com> | 2018-12-03 12:00:18 -0600 |
commit | 318bf7017bcb82da9f73cfce9e3a963b61252788 (patch) | |
tree | a572d02d29dacb4ad9b59887e7f8a7daac722b24 /cmd/podman | |
parent | 5bb66a47a46ea3cd66a86889d39b57bb28256c7a (diff) | |
download | podman-318bf7017bcb82da9f73cfce9e3a963b61252788.tar.gz podman-318bf7017bcb82da9f73cfce9e3a963b61252788.tar.bz2 podman-318bf7017bcb82da9f73cfce9e3a963b61252788.zip |
podman pod exists
like containers and images, users would benefit from being able to check
if a pod exists in local storage. if the pod exists, the return code is 0.
if the pod does not exists, the return code is 1. Any other return code
indicates a real errors, such as permissions or runtime.
Signed-off-by: baude <bbaude@redhat.com>
Diffstat (limited to 'cmd/podman')
-rw-r--r-- | cmd/podman/exists.go | 37 | ||||
-rw-r--r-- | cmd/podman/pod.go | 1 |
2 files changed, 38 insertions, 0 deletions
diff --git a/cmd/podman/exists.go b/cmd/podman/exists.go index 2f7b7c185..2e2559ec7 100644 --- a/cmd/podman/exists.go +++ b/cmd/podman/exists.go @@ -44,6 +44,23 @@ var ( } ) +var ( + podExistsDescription = ` + podman pod exists + + Check if a pod exists in local storage +` + + podExistsCommand = cli.Command{ + Name: "exists", + Usage: "Check if a pod exists in local storage", + Description: podExistsDescription, + Action: podExistsCmd, + ArgsUsage: "POD-NAME", + OnUsageError: usageErrorHandler, + } +) + func imageExistsCmd(c *cli.Context) error { args := c.Args() if len(args) > 1 || len(args) < 1 { @@ -81,3 +98,23 @@ func containerExistsCmd(c *cli.Context) error { } return nil } + +func podExistsCmd(c *cli.Context) error { + args := c.Args() + if len(args) > 1 || len(args) < 1 { + return errors.New("you may only check for the existence of one pod at a time") + } + runtime, err := libpodruntime.GetRuntime(c) + if err != nil { + return errors.Wrapf(err, "could not get runtime") + } + defer runtime.Shutdown(false) + + if _, err := runtime.LookupPod(args[0]); err != nil { + if errors.Cause(err) == libpod.ErrNoSuchPod { + os.Exit(1) + } + return err + } + return nil +} diff --git a/cmd/podman/pod.go b/cmd/podman/pod.go index 0c6ec5e8c..a30361134 100644 --- a/cmd/podman/pod.go +++ b/cmd/podman/pod.go @@ -11,6 +11,7 @@ Pods are a group of one or more containers sharing the same network, pid and ipc ` podSubCommands = []cli.Command{ podCreateCommand, + podExistsCommand, podInspectCommand, podKillCommand, podPauseCommand, |