From f170df0a7617d422f3054b5388b2d7d2812a6bac Mon Sep 17 00:00:00 2001 From: Abin Shahab Date: Wed, 15 Oct 2014 07:58:58 +0000 Subject: [PATCH] Spec consistency --- container/raw/container_hints.go | 6 ++++-- container/raw/container_hints_test.go | 9 ++++++++- container/raw/handler.go | 16 +++++++++------- 3 files changed, 21 insertions(+), 10 deletions(-) diff --git a/container/raw/container_hints.go b/container/raw/container_hints.go index c3d9221a..a5473899 100644 --- a/container/raw/container_hints.go +++ b/container/raw/container_hints.go @@ -22,6 +22,7 @@ import ( "flag" "encoding/json" "io/ioutil" + "os" ) var argContainerHints = flag.String("container_hints", "/etc/cadvisor/container_hints.json", "container hints file") type containerHints struct { @@ -36,12 +37,13 @@ type containerHint struct { type networkInterface struct { VethHost string `json:"veth_host,omitempty"` VethChild string `json:"veth_child,omitempty"` - NsPath string `json:"ns_path,omitempty"` } func getContainerHintsFromFile(containerHintsFile string) (containerHints, error) { dat, err := ioutil.ReadFile(containerHintsFile) - + if os.IsNotExist(err) { + return containerHints{}, nil + } var cHints containerHints if err == nil { err = json.Unmarshal(dat, &cHints) diff --git a/container/raw/container_hints_test.go b/container/raw/container_hints_test.go index 04fee7a7..6dfd2704 100644 --- a/container/raw/container_hints_test.go +++ b/container/raw/container_hints_test.go @@ -4,7 +4,7 @@ import ( "testing" ) -func TestUnmarshal(t *testing.T) { +func TestGetContainerHintsFromFile(t *testing.T) { cHints, err := getContainerHintsFromFile("test_resources/container_hints.json") if err != nil { @@ -16,3 +16,10 @@ func TestUnmarshal(t *testing.T) { t.Errorf("Cannot find network interface in %s", cHints) } } + +func TestFileNotExist(t *testing.T) { + _, err := getContainerHintsFromFile("/file_does_not_exist.json") + if err != nil { + t.Fatalf("getContainerHintsFromFile must not error for blank file: %s", err) + } +} diff --git a/container/raw/handler.go b/container/raw/handler.go index c0dfb8a1..007a0fc9 100644 --- a/container/raw/handler.go +++ b/container/raw/handler.go @@ -167,25 +167,27 @@ func (self *rawContainerHandler) GetSpec() (info.ContainerSpec, error) { if self.name == "/" { spec.HasFilesystem = true } + + //Network + if self.networkInterface != nil { + spec.HasNetwork = true + } return spec, nil } func (self *rawContainerHandler) GetStats() (*info.ContainerStats, error) { - var stats *info.ContainerStats - var err error + state := dockerlibcontainer.State{} if self.networkInterface != nil { - state := dockerlibcontainer.State{ + state = dockerlibcontainer.State{ NetworkState: network.NetworkState{ VethHost: self.networkInterface.VethHost, VethChild: self.networkInterface.VethChild, NsPath: "unknown", }, } - - stats, err = libcontainer.GetStats(self.cgroup, &state) - } else { - stats, err = libcontainer.GetStatsCgroupOnly(self.cgroup) } + + stats, err := libcontainer.GetStats(self.cgroup, &state) if err != nil { return nil, err }