mirror of
https://github.com/containers/podman.git
synced 2025-06-22 09:58:10 +08:00
Add --host and -H as equivalent options to --url
Docker supports -H and --host for specify the listening socket. Podman should support them also in order to match the CLI. These will not be documented since Podman defaults to using the --url option. Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
This commit is contained in:

committed by
Matthew Heon

parent
183fdea5f5
commit
e4b82c77f7
@ -31,11 +31,11 @@ func IsRemote() bool {
|
||||
fs.SetInterspersed(false)
|
||||
fs.BoolVarP(&remoteFromCLI.Value, "remote", "r", remote, "")
|
||||
connectionFlagName := "connection"
|
||||
ignoredConnection := ""
|
||||
fs.StringVarP(&ignoredConnection, connectionFlagName, "c", "", "")
|
||||
fs.StringP(connectionFlagName, "c", "", "")
|
||||
hostFlagName := "host"
|
||||
fs.StringP(hostFlagName, "H", "", "")
|
||||
urlFlagName := "url"
|
||||
ignoredURL := ""
|
||||
fs.StringVar(&ignoredURL, urlFlagName, "", "")
|
||||
fs.String(urlFlagName, "", "")
|
||||
|
||||
// The shell completion logic will call a command called "__complete" or "__completeNoDesc"
|
||||
// This command will always be the second argument
|
||||
@ -46,7 +46,7 @@ func IsRemote() bool {
|
||||
}
|
||||
_ = fs.Parse(os.Args[start:])
|
||||
// --connection or --url implies --remote
|
||||
remoteFromCLI.Value = remoteFromCLI.Value || fs.Changed(connectionFlagName) || fs.Changed(urlFlagName)
|
||||
remoteFromCLI.Value = remoteFromCLI.Value || fs.Changed(connectionFlagName) || fs.Changed(urlFlagName) || fs.Changed(hostFlagName)
|
||||
})
|
||||
return podmanOptions.EngineMode == entities.TunnelMode || remoteFromCLI.Value
|
||||
}
|
||||
|
@ -345,6 +345,8 @@ func rootFlags(cmd *cobra.Command, opts *entities.PodmanConfig) {
|
||||
urlFlagName := "url"
|
||||
lFlags.StringVar(&opts.URI, urlFlagName, uri, "URL to access Podman service (CONTAINER_HOST)")
|
||||
_ = cmd.RegisterFlagCompletionFunc(urlFlagName, completion.AutocompleteDefault)
|
||||
lFlags.StringVarP(&opts.URI, "host", "H", uri, "Used for Docker compatibility")
|
||||
_ = lFlags.MarkHidden("host")
|
||||
|
||||
// Context option added just for compatibility with DockerCLI.
|
||||
lFlags.String("context", "default", "Name of the context to use to connect to the daemon (This flag is a NOOP and provided solely for scripting compatibility.)")
|
||||
|
@ -400,4 +400,23 @@ EOF
|
||||
run_podman rm -f -t 0 $cname
|
||||
}
|
||||
|
||||
@test "podman-system-service containers --host" {
|
||||
skip_if_remote "N/A under podman-remote"
|
||||
|
||||
SERVICE_NAME=podman-service-$(random_string)
|
||||
port=$(random_free_port)
|
||||
URL=tcp://127.0.0.1:$port
|
||||
|
||||
systemd-run --unit=$SERVICE_NAME $PODMAN system service $URL --time=0
|
||||
wait_for_port 127.0.0.1 $port
|
||||
|
||||
run_podman --host $URL run --rm $IMAGE true
|
||||
run_podman -H $URL run --rm $IMAGE true
|
||||
|
||||
systemctl stop $SERVICE_NAME
|
||||
|
||||
# Make sure the option is actually connecting
|
||||
run_podman 125 --host $URL run --rm $IMAGE true
|
||||
assert "$output" =~ "Cannot connect to Podman.*connection refused"
|
||||
}
|
||||
# vim: filetype=sh
|
||||
|
Reference in New Issue
Block a user