1
0
mirror of https://github.com/rancher/os.git synced 2025-08-01 23:17:50 +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 ( import (
"fmt" "fmt"
"io/ioutil"
"sort" "sort"
"strings"
"golang.org/x/net/context" "golang.org/x/net/context"
@ -15,6 +17,10 @@ import (
"github.com/rancher/os/util/network" "github.com/rancher/os/util/network"
) )
const (
dockerDone = "/run/docker-done"
)
func engineSubcommands() []cli.Command { func engineSubcommands() []cli.Command {
return []cli.Command{ return []cli.Command{
{ {
@ -107,9 +113,27 @@ func engineList(c *cli.Context) error {
} }
sort.Strings(engines) sort.Strings(engines)
currentEngine := currentEngine()
for _, engine := range engines { 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 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" "time"
log "github.com/Sirupsen/logrus" log "github.com/Sirupsen/logrus"
"github.com/rancher/os/config"
"github.com/rancher/os/util" "github.com/rancher/os/util"
) )
const ( const (
consoleDone = "/run/console-done" consoleDone = "/run/console-done"
dockerConf = "/var/lib/rancher/conf/docker" dockerConf = "/var/lib/rancher/conf/docker"
dockerDone = "/run/docker-done"
dockerLog = "/var/log/docker.log" dockerLog = "/var/log/docker.log"
) )
@ -80,6 +82,12 @@ func Main() {
args = append(args, os.Getenv("DOCKER_OPTS")) 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())) 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{}) p.ServiceConfigs.Add("docker", &composeConfig.ServiceConfig{})
if err := LoadService(p, cfg, *useNetwork, cfg.Rancher.Docker.Engine); err != nil && err != network.ErrNoNetwork { if err := LoadService(p, cfg, *useNetwork, cfg.Rancher.Docker.Engine); err != nil && err != network.ErrNoNetwork {
log.Error(err) log.Error(err)

View File

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

View File

@ -4,6 +4,8 @@ rancher:
SUFFIX: {{.SUFFIX}} SUFFIX: {{.SUFFIX}}
defaults: defaults:
hostname: {{.HOSTNAME_DEFAULT}} hostname: {{.HOSTNAME_DEFAULT}}
docker:
engine: docker-1.11.2
network: network:
dns: dns:
nameservers: [8.8.8.8, 8.8.4.4] nameservers: [8.8.8.8, 8.8.4.4]
@ -382,6 +384,7 @@ rancher:
url: {{.OS_RELEASES_YML}}/releases{{.SUFFIX}}.yml url: {{.OS_RELEASES_YML}}/releases{{.SUFFIX}}.yml
image: {{.OS_REPO}}/os image: {{.OS_REPO}}/os
docker: 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, 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'] '-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'] 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 set -ex
docker version | grep 1.10.3 docker version | grep 1.10.3
sudo ros engine list | grep 1.10.3 | grep current
docker run -d --restart=always nginx docker run -d --restart=always nginx
docker ps | grep nginx`) docker ps | grep nginx`)
@ -19,6 +21,7 @@ set -ex
sudo ros engine switch docker-1.11.2 sudo ros engine switch docker-1.11.2
/usr/sbin/wait-for-docker /usr/sbin/wait-for-docker
docker version | grep 1.11.2 docker version | grep 1.11.2
sudo ros engine list | grep 1.11.2 | grep current
docker ps | grep nginx`) docker ps | grep nginx`)
s.Reboot(c) s.Reboot(c)
@ -27,6 +30,7 @@ docker ps | grep nginx`)
set -ex set -ex
docker version | grep 1.11.2 docker version | grep 1.11.2
sudo ros engine list | grep 1.11.2 | grep current
docker ps | grep nginx`) docker ps | grep nginx`)
} }
@ -39,6 +43,7 @@ set -ex
apt-get --version apt-get --version
docker version | grep 1.10.3 docker version | grep 1.10.3
sudo ros engine list | grep 1.10.3 | grep current
docker run -d --restart=always nginx docker run -d --restart=always nginx
docker ps | grep nginx`) docker ps | grep nginx`)
@ -48,6 +53,7 @@ set -ex
sudo ros engine switch docker-1.11.2 sudo ros engine switch docker-1.11.2
/usr/sbin/wait-for-docker /usr/sbin/wait-for-docker
docker version | grep 1.11.2 docker version | grep 1.11.2
sudo ros engine list | grep 1.11.2 | grep current
docker ps | grep nginx`) docker ps | grep nginx`)
s.Reboot(c) s.Reboot(c)
@ -56,5 +62,6 @@ docker ps | grep nginx`)
set -ex set -ex
docker version | grep 1.11.2 docker version | grep 1.11.2
sudo ros engine list | grep 1.11.2 | grep current
docker ps | grep nginx`) docker ps | grep nginx`)
} }