fix rm -v
This commit is contained in:
parent
2d425af1b1
commit
1daf242c8b
2 changed files with 42 additions and 0 deletions
|
@ -16,6 +16,7 @@ import (
|
||||||
"os"
|
"os"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
"path"
|
"path"
|
||||||
|
"path/filepath"
|
||||||
"runtime"
|
"runtime"
|
||||||
"strings"
|
"strings"
|
||||||
"sync"
|
"sync"
|
||||||
|
@ -958,6 +959,8 @@ func (srv *Server) ContainerDestroy(name string, removeVolume bool) error {
|
||||||
volumes := make(map[string]struct{})
|
volumes := make(map[string]struct{})
|
||||||
// Store all the deleted containers volumes
|
// Store all the deleted containers volumes
|
||||||
for _, volumeId := range container.Volumes {
|
for _, volumeId := range container.Volumes {
|
||||||
|
volumeId = strings.TrimRight(volumeId, "/layer")
|
||||||
|
volumeId = filepath.Base(volumeId)
|
||||||
volumes[volumeId] = struct{}{}
|
volumes[volumeId] = struct{}{}
|
||||||
}
|
}
|
||||||
if err := srv.runtime.Destroy(container); err != nil {
|
if err := srv.runtime.Destroy(container); err != nil {
|
||||||
|
|
|
@ -108,6 +108,45 @@ func TestCreateRm(t *testing.T) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestCreateRmVolumes(t *testing.T) {
|
||||||
|
runtime := mkRuntime(t)
|
||||||
|
defer nuke(runtime)
|
||||||
|
|
||||||
|
srv := &Server{runtime: runtime}
|
||||||
|
|
||||||
|
config, hostConfig, _, err := ParseRun([]string{"-v", "/srv", GetTestImage(runtime).ID, "echo test"}, nil)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
id, err := srv.ContainerCreate(config)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(runtime.List()) != 1 {
|
||||||
|
t.Errorf("Expected 1 container, %v found", len(runtime.List()))
|
||||||
|
}
|
||||||
|
|
||||||
|
err = srv.ContainerStart(id, hostConfig)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
err = srv.ContainerStop(id, 1)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err = srv.ContainerDestroy(id, true); err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(runtime.List()) != 0 {
|
||||||
|
t.Errorf("Expected 0 container, %v found", len(runtime.List()))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestCommit(t *testing.T) {
|
func TestCommit(t *testing.T) {
|
||||||
runtime := mkRuntime(t)
|
runtime := mkRuntime(t)
|
||||||
defer nuke(runtime)
|
defer nuke(runtime)
|
||||||
|
|
Loading…
Reference in a new issue