Merge pull request #4942 from vieux/cleanup_dev_libcontainer

remove setupDev from libcontainer
This commit is contained in:
Michael Crosby 2014-04-01 14:28:17 -07:00
commit 9cf89f8542
2 changed files with 25 additions and 27 deletions

View file

@ -64,3 +64,28 @@ func TestDiffEnsureDockerinitFilesAreIgnored(t *testing.T) {
logDone("diff - check if ignored files show up in diff")
}
func TestDiffEnsureOnlyKmsgAndPtmx(t *testing.T) {
runCmd := exec.Command(dockerBinary, "run", "-d", "busybox", "sleep 0")
cid, _, err := runCommandWithOutput(runCmd)
errorOut(err, t, fmt.Sprintf("%s", err))
cleanCID := stripTrailingCharacters(cid)
diffCmd := exec.Command(dockerBinary, "diff", cleanCID)
out, _, err := runCommandWithOutput(diffCmd)
errorOut(err, t, fmt.Sprintf("failed to run diff: %v %v", out, err))
go deleteContainer(cleanCID)
expected := map[string]bool{
"C /dev": true,
"A /dev/full": true, // busybox
"C /dev/ptmx": true, // libcontainer
"A /dev/kmsg": true, // lxc
}
for _, line := range strings.Split(out, "\n") {
if line != "" && !expected[line] {
t.Errorf("'%s' is shown in the diff but shouldn't", line)
}
}
}

View file

@ -57,9 +57,6 @@ func setupNewMountNamespace(rootfs string, bindMounts []libcontainer.Mount, cons
}
// In non-privileged mode, this fails. Discard the error.
setupLoopbackDevices(rootfs)
if err := setupDev(rootfs); err != nil {
return err
}
if err := setupPtmx(rootfs, console, mountLabel); err != nil {
return err
}
@ -173,30 +170,6 @@ func copyDevNode(rootfs, node string) error {
return nil
}
// setupDev symlinks the current processes pipes into the
// appropriate destination on the containers rootfs
func setupDev(rootfs string) error {
for _, link := range []struct {
from string
to string
}{
{"/proc/kcore", "/dev/core"},
{"/proc/self/fd", "/dev/fd"},
{"/proc/self/fd/0", "/dev/stdin"},
{"/proc/self/fd/1", "/dev/stdout"},
{"/proc/self/fd/2", "/dev/stderr"},
} {
dest := filepath.Join(rootfs, link.to)
if err := os.Remove(dest); err != nil && !os.IsNotExist(err) {
return fmt.Errorf("remove %s %s", dest, err)
}
if err := os.Symlink(link.from, dest); err != nil {
return fmt.Errorf("symlink %s %s", dest, err)
}
}
return nil
}
// setupConsole ensures that the container has a proper /dev/console setup
func setupConsole(rootfs, console string, mountLabel string) error {
oldMask := system.Umask(0000)