From e7d086c2be41dfedfa5f2fb0c437eb5bbf6f2f5d Mon Sep 17 00:00:00 2001 From: Alexander Morozov Date: Fri, 12 Dec 2014 10:38:48 -0800 Subject: [PATCH 1/4] Fix vet errors about unkeyed fields Signed-off-by: Alexander Morozov --- daemon/daemon.go | 4 ++-- daemon/execdriver/lxc/driver.go | 12 ++++++------ daemon/execdriver/native/driver.go | 12 ++++++------ daemon/state_test.go | 2 +- integration/runtime_test.go | 2 +- pkg/chrootarchive/archive.go | 2 +- 6 files changed, 17 insertions(+), 17 deletions(-) diff --git a/daemon/daemon.go b/daemon/daemon.go index a2e6a79bd6..2dcd3c3124 100644 --- a/daemon/daemon.go +++ b/daemon/daemon.go @@ -234,7 +234,7 @@ func (daemon *Daemon) register(container *Container, updateSuffixarray bool) err log.Debugf("killing old running container %s", container.ID) existingPid := container.Pid - container.SetStopped(&execdriver.ExitStatus{0, false}) + container.SetStopped(&execdriver.ExitStatus{ExitCode: 0}) // We only have to handle this for lxc because the other drivers will ensure that // no processes are left when docker dies @@ -266,7 +266,7 @@ func (daemon *Daemon) register(container *Container, updateSuffixarray bool) err log.Debugf("Marking as stopped") - container.SetStopped(&execdriver.ExitStatus{-127, false}) + container.SetStopped(&execdriver.ExitStatus{ExitCode: -127}) if err := container.ToDisk(); err != nil { return err } diff --git a/daemon/execdriver/lxc/driver.go b/daemon/execdriver/lxc/driver.go index 642247c851..c02ceae97a 100644 --- a/daemon/execdriver/lxc/driver.go +++ b/daemon/execdriver/lxc/driver.go @@ -76,11 +76,11 @@ func (d *driver) Run(c *execdriver.Command, pipes *execdriver.Pipes, startCallba }) if err := d.generateEnvConfig(c); err != nil { - return execdriver.ExitStatus{-1, false}, err + return execdriver.ExitStatus{ExitCode: -1}, err } configPath, err := d.generateLXCConfig(c) if err != nil { - return execdriver.ExitStatus{-1, false}, err + return execdriver.ExitStatus{ExitCode: -1}, err } params := []string{ "lxc-start", @@ -154,11 +154,11 @@ func (d *driver) Run(c *execdriver.Command, pipes *execdriver.Pipes, startCallba c.ProcessConfig.Args = append([]string{name}, arg...) if err := nodes.CreateDeviceNodes(c.Rootfs, c.AutoCreatedDevices); err != nil { - return execdriver.ExitStatus{-1, false}, err + return execdriver.ExitStatus{ExitCode: -1}, err } if err := c.ProcessConfig.Start(); err != nil { - return execdriver.ExitStatus{-1, false}, err + return execdriver.ExitStatus{ExitCode: -1}, err } var ( @@ -182,7 +182,7 @@ func (d *driver) Run(c *execdriver.Command, pipes *execdriver.Pipes, startCallba c.ProcessConfig.Process.Kill() c.ProcessConfig.Wait() } - return execdriver.ExitStatus{-1, false}, err + return execdriver.ExitStatus{ExitCode: -1}, err } c.ContainerPid = pid @@ -193,7 +193,7 @@ func (d *driver) Run(c *execdriver.Command, pipes *execdriver.Pipes, startCallba <-waitLock - return execdriver.ExitStatus{getExitCode(c), false}, waitErr + return execdriver.ExitStatus{ExitCode: getExitCode(c)}, waitErr } /// Return the exit code of the process diff --git a/daemon/execdriver/native/driver.go b/daemon/execdriver/native/driver.go index 01455a8101..a036abc212 100644 --- a/daemon/execdriver/native/driver.go +++ b/daemon/execdriver/native/driver.go @@ -74,7 +74,7 @@ func (d *driver) Run(c *execdriver.Command, pipes *execdriver.Pipes, startCallba // take the Command and populate the libcontainer.Config from it container, err := d.createContainer(c) if err != nil { - return execdriver.ExitStatus{-1, false}, err + return execdriver.ExitStatus{ExitCode: -1}, err } var term execdriver.Terminal @@ -85,7 +85,7 @@ func (d *driver) Run(c *execdriver.Command, pipes *execdriver.Pipes, startCallba term, err = execdriver.NewStdConsole(&c.ProcessConfig, pipes) } if err != nil { - return execdriver.ExitStatus{-1, false}, err + return execdriver.ExitStatus{ExitCode: -1}, err } c.ProcessConfig.Terminal = term @@ -102,12 +102,12 @@ func (d *driver) Run(c *execdriver.Command, pipes *execdriver.Pipes, startCallba ) if err := d.createContainerRoot(c.ID); err != nil { - return execdriver.ExitStatus{-1, false}, err + return execdriver.ExitStatus{ExitCode: -1}, err } defer d.cleanContainer(c.ID) if err := d.writeContainerFile(container, c.ID); err != nil { - return execdriver.ExitStatus{-1, false}, err + return execdriver.ExitStatus{ExitCode: -1}, err } execOutputChan := make(chan execOutput, 1) @@ -146,7 +146,7 @@ func (d *driver) Run(c *execdriver.Command, pipes *execdriver.Pipes, startCallba select { case execOutput := <-execOutputChan: - return execdriver.ExitStatus{execOutput.exitCode, false}, execOutput.err + return execdriver.ExitStatus{ExitCode: execOutput.exitCode}, execOutput.err case <-waitForStart: break } @@ -161,7 +161,7 @@ func (d *driver) Run(c *execdriver.Command, pipes *execdriver.Pipes, startCallba // wait for the container to exit. execOutput := <-execOutputChan - return execdriver.ExitStatus{execOutput.exitCode, oomKill}, execOutput.err + return execdriver.ExitStatus{ExitCode: execOutput.exitCode, OOMKilled: oomKill}, execOutput.err } func (d *driver) Kill(p *execdriver.Command, sig int) error { diff --git a/daemon/state_test.go b/daemon/state_test.go index 32c005cf2e..861076aeb2 100644 --- a/daemon/state_test.go +++ b/daemon/state_test.go @@ -49,7 +49,7 @@ func TestStateRunStop(t *testing.T) { atomic.StoreInt64(&exit, int64(exitCode)) close(stopped) }() - s.SetStopped(&execdriver.ExitStatus{i, false}) + s.SetStopped(&execdriver.ExitStatus{ExitCode: i}) if s.IsRunning() { t.Fatal("State is running") } diff --git a/integration/runtime_test.go b/integration/runtime_test.go index d173af1f7f..93a32e9f70 100644 --- a/integration/runtime_test.go +++ b/integration/runtime_test.go @@ -653,7 +653,7 @@ func TestRestore(t *testing.T) { if err := container3.Run(); err != nil { t.Fatal(err) } - container2.SetStopped(&execdriver.ExitStatus{0, false}) + container2.SetStopped(&execdriver.ExitStatus{ExitCode: 0}) } func TestDefaultContainerName(t *testing.T) { diff --git a/pkg/chrootarchive/archive.go b/pkg/chrootarchive/archive.go index 0077f930d6..66f837314a 100644 --- a/pkg/chrootarchive/archive.go +++ b/pkg/chrootarchive/archive.go @@ -16,7 +16,7 @@ import ( "github.com/docker/docker/pkg/reexec" ) -var chrootArchiver = &archive.Archiver{Untar} +var chrootArchiver = &archive.Archiver{Untar: Untar} func chroot(path string) error { if err := syscall.Chroot(path); err != nil { From 2540765ddc8889e2757f9ccfbfe852074b61601c Mon Sep 17 00:00:00 2001 From: Alexander Morozov Date: Fri, 12 Dec 2014 10:46:09 -0800 Subject: [PATCH 2/4] Fix vet errors in aufs.go about Lock by value Signed-off-by: Alexander Morozov --- daemon/graphdriver/aufs/aufs.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/daemon/graphdriver/aufs/aufs.go b/daemon/graphdriver/aufs/aufs.go index 55cfd00c1f..210f623e34 100644 --- a/daemon/graphdriver/aufs/aufs.go +++ b/daemon/graphdriver/aufs/aufs.go @@ -134,15 +134,15 @@ func supportsAufs() error { return ErrAufsNotSupported } -func (a Driver) rootPath() string { +func (a *Driver) rootPath() string { return a.root } -func (Driver) String() string { +func (*Driver) String() string { return "aufs" } -func (a Driver) Status() [][2]string { +func (a *Driver) Status() [][2]string { ids, _ := loadIds(path.Join(a.rootPath(), "layers")) return [][2]string{ {"Root Dir", a.rootPath()}, @@ -152,7 +152,7 @@ func (a Driver) Status() [][2]string { // Exists returns true if the given id is registered with // this driver -func (a Driver) Exists(id string) bool { +func (a *Driver) Exists(id string) bool { if _, err := os.Lstat(path.Join(a.rootPath(), "layers", id)); err != nil { return false } From a7ae7fed7311551975d2bccb7417c328be3ea478 Mon Sep 17 00:00:00 2001 From: Alexander Morozov Date: Fri, 12 Dec 2014 10:58:56 -0800 Subject: [PATCH 3/4] Fix vet errors about formatting directives Signed-off-by: Alexander Morozov --- daemon/utils_test.go | 2 +- integration-cli/docker_cli_attach_test.go | 2 +- integration-cli/docker_cli_build_test.go | 2 +- integration-cli/docker_cli_exec_test.go | 2 +- integration-cli/docker_cli_run_test.go | 2 +- pkg/symlink/fs_test.go | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/daemon/utils_test.go b/daemon/utils_test.go index 8a2fa719ed..28a15c64e1 100644 --- a/daemon/utils_test.go +++ b/daemon/utils_test.go @@ -16,7 +16,7 @@ func TestMergeLxcConfig(t *testing.T) { out, err := mergeLxcConfIntoOptions(hostConfig) if err != nil { - t.Fatalf("Failed to merge Lxc Config ", err) + t.Fatalf("Failed to merge Lxc Config: %s", err) } cpuset := out[0] diff --git a/integration-cli/docker_cli_attach_test.go b/integration-cli/docker_cli_attach_test.go index 0530d3896e..cf21cda588 100644 --- a/integration-cli/docker_cli_attach_test.go +++ b/integration-cli/docker_cli_attach_test.go @@ -122,7 +122,7 @@ func TestAttachTtyWithoutStdin(t *testing.T) { if out, _, err := runCommandWithOutput(cmd); err == nil { t.Fatal("attach should have failed") } else if !strings.Contains(out, expected) { - t.Fatal("attach failed with error %q: expected %q", out, expected) + t.Fatalf("attach failed with error %q: expected %q", out, expected) } }() diff --git a/integration-cli/docker_cli_build_test.go b/integration-cli/docker_cli_build_test.go index 0fd5b1363d..bf64bf1eed 100644 --- a/integration-cli/docker_cli_build_test.go +++ b/integration-cli/docker_cli_build_test.go @@ -3799,7 +3799,7 @@ func TestBuildStderr(t *testing.T) { t.Fatal(err) } if stderr != "" { - t.Fatal("Stderr should have been empty, instead its: %q", stderr) + t.Fatalf("Stderr should have been empty, instead its: %q", stderr) } logDone("build - testing stderr") } diff --git a/integration-cli/docker_cli_exec_test.go b/integration-cli/docker_cli_exec_test.go index b07f215a36..747ad4ff8c 100644 --- a/integration-cli/docker_cli_exec_test.go +++ b/integration-cli/docker_cli_exec_test.go @@ -339,7 +339,7 @@ func TestExecTtyWithoutStdin(t *testing.T) { if out, _, err := runCommandWithOutput(cmd); err == nil { t.Fatal("exec should have failed") } else if !strings.Contains(out, expected) { - t.Fatal("exec failed with error %q: expected %q", out, expected) + t.Fatalf("exec failed with error %q: expected %q", out, expected) } }() diff --git a/integration-cli/docker_cli_run_test.go b/integration-cli/docker_cli_run_test.go index 0b56f235fe..5aa7b228fa 100644 --- a/integration-cli/docker_cli_run_test.go +++ b/integration-cli/docker_cli_run_test.go @@ -2759,7 +2759,7 @@ func TestRunTtyWithPipe(t *testing.T) { if out, _, err := runCommandWithOutput(cmd); err == nil { t.Fatal("run should have failed") } else if !strings.Contains(out, expected) { - t.Fatal("run failed with error %q: expected %q", out, expected) + t.Fatalf("run failed with error %q: expected %q", out, expected) } }() diff --git a/pkg/symlink/fs_test.go b/pkg/symlink/fs_test.go index 6b2496c4e0..89209484a3 100644 --- a/pkg/symlink/fs_test.go +++ b/pkg/symlink/fs_test.go @@ -311,7 +311,7 @@ func TestFollowSymlinkEmpty(t *testing.T) { t.Fatal(err) } if res != wd { - t.Fatal("expected %q got %q", wd, res) + t.Fatalf("expected %q got %q", wd, res) } } From c7ff6bf69149bc5892633d95ebfacaf3ad36a008 Mon Sep 17 00:00:00 2001 From: Alexander Morozov Date: Fri, 12 Dec 2014 11:01:46 -0800 Subject: [PATCH 4/4] Fix vet errors about json tags for unexported fields Signed-off-by: Alexander Morozov --- daemon/graphdriver/devmapper/deviceset.go | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/daemon/graphdriver/devmapper/deviceset.go b/daemon/graphdriver/devmapper/deviceset.go index 71502a483c..658000d753 100644 --- a/daemon/graphdriver/devmapper/deviceset.go +++ b/daemon/graphdriver/devmapper/deviceset.go @@ -45,15 +45,15 @@ type Transaction struct { } type DevInfo struct { - Hash string `json:"-"` - DeviceId int `json:"device_id"` - Size uint64 `json:"size"` - TransactionId uint64 `json:"transaction_id"` - Initialized bool `json:"initialized"` - devices *DeviceSet `json:"-"` + Hash string `json:"-"` + DeviceId int `json:"device_id"` + Size uint64 `json:"size"` + TransactionId uint64 `json:"transaction_id"` + Initialized bool `json:"initialized"` + devices *DeviceSet - mountCount int `json:"-"` - mountPath string `json:"-"` + mountCount int + mountPath string // The global DeviceSet lock guarantees that we serialize all // the calls to libdevmapper (which is not threadsafe), but we @@ -65,12 +65,12 @@ type DevInfo struct { // the global lock while holding the per-device locks all // device locks must be aquired *before* the device lock, and // multiple device locks should be aquired parent before child. - lock sync.Mutex `json:"-"` + lock sync.Mutex } type MetaData struct { Devices map[string]*DevInfo `json:"Devices"` - devicesLock sync.Mutex `json:"-"` // Protects all read/writes to Devices map + devicesLock sync.Mutex // Protects all read/writes to Devices map } type DeviceSet struct {