Browse Source

etcdmain: report default advertise detection / fallback

Anthony Romano 9 years ago
parent
commit
2cc245e8bf
1 changed files with 14 additions and 1 deletions
  1. 14 1
      etcdmain/etcd.go

+ 14 - 1
etcdmain/etcd.go

@@ -60,6 +60,8 @@ func startEtcdOrProxyV2() {
 	grpc.EnableTracing = false
 	grpc.EnableTracing = false
 
 
 	cfg := newConfig()
 	cfg := newConfig()
+	defaultInitialCluster := cfg.InitialCluster
+
 	err := cfg.parse(os.Args[1:])
 	err := cfg.parse(os.Args[1:])
 	if err != nil {
 	if err != nil {
 		plog.Errorf("error verifying flags, %v. See 'etcd --help'.", err)
 		plog.Errorf("error verifying flags, %v. See 'etcd --help'.", err)
@@ -83,7 +85,9 @@ func startEtcdOrProxyV2() {
 	plog.Infof("setting maximum number of CPUs to %d, total number of available CPUs is %d", GoMaxProcs, runtime.NumCPU())
 	plog.Infof("setting maximum number of CPUs to %d, total number of available CPUs is %d", GoMaxProcs, runtime.NumCPU())
 
 
 	// TODO: check whether fields are set instead of whether fields have default value
 	// TODO: check whether fields are set instead of whether fields have default value
-	if cfg.Name != embed.DefaultName && cfg.InitialCluster == cfg.InitialClusterFromName(embed.DefaultName) {
+	defaultHost, defaultHostErr := cfg.IsDefaultHost()
+	defaultHostOverride := defaultHost == "" || defaultHostErr == nil
+	if (defaultHostOverride || cfg.Name != embed.DefaultName) && cfg.InitialCluster == defaultInitialCluster {
 		cfg.InitialCluster = cfg.InitialClusterFromName(cfg.Name)
 		cfg.InitialCluster = cfg.InitialClusterFromName(cfg.Name)
 	}
 	}
 
 
@@ -184,6 +188,15 @@ func startEtcdOrProxyV2() {
 
 
 // startEtcd runs StartEtcd in addition to hooks needed for standalone etcd.
 // startEtcd runs StartEtcd in addition to hooks needed for standalone etcd.
 func startEtcd(cfg *embed.Config) (<-chan struct{}, <-chan error, error) {
 func startEtcd(cfg *embed.Config) (<-chan struct{}, <-chan error, error) {
+	defaultHost, dhErr := cfg.IsDefaultHost()
+	if defaultHost != "" {
+		if dhErr == nil {
+			plog.Infof("advertising using detected default host %q", defaultHost)
+		} else {
+			plog.Noticef("failed to detect default host, advertise falling back to %q (%v)", defaultHost, dhErr)
+		}
+	}
+
 	e, err := embed.StartEtcd(cfg)
 	e, err := embed.StartEtcd(cfg)
 	if err != nil {
 	if err != nil {
 		return nil, nil, err
 		return nil, nil, err