func removeImgWorkdir(d *Daemon, builddir string) { vgname, _, err := getServerConfigValue(d, "core.lvm_vg_name") if err != nil { shared.Debugf("Error checking server config: %v", err) } matches, _ := filepath.Glob(fmt.Sprintf("%s/*.lv", builddir)) if len(matches) > 0 { if len(matches) > 1 { shared.Debugf("Unexpected - more than one .lv file in builddir. using first: %v", matches) } lvsymlink := matches[0] if lvpath, err := os.Readlink(lvsymlink); err != nil { shared.Debugf("Error reading target of symlink '%s'", lvsymlink) } else { err = shared.LVMRemoveLV(vgname, filepath.Base(lvpath)) if err != nil { shared.Debugf("Error removing LV '%s': %v", lvpath, err) } } } if d.BackingFs == "btrfs" { /* cannot rm -rf /a if /a/b is a subvolume, so first delete subvolumes */ /* todo: find the .btrfs file under dir */ fnamelist, _ := shared.ReadDir(builddir) for _, fname := range fnamelist { subvol := filepath.Join(builddir, fname) btrfsDeleteSubvol(subvol) } } if remErr := os.RemoveAll(builddir); remErr != nil { shared.Debugf("Error deleting temporary directory: %s", remErr) } }
func children(iface string) []string { p := path.Join("/sys/class/net", iface, "brif") ret, _ := shared.ReadDir(p) return ret }
func children(iface string) []string { p := path.Join(shared.SYS_CLASS_NET, iface, "brif") ret, _ := shared.ReadDir(p) return ret }