1
0
mirror of https://github.com/rancher/os.git synced 2025-07-31 06:32:09 +00:00

Show current/enabled/disabled in 'ros engine list'

This commit is contained in:
Josh Curl 2016-08-17 16:33:49 -07:00
parent a81be13f82
commit 11cf2a195b
No known key found for this signature in database
GPG Key ID: 82B504B9BCCFA677
6 changed files with 45 additions and 2 deletions

View File

@ -2,7 +2,9 @@ package control
import (
"fmt"
"io/ioutil"
"sort"
"strings"
"golang.org/x/net/context"
@ -15,6 +17,10 @@ import (
"github.com/rancher/os/util/network"
)
const (
dockerDone = "/run/docker-done"
)
func engineSubcommands() []cli.Command {
return []cli.Command{
{
@ -107,9 +113,27 @@ func engineList(c *cli.Context) error {
}
sort.Strings(engines)
currentEngine := currentEngine()
for _, engine := range engines {
fmt.Println(engine)
if engine == currentEngine {
fmt.Printf("current %s\n", engine)
} else if engine == cfg.Rancher.Docker.Engine {
fmt.Printf("enabled %s\n", engine)
} else {
fmt.Printf("disabled %s\n", engine)
}
}
return nil
}
func currentEngine() (engine string) {
engineBytes, err := ioutil.ReadFile(dockerDone)
if err == nil {
engine = strings.TrimSpace(string(engineBytes))
} else {
log.Warnf("Failed to detect current Docker engine: %v", err)
}
return
}

View File

@ -10,12 +10,14 @@ import (
"time"
log "github.com/Sirupsen/logrus"
"github.com/rancher/os/config"
"github.com/rancher/os/util"
)
const (
consoleDone = "/run/console-done"
dockerConf = "/var/lib/rancher/conf/docker"
dockerDone = "/run/docker-done"
dockerLog = "/var/log/docker.log"
)
@ -80,6 +82,12 @@ func Main() {
args = append(args, os.Getenv("DOCKER_OPTS"))
}
cfg := config.LoadConfig()
if err := ioutil.WriteFile(dockerDone, []byte(cfg.Rancher.Docker.Engine), 0644); err != nil {
log.Error(err)
}
log.Fatal(syscall.Exec("/usr/bin/dockerlaunch", args, os.Environ()))
}

View File

@ -68,7 +68,7 @@ func projectReload(p *project.Project, useNetwork *bool, loadConsole bool, envir
}
}
if cfg.Rancher.Docker.Engine != "" {
if cfg.Rancher.Docker.Engine != "" && cfg.Rancher.Docker.Engine != cfg.Rancher.Defaults.Docker.Engine {
p.ServiceConfigs.Add("docker", &composeConfig.ServiceConfig{})
if err := LoadService(p, cfg, *useNetwork, cfg.Rancher.Docker.Engine); err != nil && err != network.ErrNoNetwork {
log.Error(err)

View File

@ -172,6 +172,7 @@ type CloudInit struct {
type Defaults struct {
Hostname string `yaml:"hostname,omitempty"`
Docker DockerConfig `yaml:"docker,omitempty"`
Network netconf.NetworkConfig `yaml:"network,omitempty"`
}

View File

@ -4,6 +4,8 @@ rancher:
SUFFIX: {{.SUFFIX}}
defaults:
hostname: {{.HOSTNAME_DEFAULT}}
docker:
engine: docker-1.11.2
network:
dns:
nameservers: [8.8.8.8, 8.8.4.4]
@ -382,6 +384,7 @@ rancher:
url: {{.OS_RELEASES_YML}}/releases{{.SUFFIX}}.yml
image: {{.OS_REPO}}/os
docker:
engine: docker-1.11.2
tls_args: [--tlsverify, --tlscacert=/etc/docker/tls/ca.pem, --tlscert=/etc/docker/tls/server-cert.pem, --tlskey=/etc/docker/tls/server-key.pem,
'-H=0.0.0.0:2376']
args: [daemon, --log-opt, max-size=25m, --log-opt, max-file=2, -s, overlay, -G, docker, -H, 'unix:///var/run/docker.sock']

View File

@ -10,6 +10,8 @@ func (s *QemuSuite) TestCustomDocker(c *C) {
set -ex
docker version | grep 1.10.3
sudo ros engine list | grep 1.10.3 | grep current
docker run -d --restart=always nginx
docker ps | grep nginx`)
@ -19,6 +21,7 @@ set -ex
sudo ros engine switch docker-1.11.2
/usr/sbin/wait-for-docker
docker version | grep 1.11.2
sudo ros engine list | grep 1.11.2 | grep current
docker ps | grep nginx`)
s.Reboot(c)
@ -27,6 +30,7 @@ docker ps | grep nginx`)
set -ex
docker version | grep 1.11.2
sudo ros engine list | grep 1.11.2 | grep current
docker ps | grep nginx`)
}
@ -39,6 +43,7 @@ set -ex
apt-get --version
docker version | grep 1.10.3
sudo ros engine list | grep 1.10.3 | grep current
docker run -d --restart=always nginx
docker ps | grep nginx`)
@ -48,6 +53,7 @@ set -ex
sudo ros engine switch docker-1.11.2
/usr/sbin/wait-for-docker
docker version | grep 1.11.2
sudo ros engine list | grep 1.11.2 | grep current
docker ps | grep nginx`)
s.Reboot(c)
@ -56,5 +62,6 @@ docker ps | grep nginx`)
set -ex
docker version | grep 1.11.2
sudo ros engine list | grep 1.11.2 | grep current
docker ps | grep nginx`)
}