func prepareTestNet(t *testing.T, ctx *testutils.RktRunCtx, nt networkTemplateT) (netdir string) { configdir := ctx.LocalDir() netdir = filepath.Join(configdir, "net.d") err := os.MkdirAll(netdir, 0644) if err != nil { t.Fatalf("Cannot create netdir: %v", err) } err = writeNetwork(t, nt, netdir) if err != nil { t.Fatalf("Cannot write network file: %v", err) } // If we're proxying the CNI call, then make sure it's in the netdir if nt.Type == "cniproxy" { dest := filepath.Join(netdir, "cniproxy") err := fileutil.CopyRegularFile(testutils.GetValueFromEnvOrPanic("RKT_CNI_PROXY"), dest) if err != nil { t.Fatalf("Cannot copy cniproxy") } os.Chmod(dest, 0755) if err != nil { t.Fatalf("Cannot chmod cniproxy") } } return netdir }
func copyResolv(p *stage1commontypes.Pod) error { ra := p.Manifest.Apps[0] stage1Rootfs := common.Stage1RootfsPath(p.Root) resolvPath := filepath.Join(stage1Rootfs, "etc", "rkt-resolv.conf") appRootfs := common.AppRootfsPath(p.Root, ra.Name) targetEtc := filepath.Join(appRootfs, "etc") targetResolvPath := filepath.Join(targetEtc, "resolv.conf") _, err := os.Stat(resolvPath) switch { case os.IsNotExist(err): return nil case err != nil: return err } _, err = os.Stat(targetResolvPath) if err != nil && !os.IsNotExist(err) { return err } return fileutil.CopyRegularFile(resolvPath, targetResolvPath) }
// copyAppManifest copies to saved image manifest for the given appName and // writes it in the dest directory. func copyAppManifest(cdir string, appName types.ACName, dest string) error { appInfoDir := common.AppInfoPath(cdir, appName) sourceFn := filepath.Join(appInfoDir, "manifest") destFn := filepath.Join(dest, "manifest") if err := fileutil.CopyRegularFile(sourceFn, destFn); err != nil { return fmt.Errorf("error copying image manifest: %v", err) } return nil }