1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- package control
- import (
- "bufio"
- "fmt"
- "io/ioutil"
- "os"
- "strings"
- "time"
- "github.com/rancher/os/config"
- "github.com/rancher/os/pkg/log"
- "github.com/pkg/errors"
- )
- func yes(question string) bool {
- fmt.Printf("%s [y/N]: ", question)
- in := bufio.NewReader(os.Stdin)
- line, err := in.ReadString('\n')
- if err != nil {
- log.Fatal(err)
- }
- return strings.ToLower(line[0:1]) == "y"
- }
- func formatImage(image string, cfg *config.CloudConfig) string {
- domainRegistry := cfg.Rancher.Environment["REGISTRY_DOMAIN"]
- if domainRegistry != "docker.io" && domainRegistry != "" {
- return fmt.Sprintf("%s/%s", domainRegistry, image)
- }
- return image
- }
- func symLinkEngineBinary(version string) []symlink {
- baseSymlink := []symlink{
- {"/var/lib/rancher/engine/docker", "/usr/bin/docker"},
- {"/var/lib/rancher/engine/dockerd", "/usr/bin/dockerd"},
- {"/var/lib/rancher/engine/docker-init", "/usr/bin/docker-init"},
- {"/var/lib/rancher/engine/docker-proxy", "/usr/bin/docker-proxy"},
- {"/usr/share/ros/os-release", "/usr/lib/os-release"},
- {"/usr/share/ros/os-release", "/etc/os-release"},
- }
- if strings.Contains(version, "18.09") {
- baseSymlink = append(baseSymlink, []symlink{
- {"/var/lib/rancher/engine/containerd", "/usr/bin/containerd"},
- {"/var/lib/rancher/engine/ctr", "/usr/bin/ctr"},
- {"/var/lib/rancher/engine/containerd-shim", "/usr/bin/containerd-shim"},
- {"/var/lib/rancher/engine/runc", "/usr/bin/runc"},
- }...)
- } else {
- baseSymlink = append(baseSymlink, []symlink{
- {"/var/lib/rancher/engine/docker-containerd", "/usr/bin/docker-containerd"},
- {"/var/lib/rancher/engine/docker-containerd-ctr", "/usr/bin/docker-containerd-ctr"},
- {"/var/lib/rancher/engine/docker-containerd-shim", "/usr/bin/docker-containerd-shim"},
- {"/var/lib/rancher/engine/docker-runc", "/usr/bin/docker-runc"},
- }...)
- }
- return baseSymlink
- }
- func checkZfsBackingFS(driver, dir string) error {
- if driver != "zfs" {
- return nil
- }
- for i := 0; i < 4; i++ {
- mountInfo, err := ioutil.ReadFile("/proc/self/mountinfo")
- if err != nil {
- continue
- }
- for _, mount := range strings.Split(string(mountInfo), "\n") {
- if strings.Contains(mount, dir) && strings.Contains(mount, driver) {
- return nil
- }
- }
- time.Sleep(1 * time.Second)
- }
- return errors.Errorf("BackingFS: %s not match storage-driver: %s", dir, driver)
- }
- func checkGlobalCfg() bool {
- _, err := os.Stat("/proc/1/root/boot/global.cfg")
- if err == nil || os.IsExist(err) {
- return true
- }
- return false
- }
|