diff --git a/integration-cli/daemon/daemon.go b/integration-cli/daemon/daemon.go index 7cb6db1b37..f8ba48c383 100644 --- a/integration-cli/daemon/daemon.go +++ b/integration-cli/daemon/daemon.go @@ -92,7 +92,7 @@ func (d *Daemon) CheckActiveContainerCount(c *testing.T) (interface{}, string) { out, err := d.Cmd("ps", "-q") assert.NilError(c, err) if len(strings.TrimSpace(out)) == 0 { - return 0, nil + return 0, "" } return len(strings.Split(strings.TrimSpace(out), "\n")), fmt.Sprintf("output: %q", string(out)) } diff --git a/integration-cli/daemon/daemon_swarm.go b/integration-cli/daemon/daemon_swarm.go index 2551147b84..8acc30d210 100644 --- a/integration-cli/daemon/daemon_swarm.go +++ b/integration-cli/daemon/daemon_swarm.go @@ -26,7 +26,7 @@ func (d *Daemon) CheckServiceTasksInState(service string, state swarm.TaskState, } } } - return count, nil + return count, "" } } @@ -43,7 +43,7 @@ func (d *Daemon) CheckServiceTasksInStateWithError(service string, state swarm.T } } } - return count, nil + return count, "" } } @@ -57,9 +57,9 @@ func (d *Daemon) CheckServiceUpdateState(service string) func(*testing.T) (inter return func(c *testing.T) (interface{}, string) { service := d.GetService(c, service) if service.UpdateStatus == nil { - return "", nil + return "", "" } - return service.UpdateStatus.State, nil + return service.UpdateStatus.State, "" } } @@ -93,7 +93,7 @@ func (d *Daemon) CheckPluginImage(plugin string) func(c *testing.T) (interface{} func (d *Daemon) CheckServiceTasks(service string) func(*testing.T) (interface{}, string) { return func(c *testing.T) (interface{}, string) { tasks := d.GetServiceTasks(c, service) - return len(tasks), nil + return len(tasks), "" } } @@ -118,7 +118,7 @@ func (d *Daemon) CheckRunningTaskNetworks(c *testing.T) (interface{}, string) { result[network.Target]++ } } - return result, nil + return result, "" } // CheckRunningTaskImages returns the times each image is running as a task. @@ -142,7 +142,7 @@ func (d *Daemon) CheckRunningTaskImages(c *testing.T) (interface{}, string) { result[task.Spec.ContainerSpec.Image]++ } } - return result, nil + return result, "" } // CheckNodeReadyCount returns the number of ready node on the swarm @@ -154,20 +154,20 @@ func (d *Daemon) CheckNodeReadyCount(c *testing.T) (interface{}, string) { readyCount++ } } - return readyCount, nil + return readyCount, "" } // CheckLocalNodeState returns the current swarm node state func (d *Daemon) CheckLocalNodeState(c *testing.T) (interface{}, string) { info := d.SwarmInfo(c) - return info.LocalNodeState, nil + return info.LocalNodeState, "" } // CheckControlAvailable returns the current swarm control available func (d *Daemon) CheckControlAvailable(c *testing.T) (interface{}, string) { info := d.SwarmInfo(c) assert.Equal(c, info.LocalNodeState, swarm.LocalNodeStateActive) - return info.ControlAvailable, nil + return info.ControlAvailable, "" } // CheckLeader returns whether there is a leader on the swarm or not @@ -184,7 +184,7 @@ func (d *Daemon) CheckLeader(c *testing.T) (interface{}, string) { for _, node := range ls { if node.ManagerStatus != nil && node.ManagerStatus.Leader { - return nil, nil + return nil, "" } } return fmt.Errorf("no leader"), "could not find leader" diff --git a/integration-cli/docker_api_exec_test.go b/integration-cli/docker_api_exec_test.go index 118fd05316..9edc33427f 100644 --- a/integration-cli/docker_api_exec_test.go +++ b/integration-cli/docker_api_exec_test.go @@ -218,7 +218,7 @@ func (s *DockerSuite) TestExecStateCleanup(c *testing.T) { checkReadDir := func(c *testing.T) (interface{}, string) { fi, err := ioutil.ReadDir(stateDir) assert.NilError(c, err) - return len(fi), nil + return len(fi), "" } fi, err := ioutil.ReadDir(stateDir) diff --git a/integration-cli/docker_api_swarm_service_test.go b/integration-cli/docker_api_swarm_service_test.go index fac46f87cf..e190fde20f 100644 --- a/integration-cli/docker_api_swarm_service_test.go +++ b/integration-cli/docker_api_swarm_service_test.go @@ -231,7 +231,7 @@ func (s *DockerSwarmSuite) TestAPISwarmServicesUpdateStartFirst(c *testing.T) { startingTasks = append(startingTasks, t) } } - return startingTasks, nil + return startingTasks, "" }, checker.HasLen, expected) return startingTasks diff --git a/integration-cli/docker_api_swarm_test.go b/integration-cli/docker_api_swarm_test.go index bb02a07d7b..6f8f53be3b 100644 --- a/integration-cli/docker_api_swarm_test.go +++ b/integration-cli/docker_api_swarm_test.go @@ -229,7 +229,7 @@ func (s *DockerSwarmSuite) TestAPISwarmPromoteDemote(c *testing.T) { } certs, err := helpers.ParseCertificatesPEM(certBytes) if err == nil && len(certs) > 0 && len(certs[0].Subject.OrganizationalUnit) > 0 { - return certs[0].Subject.OrganizationalUnit[0], nil + return certs[0].Subject.OrganizationalUnit[0], "" } return "", "could not get organizational unit from certificate" }, checker.Equals, "swarm-worker") @@ -405,7 +405,7 @@ func (s *DockerSwarmSuite) TestAPISwarmRaftQuorum(c *testing.T) { // d1 will eventually step down from leader because there is no longer an active quorum, wait for that to happen waitAndAssert(c, defaultReconciliationTimeout*2, func(c *testing.T) (interface{}, string) { _, err := cli.ServiceCreate(context.Background(), service.Spec, types.ServiceCreateOptions{}) - return err.Error(), nil + return err.Error(), "" }, checker.Contains, "Make sure more than half of the managers are online.") d2.StartNode(c) @@ -756,7 +756,7 @@ func checkClusterHealth(c *testing.T, cl []*daemon.Daemon, managerCount, workerC for _, n := range d.ListNodes(c) { waitReady := func(c *testing.T) (interface{}, string) { if n.Status.State == swarm.NodeStateReady { - return true, nil + return true, "" } nn := d.GetNode(c, n.ID) n = *nn @@ -766,7 +766,7 @@ func checkClusterHealth(c *testing.T, cl []*daemon.Daemon, managerCount, workerC waitActive := func(c *testing.T) (interface{}, string) { if n.Spec.Availability == swarm.NodeAvailabilityActive { - return true, nil + return true, "" } nn := d.GetNode(c, n.ID) n = *nn diff --git a/integration-cli/docker_cli_daemon_test.go b/integration-cli/docker_cli_daemon_test.go index b13d6550b2..42cc4cb3e5 100644 --- a/integration-cli/docker_cli_daemon_test.go +++ b/integration-cli/docker_cli_daemon_test.go @@ -2073,7 +2073,7 @@ func (s *DockerDaemonSuite) TestDaemonRestartWithUnpausedRunningContainer(t *tes // the resume event might be received after we do the inspect waitAndAssert(t, defaultReconciliationTimeout, func(*testing.T) (interface{}, string) { result := icmd.RunCommand("kill", "-0", strings.TrimSpace(pid)) - return result.ExitCode, nil + return result.ExitCode, "" }, checker.Equals, 0) // restart the daemon diff --git a/integration-cli/docker_cli_prune_unix_test.go b/integration-cli/docker_cli_prune_unix_test.go index f4b1ad9375..2ab6e3943b 100644 --- a/integration-cli/docker_cli_prune_unix_test.go +++ b/integration-cli/docker_cli_prune_unix_test.go @@ -27,7 +27,7 @@ func pruneNetworkAndVerify(c *testing.T, d *daemon.Daemon, kept, pruned []string waitAndAssert(c, defaultReconciliationTimeout, func(*testing.T) (interface{}, string) { out, err := d.Cmd("network", "ls", "--format", "{{.Name}}") assert.NilError(c, err) - return out, nil + return out, "" }, checker.Contains, s) } @@ -35,7 +35,7 @@ func pruneNetworkAndVerify(c *testing.T, d *daemon.Daemon, kept, pruned []string waitAndAssert(c, defaultReconciliationTimeout, func(*testing.T) (interface{}, string) { out, err := d.Cmd("network", "ls", "--format", "{{.Name}}") assert.NilError(c, err) - return out, nil + return out, "" }, checker.Not(checker.Contains), s) } } diff --git a/integration-cli/docker_cli_restart_test.go b/integration-cli/docker_cli_restart_test.go index aced423775..7dae613fe7 100644 --- a/integration-cli/docker_cli_restart_test.go +++ b/integration-cli/docker_cli_restart_test.go @@ -38,7 +38,7 @@ func (s *DockerSuite) TestRestartRunningContainer(c *testing.T) { getLogs := func(c *testing.T) (interface{}, string) { out, _ := dockerCmd(c, "logs", cleanedContainerID) - return out, nil + return out, "" } // Wait 10 seconds for the 'echo' to appear in the logs diff --git a/integration-cli/docker_cli_service_create_test.go b/integration-cli/docker_cli_service_create_test.go index f988d49bfd..9bb8dffc97 100644 --- a/integration-cli/docker_cli_service_create_test.go +++ b/integration-cli/docker_cli_service_create_test.go @@ -25,7 +25,7 @@ func (s *DockerSwarmSuite) TestServiceCreateMountVolume(c *testing.T) { var tasks []swarm.Task waitAndAssert(c, defaultReconciliationTimeout, func(c *testing.T) (interface{}, string) { tasks = d.GetServiceTasks(c, id) - return len(tasks) > 0, nil + return len(tasks) > 0, "" }, checker.Equals, true) task := tasks[0] @@ -33,7 +33,7 @@ func (s *DockerSwarmSuite) TestServiceCreateMountVolume(c *testing.T) { if task.NodeID == "" || task.Status.ContainerStatus == nil { task = d.GetTask(c, task.ID) } - return task.NodeID != "" && task.Status.ContainerStatus != nil, nil + return task.NodeID != "" && task.Status.ContainerStatus != nil, "" }, checker.Equals, true) // check container mount config @@ -139,7 +139,7 @@ func (s *DockerSwarmSuite) TestServiceCreateWithSecretSourceTargetPaths(c *testi var tasks []swarm.Task waitAndAssert(c, defaultReconciliationTimeout, func(c *testing.T) (interface{}, string) { tasks = d.GetServiceTasks(c, serviceName) - return len(tasks) > 0, nil + return len(tasks) > 0, "" }, checker.Equals, true) task := tasks[0] @@ -147,7 +147,7 @@ func (s *DockerSwarmSuite) TestServiceCreateWithSecretSourceTargetPaths(c *testi if task.NodeID == "" || task.Status.ContainerStatus == nil { task = d.GetTask(c, task.ID) } - return task.NodeID != "" && task.Status.ContainerStatus != nil, nil + return task.NodeID != "" && task.Status.ContainerStatus != nil, "" }, checker.Equals, true) for testName, testTarget := range testPaths { @@ -189,7 +189,7 @@ func (s *DockerSwarmSuite) TestServiceCreateWithSecretReferencedTwice(c *testing var tasks []swarm.Task waitAndAssert(c, defaultReconciliationTimeout, func(c *testing.T) (interface{}, string) { tasks = d.GetServiceTasks(c, serviceName) - return len(tasks) > 0, nil + return len(tasks) > 0, "" }, checker.Equals, true) task := tasks[0] @@ -197,7 +197,7 @@ func (s *DockerSwarmSuite) TestServiceCreateWithSecretReferencedTwice(c *testing if task.NodeID == "" || task.Status.ContainerStatus == nil { task = d.GetTask(c, task.ID) } - return task.NodeID != "" && task.Status.ContainerStatus != nil, nil + return task.NodeID != "" && task.Status.ContainerStatus != nil, "" }, checker.Equals, true) for _, target := range []string{"target1", "target2"} { @@ -286,7 +286,7 @@ func (s *DockerSwarmSuite) TestServiceCreateWithConfigSourceTargetPaths(c *testi var tasks []swarm.Task waitAndAssert(c, defaultReconciliationTimeout, func(c *testing.T) (interface{}, string) { tasks = d.GetServiceTasks(c, serviceName) - return len(tasks) > 0, nil + return len(tasks) > 0, "" }, checker.Equals, true) task := tasks[0] @@ -294,7 +294,7 @@ func (s *DockerSwarmSuite) TestServiceCreateWithConfigSourceTargetPaths(c *testi if task.NodeID == "" || task.Status.ContainerStatus == nil { task = d.GetTask(c, task.ID) } - return task.NodeID != "" && task.Status.ContainerStatus != nil, nil + return task.NodeID != "" && task.Status.ContainerStatus != nil, "" }, checker.Equals, true) for testName, testTarget := range testPaths { @@ -336,7 +336,7 @@ func (s *DockerSwarmSuite) TestServiceCreateWithConfigReferencedTwice(c *testing var tasks []swarm.Task waitAndAssert(c, defaultReconciliationTimeout, func(c *testing.T) (interface{}, string) { tasks = d.GetServiceTasks(c, serviceName) - return len(tasks) > 0, nil + return len(tasks) > 0, "" }, checker.Equals, true) task := tasks[0] @@ -344,7 +344,7 @@ func (s *DockerSwarmSuite) TestServiceCreateWithConfigReferencedTwice(c *testing if task.NodeID == "" || task.Status.ContainerStatus == nil { task = d.GetTask(c, task.ID) } - return task.NodeID != "" && task.Status.ContainerStatus != nil, nil + return task.NodeID != "" && task.Status.ContainerStatus != nil, "" }, checker.Equals, true) for _, target := range []string{"target1", "target2"} { @@ -368,7 +368,7 @@ func (s *DockerSwarmSuite) TestServiceCreateMountTmpfs(c *testing.T) { var tasks []swarm.Task waitAndAssert(c, defaultReconciliationTimeout, func(c *testing.T) (interface{}, string) { tasks = d.GetServiceTasks(c, id) - return len(tasks) > 0, nil + return len(tasks) > 0, "" }, checker.Equals, true) task := tasks[0] @@ -376,7 +376,7 @@ func (s *DockerSwarmSuite) TestServiceCreateMountTmpfs(c *testing.T) { if task.NodeID == "" || task.Status.ContainerStatus == nil { task = d.GetTask(c, task.ID) } - return task.NodeID != "" && task.Status.ContainerStatus != nil, nil + return task.NodeID != "" && task.Status.ContainerStatus != nil, "" }, checker.Equals, true) // check container mount config @@ -424,7 +424,7 @@ func (s *DockerSwarmSuite) TestServiceCreateWithNetworkAlias(c *testing.T) { var tasks []swarm.Task waitAndAssert(c, defaultReconciliationTimeout, func(c *testing.T) (interface{}, string) { tasks = d.GetServiceTasks(c, id) - return len(tasks) > 0, nil + return len(tasks) > 0, "" }, checker.Equals, true) task := tasks[0] @@ -432,7 +432,7 @@ func (s *DockerSwarmSuite) TestServiceCreateWithNetworkAlias(c *testing.T) { if task.NodeID == "" || task.Status.ContainerStatus == nil { task = d.GetTask(c, task.ID) } - return task.NodeID != "" && task.Status.ContainerStatus != nil, nil + return task.NodeID != "" && task.Status.ContainerStatus != nil, "" }, checker.Equals, true) // check container alias config diff --git a/integration-cli/docker_cli_service_health_test.go b/integration-cli/docker_cli_service_health_test.go index b678b99019..65ca399797 100644 --- a/integration-cli/docker_cli_service_health_test.go +++ b/integration-cli/docker_cli_service_health_test.go @@ -41,7 +41,7 @@ func (s *DockerSwarmSuite) TestServiceHealthRun(c *testing.T) { var tasks []swarm.Task waitAndAssert(c, defaultReconciliationTimeout, func(c *testing.T) (interface{}, string) { tasks = d.GetServiceTasks(c, id) - return tasks, nil + return tasks, "" }, checker.HasLen, 1) task := tasks[0] @@ -49,14 +49,14 @@ func (s *DockerSwarmSuite) TestServiceHealthRun(c *testing.T) { // wait for task to start waitAndAssert(c, defaultReconciliationTimeout, func(c *testing.T) (interface{}, string) { task = d.GetTask(c, task.ID) - return task.Status.State, nil + return task.Status.State, "" }, checker.Equals, swarm.TaskStateRunning) containerID := task.Status.ContainerStatus.ContainerID // wait for container to be healthy waitAndAssert(c, defaultReconciliationTimeout, func(c *testing.T) (interface{}, string) { out, _ := d.Cmd("inspect", "--format={{.State.Health.Status}}", containerID) - return strings.TrimSpace(out), nil + return strings.TrimSpace(out), "" }, checker.Equals, "healthy") // make it fail @@ -64,13 +64,13 @@ func (s *DockerSwarmSuite) TestServiceHealthRun(c *testing.T) { // wait for container to be unhealthy waitAndAssert(c, defaultReconciliationTimeout, func(c *testing.T) (interface{}, string) { out, _ := d.Cmd("inspect", "--format={{.State.Health.Status}}", containerID) - return strings.TrimSpace(out), nil + return strings.TrimSpace(out), "" }, checker.Equals, "unhealthy") // Task should be terminated waitAndAssert(c, defaultReconciliationTimeout, func(c *testing.T) (interface{}, string) { task = d.GetTask(c, task.ID) - return task.Status.State, nil + return task.Status.State, "" }, checker.Equals, swarm.TaskStateFailed) if !strings.Contains(task.Status.Err, container.ErrContainerUnhealthy.Error()) { @@ -102,7 +102,7 @@ func (s *DockerSwarmSuite) TestServiceHealthStart(c *testing.T) { var tasks []swarm.Task waitAndAssert(c, defaultReconciliationTimeout, func(c *testing.T) (interface{}, string) { tasks = d.GetServiceTasks(c, id) - return tasks, nil + return tasks, "" }, checker.HasLen, 1) task := tasks[0] @@ -110,7 +110,7 @@ func (s *DockerSwarmSuite) TestServiceHealthStart(c *testing.T) { // wait for task to start waitAndAssert(c, defaultReconciliationTimeout, func(c *testing.T) (interface{}, string) { task = d.GetTask(c, task.ID) - return task.Status.State, nil + return task.Status.State, "" }, checker.Equals, swarm.TaskStateStarting) containerID := task.Status.ContainerStatus.ContainerID @@ -119,7 +119,7 @@ func (s *DockerSwarmSuite) TestServiceHealthStart(c *testing.T) { waitAndAssert(c, defaultReconciliationTimeout, func(c *testing.T) (interface{}, string) { out, _ := d.Cmd("inspect", "--format={{.State.Health.FailingStreak}}", containerID) failingStreak, _ := strconv.Atoi(strings.TrimSpace(out)) - return failingStreak, nil + return failingStreak, "" }, checker.GreaterThan, 0) // task should be blocked at starting status @@ -132,6 +132,6 @@ func (s *DockerSwarmSuite) TestServiceHealthStart(c *testing.T) { // Task should be at running status waitAndAssert(c, defaultReconciliationTimeout, func(c *testing.T) (interface{}, string) { task = d.GetTask(c, task.ID) - return task.Status.State, nil + return task.Status.State, "" }, checker.Equals, swarm.TaskStateRunning) } diff --git a/integration-cli/docker_cli_swarm_test.go b/integration-cli/docker_cli_swarm_test.go index b459292aa2..d382b79b99 100644 --- a/integration-cli/docker_cli_swarm_test.go +++ b/integration-cli/docker_cli_swarm_test.go @@ -385,7 +385,7 @@ func (s *DockerSwarmSuite) TestSwarmContainerAttachByNetworkId(c *testing.T) { checkNetwork := func(*testing.T) (interface{}, string) { out, err := d.Cmd("network", "ls") assert.NilError(c, err) - return out, nil + return out, "" } waitAndAssert(c, 3*time.Second, checkNetwork, checker.Not(checker.Contains), "testnet") @@ -546,7 +546,7 @@ func (s *DockerSwarmSuite) TestSwarmTaskListFilter(c *testing.T) { checkNumTasks := func(*testing.T) (interface{}, string) { out, err := d.Cmd("service", "ps", "--filter", filter, name) assert.NilError(c, err, out) - return len(strings.Split(out, "\n")) - 2, nil // includes header and nl in last line + return len(strings.Split(out, "\n")) - 2, "" // includes header and nl in last line } // wait until all tasks have been created @@ -988,15 +988,15 @@ func checkKeyIsEncrypted(d *daemon.Daemon) func(*testing.T) (interface{}, string return func(c *testing.T) (interface{}, string) { keyBytes, err := ioutil.ReadFile(filepath.Join(d.Folder, "root", "swarm", "certificates", "swarm-node.key")) if err != nil { - return fmt.Errorf("error reading key: %v", err), nil + return fmt.Errorf("error reading key: %v", err), "" } keyBlock, _ := pem.Decode(keyBytes) if keyBlock == nil { - return fmt.Errorf("invalid PEM-encoded private key"), nil + return fmt.Errorf("invalid PEM-encoded private key"), "" } - return keyutils.IsEncryptedPEMBlock(keyBlock), nil + return keyutils.IsEncryptedPEMBlock(keyBlock), "" } } @@ -1220,7 +1220,7 @@ func (s *DockerSwarmSuite) TestSwarmJoinPromoteLocked(c *testing.T) { } certs, err := helpers.ParseCertificatesPEM(certBytes) if err == nil && len(certs) > 0 && len(certs[0].Subject.OrganizationalUnit) > 0 { - return certs[0].Subject.OrganizationalUnit[0], nil + return certs[0].Subject.OrganizationalUnit[0], "" } return "", "could not get organizational unit from certificate" }, checker.Equals, "swarm-worker")