github.com/kim0/docker@v0.6.2-0.20161130212042-4addda3f07e7/integration-cli/docker_cli_service_create_test.go (about) 1 // +build !windows 2 3 package main 4 5 import ( 6 "encoding/json" 7 "strings" 8 9 "github.com/docker/docker/api/types" 10 "github.com/docker/docker/api/types/swarm" 11 "github.com/docker/docker/pkg/integration/checker" 12 "github.com/go-check/check" 13 ) 14 15 func (s *DockerSwarmSuite) TestServiceCreateMountVolume(c *check.C) { 16 d := s.AddDaemon(c, true, true) 17 out, err := d.Cmd("service", "create", "--mount", "type=volume,source=foo,target=/foo", "busybox", "top") 18 c.Assert(err, checker.IsNil, check.Commentf(out)) 19 id := strings.TrimSpace(out) 20 21 var tasks []swarm.Task 22 waitAndAssert(c, defaultReconciliationTimeout, func(c *check.C) (interface{}, check.CommentInterface) { 23 tasks = d.getServiceTasks(c, id) 24 return len(tasks) > 0, nil 25 }, checker.Equals, true) 26 27 task := tasks[0] 28 waitAndAssert(c, defaultReconciliationTimeout, func(c *check.C) (interface{}, check.CommentInterface) { 29 if task.NodeID == "" || task.Status.ContainerStatus.ContainerID == "" { 30 task = d.getTask(c, task.ID) 31 } 32 return task.NodeID != "" && task.Status.ContainerStatus.ContainerID != "", nil 33 }, checker.Equals, true) 34 35 out, err = s.nodeCmd(c, task.NodeID, "inspect", "--format", "{{json .Mounts}}", task.Status.ContainerStatus.ContainerID) 36 c.Assert(err, checker.IsNil, check.Commentf(out)) 37 38 var mounts []types.MountPoint 39 c.Assert(json.Unmarshal([]byte(out), &mounts), checker.IsNil) 40 c.Assert(mounts, checker.HasLen, 1) 41 42 c.Assert(mounts[0].Name, checker.Equals, "foo") 43 c.Assert(mounts[0].Destination, checker.Equals, "/foo") 44 c.Assert(mounts[0].RW, checker.Equals, true) 45 }