diff options
author | Brent Baude <bbaude@redhat.com> | 2020-04-16 12:25:26 -0500 |
---|---|---|
committer | Brent Baude <bbaude@redhat.com> | 2020-04-16 15:53:58 -0500 |
commit | 241326a9a8c20ad7f2bcf651416b836e7778e090 (patch) | |
tree | 4001e8e47a022bb1b9bfbf2332c42e1aeb802f9e /cmd/podmanV2/registry | |
parent | 88c6fd06cd54fb9a8826306dfdf1a77e400de5de (diff) | |
download | podman-241326a9a8c20ad7f2bcf651416b836e7778e090.tar.gz podman-241326a9a8c20ad7f2bcf651416b836e7778e090.tar.bz2 podman-241326a9a8c20ad7f2bcf651416b836e7778e090.zip |
Podman V2 birth
remote podman v1 and replace with podman v2.
Signed-off-by: Brent Baude <bbaude@redhat.com>
Diffstat (limited to 'cmd/podmanV2/registry')
-rw-r--r-- | cmd/podmanV2/registry/config.go | 106 | ||||
-rw-r--r-- | cmd/podmanV2/registry/registry.go | 116 | ||||
-rw-r--r-- | cmd/podmanV2/registry/remote.go | 9 |
3 files changed, 0 insertions, 231 deletions
diff --git a/cmd/podmanV2/registry/config.go b/cmd/podmanV2/registry/config.go deleted file mode 100644 index 358f9172e..000000000 --- a/cmd/podmanV2/registry/config.go +++ /dev/null @@ -1,106 +0,0 @@ -package registry - -import ( - "fmt" - "os" - "path/filepath" - "runtime" - "strings" - - "github.com/containers/common/pkg/config" - "github.com/containers/libpod/pkg/domain/entities" - "github.com/containers/libpod/pkg/rootless" - "github.com/containers/libpod/pkg/util" - "github.com/pkg/errors" -) - -const ( - ParentNSRequired = "ParentNSRequired" -) - -var ( - PodmanOptions entities.PodmanConfig -) - -// NewPodmanConfig creates a PodmanConfig from the environment -func NewPodmanConfig() entities.PodmanConfig { - if err := setXdgDirs(); err != nil { - fmt.Fprintf(os.Stderr, err.Error()) - os.Exit(1) - } - - var mode entities.EngineMode - switch runtime.GOOS { - case "darwin": - fallthrough - case "windows": - mode = entities.TunnelMode - case "linux": - mode = entities.ABIMode - default: - fmt.Fprintf(os.Stderr, "%s is not a supported OS", runtime.GOOS) - os.Exit(1) - } - - // cobra.Execute() may not be called yet, so we peek at os.Args. - for _, v := range os.Args { - // Prefix checking works because of how default EngineMode's - // have been defined. - if strings.HasPrefix(v, "--remote") { - mode = entities.TunnelMode - } - } - - // FIXME: for rootless, add flag to get the path to override configuration - cfg, err := config.NewConfig("") - if err != nil { - fmt.Fprint(os.Stderr, "Failed to obtain podman configuration: "+err.Error()) - os.Exit(1) - } - - cfg.Network.NetworkConfigDir = cfg.Network.CNIPluginDirs[0] - if rootless.IsRootless() { - cfg.Network.NetworkConfigDir = "" - } - - return entities.PodmanConfig{Config: cfg, EngineMode: mode} -} - -// SetXdgDirs ensures the XDG_RUNTIME_DIR env and XDG_CONFIG_HOME variables are set. -// containers/image uses XDG_RUNTIME_DIR to locate the auth file, XDG_CONFIG_HOME is -// use for the libpod.conf configuration file. -func setXdgDirs() error { - if !rootless.IsRootless() { - return nil - } - - // Setup XDG_RUNTIME_DIR - if _, found := os.LookupEnv("XDG_RUNTIME_DIR"); !found { - dir, err := util.GetRuntimeDir() - if err != nil { - return err - } - if err := os.Setenv("XDG_RUNTIME_DIR", dir); err != nil { - return errors.Wrapf(err, "cannot set XDG_RUNTIME_DIR="+dir) - } - } - - if _, found := os.LookupEnv("DBUS_SESSION_BUS_ADDRESS"); !found { - sessionAddr := filepath.Join(os.Getenv("XDG_RUNTIME_DIR"), "bus") - if _, err := os.Stat(sessionAddr); err == nil { - os.Setenv("DBUS_SESSION_BUS_ADDRESS", "unix:path="+sessionAddr) - } - } - - // Setup XDG_CONFIG_HOME - if _, found := os.LookupEnv("XDG_CONFIG_HOME"); !found { - cfgHomeDir, err := util.GetRootlessConfigHomeDir() - if err != nil { - return err - } - if err := os.Setenv("XDG_CONFIG_HOME", cfgHomeDir); err != nil { - return errors.Wrapf(err, "cannot set XDG_CONFIG_HOME="+cfgHomeDir) - } - } - return nil -} diff --git a/cmd/podmanV2/registry/registry.go b/cmd/podmanV2/registry/registry.go deleted file mode 100644 index 1c5e5d21b..000000000 --- a/cmd/podmanV2/registry/registry.go +++ /dev/null @@ -1,116 +0,0 @@ -package registry - -import ( - "context" - - "github.com/containers/libpod/pkg/domain/entities" - "github.com/containers/libpod/pkg/domain/infra" - "github.com/pkg/errors" - "github.com/spf13/cobra" -) - -// DefaultAPIAddress is the default address of the REST socket -const DefaultAPIAddress = "unix:/run/podman/podman.sock" - -// DefaultVarlinkAddress is the default address of the varlink socket -const DefaultVarlinkAddress = "unix:/run/podman/io.podman" - -type CliCommand struct { - Mode []entities.EngineMode - Command *cobra.Command - Parent *cobra.Command -} - -const ExecErrorCodeGeneric = 125 - -var ( - cliCtx context.Context - containerEngine entities.ContainerEngine - exitCode = ExecErrorCodeGeneric - imageEngine entities.ImageEngine - - // Commands holds the cobra.Commands to present to the user, including - // parent if not a child of "root" - Commands []CliCommand -) - -func SetExitCode(code int) { - exitCode = code -} - -func GetExitCode() int { - return exitCode -} - -func ImageEngine() entities.ImageEngine { - return imageEngine -} - -// NewImageEngine is a wrapper for building an ImageEngine to be used for PreRunE functions -func NewImageEngine(cmd *cobra.Command, args []string) (entities.ImageEngine, error) { - if imageEngine == nil { - PodmanOptions.FlagSet = cmd.Flags() - engine, err := infra.NewImageEngine(PodmanOptions) - if err != nil { - return nil, err - } - imageEngine = engine - } - return imageEngine, nil -} - -func ContainerEngine() entities.ContainerEngine { - return containerEngine -} - -// NewContainerEngine is a wrapper for building an ContainerEngine to be used for PreRunE functions -func NewContainerEngine(cmd *cobra.Command, args []string) (entities.ContainerEngine, error) { - if containerEngine == nil { - PodmanOptions.FlagSet = cmd.Flags() - engine, err := infra.NewContainerEngine(PodmanOptions) - if err != nil { - return nil, err - } - containerEngine = engine - } - return containerEngine, nil -} - -func SubCommandExists(cmd *cobra.Command, args []string) error { - if len(args) > 0 { - return errors.Errorf("unrecognized command `%[1]s %[2]s`\nTry '%[1]s --help' for more information.", cmd.CommandPath(), args[0]) - } - return errors.Errorf("missing command '%[1]s COMMAND'\nTry '%[1]s --help' for more information.", cmd.CommandPath()) -} - -// IdOrLatestArgs used to validate a nameOrId was provided or the "--latest" flag -func IdOrLatestArgs(cmd *cobra.Command, args []string) error { - if len(args) > 1 || (len(args) == 0 && !cmd.Flag("latest").Changed) { - return errors.New(`command requires a name, id or the "--latest" flag`) - } - return nil -} - -type PodmanOptionsKey struct{} - -func Context() context.Context { - if cliCtx == nil { - cliCtx = ContextWithOptions(context.Background()) - } - return cliCtx -} - -func ContextWithOptions(ctx context.Context) context.Context { - cliCtx = context.WithValue(ctx, PodmanOptionsKey{}, PodmanOptions) - return cliCtx -} - -// GetContextWithOptions deprecated, use NewContextWithOptions() -func GetContextWithOptions() context.Context { - return ContextWithOptions(context.Background()) -} - -// GetContext deprecated, use Context() -func GetContext() context.Context { - return Context() -} diff --git a/cmd/podmanV2/registry/remote.go b/cmd/podmanV2/registry/remote.go deleted file mode 100644 index 5378701e7..000000000 --- a/cmd/podmanV2/registry/remote.go +++ /dev/null @@ -1,9 +0,0 @@ -package registry - -import ( - "github.com/containers/libpod/pkg/domain/entities" -) - -func IsRemote() bool { - return PodmanOptions.EngineMode == entities.TunnelMode -} |