1
0
mirror of https://github.com/rancher/os.git synced 2025-06-15 17:58:28 +00:00
os/cmd/control/util.go

87 lines
2.3 KiB
Go
Raw Normal View History

2017-03-14 02:11:24 +00:00
package control
2016-06-06 22:13:15 +00:00
import (
"bufio"
2016-06-06 22:13:15 +00:00
"fmt"
2019-03-04 05:03:45 +00:00
"io/ioutil"
"os"
2016-06-06 22:13:15 +00:00
"strings"
2019-03-04 05:03:45 +00:00
"time"
2016-06-06 22:13:15 +00:00
"github.com/rancher/os/config"
2018-09-16 04:55:26 +00:00
"github.com/rancher/os/pkg/log"
2019-03-04 05:03:45 +00:00
"github.com/pkg/errors"
2016-06-06 22:13:15 +00:00
)
2017-03-14 02:11:24 +00:00
func yes(question string) bool {
2016-06-06 22:13:15 +00:00
fmt.Printf("%s [y/N]: ", question)
in := bufio.NewReader(os.Stdin)
line, err := in.ReadString('\n')
2016-06-06 22:13:15 +00:00
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
}
2019-01-04 07:22:32 +00:00
func symLinkEngineBinary() []symlink {
2019-01-04 07:22:32 +00:00
baseSymlink := []symlink{
{"/usr/share/ros/os-release", "/usr/lib/os-release"},
{"/usr/share/ros/os-release", "/etc/os-release"},
2019-01-04 07:22:32 +00:00
{"/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"},
// >= 18.09.0
{"/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"},
// < 18.09.0
{"/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"},
2019-01-04 07:22:32 +00:00
}
return baseSymlink
}
2019-01-09 05:15:15 +00:00
2019-03-04 05:03:45 +00:00
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)
}
2019-01-09 05:15:15 +00:00
func checkGlobalCfg() bool {
_, err := os.Stat("/proc/1/root/boot/global.cfg")
if err == nil || os.IsExist(err) {
return true
}
return false
}