diff options
author | Daniel J Walsh <dwalsh@redhat.com> | 2021-10-15 11:33:30 -0400 |
---|---|---|
committer | Daniel J Walsh <dwalsh@redhat.com> | 2021-10-15 14:40:02 -0400 |
commit | 468e7c689b718229ed062b3daae9373f7459b6e2 (patch) | |
tree | 49b7f0c94eaf360c1612befff2f5cd5fd6b5c92f | |
parent | 171f7b8975194ff9f47a3dd23adec81d11e6d104 (diff) | |
download | podman-468e7c689b718229ed062b3daae9373f7459b6e2.tar.gz podman-468e7c689b718229ed062b3daae9373f7459b6e2.tar.bz2 podman-468e7c689b718229ed062b3daae9373f7459b6e2.zip |
Move CONTAINER_HOST and _CONNECTION to IsRemote Function
Current code does not check early enough.
Follow up to https://github.com/containers/podman/pull/11978
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
-rw-r--r-- | cmd/podman/registry/remote.go | 8 | ||||
-rw-r--r-- | cmd/podman/root.go | 10 | ||||
-rw-r--r-- | test/system/001-basic.bats | 15 |
3 files changed, 21 insertions, 12 deletions
diff --git a/cmd/podman/registry/remote.go b/cmd/podman/registry/remote.go index b5da98bd4..c78930574 100644 --- a/cmd/podman/registry/remote.go +++ b/cmd/podman/registry/remote.go @@ -19,11 +19,17 @@ var remoteFromCLI = struct { // Use in init() functions as an initialization check func IsRemote() bool { remoteFromCLI.sync.Do(func() { + remote := false + if _, ok := os.LookupEnv("CONTAINER_HOST"); ok { + remote = true + } else if _, ok := os.LookupEnv("CONTAINER_CONNECTION"); ok { + remote = true + } fs := pflag.NewFlagSet("remote", pflag.ContinueOnError) fs.ParseErrorsWhitelist.UnknownFlags = true fs.Usage = func() {} fs.SetInterspersed(false) - fs.BoolVarP(&remoteFromCLI.Value, "remote", "r", false, "") + fs.BoolVarP(&remoteFromCLI.Value, "remote", "r", remote, "") // The shell completion logic will call a command called "__complete" or "__completeNoDesc" // This command will always be the second argument diff --git a/cmd/podman/root.go b/cmd/podman/root.go index 734636646..6da34050e 100644 --- a/cmd/podman/root.go +++ b/cmd/podman/root.go @@ -314,15 +314,7 @@ func rootFlags(cmd *cobra.Command, opts *entities.PodmanConfig) { lFlags.StringVar(&opts.Identity, identityFlagName, ident, "path to SSH identity file, (CONTAINER_SSHKEY)") _ = cmd.RegisterFlagCompletionFunc(identityFlagName, completion.AutocompleteDefault) - remote := false - if env, ok := os.LookupEnv("CONTAINER_HOST"); ok { - logrus.Infof("CONTAINER_HOST==%q, defaulting to '--remote=true'", env) - remote = true - } else if env, ok := os.LookupEnv("CONTAINER_CONNECTION"); ok { - logrus.Infof("CONTAINER_CONNECTION==%q, defaulting to '--remote=true'", env) - remote = true - } - lFlags.BoolVarP(&opts.Remote, "remote", "r", remote, "Access remote Podman service") + lFlags.BoolVarP(&opts.Remote, "remote", "r", registry.IsRemote(), "Access remote Podman service") pFlags := cmd.PersistentFlags() if registry.IsRemote() { if err := lFlags.MarkHidden("remote"); err != nil { diff --git a/test/system/001-basic.bats b/test/system/001-basic.bats index 2de96a01a..50735f576 100644 --- a/test/system/001-basic.bats +++ b/test/system/001-basic.bats @@ -98,8 +98,19 @@ function setup() { skip "only applicable on a local run" fi - CONTAINER_HOST=foobar run_podman --log-level=info --help - is "$output" ".*defaulting to '--remote=true'" "CONTAINER_HOST sets --remote true" + CONTAINER_HOST=foobar run_podman --help + # Should not have --remote flag + echo $output | grep -v -qw -- "--remote" + if [ $? -ne 0 ]; then + die "Should not have --remote flag" + fi + + CONTAINER_CONNECTION=foobar run_podman --help + # Should not have --remote flag + echo $output | grep -v -qw -- "--remote" + if [ $? -ne 0 ]; then + die "Should not have --remote flag" + fi } # Check that just calling "podman-remote" prints the usage message even |