// Creates the bundleDir with rootfs, io fifo dir and a default spec. // On success, returns the bundlePath func setupBundle(bundleName string) (string, error) { bundlePath := filepath.Join(utils.BundlesRoot, bundleName) if err := os.MkdirAll(bundlePath, 0755); err != nil { fmt.Println("Unable to create bundlePath due to ", err) return "", err } io := filepath.Join(bundlePath, "io") if err := os.MkdirAll(io, 0755); err != nil { fmt.Println("Unable to create io dir due to ", err) return "", err } if err := utils.GenerateReferenceSpecs(bundlePath); err != nil { fmt.Println("Unable to generate OCI reference spec: ", err) return "", err } if err := utils.CreateBusyboxBundle(bundleName); err != nil { fmt.Println("CreateBusyboxBundle error: ", err) return "", err } return bundlePath, nil }
func (cs *ContainerdSuite) SetUpSuite(c *check.C) { bundleMap = make(map[string]Bundle) cs.eventFilters = make(map[string]func(event *types.Event)) // Get working directory for tests wd := utils.GetTestOutDir() if err := os.Chdir(wd); err != nil { c.Fatalf("Could not change working directory: %v", err) } cs.cwd = wd // Clean old bundles os.RemoveAll(utils.BundlesRoot) // Ensure the oci bundles directory exists if err := os.MkdirAll(utils.BundlesRoot, 0755); err != nil { c.Fatalf("Failed to create bundles directory: %v", err) } // Generate the reference spec if err := utils.GenerateReferenceSpecs(utils.BundlesRoot); err != nil { c.Fatalf("Unable to generate OCI reference spec: %v", err) } // Create our output directory cs.outputDir = fmt.Sprintf(utils.OutputDirFormat, time.Now().Format("2006-01-02_150405.000000")) cs.stateDir = filepath.Join(cs.outputDir, "containerd-master") if err := os.MkdirAll(cs.stateDir, 0755); err != nil { c.Fatalf("Unable to created output directory '%s': %v", cs.stateDir, err) } cs.grpcSocket = "unix://" + filepath.Join(cs.outputDir, "containerd-master", "containerd.sock") cdLogFile := filepath.Join(cs.outputDir, "containerd-master", "containerd.log") f, err := os.OpenFile(cdLogFile, os.O_CREATE|os.O_TRUNC|os.O_RDWR|os.O_SYNC, 0777) if err != nil { c.Fatalf("Failed to create master containerd log file: %v", err) } cs.logFile = f cs.syncChild = make(chan error) cs.RestartDaemon(false) }