Browse code

Use errors.Wrap() in daemon errors, and cleanup messages

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>

Sebastiaan van Stijn authored on 2018/08/22 23:00:22
Showing 3 changed files
... ...
@@ -103,7 +103,7 @@ func (cli *DaemonCli) start(opts *daemonOptions) (err error) {
103 103
 	system.InitLCOW(cli.Config.Experimental)
104 104
 
105 105
 	if err := setDefaultUmask(); err != nil {
106
-		return fmt.Errorf("Failed to set umask: %v", err)
106
+		return err
107 107
 	}
108 108
 
109 109
 	// Create the daemon root before we create ANY other files (PID, or migrate keys)
... ...
@@ -119,7 +119,7 @@ func (cli *DaemonCli) start(opts *daemonOptions) (err error) {
119 119
 	if cli.Pidfile != "" {
120 120
 		pf, err := pidfile.New(cli.Pidfile)
121 121
 		if err != nil {
122
-			return fmt.Errorf("Error starting daemon: %v", err)
122
+			return errors.Wrap(err, "failed to start daemon")
123 123
 		}
124 124
 		defer func() {
125 125
 			if err := pf.Remove(); err != nil {
... ...
@@ -130,13 +130,13 @@ func (cli *DaemonCli) start(opts *daemonOptions) (err error) {
130 130
 
131 131
 	serverConfig, err := newAPIServerConfig(cli)
132 132
 	if err != nil {
133
-		return fmt.Errorf("Failed to create API server: %v", err)
133
+		return errors.Wrap(err, "failed to create API server")
134 134
 	}
135 135
 	cli.api = apiserver.New(serverConfig)
136 136
 
137 137
 	hosts, err := loadListeners(cli, serverConfig)
138 138
 	if err != nil {
139
-		return fmt.Errorf("Failed to load listeners: %v", err)
139
+		return errors.Wrap(err, "failed to load listeners")
140 140
 	}
141 141
 
142 142
 	ctx, cancel := context.WithCancel(context.Background())
... ...
@@ -144,13 +144,13 @@ func (cli *DaemonCli) start(opts *daemonOptions) (err error) {
144 144
 		opts, err := cli.getContainerdDaemonOpts()
145 145
 		if err != nil {
146 146
 			cancel()
147
-			return fmt.Errorf("Failed to generate containerd options: %v", err)
147
+			return errors.Wrap(err, "failed to generate containerd options")
148 148
 		}
149 149
 
150 150
 		r, err := supervisor.Start(ctx, filepath.Join(cli.Config.Root, "containerd"), filepath.Join(cli.Config.ExecRoot, "containerd"), opts...)
151 151
 		if err != nil {
152 152
 			cancel()
153
-			return fmt.Errorf("Failed to start containerd: %v", err)
153
+			return errors.Wrap(err, "failed to start containerd")
154 154
 		}
155 155
 
156 156
 		cli.Config.ContainerdAddr = r.Address()
... ...
@@ -176,20 +176,20 @@ func (cli *DaemonCli) start(opts *daemonOptions) (err error) {
176 176
 
177 177
 	d, err := daemon.NewDaemon(ctx, cli.Config, pluginStore)
178 178
 	if err != nil {
179
-		return fmt.Errorf("Error starting daemon: %v", err)
179
+		return errors.Wrap(err, "failed to start daemon")
180 180
 	}
181 181
 
182 182
 	d.StoreHosts(hosts)
183 183
 
184 184
 	// validate after NewDaemon has restored enabled plugins. Dont change order.
185 185
 	if err := validateAuthzPlugins(cli.Config.AuthorizationPlugins, pluginStore); err != nil {
186
-		return fmt.Errorf("Error validating authorization plugin: %v", err)
186
+		return errors.Wrap(err, "failed to validate authorization plugin")
187 187
 	}
188 188
 
189 189
 	// TODO: move into startMetricsServer()
190 190
 	if cli.Config.MetricsAddress != "" {
191 191
 		if !d.HasExperimental() {
192
-			return fmt.Errorf("metrics-addr is only supported when experimental is enabled")
192
+			return errors.Wrap(err, "metrics-addr is only supported when experimental is enabled")
193 193
 		}
194 194
 		if err := startMetricsServer(cli.Config.MetricsAddress); err != nil {
195 195
 			return err
... ...
@@ -243,7 +243,7 @@ func (cli *DaemonCli) start(opts *daemonOptions) (err error) {
243 243
 	cancel()
244 244
 
245 245
 	if errAPI != nil {
246
-		return fmt.Errorf("Shutting down due to ServeAPI error: %v", errAPI)
246
+		return errors.Wrap(errAPI, "shutting down due to ServeAPI error")
247 247
 	}
248 248
 
249 249
 	return nil
... ...
@@ -412,14 +412,14 @@ func loadDaemonCliConfig(opts *daemonOptions) (*config.Config, error) {
412 412
 	}
413 413
 
414 414
 	if flags.Changed("graph") && flags.Changed("data-root") {
415
-		return nil, fmt.Errorf(`cannot specify both "--graph" and "--data-root" option`)
415
+		return nil, errors.New(`cannot specify both "--graph" and "--data-root" option`)
416 416
 	}
417 417
 
418 418
 	if opts.configFile != "" {
419 419
 		c, err := config.MergeDaemonConfigurations(conf, flags, opts.configFile)
420 420
 		if err != nil {
421 421
 			if flags.Changed("config-file") || !os.IsNotExist(err) {
422
-				return nil, fmt.Errorf("unable to configure the Docker daemon with file %s: %v", opts.configFile, err)
422
+				return nil, errors.Wrapf(err, "unable to configure the Docker daemon with file %s", opts.configFile)
423 423
 			}
424 424
 		}
425 425
 		// the merged configuration can be nil if the config file didn't exist.
... ...
@@ -592,7 +592,7 @@ func loadListeners(cli *DaemonCli, serverConfig *apiserver.Config) ([]string, er
592 592
 	for i := 0; i < len(cli.Config.Hosts); i++ {
593 593
 		var err error
594 594
 		if cli.Config.Hosts[i], err = dopts.ParseHost(cli.Config.TLS, cli.Config.Hosts[i]); err != nil {
595
-			return nil, fmt.Errorf("error parsing -H %s : %v", cli.Config.Hosts[i], err)
595
+			return nil, errors.Wrapf(err, "error parsing -H %s", cli.Config.Hosts[i])
596 596
 		}
597 597
 
598 598
 		protoAddr := cli.Config.Hosts[i]
... ...
@@ -570,7 +570,7 @@ func (s *DockerDaemonSuite) TestDaemonExitOnFailure(c *check.C) {
570 570
 			c.Fatalf("Expected daemon not to start, got %v", err)
571 571
 		}
572 572
 		// look in the log and make sure we got the message that daemon is shutting down
573
-		icmd.RunCommand("grep", "Error starting daemon", s.d.LogFileName()).Assert(c, icmd.Success)
573
+		icmd.RunCommand("grep", "failed to start daemon", s.d.LogFileName()).Assert(c, icmd.Success)
574 574
 	} else {
575 575
 		//if we didn't get an error and the daemon is running, this is a failure
576 576
 		c.Fatal("Conflicting options should cause the daemon to error out with a failure")
... ...
@@ -201,7 +201,7 @@ func (d *Daemon) Start(t testingT, args ...string) {
201 201
 		ht.Helper()
202 202
 	}
203 203
 	if err := d.StartWithError(args...); err != nil {
204
-		t.Fatalf("Error starting daemon with arguments %v : %v", args, err)
204
+		t.Fatalf("failed to start daemon with arguments %v : %v", args, err)
205 205
 	}
206 206
 }
207 207