Skip to content

Commit

Permalink
factor out InspectContainer usage in weaveutil
Browse files Browse the repository at this point in the history
  • Loading branch information
dtshepherd committed Sep 10, 2017
1 parent ef70b66 commit ad7b122
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 45 deletions.
24 changes: 2 additions & 22 deletions prog/weaveutil/attach.go
Expand Up @@ -8,7 +8,6 @@ import (
"strings"
"syscall"

docker "github.com/fsouza/go-dockerclient"
"github.com/vishvananda/netns"

weavenet "github.com/weaveworks/weave/net"
Expand Down Expand Up @@ -70,21 +69,6 @@ func attach(args []string) error {
return err
}

func containerPid(containerID string) (int, error) {
c, err := docker.NewVersionedClientFromEnv("1.18")
if err != nil {
return 0, fmt.Errorf("unable to connect to docker: %s", err)
}
container, err := c.InspectContainer(containerID)
if err != nil {
return 0, fmt.Errorf("unable to inspect container %s: %s", containerID, err)
}
if container.State.Pid == 0 {
return 0, fmt.Errorf("container %s not running", containerID)
}
return container.State.Pid, nil
}

func processExists(pid int) bool {
err := syscall.Kill(pid, syscall.Signal(0))
return err == nil || err == syscall.EPERM
Expand Down Expand Up @@ -127,13 +111,9 @@ func rewriteEtcHosts(args []string) error {
cidrs := args[2]
extraHosts := args[3:]

c, err := docker.NewVersionedClientFromEnv("1.18")
container, err := inspectContainer(containerID)
if err != nil {
return fmt.Errorf("unable to connect to docker: %s", err)
}
container, err := c.InspectContainer(containerID)
if err != nil {
return fmt.Errorf("unable to inspect container %s: %s", containerID, err)
return err
}

hostsPath := container.HostsPath
Expand Down
55 changes: 32 additions & 23 deletions prog/weaveutil/container.go
Expand Up @@ -8,21 +8,42 @@ import (
docker "github.com/fsouza/go-dockerclient"
)

func inspectContainer(containerNameOrID string) (*docker.Container, error) {
c, err := docker.NewVersionedClientFromEnv("1.18")
if err != nil {
return nil, fmt.Errorf("unable to connect to docker: %s", err)
}

container, err := c.InspectContainer(containerNameOrID)
if err != nil {
return nil, fmt.Errorf("unable to inspect container %s: %s", containerNameOrID, err)
}
return container, nil
}

func containerPid(containerID string) (int, error) {
container, err := inspectContainer(containerID)
if err != nil {
return 0, err

}

if container.State.Pid == 0 {
return 0, fmt.Errorf("container %s not running", containerID)
}
return container.State.Pid, nil
}

func containerID(args []string) error {
if len(args) < 1 {
cmdUsage("container-id", "<container-name-or-short-id>")
}
containerID := args[0]

c, err := docker.NewVersionedClientFromEnv("1.18")
container, err := inspectContainer(args[0])
if err != nil {
return fmt.Errorf("unable to connect to docker: %s", err)
return err
}

container, err := c.InspectContainer(containerID)
if err != nil {
return fmt.Errorf("unable to inspect container %s: %s", containerID, err)
}
fmt.Print(container.ID)
return nil
}
Expand All @@ -31,16 +52,10 @@ func containerState(args []string) error {
if len(args) < 1 {
cmdUsage("container-state", "<container-id> [<image-name-or-id>]")
}
containerID := args[0]

c, err := docker.NewVersionedClientFromEnv("1.18")
if err != nil {
return fmt.Errorf("unable to connect to docker: %s", err)
}

container, err := c.InspectContainer(containerID)
container, err := inspectContainer(args[0])
if err != nil {
return fmt.Errorf("unable to inspect container %s: %s", containerID, err)
return err
}

if len(args) == 1 {
Expand All @@ -66,16 +81,10 @@ func containerFQDN(args []string) error {
if len(args) < 1 {
cmdUsage("container-fqdn", "<container-id>")
}
containerID := args[0]

c, err := docker.NewVersionedClientFromEnv("1.18")
if err != nil {
return fmt.Errorf("unable to connect to docker: %s", err)
}

container, err := c.InspectContainer(containerID)
container, err := inspectContainer(args[0])
if err != nil {
return fmt.Errorf("unable to inspect container %s: %s", containerID, err)
return err
}

fmt.Print(container.Config.Hostname, ".", container.Config.Domainname)
Expand Down

0 comments on commit ad7b122

Please sign in to comment.