|
@@ -116,7 +116,14 @@ func (s *DockerExternalVolumeSuite) SetUpSuite(c *check.C) {
|
|
|
|
|
|
mux.HandleFunc("/VolumeDriver.List", func(w http.ResponseWriter, r *http.Request) {
|
|
|
s.ec.lists++
|
|
|
- send(w, map[string][]vol{"Volumes": volList})
|
|
|
+ vols := []vol{}
|
|
|
+ for _, v := range volList {
|
|
|
+ if v.Ninja {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ vols = append(vols, v)
|
|
|
+ }
|
|
|
+ send(w, map[string][]vol{"Volumes": vols})
|
|
|
})
|
|
|
|
|
|
mux.HandleFunc("/VolumeDriver.Get", func(w http.ResponseWriter, r *http.Request) {
|
|
@@ -149,15 +156,10 @@ func (s *DockerExternalVolumeSuite) SetUpSuite(c *check.C) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- if err := os.RemoveAll(hostVolumePath(pr.Name)); err != nil {
|
|
|
- send(w, &pluginResp{Err: err.Error()})
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
for i, v := range volList {
|
|
|
if v.Name == pr.Name {
|
|
|
if err := os.RemoveAll(hostVolumePath(v.Name)); err != nil {
|
|
|
- send(w, fmt.Sprintf(`{"Err": "%v"}`, err))
|
|
|
+ send(w, &pluginResp{Err: err.Error()})
|
|
|
return
|
|
|
}
|
|
|
volList = append(volList[:i], volList[i+1:]...)
|
|
@@ -266,7 +268,7 @@ func (s *DockerExternalVolumeSuite) TestExternalVolumeDriverUnnamed(c *check.C)
|
|
|
c.Assert(s.ec.unmounts, checker.Equals, 1)
|
|
|
}
|
|
|
|
|
|
-func (s DockerExternalVolumeSuite) TestExternalVolumeDriverVolumesFrom(c *check.C) {
|
|
|
+func (s *DockerExternalVolumeSuite) TestExternalVolumeDriverVolumesFrom(c *check.C) {
|
|
|
err := s.d.StartWithBusybox()
|
|
|
c.Assert(err, checker.IsNil)
|
|
|
|
|
@@ -286,7 +288,7 @@ func (s DockerExternalVolumeSuite) TestExternalVolumeDriverVolumesFrom(c *check.
|
|
|
c.Assert(s.ec.unmounts, checker.Equals, 2)
|
|
|
}
|
|
|
|
|
|
-func (s DockerExternalVolumeSuite) TestExternalVolumeDriverDeleteContainer(c *check.C) {
|
|
|
+func (s *DockerExternalVolumeSuite) TestExternalVolumeDriverDeleteContainer(c *check.C) {
|
|
|
err := s.d.StartWithBusybox()
|
|
|
c.Assert(err, checker.IsNil)
|
|
|
|
|
@@ -398,8 +400,8 @@ func (s *DockerExternalVolumeSuite) TestExternalVolumeDriverBindExternalVolume(c
|
|
|
c.Assert(mounts[0].Driver, checker.Equals, "test-external-volume-driver")
|
|
|
}
|
|
|
|
|
|
-func (s *DockerExternalVolumeSuite) TesttExternalVolumeDriverList(c *check.C) {
|
|
|
- dockerCmd(c, "volume", "create", "-d", "test-external-volume-driver", "--name", "abc")
|
|
|
+func (s *DockerExternalVolumeSuite) TestExternalVolumeDriverList(c *check.C) {
|
|
|
+ dockerCmd(c, "volume", "create", "-d", "test-external-volume-driver", "--name", "abc3")
|
|
|
out, _ := dockerCmd(c, "volume", "ls")
|
|
|
ls := strings.Split(strings.TrimSpace(out), "\n")
|
|
|
c.Assert(len(ls), check.Equals, 2, check.Commentf("\n%s", out))
|
|
@@ -407,7 +409,7 @@ func (s *DockerExternalVolumeSuite) TesttExternalVolumeDriverList(c *check.C) {
|
|
|
vol := strings.Fields(ls[len(ls)-1])
|
|
|
c.Assert(len(vol), check.Equals, 2, check.Commentf("%v", vol))
|
|
|
c.Assert(vol[0], check.Equals, "test-external-volume-driver")
|
|
|
- c.Assert(vol[1], check.Equals, "abc")
|
|
|
+ c.Assert(vol[1], check.Equals, "abc3")
|
|
|
|
|
|
c.Assert(s.ec.lists, check.Equals, 1)
|
|
|
}
|
|
@@ -420,11 +422,11 @@ func (s *DockerExternalVolumeSuite) TestExternalVolumeDriverGet(c *check.C) {
|
|
|
}
|
|
|
|
|
|
func (s *DockerExternalVolumeSuite) TestExternalVolumeDriverWithDaemnRestart(c *check.C) {
|
|
|
- dockerCmd(c, "volume", "create", "-d", "test-external-volume-driver", "--name", "abc")
|
|
|
+ dockerCmd(c, "volume", "create", "-d", "test-external-volume-driver", "--name", "abc1")
|
|
|
err := s.d.Restart()
|
|
|
c.Assert(err, checker.IsNil)
|
|
|
|
|
|
- dockerCmd(c, "run", "--name=test", "-v", "abc:/foo", "busybox", "true")
|
|
|
+ dockerCmd(c, "run", "--name=test", "-v", "abc1:/foo", "busybox", "true")
|
|
|
var mounts []types.MountPoint
|
|
|
inspectFieldAndMarshall(c, "test", "Mounts", &mounts)
|
|
|
c.Assert(mounts, checker.HasLen, 1)
|
|
@@ -434,8 +436,8 @@ func (s *DockerExternalVolumeSuite) TestExternalVolumeDriverWithDaemnRestart(c *
|
|
|
// Ensures that the daemon handles when the plugin responds to a `Get` request with a null volume and a null error.
|
|
|
// Prior the daemon would panic in this scenario.
|
|
|
func (s *DockerExternalVolumeSuite) TestExternalVolumeDriverGetEmptyResponse(c *check.C) {
|
|
|
- dockerCmd(c, "volume", "create", "-d", "test-external-volume-driver", "--name", "abc", "--opt", "ninja=1")
|
|
|
- out, _, err := dockerCmdWithError("volume", "inspect", "abc")
|
|
|
+ dockerCmd(c, "volume", "create", "-d", "test-external-volume-driver", "--name", "abc2", "--opt", "ninja=1")
|
|
|
+ out, _, err := dockerCmdWithError("volume", "inspect", "abc2")
|
|
|
c.Assert(err, checker.NotNil, check.Commentf(out))
|
|
|
c.Assert(out, checker.Contains, "No such volume")
|
|
|
}
|