diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2019-03-06 09:24:22 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-03-06 09:24:22 -0800 |
commit | c6c0b54c361df623378706ca5e41faac309ab7ac (patch) | |
tree | 3694ec6a3953469c7db115e2e00fb7e2a1ced003 /cmd/podman/healthcheck_run.go | |
parent | 2b5a9628324c4d93769d72d3d8c85667eaac612a (diff) | |
parent | 598bde52d02eb82634c6b1fa357253f03120a4a0 (diff) | |
download | podman-c6c0b54c361df623378706ca5e41faac309ab7ac.tar.gz podman-c6c0b54c361df623378706ca5e41faac309ab7ac.tar.bz2 podman-c6c0b54c361df623378706ca5e41faac309ab7ac.zip |
Merge pull request #2491 from baude/healtcheckphase1
podman healthcheck run (phase 1)
Diffstat (limited to 'cmd/podman/healthcheck_run.go')
-rw-r--r-- | cmd/podman/healthcheck_run.go | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/cmd/podman/healthcheck_run.go b/cmd/podman/healthcheck_run.go new file mode 100644 index 000000000..a91f87146 --- /dev/null +++ b/cmd/podman/healthcheck_run.go @@ -0,0 +1,53 @@ +package main + +import ( + "fmt" + "github.com/containers/libpod/cmd/podman/cliconfig" + "github.com/containers/libpod/libpod" + "github.com/containers/libpod/pkg/adapter" + "github.com/pkg/errors" + "github.com/spf13/cobra" +) + +var ( + healthcheckRunCommand cliconfig.HealthCheckValues + healthcheckRunDescription = "run the health check of a container" + _healthcheckrunCommand = &cobra.Command{ + Use: "run CONTAINER", + Short: "run the health check of a container", + Long: healthcheckRunDescription, + Example: `podman healthcheck run mywebapp`, + RunE: func(cmd *cobra.Command, args []string) error { + healthcheckRunCommand.InputArgs = args + healthcheckRunCommand.GlobalFlags = MainGlobalOpts + return healthCheckCmd(&healthcheckRunCommand) + }, + Args: func(cmd *cobra.Command, args []string) error { + if len(args) < 1 || len(args) > 1 { + return errors.New("must provide the name or ID of one container") + } + return nil + }, + } +) + +func init() { + healthcheckRunCommand.Command = _healthcheckrunCommand + healthcheckRunCommand.SetUsageTemplate(UsageTemplate()) +} + +func healthCheckCmd(c *cliconfig.HealthCheckValues) error { + runtime, err := adapter.GetRuntime(&c.PodmanCommand) + if err != nil { + return errors.Wrap(err, "could not get runtime") + } + status, err := runtime.HealthCheck(c) + if err != nil { + if status == libpod.HealthCheckFailure { + fmt.Println("\nunhealthy") + } + return err + } + fmt.Println("\nhealthy") + return nil +} |