Use vol plugin creator instead of inserting spec
| ... | ... |
@@ -413,24 +413,23 @@ func (s *DockerExternalVolumeSuite) TestExternalVolumeDriverLookupNotBlocked(c * |
| 413 | 413 |
|
| 414 | 414 |
func (s *DockerExternalVolumeSuite) TestExternalVolumeDriverRetryNotImmediatelyExists(c *check.C) {
|
| 415 | 415 |
s.d.StartWithBusybox(c) |
| 416 |
- |
|
| 417 |
- specPath := "/etc/docker/plugins/test-external-volume-driver-retry.spec" |
|
| 418 |
- os.RemoveAll(specPath) |
|
| 419 |
- defer os.RemoveAll(specPath) |
|
| 416 |
+ driverName := "test-external-volume-driver-retry" |
|
| 420 | 417 |
|
| 421 | 418 |
errchan := make(chan error) |
| 419 |
+ started := make(chan struct{})
|
|
| 422 | 420 |
go func() {
|
| 423 |
- if out, err := s.d.Cmd("run", "--rm", "--name", "test-data-retry", "-v", "external-volume-test:/tmp/external-volume-test", "--volume-driver", "test-external-volume-driver-retry", "busybox:latest"); err != nil {
|
|
| 421 |
+ close(started) |
|
| 422 |
+ if out, err := s.d.Cmd("run", "--rm", "--name", "test-data-retry", "-v", "external-volume-test:/tmp/external-volume-test", "--volume-driver", driverName, "busybox:latest"); err != nil {
|
|
| 424 | 423 |
errchan <- fmt.Errorf("%v:\n%s", err, out)
|
| 425 | 424 |
} |
| 426 | 425 |
close(errchan) |
| 427 | 426 |
}() |
| 428 |
- go func() {
|
|
| 429 |
- // wait for a retry to occur, then create spec to allow plugin to register |
|
| 430 |
- time.Sleep(2000 * time.Millisecond) |
|
| 431 |
- // no need to check for an error here since it will get picked up by the timeout later |
|
| 432 |
- ioutil.WriteFile(specPath, []byte(s.Server.URL), 0644) |
|
| 433 |
- }() |
|
| 427 |
+ |
|
| 428 |
+ <-started |
|
| 429 |
+ // wait for a retry to occur, then create spec to allow plugin to register |
|
| 430 |
+ time.Sleep(2 * time.Second) |
|
| 431 |
+ p := newVolumePlugin(c, driverName) |
|
| 432 |
+ defer p.Close() |
|
| 434 | 433 |
|
| 435 | 434 |
select {
|
| 436 | 435 |
case err := <-errchan: |
| ... | ... |
@@ -442,11 +441,11 @@ func (s *DockerExternalVolumeSuite) TestExternalVolumeDriverRetryNotImmediatelyE |
| 442 | 442 |
_, err := s.d.Cmd("volume", "rm", "external-volume-test")
|
| 443 | 443 |
c.Assert(err, checker.IsNil) |
| 444 | 444 |
|
| 445 |
- c.Assert(s.ec.activations, checker.Equals, 1) |
|
| 446 |
- c.Assert(s.ec.creations, checker.Equals, 1) |
|
| 447 |
- c.Assert(s.ec.removals, checker.Equals, 1) |
|
| 448 |
- c.Assert(s.ec.mounts, checker.Equals, 1) |
|
| 449 |
- c.Assert(s.ec.unmounts, checker.Equals, 1) |
|
| 445 |
+ c.Assert(p.ec.activations, checker.Equals, 1) |
|
| 446 |
+ c.Assert(p.ec.creations, checker.Equals, 1) |
|
| 447 |
+ c.Assert(p.ec.removals, checker.Equals, 1) |
|
| 448 |
+ c.Assert(p.ec.mounts, checker.Equals, 1) |
|
| 449 |
+ c.Assert(p.ec.unmounts, checker.Equals, 1) |
|
| 450 | 450 |
} |
| 451 | 451 |
|
| 452 | 452 |
func (s *DockerExternalVolumeSuite) TestExternalVolumeDriverBindExternalVolume(c *check.C) {
|