Skip to content

Commit

Permalink
Move CONTAINER_HOST and _CONNECTION to IsRemote Function
Browse files Browse the repository at this point in the history
Current code does not check early enough.

Follow up to containers#11978

Signed-off-by: Daniel J Walsh <[email protected]>
  • Loading branch information
rhatdan committed Oct 15, 2021
1 parent 171f7b8 commit 468e7c6
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 12 deletions.
8 changes: 7 additions & 1 deletion cmd/podman/registry/remote.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
10 changes: 1 addition & 9 deletions cmd/podman/root.go
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down
15 changes: 13 additions & 2 deletions test/system/001-basic.bats
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit 468e7c6

Please sign in to comment.