From 23b2c39a40186ce9b6deb4ae9201d5c20cc75abe Mon Sep 17 00:00:00 2001 From: Jessica Frazelle Date: Tue, 16 Sep 2014 10:42:59 -0700 Subject: [PATCH] Return errors in NewDaemonFromDirectory instead of calling Fatal Docker-DCO-1.1-Signed-off-by: Jessica Frazelle (github: jfrazelle) --- daemon/daemon.go | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/daemon/daemon.go b/daemon/daemon.go index 5fef43b357..0eab60420e 100644 --- a/daemon/daemon.go +++ b/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