Sfoglia il codice sorgente

Return errors in NewDaemonFromDirectory instead of calling Fatal

Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
Jessica Frazelle 10 anni fa
parent
commit
23b2c39a40
1 ha cambiato i file con 6 aggiunte e 7 eliminazioni
  1. 6 7
      daemon/daemon.go

+ 6 - 7
daemon/daemon.go

@@ -705,25 +705,24 @@ func NewDaemonFromDirectory(config *Config, eng *engine.Engine) (*Daemon, error)
 	}
 
 	// Check that the system is supported and we have sufficient privileges
-	// FIXME: return errors instead of calling Fatal
 	if runtime.GOOS != "linux" {
-		log.Fatalf("The Docker daemon is only supported on linux")
+		return nil, fmt.Errorf("The Docker daemon is only supported on linux")
 	}
 	if os.Geteuid() != 0 {
-		log.Fatalf("The Docker daemon needs to be run as root")
+		return nil, fmt.Errorf("The Docker daemon needs to be run as root")
 	}
 	if err := checkKernelAndArch(); err != nil {
-		log.Fatalf(err.Error())
+		return nil, err
 	}
 
 	// set up the TempDir to use a canonical path
 	tmp, err := utils.TempDir(config.Root)
 	if err != nil {
-		log.Fatalf("Unable to get the TempDir under %s: %s", config.Root, err)
+		return nil, fmt.Errorf("Unable to get the TempDir under %s: %s", config.Root, err)
 	}
 	realTmp, err := utils.ReadSymlinkedDirectory(tmp)
 	if err != nil {
-		log.Fatalf("Unable to get the full path to the TempDir (%s): %s", tmp, err)
+		return nil, fmt.Errorf("Unable to get the full path to the TempDir (%s): %s", tmp, err)
 	}
 	os.Setenv("TMPDIR", realTmp)
 	if !config.EnableSelinuxSupport {
@@ -737,7 +736,7 @@ func NewDaemonFromDirectory(config *Config, eng *engine.Engine) (*Daemon, error)
 	} else {
 		realRoot, err = utils.ReadSymlinkedDirectory(config.Root)
 		if err != nil {
-			log.Fatalf("Unable to get the full path to root (%s): %s", config.Root, err)
+			return nil, fmt.Errorf("Unable to get the full path to root (%s): %s", config.Root, err)
 		}
 	}
 	config.Root = realRoot