[ARVADOS] created: 2.1.0-380-ge85a787d2
Git user
git at public.arvados.org
Thu Feb 4 19:57:00 UTC 2021
at e85a787d224545accc7ee1e8cdda0145dd9ac806 (commit)
commit e85a787d224545accc7ee1e8cdda0145dd9ac806
Author: Tom Clegg <tom at curii.com>
Date: Thu Feb 4 14:55:25 2021 -0500
17212: Propagate -listen-host to postgresql and passenger.
Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tom at curii.com>
diff --git a/lib/boot/nginx.go b/lib/boot/nginx.go
index d14d05152..dc4aebd52 100644
--- a/lib/boot/nginx.go
+++ b/lib/boot/nginx.go
@@ -53,12 +53,12 @@ func (runNginx) Run(ctx context.Context, fail func(error), super *Supervisor) er
{"WORKBENCH1", super.cluster.Services.Workbench1},
{"WS", super.cluster.Services.Websocket},
} {
- port, err := internalPort(cmpt.svc)
+ host, port, err := internalPort(cmpt.svc)
if err != nil {
return fmt.Errorf("%s internal port: %w (%v)", cmpt.varname, err, cmpt.svc)
}
- if ok, err := addrIsLocal(net.JoinHostPort(super.ListenHost, port)); !ok || err != nil {
- return fmt.Errorf("urlIsLocal() failed for host %q port %q: %v", super.ListenHost, port, err)
+ if ok, err := addrIsLocal(net.JoinHostPort(host, port)); !ok || err != nil {
+ return fmt.Errorf("urlIsLocal() failed for host %q port %q: %v", host, port, err)
}
vars[cmpt.varname+"PORT"] = port
diff --git a/lib/boot/passenger.go b/lib/boot/passenger.go
index 420393997..0340ebc8c 100644
--- a/lib/boot/passenger.go
+++ b/lib/boot/passenger.go
@@ -102,7 +102,7 @@ func (runner runPassenger) Run(ctx context.Context, fail func(error), super *Sup
if err != nil {
return err
}
- port, err := internalPort(runner.svc)
+ host, port, err := internalPort(runner.svc)
if err != nil {
return fmt.Errorf("bug: no internalPort for %q: %v (%#v)", runner, err, runner.svc)
}
@@ -130,7 +130,9 @@ func (runner runPassenger) Run(ctx context.Context, fail func(error), super *Sup
cmdline := []string{
"bundle", "exec",
"passenger", "start",
- "-p", port,
+ "--address", host,
+ "--port", port,
+ "--log-file", "/dev/stderr",
"--log-level", loglevel,
"--no-friendly-error-pages",
"--disable-anonymous-telemetry",
diff --git a/lib/boot/postgresql.go b/lib/boot/postgresql.go
index 4ed7603d2..d105b0b62 100644
--- a/lib/boot/postgresql.go
+++ b/lib/boot/postgresql.go
@@ -113,6 +113,7 @@ func (runPostgreSQL) Run(ctx context.Context, fail func(error), super *Superviso
"-l", // enable ssl
"-D", datadir, // data dir
"-k", datadir, // socket dir
+ "-h", super.cluster.PostgreSQL.Connection["host"],
"-p", super.cluster.PostgreSQL.Connection["port"],
}
opts := runOptions{}
diff --git a/lib/boot/supervisor.go b/lib/boot/supervisor.go
index 77504deb0..961ed55de 100644
--- a/lib/boot/supervisor.go
+++ b/lib/boot/supervisor.go
@@ -734,7 +734,7 @@ func (super *Supervisor) autofillConfig(cfg *arvados.Config) error {
if super.OwnTemporaryDatabase {
cluster.PostgreSQL.Connection = arvados.PostgreSQLConnection{
"client_encoding": "utf8",
- "host": "localhost",
+ "host": super.ListenHost,
"port": nextPort(super.ListenHost),
"dbname": "arvados_test",
"user": "arvados",
@@ -768,21 +768,23 @@ func randomHexString(chars int) string {
return fmt.Sprintf("%x", b)
}
-func internalPort(svc arvados.Service) (string, error) {
+func internalPort(svc arvados.Service) (host, port string, err error) {
if len(svc.InternalURLs) > 1 {
- return "", errors.New("internalPort() doesn't work with multiple InternalURLs")
+ return "", "", errors.New("internalPort() doesn't work with multiple InternalURLs")
}
for u := range svc.InternalURLs {
u := url.URL(u)
- if p := u.Port(); p != "" {
- return p, nil
- } else if u.Scheme == "https" || u.Scheme == "ws" {
- return "443", nil
- } else {
- return "80", nil
+ host, port = u.Hostname(), u.Port()
+ switch {
+ case port != "":
+ case u.Scheme == "https", u.Scheme == "ws":
+ port = "443"
+ default:
+ port = "80"
}
+ return
}
- return "", fmt.Errorf("service has no InternalURLs")
+ return "", "", fmt.Errorf("service has no InternalURLs")
}
func externalPort(svc arvados.Service) (string, error) {
-----------------------------------------------------------------------
hooks/post-receive
--
More information about the arvados-commits
mailing list