1
0
mirror of https://github.com/rancher/os.git synced 2025-08-02 15:31:15 +00:00

print proper tips when running ros or system-docker without using sudo

`ros` and `system-docker` command requires user to be the root user,
when we running them without using sudo, it will print the follow:

[rancher@rancher ~]$ ros os list
ERRO[0000] Failed to read /var/lib/rancher/conf/cloud-config.d: open
/var/lib/rancher/conf/cloud-config.d: permission denied
ERRO[0000] Error reading config files                    err=open
/var/lib/rancher/conf/cloud-config.yml: permission denied
files=[/var/lib/rancher/conf/cloud-config.yml]
ERRO[0000] Failed [1/4] 25%
ERRO[0000] Failed to load config
......
......
FATA[0000] open /var/lib/rancher/conf/cloud-config.yml: permission
denied

and

[rancher@rancher ~]$ system-docker restart docker
Failed to kill container(docker): Cannot connect to the Docker daemon.
Is the docker daemon running on this host?

this patch make the tips more clear and simple.

Signed-off-by: Wang Long <long.wanglong@huawei.com>
This commit is contained in:
Wang Long 2016-03-16 17:48:57 +08:00
parent 99eaf61978
commit 6617eab12f
2 changed files with 11 additions and 0 deletions

View File

@ -3,6 +3,7 @@ package control
import (
"os"
log "github.com/Sirupsen/logrus"
"github.com/codegangsta/cli"
"github.com/rancher/os/config"
)
@ -15,6 +16,12 @@ func Main() {
app.Version = config.VERSION
app.Author = "Rancher Labs, Inc."
app.EnableBashCompletion = true
app.Before = func(c *cli.Context) error {
if os.Geteuid() != 0 {
log.Fatalf("%s: Need to be root", os.Args[0])
}
return nil
}
app.Commands = []cli.Command{
{

View File

@ -19,6 +19,10 @@ func Main() {
newEnv = append(newEnv, "DOCKER_HOST="+config.DOCKER_SYSTEM_HOST)
if os.Geteuid() != 0 {
log.Fatalf("%s: Need to be root", os.Args[0])
}
os.Args[0] = config.DOCKER_DIST_BIN
if err := syscall.Exec(os.Args[0], os.Args, newEnv); err != nil {
log.Fatal(err)