mirror of
https://github.com/rancher/os.git
synced 2025-06-24 14:01:34 +00:00
Fix ros engine list too
Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au>
This commit is contained in:
parent
6fcc1e3967
commit
a04c0f3740
@ -10,7 +10,6 @@ import (
|
||||
"time"
|
||||
|
||||
"github.com/codegangsta/cli"
|
||||
"github.com/rancher/os/config"
|
||||
"github.com/rancher/os/log"
|
||||
"github.com/rancher/os/util"
|
||||
)
|
||||
@ -70,9 +69,8 @@ func dockerInitAction(c *cli.Context) error {
|
||||
fmt.Sprintf(`[ -e %s ] && source %s; exec /usr/bin/dockerlaunch %s %s $DOCKER_OPTS >> %s 2>&1`, dockerConf, dockerConf, dockerBin, strings.Join(c.Args(), " "), dockerLog),
|
||||
}
|
||||
|
||||
cfg := config.LoadConfig()
|
||||
|
||||
if err := ioutil.WriteFile(dockerDone, []byte(cfg.Rancher.Docker.Engine), 0644); err != nil {
|
||||
// TODO: this should be replaced by a "Docker ready event watcher"
|
||||
if err := ioutil.WriteFile(dockerDone, []byte(CurrentEngine()), 0644); err != nil {
|
||||
log.Error(err)
|
||||
}
|
||||
|
||||
|
@ -2,17 +2,18 @@ package control
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"sort"
|
||||
"strings"
|
||||
|
||||
"golang.org/x/net/context"
|
||||
|
||||
"github.com/codegangsta/cli"
|
||||
"github.com/docker/docker/reference"
|
||||
"github.com/docker/libcompose/project/options"
|
||||
"github.com/rancher/os/cmd/control/service"
|
||||
"github.com/rancher/os/compose"
|
||||
"github.com/rancher/os/config"
|
||||
"github.com/rancher/os/docker"
|
||||
"github.com/rancher/os/log"
|
||||
"github.com/rancher/os/util"
|
||||
"github.com/rancher/os/util/network"
|
||||
@ -104,7 +105,7 @@ func engineEnable(c *cli.Context) error {
|
||||
func engineList(c *cli.Context) error {
|
||||
cfg := config.LoadConfig()
|
||||
engines := availableEngines(cfg)
|
||||
currentEngine := currentEngine()
|
||||
currentEngine := CurrentEngine()
|
||||
|
||||
for _, engine := range engines {
|
||||
if engine == currentEngine {
|
||||
@ -135,12 +136,33 @@ func availableEngines(cfg *config.CloudConfig) []string {
|
||||
return engines
|
||||
}
|
||||
|
||||
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)
|
||||
// CurrentEngine gets the name of the docker that's running
|
||||
func CurrentEngine() (engine string) {
|
||||
// sudo system-docker inspect --format "{{.Config.Image}}" docker
|
||||
client, err := docker.NewSystemClient()
|
||||
if err != nil {
|
||||
log.Warnf("Failed to detect current docker: %v", err)
|
||||
return
|
||||
}
|
||||
info, err := client.ContainerInspect(context.Background(), "docker")
|
||||
if err != nil {
|
||||
log.Warnf("Failed to detect current docker: %v", err)
|
||||
return
|
||||
}
|
||||
// parse image name, then remove os- prefix and the engine suffix
|
||||
image, err := reference.ParseNamed(info.Config.Image)
|
||||
if err != nil {
|
||||
log.Warnf("Failed to detect current docker(%s): %v", info.Config.Image, err)
|
||||
return
|
||||
}
|
||||
if t, ok := image.(reference.NamedTagged); ok {
|
||||
tag := t.Tag()
|
||||
if !strings.HasPrefix(tag, "1.") {
|
||||
// TODO: this assumes we only do Docker ce :/
|
||||
tag = tag + "-ce"
|
||||
}
|
||||
return "docker-" + tag
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user