Return errors in NewDaemonFromDirectory instead of calling Fatal

Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
This commit is contained in:
Jessica Frazelle 2014-09-16 10:42:59 -07:00
parent 67c254a60a
commit 23b2c39a40
1 changed files with 6 additions and 7 deletions

View File

@ -705,25 +705,24 @@ func NewDaemonFromDirectory(config *Config, eng *engine.Engine) (*Daemon, error)
} }
// Check that the system is supported and we have sufficient privileges // Check that the system is supported and we have sufficient privileges
// FIXME: return errors instead of calling Fatal
if runtime.GOOS != "linux" { 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 { 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 { if err := checkKernelAndArch(); err != nil {
log.Fatalf(err.Error()) return nil, err
} }
// set up the TempDir to use a canonical path // set up the TempDir to use a canonical path
tmp, err := utils.TempDir(config.Root) tmp, err := utils.TempDir(config.Root)
if err != nil { 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) realTmp, err := utils.ReadSymlinkedDirectory(tmp)
if err != nil { 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) os.Setenv("TMPDIR", realTmp)
if !config.EnableSelinuxSupport { if !config.EnableSelinuxSupport {
@ -737,7 +736,7 @@ func NewDaemonFromDirectory(config *Config, eng *engine.Engine) (*Daemon, error)
} else { } else {
realRoot, err = utils.ReadSymlinkedDirectory(config.Root) realRoot, err = utils.ReadSymlinkedDirectory(config.Root)
if err != nil { 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 config.Root = realRoot