summaryrefslogtreecommitdiff
path: root/cmd/podmanV2/system/service.go
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/podmanV2/system/service.go')
-rw-r--r--cmd/podmanV2/system/service.go124
1 files changed, 0 insertions, 124 deletions
diff --git a/cmd/podmanV2/system/service.go b/cmd/podmanV2/system/service.go
deleted file mode 100644
index 5573f7039..000000000
--- a/cmd/podmanV2/system/service.go
+++ /dev/null
@@ -1,124 +0,0 @@
-package system
-
-import (
- "fmt"
- "os"
- "path/filepath"
- "time"
-
- "github.com/containers/libpod/cmd/podmanV2/registry"
- "github.com/containers/libpod/pkg/domain/entities"
- "github.com/containers/libpod/pkg/rootless"
- "github.com/containers/libpod/pkg/systemd"
- "github.com/containers/libpod/pkg/util"
- "github.com/sirupsen/logrus"
- "github.com/spf13/cobra"
-)
-
-var (
- srvDescription = `Run an API service
-
-Enable a listening service for API access to Podman commands.
-`
-
- srvCmd = &cobra.Command{
- Use: "service [flags] [URI]",
- Args: cobra.MaximumNArgs(1),
- Short: "Run API service",
- Long: srvDescription,
- RunE: service,
- Example: `podman system service --time=0 unix:///tmp/podman.sock
- podman system service --varlink --time=0 unix:///tmp/podman.sock`,
- }
-
- srvArgs = struct {
- Timeout int64
- Varlink bool
- }{}
-)
-
-func init() {
- registry.Commands = append(registry.Commands, registry.CliCommand{
- Mode: []entities.EngineMode{entities.ABIMode},
- Command: srvCmd,
- Parent: systemCmd,
- })
-
- flags := srvCmd.Flags()
- flags.Int64VarP(&srvArgs.Timeout, "time", "t", 5, "Time until the service session expires in seconds. Use 0 to disable the timeout")
- flags.Int64Var(&srvArgs.Timeout, "timeout", 5, "Time until the service session expires in seconds. Use 0 to disable the timeout")
- flags.BoolVar(&srvArgs.Varlink, "varlink", false, "Use legacy varlink service instead of REST")
-
- _ = flags.MarkDeprecated("varlink", "valink API is deprecated.")
-}
-
-func service(cmd *cobra.Command, args []string) error {
- apiURI, err := resolveApiURI(args)
- if err != nil {
- return err
- }
- logrus.Infof("using API endpoint: \"%s\"", apiURI)
-
- opts := entities.ServiceOptions{
- URI: apiURI,
- Timeout: time.Duration(srvArgs.Timeout) * time.Second,
- Command: cmd,
- }
-
- if srvArgs.Varlink {
- return registry.ContainerEngine().VarlinkService(registry.GetContext(), opts)
- }
-
- logrus.Warn("This function is EXPERIMENTAL")
- fmt.Fprintf(os.Stderr, "This function is EXPERIMENTAL.\n")
- return registry.ContainerEngine().RestService(registry.GetContext(), opts)
-}
-
-func resolveApiURI(_url []string) (string, error) {
-
- // When determining _*THE*_ listening endpoint --
- // 1) User input wins always
- // 2) systemd socket activation
- // 3) rootless honors XDG_RUNTIME_DIR
- // 4) if varlink -- adapter.DefaultVarlinkAddress
- // 5) lastly adapter.DefaultAPIAddress
-
- if _url == nil {
- if v, found := os.LookupEnv("PODMAN_SOCKET"); found {
- _url = []string{v}
- }
- }
-
- switch {
- case len(_url) > 0:
- return _url[0], nil
- case systemd.SocketActivated():
- logrus.Info("using systemd socket activation to determine API endpoint")
- return "", nil
- case rootless.IsRootless():
- xdg, err := util.GetRuntimeDir()
- if err != nil {
- return "", err
- }
-
- socketName := "podman.sock"
- if srvArgs.Varlink {
- socketName = "io.podman"
- }
- socketDir := filepath.Join(xdg, "podman", socketName)
- if _, err := os.Stat(filepath.Dir(socketDir)); err != nil {
- if os.IsNotExist(err) {
- if err := os.Mkdir(filepath.Dir(socketDir), 0755); err != nil {
- return "", err
- }
- } else {
- return "", err
- }
- }
- return "unix:" + socketDir, nil
- case srvArgs.Varlink:
- return registry.DefaultVarlinkAddress, nil
- default:
- return registry.DefaultAPIAddress, nil
- }
-}