From 76e5cf8d5034c2efcdd7ee3604f9e7ee758667e7 Mon Sep 17 00:00:00 2001 From: Darren Shepherd Date: Mon, 16 Feb 2015 22:09:26 -0700 Subject: [PATCH] Merge power funcs and fix build issues --- init/init.go | 3 --- power/power.go | 19 ++++++++----------- scripts/bootstrap | 2 +- scripts/dockerimages/05-console | 1 + util/cutil.go | 8 ++++---- 5 files changed, 14 insertions(+), 19 deletions(-) diff --git a/init/init.go b/init/init.go index 3d9d0c65..f52d82b8 100644 --- a/init/init.go +++ b/init/init.go @@ -55,9 +55,6 @@ var ( "/sbin/modprobe": "/busybox", "/var/run": "/run", DOCKER: "/docker", - "/sbin/poweroff": "/init", - "/sbin/halt": "/init", - "/sbin/reboot": "/init", } ) diff --git a/power/power.go b/power/power.go index 58409941..bb377d3b 100644 --- a/power/power.go +++ b/power/power.go @@ -5,15 +5,14 @@ import ( "errors" "os" "strconv" - "syscall" "strings" + "syscall" "github.com/fsouza/go-dockerclient" ) - const ( - dockerPath = "unix:///var/run/system-docker.sock" + dockerPath = "unix:///var/run/system-docker.sock" dockerCGroupsFile = "/proc/self/cgroup" ) @@ -65,14 +64,14 @@ func shutDownContainers() error { return nil } client, err := docker.NewClient(dockerPath) - + if err != nil { return err } opts := docker.ListContainersOptions{All: true, Filters: map[string][]string{"status": []string{"running"}}} var containers []docker.APIContainers - + containers, err = client.ListContainers(opts) if err != nil { @@ -93,7 +92,7 @@ func shutDownContainers() error { } stopErr := client.StopContainer(containers[i].ID, timeout) if stopErr != nil { - stopErrorStrings = append(stopErrorStrings, " [" + containers[i].ID + "] " +stopErr.Error()) + stopErrorStrings = append(stopErrorStrings, " ["+containers[i].ID+"] "+stopErr.Error()) } } @@ -105,10 +104,10 @@ func shutDownContainers() error { } _, waitErr := client.WaitContainer(containers[i].ID) if waitErr != nil { - waitErrorStrings = append(waitErrorStrings, " [" + containers[i].ID + "] " + waitErr.Error()) + waitErrorStrings = append(waitErrorStrings, " ["+containers[i].ID+"] "+waitErr.Error()) } } - + if len(waitErrorStrings) != 0 || len(stopErrorStrings) != 0 { return errors.New("error while stopping \n1. STOP Errors [" + strings.Join(stopErrorStrings, ",") + "] \n2. WAIT Errors [" + strings.Join(waitErrorStrings, ",") + "]") } @@ -116,7 +115,6 @@ func shutDownContainers() error { return nil } - func getCurrentContainerId() (string, error) { file, err := os.Open(dockerCGroupsFile) @@ -131,7 +129,7 @@ func getCurrentContainerId() (string, error) { line := fileReader.Text() parts := strings.Split(line, "/") - while len(parts) != 3 { + for len(parts) != 3 { if !fileReader.Scan() { return "", errors.New("Found no docker cgroups") } @@ -148,4 +146,3 @@ func getCurrentContainerId() (string, error) { return parts[len(parts)-1:][0], nil } - diff --git a/scripts/bootstrap b/scripts/bootstrap index 3abb7e85..75ac00da 100755 --- a/scripts/bootstrap +++ b/scripts/bootstrap @@ -5,7 +5,7 @@ set -x cd $(dirname $0)/.. apt-get update -apt-get install -y curl rsync build-essential syslinux xorriso libblkid-dev +apt-get install -y curl rsync build-essential syslinux xorriso libblkid-dev libmount-dev libselinux1-dev curl -sL https://github.com/ibuildthecloud/docker/releases/download/v1.5.0-rancher-2/docker-1.5.0 > /usr/bin/docker diff --git a/scripts/dockerimages/05-console b/scripts/dockerimages/05-console index 85ca788a..8f37affb 100644 --- a/scripts/dockerimages/05-console +++ b/scripts/dockerimages/05-console @@ -1,3 +1,4 @@ FROM base +RUN rm /sbin/poweroff /sbin/reboot /sbin/halt COPY scripts/dockerimages/scripts/console.sh / CMD ["/console.sh"] diff --git a/util/cutil.go b/util/cutil.go index 1261b44a..d9f4cb11 100644 --- a/util/cutil.go +++ b/util/cutil.go @@ -1,7 +1,7 @@ package util /* -#cgo LDFLAGS: -lmount -lblkid -luuid +#cgo LDFLAGS: -lmount -lblkid -luuid -lselinux #include #include #include @@ -17,19 +17,19 @@ func ResolveDevice(spec string) string { cSpec := C.CString(spec) defer C.free(unsafe.Pointer(cSpec)) cString := C.blkid_evaluate_spec(cSpec, nil) - defer C.free(unsafe.Pointer(cString)) + defer C.free(unsafe.Pointer(cString)) return C.GoString(cString) } func GetFsType(device string) (string, error) { - var ambi * C.int + var ambi *C.int cDevice := C.CString(device) defer C.free(unsafe.Pointer(cDevice)) cString := C.mnt_get_fstype(cDevice, ambi, nil) defer C.free(unsafe.Pointer(cString)) if cString != nil { return C.GoString(cString), nil - } + } return "", errors.New("Error while getting fstype") }