func ConstraintsToVCPUs(quota int64, period uint64) uint {
	if quota != 0 && period != 0 {
		return uint((uint64(quota) + (period - 1)) / period)
	}
	return 0
}
ConstraintsToVCPUs converts CPU quota and period to vCPUs
package virtcontainers
import (
	"crypto/rand"
	"fmt"
	"os"
	"os/exec"
)
const cpBinaryName = "cp"
const fileMode0755 = os.FileMode(0755)
func fileCopy(srcPath, dstPath string) error {
	if srcPath == "" {
		return fmt.Errorf("Source path cannot be empty")
	}
	if dstPath == "" {
		return fmt.Errorf("Destination path cannot be empty")
	}
	binPath, err := exec.LookPath(cpBinaryName)
	if err != nil {
		return err
	}
	cmd := exec.Command(binPath, srcPath, dstPath)
	return cmd.Run()
}
func generateRandomBytes(n int) ([]byte, error) {
	b := make([]byte, n)
	_, err := rand.Read(b)
	if err != nil {
		return nil, err
	}
	return b, nil
}
func reverseString(s string) string {
	r := []rune(s)
	length := len(r)
	for i, j := 0, length-1; i < length/2; i, j = i+1, j-1 {
		r[i], r[j] = r[j], r[i]
	}
	return string(r)
}
func cleanupFds(fds []*os.File, numFds int) {
	maxFds := len(fds)
	if numFds < maxFds {
		maxFds = numFds
	}
	for i := 0; i < maxFds; i++ {
		_ = fds[i].Close()
	}
}
func writeToFile(path string, data []byte) error {
	f, err := os.OpenFile(path, os.O_WRONLY, fileMode0755)
	if err != nil {
		return err
	}
	defer f.Close()
	if _, err := f.Write(data); err != nil {
		return err
	}
	return nil
}