[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