Clean up better from previous unit-test runs

This makes sure we unmount existing mounts (as well as removing the
devmapper devices), and it fails with proper logs rather than just
panic()ing.
Upstream-commit: e7986da531568040e0185aafce03cdae2169baac
Component: engine
This commit is contained in:
Alexander Larsson
2013-10-08 14:54:00 +02:00
committed by Michael Crosby
parent f3a38555ac
commit 53581a197d

View File

@ -100,11 +100,25 @@ func removeDev(name string) {
syscall.Close(fd)
}
if err := devmapper.RemoveDevice(name); err != nil {
panic(fmt.Errorf("Unable to remove existing device %s: %s", name, err))
log.Fatalf("Unable to remove device %s needed to get a freash unit test environment", name)
}
}
func cleanupDevMapper() {
// Unmount any leftover mounts from previous unit test runs
if data, err := ioutil.ReadFile("/proc/mounts"); err == nil {
for _, line := range strings.Split(string(data), "\n") {
cols := strings.Split(line, " ")
if len(cols) >= 2 && strings.HasPrefix(cols[0], "/dev/mapper/docker-unit-tests-devices") {
err = syscall.Unmount(cols[1], 0)
if err != nil {
log.Fatalf("Unable to unmount %s needed to get a freash unit test environment: %s", cols[1], err)
}
}
}
}
// Remove any leftover devmapper devices from previous unit run tests
infos, _ := ioutil.ReadDir("/dev/mapper")
if infos != nil {
hasPool := false