diff options
author | Arne Juul <arnej@yahoo-inc.com> | 2018-04-13 10:58:38 +0000 |
---|---|---|
committer | Arne Juul <arnej@yahoo-inc.com> | 2018-04-16 13:57:57 +0000 |
commit | b58cbe68e30c37cb67e4eb18e3a7a29a12722f1a (patch) | |
tree | de7e3312cc4a1c18a719958cb8ee0fa259c14c98 | |
parent | 7c90afed7e18ebac57ba0dd7986c1a4159f78c98 (diff) |
handle VESPA_CONFIGSERVERS
* also some refactoring
* also, make C++ code (in defaults) handle same variable variants,
like services__addr_configserver
* also, update some error messages to indicate that VESPA_CONFIGSERVERS
is the variable we expected to use
5 files changed, 33 insertions, 21 deletions
diff --git a/config-model/src/main/perl/vespa-deploy b/config-model/src/main/perl/vespa-deploy index cb198c170a5..8a74d97e868 100755 --- a/config-model/src/main/perl/vespa-deploy +++ b/config-model/src/main/perl/vespa-deploy @@ -310,13 +310,13 @@ sub get_configsource_url { my $configsource_url = shift(@configsources); if (!$configsource_url) { - die "Could not get url to config server, make sure that VESPA_HOME and services.addr_configserver is set\n"; + die "Could not get url to config server, make sure that VESPA_HOME and VESPA_CONFIGSERVERS are set\n"; } chomp($configsource_url); my @temp = split(':', $configsource_url, 3); $configsource_url = $temp[0] . ":" . $temp[1] . ":" . $port; if (!$configsource_url) { - print "Could not get url to config server, make sure that services.addr_configserver is set\n"; + print "Could not get url to config server, make sure that VESPA_CONFIGSERVERS is set\n"; exit 1; } diff --git a/config/src/apps/vespa-config/vespa-config.pl b/config/src/apps/vespa-config/vespa-config.pl index 61a1714873a..735a8054f52 100755 --- a/config/src/apps/vespa-config/vespa-config.pl +++ b/config/src/apps/vespa-config/vespa-config.pl @@ -76,7 +76,6 @@ my $myHostname = `vespa-print-default hostname`; chomp $myHostname; my $default_configproxy_port = "19090"; my $default_configserver_port = "19070"; -my $zk_client_port; my $base_cfg_dir = $VESPA_HOME . "/conf/vespa"; @@ -84,9 +83,6 @@ my $base_cfg_dir = $VESPA_HOME . "/conf/vespa"; # of in environment variables my $lookupInConfig = 0; -sub vespa_base_env { - $zk_client_port = getCCSVar('zookeeper_clientPort', 2181); -} sub getValue { my ($varname, $prefix) = @_; @@ -131,11 +127,12 @@ sub getCCSVar { return $default; } -sub getVar { +sub getServicesVar { my ($varname, $default, $warn) = @_; # print "GET var '$varname'\n"; my $cloud = getValue($varname, "services"); my $vespa = getValue($varname, "vespa_base"); + my $plain = $ENV{$varname}; if (defined($cloud) && defined($vespa)) { print STDERR "Found settings for both services.$varname and vespa_base.$varname, using settings from services\n"; } @@ -143,22 +140,32 @@ sub getVar { return $cloud; } elsif (defined($vespa)) { return $vespa; + } elsif (defined($plain)) { + return $plain; } elsif ($warn > 0) { print STDERR "No value found for 'services.$varname' or 'vespa_base.$varname'; using '$default'\n"; } return $default; } +sub getConfigServerPort { + my $port = getServicesVar('port_configserver_rpc', $default_configserver_port, 0); + return $port; +} + sub printConfigServerPort { - my $port = getVar('port_configserver_rpc', $default_configserver_port, 0); + my $port = getConfigServerPort(); print "$port\n"; } sub getConfigServers { my @ret; - my $addr = getVar('addr_configserver', $myHostname, 1); - my $port = getVar('port_configserver_rpc', $default_configserver_port, 0); + my $addr = $ENV{'VESPA_CONFIGSERVERS'}; + if (! defined($addr)) { + $addr = getServicesVar('addr_configserver', $myHostname, 1); + } + my $port = getConfigServerPort(); my $h; foreach $h (split(/,|\s+/, $addr)) { @@ -171,7 +178,12 @@ sub getConfigServers { return @ret; } +sub getZKPort { + my $zk_client_port = getCCSVar('zookeeper_clientPort', 2181); + return $zk_client_port; +} sub getZKString { + my $zk_client_port = getZKPort(); my $out; my $addr; foreach $addr (getConfigServers()) { @@ -188,8 +200,8 @@ sub printZKString { } sub printAllConfigSourcesWithPort { - my $cfport = getVar('port_configserver_rpc', $default_configserver_port, 0); - my $cpport = getVar('port_configproxy_rpc', $default_configproxy_port, 0); + my $cfport = getConfigServerPort(); + my $cpport = getServicesVar('port_configproxy_rpc', $default_configproxy_port, 0); my $addr = "localhost"; my $out = "tcp/${addr}:${cpport}"; foreach $addr (getConfigServers()) { @@ -279,39 +291,33 @@ if ( @ARGV == 0 ) { } if ( $ARGV[0] eq "-allconfigsources" ) { - vespa_base_env(); printAllConfigSourcesWithPort(); exit 0; } if ( $ARGV[0] eq "-configsources" ) { - vespa_base_env(); printConfigSources(); exit 0; } if ( $ARGV[0] eq "-confighttpsources" ) { $lookupInConfig = 1; - vespa_base_env(); printConfigHttpSources(); exit 0; } if ( $ARGV[0] eq "-zkstring" ) { - vespa_base_env(); printZKString(); exit 0; } if ( $ARGV[0] eq "-configserverport" ) { $lookupInConfig = 1; - vespa_base_env(); printConfigServerPort(); exit 0; } if ( $ARGV[0] eq "-zkclientport" ) { - vespa_base_env(); + my $zk_client_port = getZKPort(); print "$zk_client_port\n"; exit 0; } if ( $ARGV[0] eq "-isthisaconfigserver" ) { - vespa_base_env(); isThisAConfigServer(); exit 0; } diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/zookeeper/ConfigCurator.java b/configserver/src/main/java/com/yahoo/vespa/config/server/zookeeper/ConfigCurator.java index faf25a16321..92d7589ea43 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/zookeeper/ConfigCurator.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/zookeeper/ConfigCurator.java @@ -392,7 +392,7 @@ public class ConfigCurator { catch (Exception e) { log.log(LogLevel.ERROR, "Unable to contact ZooKeeper on " + curator.connectionSpec() + ". Please verify for all configserver nodes that " + - "services.addr_configserver points to the correct configserver(s), " + + "VESPA_CONFIGSERVERS points to the correct configserver(s), " + "the same configserver(s) as in services.xml, and that they are started. " + "Check the log(s) for configserver errors. Aborting.", e); } diff --git a/configserver/src/main/sh/start-configserver b/configserver/src/main/sh/start-configserver index eed616cfe35..daad42f7895 100755 --- a/configserver/src/main/sh/start-configserver +++ b/configserver/src/main/sh/start-configserver @@ -87,7 +87,7 @@ fixddir ${VESPA_HOME}/var/zookeeper/version-2 ${VESPA_HOME}/libexec/vespa/vespa-config.pl -isthisaconfigserver 1>/dev/null if [ "$?" != "0" ] ; then - echo "Not able to start config server, host `hostname` is not part of 'services.addr_configserver'" + echo "Not able to start config server, host `hostname` is not part of 'VESPA_CONFIGSERVERS'" exit 1; fi diff --git a/defaults/src/vespa/defaults.cpp b/defaults/src/vespa/defaults.cpp index d10e4064f83..05e621d2dc2 100644 --- a/defaults/src/vespa/defaults.cpp +++ b/defaults/src/vespa/defaults.cpp @@ -100,6 +100,12 @@ void findDefaults() { } env = getenv("VESPA_CONFIGSERVERS"); if (env == NULL || *env == '\0') { + env = getenv("services__addr_configserver"); + } + if (env == NULL || *env == '\0') { + env = getenv("vespa_base__addr_configserver"); + } + if (env == NULL || *env == '\0') { env = getenv("addr_configserver"); } if (env != NULL && *env != '\0') { |