mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-04 04:08:16 +00:00 
			
		
		
		
	Merge pull request #15755 from zhengguoyong/del_capatical_packagename_for_cadvisorApi2
Auto commit by PR queue bot
This commit is contained in:
		@@ -19,7 +19,7 @@ package service
 | 
			
		||||
import (
 | 
			
		||||
	"k8s.io/kubernetes/pkg/kubelet/cadvisor"
 | 
			
		||||
 | 
			
		||||
	cadvisorApi "github.com/google/cadvisor/info/v1"
 | 
			
		||||
	cadvisorapi "github.com/google/cadvisor/info/v1"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type MesosCadvisor struct {
 | 
			
		||||
@@ -36,7 +36,7 @@ func NewMesosCadvisor(cores int, mem int64, port uint) (*MesosCadvisor, error) {
 | 
			
		||||
	return &MesosCadvisor{c, cores, mem}, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (mc *MesosCadvisor) MachineInfo() (*cadvisorApi.MachineInfo, error) {
 | 
			
		||||
func (mc *MesosCadvisor) MachineInfo() (*cadvisorapi.MachineInfo, error) {
 | 
			
		||||
	mi, err := mc.Interface.MachineInfo()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
 
 | 
			
		||||
@@ -25,16 +25,16 @@ import (
 | 
			
		||||
	"net/http"
 | 
			
		||||
	"strconv"
 | 
			
		||||
 | 
			
		||||
	cadvisorApi "github.com/google/cadvisor/info/v1"
 | 
			
		||||
	cadvisorapi "github.com/google/cadvisor/info/v1"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type ContainerInfoGetter interface {
 | 
			
		||||
	// GetContainerInfo returns information about a container.
 | 
			
		||||
	GetContainerInfo(host, podID, containerID string, req *cadvisorApi.ContainerInfoRequest) (*cadvisorApi.ContainerInfo, error)
 | 
			
		||||
	GetContainerInfo(host, podID, containerID string, req *cadvisorapi.ContainerInfoRequest) (*cadvisorapi.ContainerInfo, error)
 | 
			
		||||
	// GetRootInfo returns information about the root container on a machine.
 | 
			
		||||
	GetRootInfo(host string, req *cadvisorApi.ContainerInfoRequest) (*cadvisorApi.ContainerInfo, error)
 | 
			
		||||
	GetRootInfo(host string, req *cadvisorapi.ContainerInfoRequest) (*cadvisorapi.ContainerInfo, error)
 | 
			
		||||
	// GetMachineInfo returns the machine's information like number of cores, memory capacity.
 | 
			
		||||
	GetMachineInfo(host string) (*cadvisorApi.MachineInfo, error)
 | 
			
		||||
	GetMachineInfo(host string) (*cadvisorapi.MachineInfo, error)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type HTTPContainerInfoGetter struct {
 | 
			
		||||
@@ -42,7 +42,7 @@ type HTTPContainerInfoGetter struct {
 | 
			
		||||
	Port   int
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (self *HTTPContainerInfoGetter) GetMachineInfo(host string) (*cadvisorApi.MachineInfo, error) {
 | 
			
		||||
func (self *HTTPContainerInfoGetter) GetMachineInfo(host string) (*cadvisorapi.MachineInfo, error) {
 | 
			
		||||
	request, err := http.NewRequest(
 | 
			
		||||
		"GET",
 | 
			
		||||
		fmt.Sprintf("http://%v/spec",
 | 
			
		||||
@@ -63,7 +63,7 @@ func (self *HTTPContainerInfoGetter) GetMachineInfo(host string) (*cadvisorApi.M
 | 
			
		||||
		return nil, fmt.Errorf("trying to get machine spec from %v; received status %v",
 | 
			
		||||
			host, response.Status)
 | 
			
		||||
	}
 | 
			
		||||
	var minfo cadvisorApi.MachineInfo
 | 
			
		||||
	var minfo cadvisorapi.MachineInfo
 | 
			
		||||
	err = json.NewDecoder(response.Body).Decode(&minfo)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
@@ -71,7 +71,7 @@ func (self *HTTPContainerInfoGetter) GetMachineInfo(host string) (*cadvisorApi.M
 | 
			
		||||
	return &minfo, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (self *HTTPContainerInfoGetter) getContainerInfo(host, path string, req *cadvisorApi.ContainerInfoRequest) (*cadvisorApi.ContainerInfo, error) {
 | 
			
		||||
func (self *HTTPContainerInfoGetter) getContainerInfo(host, path string, req *cadvisorapi.ContainerInfoRequest) (*cadvisorapi.ContainerInfo, error) {
 | 
			
		||||
	var body io.Reader
 | 
			
		||||
	if req != nil {
 | 
			
		||||
		content, err := json.Marshal(req)
 | 
			
		||||
@@ -102,7 +102,7 @@ func (self *HTTPContainerInfoGetter) getContainerInfo(host, path string, req *ca
 | 
			
		||||
		return nil, fmt.Errorf("trying to get info for %v from %v; received status %v",
 | 
			
		||||
			path, host, response.Status)
 | 
			
		||||
	}
 | 
			
		||||
	var cinfo cadvisorApi.ContainerInfo
 | 
			
		||||
	var cinfo cadvisorapi.ContainerInfo
 | 
			
		||||
	err = json.NewDecoder(response.Body).Decode(&cinfo)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
@@ -110,7 +110,7 @@ func (self *HTTPContainerInfoGetter) getContainerInfo(host, path string, req *ca
 | 
			
		||||
	return &cinfo, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (self *HTTPContainerInfoGetter) GetContainerInfo(host, podID, containerID string, req *cadvisorApi.ContainerInfoRequest) (*cadvisorApi.ContainerInfo, error) {
 | 
			
		||||
func (self *HTTPContainerInfoGetter) GetContainerInfo(host, podID, containerID string, req *cadvisorapi.ContainerInfoRequest) (*cadvisorapi.ContainerInfo, error) {
 | 
			
		||||
	return self.getContainerInfo(
 | 
			
		||||
		host,
 | 
			
		||||
		fmt.Sprintf("%v/%v", podID, containerID),
 | 
			
		||||
@@ -118,6 +118,6 @@ func (self *HTTPContainerInfoGetter) GetContainerInfo(host, podID, containerID s
 | 
			
		||||
	)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (self *HTTPContainerInfoGetter) GetRootInfo(host string, req *cadvisorApi.ContainerInfoRequest) (*cadvisorApi.ContainerInfo, error) {
 | 
			
		||||
func (self *HTTPContainerInfoGetter) GetRootInfo(host string, req *cadvisorapi.ContainerInfoRequest) (*cadvisorapi.ContainerInfo, error) {
 | 
			
		||||
	return self.getContainerInfo(host, "", req)
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -28,13 +28,13 @@ import (
 | 
			
		||||
	"testing"
 | 
			
		||||
	"time"
 | 
			
		||||
 | 
			
		||||
	cadvisorApi "github.com/google/cadvisor/info/v1"
 | 
			
		||||
	cadvisorApiTest "github.com/google/cadvisor/info/v1/test"
 | 
			
		||||
	cadvisorapi "github.com/google/cadvisor/info/v1"
 | 
			
		||||
	cadvisorapitest "github.com/google/cadvisor/info/v1/test"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func testHTTPContainerInfoGetter(
 | 
			
		||||
	req *cadvisorApi.ContainerInfoRequest,
 | 
			
		||||
	cinfo *cadvisorApi.ContainerInfo,
 | 
			
		||||
	req *cadvisorapi.ContainerInfoRequest,
 | 
			
		||||
	cinfo *cadvisorapi.ContainerInfo,
 | 
			
		||||
	podID string,
 | 
			
		||||
	containerID string,
 | 
			
		||||
	status int,
 | 
			
		||||
@@ -53,7 +53,7 @@ func testHTTPContainerInfoGetter(
 | 
			
		||||
				expectedPath, r.URL.Path)
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		var receivedReq cadvisorApi.ContainerInfoRequest
 | 
			
		||||
		var receivedReq cadvisorapi.ContainerInfoRequest
 | 
			
		||||
		err := json.NewDecoder(r.Body).Decode(&receivedReq)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			t.Fatal(err)
 | 
			
		||||
@@ -87,7 +87,7 @@ func testHTTPContainerInfoGetter(
 | 
			
		||||
		Port:   port,
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	var receivedContainerInfo *cadvisorApi.ContainerInfo
 | 
			
		||||
	var receivedContainerInfo *cadvisorapi.ContainerInfo
 | 
			
		||||
	if len(podID) > 0 && len(containerID) > 0 {
 | 
			
		||||
		receivedContainerInfo, err = containerInfoGetter.GetContainerInfo(parts[0], podID, containerID, req)
 | 
			
		||||
	} else {
 | 
			
		||||
@@ -109,10 +109,10 @@ func testHTTPContainerInfoGetter(
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func TestHTTPContainerInfoGetterGetContainerInfoSuccessfully(t *testing.T) {
 | 
			
		||||
	req := &cadvisorApi.ContainerInfoRequest{
 | 
			
		||||
	req := &cadvisorapi.ContainerInfoRequest{
 | 
			
		||||
		NumStats: 10,
 | 
			
		||||
	}
 | 
			
		||||
	cinfo := cadvisorApiTest.GenerateRandomContainerInfo(
 | 
			
		||||
	cinfo := cadvisorapitest.GenerateRandomContainerInfo(
 | 
			
		||||
		"dockerIDWhichWillNotBeChecked", // docker ID
 | 
			
		||||
		2, // Number of cores
 | 
			
		||||
		req,
 | 
			
		||||
@@ -122,10 +122,10 @@ func TestHTTPContainerInfoGetterGetContainerInfoSuccessfully(t *testing.T) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func TestHTTPContainerInfoGetterGetRootInfoSuccessfully(t *testing.T) {
 | 
			
		||||
	req := &cadvisorApi.ContainerInfoRequest{
 | 
			
		||||
	req := &cadvisorapi.ContainerInfoRequest{
 | 
			
		||||
		NumStats: 10,
 | 
			
		||||
	}
 | 
			
		||||
	cinfo := cadvisorApiTest.GenerateRandomContainerInfo(
 | 
			
		||||
	cinfo := cadvisorapitest.GenerateRandomContainerInfo(
 | 
			
		||||
		"dockerIDWhichWillNotBeChecked", // docker ID
 | 
			
		||||
		2, // Number of cores
 | 
			
		||||
		req,
 | 
			
		||||
@@ -135,10 +135,10 @@ func TestHTTPContainerInfoGetterGetRootInfoSuccessfully(t *testing.T) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func TestHTTPContainerInfoGetterGetContainerInfoWithError(t *testing.T) {
 | 
			
		||||
	req := &cadvisorApi.ContainerInfoRequest{
 | 
			
		||||
	req := &cadvisorapi.ContainerInfoRequest{
 | 
			
		||||
		NumStats: 10,
 | 
			
		||||
	}
 | 
			
		||||
	cinfo := cadvisorApiTest.GenerateRandomContainerInfo(
 | 
			
		||||
	cinfo := cadvisorapitest.GenerateRandomContainerInfo(
 | 
			
		||||
		"dockerIDWhichWillNotBeChecked", // docker ID
 | 
			
		||||
		2, // Number of cores
 | 
			
		||||
		req,
 | 
			
		||||
@@ -148,10 +148,10 @@ func TestHTTPContainerInfoGetterGetContainerInfoWithError(t *testing.T) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func TestHTTPContainerInfoGetterGetRootInfoWithError(t *testing.T) {
 | 
			
		||||
	req := &cadvisorApi.ContainerInfoRequest{
 | 
			
		||||
	req := &cadvisorapi.ContainerInfoRequest{
 | 
			
		||||
		NumStats: 10,
 | 
			
		||||
	}
 | 
			
		||||
	cinfo := cadvisorApiTest.GenerateRandomContainerInfo(
 | 
			
		||||
	cinfo := cadvisorapitest.GenerateRandomContainerInfo(
 | 
			
		||||
		"dockerIDWhichWillNotBeChecked", // docker ID
 | 
			
		||||
		2, // Number of cores
 | 
			
		||||
		req,
 | 
			
		||||
@@ -161,7 +161,7 @@ func TestHTTPContainerInfoGetterGetRootInfoWithError(t *testing.T) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func TestHTTPGetMachineInfo(t *testing.T) {
 | 
			
		||||
	mspec := &cadvisorApi.MachineInfo{
 | 
			
		||||
	mspec := &cadvisorapi.MachineInfo{
 | 
			
		||||
		NumCores:       4,
 | 
			
		||||
		MemoryCapacity: 2048,
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
@@ -18,8 +18,8 @@ package cadvisor
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"github.com/google/cadvisor/events"
 | 
			
		||||
	cadvisorApi "github.com/google/cadvisor/info/v1"
 | 
			
		||||
	cadvisorApiV2 "github.com/google/cadvisor/info/v2"
 | 
			
		||||
	cadvisorapi "github.com/google/cadvisor/info/v1"
 | 
			
		||||
	cadvisorapiv2 "github.com/google/cadvisor/info/v2"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Fake cAdvisor implementation.
 | 
			
		||||
@@ -32,32 +32,32 @@ func (c *Fake) Start() error {
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Fake) ContainerInfo(name string, req *cadvisorApi.ContainerInfoRequest) (*cadvisorApi.ContainerInfo, error) {
 | 
			
		||||
	return new(cadvisorApi.ContainerInfo), nil
 | 
			
		||||
func (c *Fake) ContainerInfo(name string, req *cadvisorapi.ContainerInfoRequest) (*cadvisorapi.ContainerInfo, error) {
 | 
			
		||||
	return new(cadvisorapi.ContainerInfo), nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Fake) SubcontainerInfo(name string, req *cadvisorApi.ContainerInfoRequest) (map[string]*cadvisorApi.ContainerInfo, error) {
 | 
			
		||||
	return map[string]*cadvisorApi.ContainerInfo{}, nil
 | 
			
		||||
func (c *Fake) SubcontainerInfo(name string, req *cadvisorapi.ContainerInfoRequest) (map[string]*cadvisorapi.ContainerInfo, error) {
 | 
			
		||||
	return map[string]*cadvisorapi.ContainerInfo{}, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Fake) DockerContainer(name string, req *cadvisorApi.ContainerInfoRequest) (cadvisorApi.ContainerInfo, error) {
 | 
			
		||||
	return cadvisorApi.ContainerInfo{}, nil
 | 
			
		||||
func (c *Fake) DockerContainer(name string, req *cadvisorapi.ContainerInfoRequest) (cadvisorapi.ContainerInfo, error) {
 | 
			
		||||
	return cadvisorapi.ContainerInfo{}, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Fake) MachineInfo() (*cadvisorApi.MachineInfo, error) {
 | 
			
		||||
	return new(cadvisorApi.MachineInfo), nil
 | 
			
		||||
func (c *Fake) MachineInfo() (*cadvisorapi.MachineInfo, error) {
 | 
			
		||||
	return new(cadvisorapi.MachineInfo), nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Fake) VersionInfo() (*cadvisorApi.VersionInfo, error) {
 | 
			
		||||
	return new(cadvisorApi.VersionInfo), nil
 | 
			
		||||
func (c *Fake) VersionInfo() (*cadvisorapi.VersionInfo, error) {
 | 
			
		||||
	return new(cadvisorapi.VersionInfo), nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Fake) DockerImagesFsInfo() (cadvisorApiV2.FsInfo, error) {
 | 
			
		||||
	return cadvisorApiV2.FsInfo{}, nil
 | 
			
		||||
func (c *Fake) DockerImagesFsInfo() (cadvisorapiv2.FsInfo, error) {
 | 
			
		||||
	return cadvisorapiv2.FsInfo{}, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Fake) RootFsInfo() (cadvisorApiV2.FsInfo, error) {
 | 
			
		||||
	return cadvisorApiV2.FsInfo{}, nil
 | 
			
		||||
func (c *Fake) RootFsInfo() (cadvisorapiv2.FsInfo, error) {
 | 
			
		||||
	return cadvisorapiv2.FsInfo{}, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Fake) WatchEvents(request *events.Request) (*events.EventChannel, error) {
 | 
			
		||||
 
 | 
			
		||||
@@ -28,8 +28,8 @@ import (
 | 
			
		||||
	"github.com/google/cadvisor/events"
 | 
			
		||||
	cadvisorFs "github.com/google/cadvisor/fs"
 | 
			
		||||
	cadvisorHttp "github.com/google/cadvisor/http"
 | 
			
		||||
	cadvisorApi "github.com/google/cadvisor/info/v1"
 | 
			
		||||
	cadvisorApiV2 "github.com/google/cadvisor/info/v2"
 | 
			
		||||
	cadvisorapi "github.com/google/cadvisor/info/v1"
 | 
			
		||||
	cadvisorapiv2 "github.com/google/cadvisor/info/v2"
 | 
			
		||||
	"github.com/google/cadvisor/manager"
 | 
			
		||||
	"github.com/google/cadvisor/utils/sysfs"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/util"
 | 
			
		||||
@@ -109,46 +109,46 @@ func (cc *cadvisorClient) exportHTTP(port uint) error {
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (cc *cadvisorClient) ContainerInfo(name string, req *cadvisorApi.ContainerInfoRequest) (*cadvisorApi.ContainerInfo, error) {
 | 
			
		||||
func (cc *cadvisorClient) ContainerInfo(name string, req *cadvisorapi.ContainerInfoRequest) (*cadvisorapi.ContainerInfo, error) {
 | 
			
		||||
	return cc.GetContainerInfo(name, req)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (cc *cadvisorClient) VersionInfo() (*cadvisorApi.VersionInfo, error) {
 | 
			
		||||
func (cc *cadvisorClient) VersionInfo() (*cadvisorapi.VersionInfo, error) {
 | 
			
		||||
	return cc.GetVersionInfo()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (cc *cadvisorClient) SubcontainerInfo(name string, req *cadvisorApi.ContainerInfoRequest) (map[string]*cadvisorApi.ContainerInfo, error) {
 | 
			
		||||
func (cc *cadvisorClient) SubcontainerInfo(name string, req *cadvisorapi.ContainerInfoRequest) (map[string]*cadvisorapi.ContainerInfo, error) {
 | 
			
		||||
	infos, err := cc.SubcontainersInfo(name, req)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	result := make(map[string]*cadvisorApi.ContainerInfo, len(infos))
 | 
			
		||||
	result := make(map[string]*cadvisorapi.ContainerInfo, len(infos))
 | 
			
		||||
	for _, info := range infos {
 | 
			
		||||
		result[info.Name] = info
 | 
			
		||||
	}
 | 
			
		||||
	return result, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (cc *cadvisorClient) MachineInfo() (*cadvisorApi.MachineInfo, error) {
 | 
			
		||||
func (cc *cadvisorClient) MachineInfo() (*cadvisorapi.MachineInfo, error) {
 | 
			
		||||
	return cc.GetMachineInfo()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (cc *cadvisorClient) DockerImagesFsInfo() (cadvisorApiV2.FsInfo, error) {
 | 
			
		||||
func (cc *cadvisorClient) DockerImagesFsInfo() (cadvisorapiv2.FsInfo, error) {
 | 
			
		||||
	return cc.getFsInfo(cadvisorFs.LabelDockerImages)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (cc *cadvisorClient) RootFsInfo() (cadvisorApiV2.FsInfo, error) {
 | 
			
		||||
func (cc *cadvisorClient) RootFsInfo() (cadvisorapiv2.FsInfo, error) {
 | 
			
		||||
	return cc.getFsInfo(cadvisorFs.LabelSystemRoot)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (cc *cadvisorClient) getFsInfo(label string) (cadvisorApiV2.FsInfo, error) {
 | 
			
		||||
func (cc *cadvisorClient) getFsInfo(label string) (cadvisorapiv2.FsInfo, error) {
 | 
			
		||||
	res, err := cc.GetFsInfo(label)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return cadvisorApiV2.FsInfo{}, err
 | 
			
		||||
		return cadvisorapiv2.FsInfo{}, err
 | 
			
		||||
	}
 | 
			
		||||
	if len(res) == 0 {
 | 
			
		||||
		return cadvisorApiV2.FsInfo{}, fmt.Errorf("failed to find information for the filesystem labeled %q", label)
 | 
			
		||||
		return cadvisorapiv2.FsInfo{}, fmt.Errorf("failed to find information for the filesystem labeled %q", label)
 | 
			
		||||
	}
 | 
			
		||||
	// TODO(vmarmol): Handle this better when a label has more than one image filesystem.
 | 
			
		||||
	if len(res) > 1 {
 | 
			
		||||
 
 | 
			
		||||
@@ -18,8 +18,8 @@ package cadvisor
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"github.com/google/cadvisor/events"
 | 
			
		||||
	cadvisorApi "github.com/google/cadvisor/info/v1"
 | 
			
		||||
	cadvisorApiV2 "github.com/google/cadvisor/info/v2"
 | 
			
		||||
	cadvisorapi "github.com/google/cadvisor/info/v1"
 | 
			
		||||
	cadvisorapiv2 "github.com/google/cadvisor/info/v2"
 | 
			
		||||
	"github.com/stretchr/testify/mock"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@@ -35,41 +35,41 @@ func (c *Mock) Start() error {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ContainerInfo is a mock implementation of Interface.ContainerInfo.
 | 
			
		||||
func (c *Mock) ContainerInfo(name string, req *cadvisorApi.ContainerInfoRequest) (*cadvisorApi.ContainerInfo, error) {
 | 
			
		||||
func (c *Mock) ContainerInfo(name string, req *cadvisorapi.ContainerInfoRequest) (*cadvisorapi.ContainerInfo, error) {
 | 
			
		||||
	args := c.Called(name, req)
 | 
			
		||||
	return args.Get(0).(*cadvisorApi.ContainerInfo), args.Error(1)
 | 
			
		||||
	return args.Get(0).(*cadvisorapi.ContainerInfo), args.Error(1)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Mock) SubcontainerInfo(name string, req *cadvisorApi.ContainerInfoRequest) (map[string]*cadvisorApi.ContainerInfo, error) {
 | 
			
		||||
func (c *Mock) SubcontainerInfo(name string, req *cadvisorapi.ContainerInfoRequest) (map[string]*cadvisorapi.ContainerInfo, error) {
 | 
			
		||||
	args := c.Called(name, req)
 | 
			
		||||
	return args.Get(0).(map[string]*cadvisorApi.ContainerInfo), args.Error(1)
 | 
			
		||||
	return args.Get(0).(map[string]*cadvisorapi.ContainerInfo), args.Error(1)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// DockerContainer is a mock implementation of Interface.DockerContainer.
 | 
			
		||||
func (c *Mock) DockerContainer(name string, req *cadvisorApi.ContainerInfoRequest) (cadvisorApi.ContainerInfo, error) {
 | 
			
		||||
func (c *Mock) DockerContainer(name string, req *cadvisorapi.ContainerInfoRequest) (cadvisorapi.ContainerInfo, error) {
 | 
			
		||||
	args := c.Called(name, req)
 | 
			
		||||
	return args.Get(0).(cadvisorApi.ContainerInfo), args.Error(1)
 | 
			
		||||
	return args.Get(0).(cadvisorapi.ContainerInfo), args.Error(1)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// MachineInfo is a mock implementation of Interface.MachineInfo.
 | 
			
		||||
func (c *Mock) MachineInfo() (*cadvisorApi.MachineInfo, error) {
 | 
			
		||||
func (c *Mock) MachineInfo() (*cadvisorapi.MachineInfo, error) {
 | 
			
		||||
	args := c.Called()
 | 
			
		||||
	return args.Get(0).(*cadvisorApi.MachineInfo), args.Error(1)
 | 
			
		||||
	return args.Get(0).(*cadvisorapi.MachineInfo), args.Error(1)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Mock) VersionInfo() (*cadvisorApi.VersionInfo, error) {
 | 
			
		||||
func (c *Mock) VersionInfo() (*cadvisorapi.VersionInfo, error) {
 | 
			
		||||
	args := c.Called()
 | 
			
		||||
	return args.Get(0).(*cadvisorApi.VersionInfo), args.Error(1)
 | 
			
		||||
	return args.Get(0).(*cadvisorapi.VersionInfo), args.Error(1)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Mock) DockerImagesFsInfo() (cadvisorApiV2.FsInfo, error) {
 | 
			
		||||
func (c *Mock) DockerImagesFsInfo() (cadvisorapiv2.FsInfo, error) {
 | 
			
		||||
	args := c.Called()
 | 
			
		||||
	return args.Get(0).(cadvisorApiV2.FsInfo), args.Error(1)
 | 
			
		||||
	return args.Get(0).(cadvisorapiv2.FsInfo), args.Error(1)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Mock) RootFsInfo() (cadvisorApiV2.FsInfo, error) {
 | 
			
		||||
func (c *Mock) RootFsInfo() (cadvisorapiv2.FsInfo, error) {
 | 
			
		||||
	args := c.Called()
 | 
			
		||||
	return args.Get(0).(cadvisorApiV2.FsInfo), args.Error(1)
 | 
			
		||||
	return args.Get(0).(cadvisorapiv2.FsInfo), args.Error(1)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Mock) WatchEvents(request *events.Request) (*events.EventChannel, error) {
 | 
			
		||||
 
 | 
			
		||||
@@ -22,8 +22,8 @@ import (
 | 
			
		||||
	"errors"
 | 
			
		||||
 | 
			
		||||
	"github.com/google/cadvisor/events"
 | 
			
		||||
	cadvisorApi "github.com/google/cadvisor/info/v1"
 | 
			
		||||
	cadvisorApiV2 "github.com/google/cadvisor/info/v2"
 | 
			
		||||
	cadvisorapi "github.com/google/cadvisor/info/v1"
 | 
			
		||||
	cadvisorapiv2 "github.com/google/cadvisor/info/v2"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type cadvisorUnsupported struct {
 | 
			
		||||
@@ -41,32 +41,32 @@ func (cu *cadvisorUnsupported) Start() error {
 | 
			
		||||
	return unsupportedErr
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (cu *cadvisorUnsupported) DockerContainer(name string, req *cadvisorApi.ContainerInfoRequest) (cadvisorApi.ContainerInfo, error) {
 | 
			
		||||
	return cadvisorApi.ContainerInfo{}, unsupportedErr
 | 
			
		||||
func (cu *cadvisorUnsupported) DockerContainer(name string, req *cadvisorapi.ContainerInfoRequest) (cadvisorapi.ContainerInfo, error) {
 | 
			
		||||
	return cadvisorapi.ContainerInfo{}, unsupportedErr
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (cu *cadvisorUnsupported) ContainerInfo(name string, req *cadvisorApi.ContainerInfoRequest) (*cadvisorApi.ContainerInfo, error) {
 | 
			
		||||
func (cu *cadvisorUnsupported) ContainerInfo(name string, req *cadvisorapi.ContainerInfoRequest) (*cadvisorapi.ContainerInfo, error) {
 | 
			
		||||
	return nil, unsupportedErr
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (cu *cadvisorUnsupported) SubcontainerInfo(name string, req *cadvisorApi.ContainerInfoRequest) (map[string]*cadvisorApi.ContainerInfo, error) {
 | 
			
		||||
func (cu *cadvisorUnsupported) SubcontainerInfo(name string, req *cadvisorapi.ContainerInfoRequest) (map[string]*cadvisorapi.ContainerInfo, error) {
 | 
			
		||||
	return nil, unsupportedErr
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (cu *cadvisorUnsupported) MachineInfo() (*cadvisorApi.MachineInfo, error) {
 | 
			
		||||
func (cu *cadvisorUnsupported) MachineInfo() (*cadvisorapi.MachineInfo, error) {
 | 
			
		||||
	return nil, unsupportedErr
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (cu *cadvisorUnsupported) VersionInfo() (*cadvisorApi.VersionInfo, error) {
 | 
			
		||||
func (cu *cadvisorUnsupported) VersionInfo() (*cadvisorapi.VersionInfo, error) {
 | 
			
		||||
	return nil, unsupportedErr
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (cu *cadvisorUnsupported) DockerImagesFsInfo() (cadvisorApiV2.FsInfo, error) {
 | 
			
		||||
	return cadvisorApiV2.FsInfo{}, unsupportedErr
 | 
			
		||||
func (cu *cadvisorUnsupported) DockerImagesFsInfo() (cadvisorapiv2.FsInfo, error) {
 | 
			
		||||
	return cadvisorapiv2.FsInfo{}, unsupportedErr
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (cu *cadvisorUnsupported) RootFsInfo() (cadvisorApiV2.FsInfo, error) {
 | 
			
		||||
	return cadvisorApiV2.FsInfo{}, unsupportedErr
 | 
			
		||||
func (cu *cadvisorUnsupported) RootFsInfo() (cadvisorapiv2.FsInfo, error) {
 | 
			
		||||
	return cadvisorapiv2.FsInfo{}, unsupportedErr
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (cu *cadvisorUnsupported) WatchEvents(request *events.Request) (*events.EventChannel, error) {
 | 
			
		||||
 
 | 
			
		||||
@@ -18,25 +18,25 @@ package cadvisor
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"github.com/google/cadvisor/events"
 | 
			
		||||
	cadvisorApi "github.com/google/cadvisor/info/v1"
 | 
			
		||||
	cadvisorApiV2 "github.com/google/cadvisor/info/v2"
 | 
			
		||||
	cadvisorapi "github.com/google/cadvisor/info/v1"
 | 
			
		||||
	cadvisorapiv2 "github.com/google/cadvisor/info/v2"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Interface is an abstract interface for testability.  It abstracts the interface to cAdvisor.
 | 
			
		||||
type Interface interface {
 | 
			
		||||
	Start() error
 | 
			
		||||
	DockerContainer(name string, req *cadvisorApi.ContainerInfoRequest) (cadvisorApi.ContainerInfo, error)
 | 
			
		||||
	ContainerInfo(name string, req *cadvisorApi.ContainerInfoRequest) (*cadvisorApi.ContainerInfo, error)
 | 
			
		||||
	SubcontainerInfo(name string, req *cadvisorApi.ContainerInfoRequest) (map[string]*cadvisorApi.ContainerInfo, error)
 | 
			
		||||
	MachineInfo() (*cadvisorApi.MachineInfo, error)
 | 
			
		||||
	DockerContainer(name string, req *cadvisorapi.ContainerInfoRequest) (cadvisorapi.ContainerInfo, error)
 | 
			
		||||
	ContainerInfo(name string, req *cadvisorapi.ContainerInfoRequest) (*cadvisorapi.ContainerInfo, error)
 | 
			
		||||
	SubcontainerInfo(name string, req *cadvisorapi.ContainerInfoRequest) (map[string]*cadvisorapi.ContainerInfo, error)
 | 
			
		||||
	MachineInfo() (*cadvisorapi.MachineInfo, error)
 | 
			
		||||
 | 
			
		||||
	VersionInfo() (*cadvisorApi.VersionInfo, error)
 | 
			
		||||
	VersionInfo() (*cadvisorapi.VersionInfo, error)
 | 
			
		||||
 | 
			
		||||
	// Returns usage information about the filesystem holding Docker images.
 | 
			
		||||
	DockerImagesFsInfo() (cadvisorApiV2.FsInfo, error)
 | 
			
		||||
	DockerImagesFsInfo() (cadvisorapiv2.FsInfo, error)
 | 
			
		||||
 | 
			
		||||
	// Returns usage information about the root filesystem.
 | 
			
		||||
	RootFsInfo() (cadvisorApiV2.FsInfo, error)
 | 
			
		||||
	RootFsInfo() (cadvisorapiv2.FsInfo, error)
 | 
			
		||||
 | 
			
		||||
	// Get events streamed through passedChannel that fit the request.
 | 
			
		||||
	WatchEvents(request *events.Request) (*events.EventChannel, error)
 | 
			
		||||
 
 | 
			
		||||
@@ -28,7 +28,7 @@ import (
 | 
			
		||||
 | 
			
		||||
	"github.com/docker/docker/pkg/jsonmessage"
 | 
			
		||||
	docker "github.com/fsouza/go-dockerclient"
 | 
			
		||||
	cadvisorApi "github.com/google/cadvisor/info/v1"
 | 
			
		||||
	cadvisorapi "github.com/google/cadvisor/info/v1"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/api"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/client/record"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/credentialprovider"
 | 
			
		||||
@@ -671,7 +671,7 @@ func TestFindContainersByPod(t *testing.T) {
 | 
			
		||||
	fakeClient := &FakeDockerClient{}
 | 
			
		||||
	np, _ := network.InitNetworkPlugin([]network.NetworkPlugin{}, "", network.NewFakeHost(nil))
 | 
			
		||||
	// image back-off is set to nil, this test shouldnt pull images
 | 
			
		||||
	containerManager := NewFakeDockerManager(fakeClient, &record.FakeRecorder{}, nil, nil, &cadvisorApi.MachineInfo{}, PodInfraContainerImage, 0, 0, "", kubecontainer.FakeOS{}, np, nil, nil, nil)
 | 
			
		||||
	containerManager := NewFakeDockerManager(fakeClient, &record.FakeRecorder{}, nil, nil, &cadvisorapi.MachineInfo{}, PodInfraContainerImage, 0, 0, "", kubecontainer.FakeOS{}, np, nil, nil, nil)
 | 
			
		||||
	for i, test := range tests {
 | 
			
		||||
		fakeClient.ContainerList = test.containerList
 | 
			
		||||
		fakeClient.ExitedContainerList = test.exitedContainerList
 | 
			
		||||
 
 | 
			
		||||
@@ -17,7 +17,7 @@ limitations under the License.
 | 
			
		||||
package dockertools
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	cadvisorApi "github.com/google/cadvisor/info/v1"
 | 
			
		||||
	cadvisorapi "github.com/google/cadvisor/info/v1"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/client/record"
 | 
			
		||||
	kubecontainer "k8s.io/kubernetes/pkg/kubelet/container"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/kubelet/network"
 | 
			
		||||
@@ -33,7 +33,7 @@ func NewFakeDockerManager(
 | 
			
		||||
	recorder record.EventRecorder,
 | 
			
		||||
	prober prober.Prober,
 | 
			
		||||
	containerRefManager *kubecontainer.RefManager,
 | 
			
		||||
	machineInfo *cadvisorApi.MachineInfo,
 | 
			
		||||
	machineInfo *cadvisorapi.MachineInfo,
 | 
			
		||||
	podInfraContainerImage string,
 | 
			
		||||
	qps float32,
 | 
			
		||||
	burst int,
 | 
			
		||||
 
 | 
			
		||||
@@ -34,7 +34,7 @@ import (
 | 
			
		||||
	docker "github.com/fsouza/go-dockerclient"
 | 
			
		||||
	"github.com/golang/glog"
 | 
			
		||||
	"github.com/golang/groupcache/lru"
 | 
			
		||||
	cadvisorApi "github.com/google/cadvisor/info/v1"
 | 
			
		||||
	cadvisorapi "github.com/google/cadvisor/info/v1"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/api"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/api/latest"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/api/unversioned"
 | 
			
		||||
@@ -89,7 +89,7 @@ type DockerManager struct {
 | 
			
		||||
	recorder            record.EventRecorder
 | 
			
		||||
	containerRefManager *kubecontainer.RefManager
 | 
			
		||||
	os                  kubecontainer.OSInterface
 | 
			
		||||
	machineInfo         *cadvisorApi.MachineInfo
 | 
			
		||||
	machineInfo         *cadvisorapi.MachineInfo
 | 
			
		||||
 | 
			
		||||
	// The image name of the pod infra container.
 | 
			
		||||
	podInfraContainerImage string
 | 
			
		||||
@@ -149,7 +149,7 @@ func NewDockerManager(
 | 
			
		||||
	recorder record.EventRecorder,
 | 
			
		||||
	prober prober.Prober,
 | 
			
		||||
	containerRefManager *kubecontainer.RefManager,
 | 
			
		||||
	machineInfo *cadvisorApi.MachineInfo,
 | 
			
		||||
	machineInfo *cadvisorapi.MachineInfo,
 | 
			
		||||
	podInfraContainerImage string,
 | 
			
		||||
	qps float32,
 | 
			
		||||
	burst int,
 | 
			
		||||
 
 | 
			
		||||
@@ -30,7 +30,7 @@ import (
 | 
			
		||||
	"time"
 | 
			
		||||
 | 
			
		||||
	docker "github.com/fsouza/go-dockerclient"
 | 
			
		||||
	cadvisorApi "github.com/google/cadvisor/info/v1"
 | 
			
		||||
	cadvisorapi "github.com/google/cadvisor/info/v1"
 | 
			
		||||
	"github.com/stretchr/testify/assert"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/api"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/api/testapi"
 | 
			
		||||
@@ -85,7 +85,7 @@ func newTestDockerManagerWithHTTPClient(fakeHTTPClient *fakeHTTP) (*DockerManage
 | 
			
		||||
		fakeRecorder,
 | 
			
		||||
		prober.FakeProber{},
 | 
			
		||||
		containerRefManager,
 | 
			
		||||
		&cadvisorApi.MachineInfo{},
 | 
			
		||||
		&cadvisorapi.MachineInfo{},
 | 
			
		||||
		PodInfraContainerImage,
 | 
			
		||||
		0, 0, "",
 | 
			
		||||
		kubecontainer.FakeOS{},
 | 
			
		||||
 
 | 
			
		||||
@@ -34,7 +34,7 @@ import (
 | 
			
		||||
	"time"
 | 
			
		||||
 | 
			
		||||
	"github.com/golang/glog"
 | 
			
		||||
	cadvisorApi "github.com/google/cadvisor/info/v1"
 | 
			
		||||
	cadvisorapi "github.com/google/cadvisor/info/v1"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/api"
 | 
			
		||||
	apierrors "k8s.io/kubernetes/pkg/api/errors"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/api/resource"
 | 
			
		||||
@@ -530,7 +530,7 @@ type Kubelet struct {
 | 
			
		||||
	diskSpaceManager diskSpaceManager
 | 
			
		||||
 | 
			
		||||
	// Cached MachineInfo returned by cadvisor.
 | 
			
		||||
	machineInfo *cadvisorApi.MachineInfo
 | 
			
		||||
	machineInfo *cadvisorapi.MachineInfo
 | 
			
		||||
 | 
			
		||||
	// Syncs pods statuses with apiserver; also used as a cache of statuses.
 | 
			
		||||
	statusManager status.Manager
 | 
			
		||||
@@ -2769,7 +2769,7 @@ func (kl *Kubelet) ResyncInterval() time.Duration {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// GetContainerInfo returns stats (from Cadvisor) for a container.
 | 
			
		||||
func (kl *Kubelet) GetContainerInfo(podFullName string, podUID types.UID, containerName string, req *cadvisorApi.ContainerInfoRequest) (*cadvisorApi.ContainerInfo, error) {
 | 
			
		||||
func (kl *Kubelet) GetContainerInfo(podFullName string, podUID types.UID, containerName string, req *cadvisorapi.ContainerInfoRequest) (*cadvisorapi.ContainerInfo, error) {
 | 
			
		||||
 | 
			
		||||
	podUID = kl.podManager.TranslatePodUID(podUID)
 | 
			
		||||
 | 
			
		||||
@@ -2791,7 +2791,7 @@ func (kl *Kubelet) GetContainerInfo(podFullName string, podUID types.UID, contai
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Returns stats (from Cadvisor) for a non-Kubernetes container.
 | 
			
		||||
func (kl *Kubelet) GetRawContainerInfo(containerName string, req *cadvisorApi.ContainerInfoRequest, subcontainers bool) (map[string]*cadvisorApi.ContainerInfo, error) {
 | 
			
		||||
func (kl *Kubelet) GetRawContainerInfo(containerName string, req *cadvisorapi.ContainerInfoRequest, subcontainers bool) (map[string]*cadvisorapi.ContainerInfo, error) {
 | 
			
		||||
	if subcontainers {
 | 
			
		||||
		return kl.cadvisor.SubcontainerInfo(containerName, req)
 | 
			
		||||
	} else {
 | 
			
		||||
@@ -2799,14 +2799,14 @@ func (kl *Kubelet) GetRawContainerInfo(containerName string, req *cadvisorApi.Co
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return nil, err
 | 
			
		||||
		}
 | 
			
		||||
		return map[string]*cadvisorApi.ContainerInfo{
 | 
			
		||||
		return map[string]*cadvisorapi.ContainerInfo{
 | 
			
		||||
			containerInfo.Name: containerInfo,
 | 
			
		||||
		}, nil
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// GetCachedMachineInfo assumes that the machine info can't change without a reboot
 | 
			
		||||
func (kl *Kubelet) GetCachedMachineInfo() (*cadvisorApi.MachineInfo, error) {
 | 
			
		||||
func (kl *Kubelet) GetCachedMachineInfo() (*cadvisorapi.MachineInfo, error) {
 | 
			
		||||
	if kl.machineInfo == nil {
 | 
			
		||||
		info, err := kl.cadvisor.MachineInfo()
 | 
			
		||||
		if err != nil {
 | 
			
		||||
 
 | 
			
		||||
@@ -31,8 +31,8 @@ import (
 | 
			
		||||
	"testing"
 | 
			
		||||
	"time"
 | 
			
		||||
 | 
			
		||||
	cadvisorApi "github.com/google/cadvisor/info/v1"
 | 
			
		||||
	cadvisorApiv2 "github.com/google/cadvisor/info/v2"
 | 
			
		||||
	cadvisorapi "github.com/google/cadvisor/info/v1"
 | 
			
		||||
	cadvisorapiv2 "github.com/google/cadvisor/info/v2"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/api"
 | 
			
		||||
	apierrors "k8s.io/kubernetes/pkg/api/errors"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/api/resource"
 | 
			
		||||
@@ -318,7 +318,7 @@ var emptyPodUIDs map[types.UID]kubetypes.SyncPodType
 | 
			
		||||
 | 
			
		||||
func TestSyncLoopTimeUpdate(t *testing.T) {
 | 
			
		||||
	testKubelet := newTestKubelet(t)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorApi.MachineInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil)
 | 
			
		||||
	kubelet := testKubelet.kubelet
 | 
			
		||||
 | 
			
		||||
	loopTime1 := kubelet.LatestLoopEntryTime()
 | 
			
		||||
@@ -340,7 +340,7 @@ func TestSyncLoopTimeUpdate(t *testing.T) {
 | 
			
		||||
 | 
			
		||||
func TestSyncLoopAbort(t *testing.T) {
 | 
			
		||||
	testKubelet := newTestKubelet(t)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorApi.MachineInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil)
 | 
			
		||||
	kubelet := testKubelet.kubelet
 | 
			
		||||
	kubelet.lastTimestampRuntimeUp = time.Now()
 | 
			
		||||
	kubelet.networkConfigured = true
 | 
			
		||||
@@ -363,9 +363,9 @@ func TestSyncLoopAbort(t *testing.T) {
 | 
			
		||||
 | 
			
		||||
func TestSyncPodsStartPod(t *testing.T) {
 | 
			
		||||
	testKubelet := newTestKubelet(t)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorApi.MachineInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("DockerImagesFsInfo").Return(cadvisorApiv2.FsInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorApiv2.FsInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("DockerImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
 | 
			
		||||
	kubelet := testKubelet.kubelet
 | 
			
		||||
	fakeRuntime := testKubelet.fakeRuntime
 | 
			
		||||
	pods := []*api.Pod{
 | 
			
		||||
@@ -392,9 +392,9 @@ func TestSyncPodsDeletesWhenSourcesAreReady(t *testing.T) {
 | 
			
		||||
 | 
			
		||||
	testKubelet := newTestKubelet(t)
 | 
			
		||||
	fakeRuntime := testKubelet.fakeRuntime
 | 
			
		||||
	testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorApi.MachineInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("DockerImagesFsInfo").Return(cadvisorApiv2.FsInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorApiv2.FsInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("DockerImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
 | 
			
		||||
	kubelet := testKubelet.kubelet
 | 
			
		||||
	kubelet.sourcesReady = func(_ sets.String) bool { return ready }
 | 
			
		||||
 | 
			
		||||
@@ -569,8 +569,8 @@ func TestMakeVolumeMounts(t *testing.T) {
 | 
			
		||||
func TestGetContainerInfo(t *testing.T) {
 | 
			
		||||
	containerID := "ab2cdf"
 | 
			
		||||
	containerPath := fmt.Sprintf("/docker/%v", containerID)
 | 
			
		||||
	containerInfo := cadvisorApi.ContainerInfo{
 | 
			
		||||
		ContainerReference: cadvisorApi.ContainerReference{
 | 
			
		||||
	containerInfo := cadvisorapi.ContainerInfo{
 | 
			
		||||
		ContainerReference: cadvisorapi.ContainerReference{
 | 
			
		||||
			Name: containerPath,
 | 
			
		||||
		},
 | 
			
		||||
	}
 | 
			
		||||
@@ -578,7 +578,7 @@ func TestGetContainerInfo(t *testing.T) {
 | 
			
		||||
	testKubelet := newTestKubelet(t)
 | 
			
		||||
	fakeRuntime := testKubelet.fakeRuntime
 | 
			
		||||
	kubelet := testKubelet.kubelet
 | 
			
		||||
	cadvisorReq := &cadvisorApi.ContainerInfoRequest{}
 | 
			
		||||
	cadvisorReq := &cadvisorapi.ContainerInfoRequest{}
 | 
			
		||||
	mockCadvisor := testKubelet.fakeCadvisor
 | 
			
		||||
	mockCadvisor.On("DockerContainer", containerID, cadvisorReq).Return(containerInfo, nil)
 | 
			
		||||
	fakeRuntime.PodList = []*kubecontainer.Pod{
 | 
			
		||||
@@ -606,15 +606,15 @@ func TestGetContainerInfo(t *testing.T) {
 | 
			
		||||
 | 
			
		||||
func TestGetRawContainerInfoRoot(t *testing.T) {
 | 
			
		||||
	containerPath := "/"
 | 
			
		||||
	containerInfo := &cadvisorApi.ContainerInfo{
 | 
			
		||||
		ContainerReference: cadvisorApi.ContainerReference{
 | 
			
		||||
	containerInfo := &cadvisorapi.ContainerInfo{
 | 
			
		||||
		ContainerReference: cadvisorapi.ContainerReference{
 | 
			
		||||
			Name: containerPath,
 | 
			
		||||
		},
 | 
			
		||||
	}
 | 
			
		||||
	testKubelet := newTestKubelet(t)
 | 
			
		||||
	kubelet := testKubelet.kubelet
 | 
			
		||||
	mockCadvisor := testKubelet.fakeCadvisor
 | 
			
		||||
	cadvisorReq := &cadvisorApi.ContainerInfoRequest{}
 | 
			
		||||
	cadvisorReq := &cadvisorapi.ContainerInfoRequest{}
 | 
			
		||||
	mockCadvisor.On("ContainerInfo", containerPath, cadvisorReq).Return(containerInfo, nil)
 | 
			
		||||
 | 
			
		||||
	_, err := kubelet.GetRawContainerInfo(containerPath, cadvisorReq, false)
 | 
			
		||||
@@ -626,14 +626,14 @@ func TestGetRawContainerInfoRoot(t *testing.T) {
 | 
			
		||||
 | 
			
		||||
func TestGetRawContainerInfoSubcontainers(t *testing.T) {
 | 
			
		||||
	containerPath := "/kubelet"
 | 
			
		||||
	containerInfo := map[string]*cadvisorApi.ContainerInfo{
 | 
			
		||||
	containerInfo := map[string]*cadvisorapi.ContainerInfo{
 | 
			
		||||
		containerPath: {
 | 
			
		||||
			ContainerReference: cadvisorApi.ContainerReference{
 | 
			
		||||
			ContainerReference: cadvisorapi.ContainerReference{
 | 
			
		||||
				Name: containerPath,
 | 
			
		||||
			},
 | 
			
		||||
		},
 | 
			
		||||
		"/kubelet/sub": {
 | 
			
		||||
			ContainerReference: cadvisorApi.ContainerReference{
 | 
			
		||||
			ContainerReference: cadvisorapi.ContainerReference{
 | 
			
		||||
				Name: "/kubelet/sub",
 | 
			
		||||
			},
 | 
			
		||||
		},
 | 
			
		||||
@@ -641,7 +641,7 @@ func TestGetRawContainerInfoSubcontainers(t *testing.T) {
 | 
			
		||||
	testKubelet := newTestKubelet(t)
 | 
			
		||||
	kubelet := testKubelet.kubelet
 | 
			
		||||
	mockCadvisor := testKubelet.fakeCadvisor
 | 
			
		||||
	cadvisorReq := &cadvisorApi.ContainerInfoRequest{}
 | 
			
		||||
	cadvisorReq := &cadvisorapi.ContainerInfoRequest{}
 | 
			
		||||
	mockCadvisor.On("SubcontainerInfo", containerPath, cadvisorReq).Return(containerInfo, nil)
 | 
			
		||||
 | 
			
		||||
	result, err := kubelet.GetRawContainerInfo(containerPath, cadvisorReq, true)
 | 
			
		||||
@@ -661,8 +661,8 @@ func TestGetContainerInfoWhenCadvisorFailed(t *testing.T) {
 | 
			
		||||
	mockCadvisor := testKubelet.fakeCadvisor
 | 
			
		||||
	fakeRuntime := testKubelet.fakeRuntime
 | 
			
		||||
	cadvisorApiFailure := fmt.Errorf("cAdvisor failure")
 | 
			
		||||
	containerInfo := cadvisorApi.ContainerInfo{}
 | 
			
		||||
	cadvisorReq := &cadvisorApi.ContainerInfoRequest{}
 | 
			
		||||
	containerInfo := cadvisorapi.ContainerInfo{}
 | 
			
		||||
	cadvisorReq := &cadvisorapi.ContainerInfoRequest{}
 | 
			
		||||
	mockCadvisor.On("DockerContainer", containerID, cadvisorReq).Return(containerInfo, cadvisorApiFailure)
 | 
			
		||||
	fakeRuntime.PodList = []*kubecontainer.Pod{
 | 
			
		||||
		{
 | 
			
		||||
@@ -2185,9 +2185,9 @@ func TestGetHostPortConflicts(t *testing.T) {
 | 
			
		||||
func TestHandlePortConflicts(t *testing.T) {
 | 
			
		||||
	testKubelet := newTestKubelet(t)
 | 
			
		||||
	kl := testKubelet.kubelet
 | 
			
		||||
	testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorApi.MachineInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("DockerImagesFsInfo").Return(cadvisorApiv2.FsInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorApiv2.FsInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("DockerImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
 | 
			
		||||
 | 
			
		||||
	spec := api.PodSpec{Containers: []api.Container{{Ports: []api.ContainerPort{{HostPort: 80}}}}}
 | 
			
		||||
	pods := []*api.Pod{
 | 
			
		||||
@@ -2232,9 +2232,9 @@ func TestHandleNodeSelector(t *testing.T) {
 | 
			
		||||
	kl.nodeLister = testNodeLister{nodes: []api.Node{
 | 
			
		||||
		{ObjectMeta: api.ObjectMeta{Name: testKubeletHostname, Labels: map[string]string{"key": "B"}}},
 | 
			
		||||
	}}
 | 
			
		||||
	testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorApi.MachineInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("DockerImagesFsInfo").Return(cadvisorApiv2.FsInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorApiv2.FsInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("DockerImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
 | 
			
		||||
	pods := []*api.Pod{
 | 
			
		||||
		{
 | 
			
		||||
			ObjectMeta: api.ObjectMeta{
 | 
			
		||||
@@ -2271,9 +2271,9 @@ func TestHandleNodeSelector(t *testing.T) {
 | 
			
		||||
func TestHandleMemExceeded(t *testing.T) {
 | 
			
		||||
	testKubelet := newTestKubelet(t)
 | 
			
		||||
	kl := testKubelet.kubelet
 | 
			
		||||
	testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorApi.MachineInfo{MemoryCapacity: 100}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("DockerImagesFsInfo").Return(cadvisorApiv2.FsInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorApiv2.FsInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{MemoryCapacity: 100}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("DockerImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
 | 
			
		||||
 | 
			
		||||
	spec := api.PodSpec{Containers: []api.Container{{Resources: api.ResourceRequirements{
 | 
			
		||||
		Requests: api.ResourceList{
 | 
			
		||||
@@ -2318,9 +2318,9 @@ func TestHandleMemExceeded(t *testing.T) {
 | 
			
		||||
// TODO(filipg): This test should be removed once StatusSyncer can do garbage collection without external signal.
 | 
			
		||||
func TestPurgingObsoleteStatusMapEntries(t *testing.T) {
 | 
			
		||||
	testKubelet := newTestKubelet(t)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorApi.MachineInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("DockerImagesFsInfo").Return(cadvisorApiv2.FsInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorApiv2.FsInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("DockerImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
 | 
			
		||||
 | 
			
		||||
	kl := testKubelet.kubelet
 | 
			
		||||
	pods := []*api.Pod{
 | 
			
		||||
@@ -2449,7 +2449,7 @@ func TestUpdateNewNodeStatus(t *testing.T) {
 | 
			
		||||
	kubeClient.ReactionChain = testclient.NewSimpleFake(&api.NodeList{Items: []api.Node{
 | 
			
		||||
		{ObjectMeta: api.ObjectMeta{Name: testKubeletHostname}},
 | 
			
		||||
	}}).ReactionChain
 | 
			
		||||
	machineInfo := &cadvisorApi.MachineInfo{
 | 
			
		||||
	machineInfo := &cadvisorapi.MachineInfo{
 | 
			
		||||
		MachineID:      "123",
 | 
			
		||||
		SystemUUID:     "abc",
 | 
			
		||||
		BootID:         "1b3",
 | 
			
		||||
@@ -2458,7 +2458,7 @@ func TestUpdateNewNodeStatus(t *testing.T) {
 | 
			
		||||
	}
 | 
			
		||||
	mockCadvisor := testKubelet.fakeCadvisor
 | 
			
		||||
	mockCadvisor.On("MachineInfo").Return(machineInfo, nil)
 | 
			
		||||
	versionInfo := &cadvisorApi.VersionInfo{
 | 
			
		||||
	versionInfo := &cadvisorapi.VersionInfo{
 | 
			
		||||
		KernelVersion:      "3.16.0-0.bpo.4-amd64",
 | 
			
		||||
		ContainerOsVersion: "Debian GNU/Linux 7 (wheezy)",
 | 
			
		||||
		DockerVersion:      "1.5.0",
 | 
			
		||||
@@ -2556,7 +2556,7 @@ func TestUpdateExistingNodeStatus(t *testing.T) {
 | 
			
		||||
		},
 | 
			
		||||
	}}).ReactionChain
 | 
			
		||||
	mockCadvisor := testKubelet.fakeCadvisor
 | 
			
		||||
	machineInfo := &cadvisorApi.MachineInfo{
 | 
			
		||||
	machineInfo := &cadvisorapi.MachineInfo{
 | 
			
		||||
		MachineID:      "123",
 | 
			
		||||
		SystemUUID:     "abc",
 | 
			
		||||
		BootID:         "1b3",
 | 
			
		||||
@@ -2564,7 +2564,7 @@ func TestUpdateExistingNodeStatus(t *testing.T) {
 | 
			
		||||
		MemoryCapacity: 1024,
 | 
			
		||||
	}
 | 
			
		||||
	mockCadvisor.On("MachineInfo").Return(machineInfo, nil)
 | 
			
		||||
	versionInfo := &cadvisorApi.VersionInfo{
 | 
			
		||||
	versionInfo := &cadvisorapi.VersionInfo{
 | 
			
		||||
		KernelVersion:      "3.16.0-0.bpo.4-amd64",
 | 
			
		||||
		ContainerOsVersion: "Debian GNU/Linux 7 (wheezy)",
 | 
			
		||||
		DockerVersion:      "1.5.0",
 | 
			
		||||
@@ -2650,7 +2650,7 @@ func TestUpdateNodeStatusWithoutContainerRuntime(t *testing.T) {
 | 
			
		||||
		{ObjectMeta: api.ObjectMeta{Name: testKubeletHostname}},
 | 
			
		||||
	}}).ReactionChain
 | 
			
		||||
	mockCadvisor := testKubelet.fakeCadvisor
 | 
			
		||||
	machineInfo := &cadvisorApi.MachineInfo{
 | 
			
		||||
	machineInfo := &cadvisorapi.MachineInfo{
 | 
			
		||||
		MachineID:      "123",
 | 
			
		||||
		SystemUUID:     "abc",
 | 
			
		||||
		BootID:         "1b3",
 | 
			
		||||
@@ -2658,7 +2658,7 @@ func TestUpdateNodeStatusWithoutContainerRuntime(t *testing.T) {
 | 
			
		||||
		MemoryCapacity: 1024,
 | 
			
		||||
	}
 | 
			
		||||
	mockCadvisor.On("MachineInfo").Return(machineInfo, nil)
 | 
			
		||||
	versionInfo := &cadvisorApi.VersionInfo{
 | 
			
		||||
	versionInfo := &cadvisorapi.VersionInfo{
 | 
			
		||||
		KernelVersion:      "3.16.0-0.bpo.4-amd64",
 | 
			
		||||
		ContainerOsVersion: "Debian GNU/Linux 7 (wheezy)",
 | 
			
		||||
		DockerVersion:      "1.5.0",
 | 
			
		||||
@@ -2778,9 +2778,9 @@ func TestCreateMirrorPod(t *testing.T) {
 | 
			
		||||
 | 
			
		||||
func TestDeleteOutdatedMirrorPod(t *testing.T) {
 | 
			
		||||
	testKubelet := newTestKubelet(t)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorApi.MachineInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("DockerImagesFsInfo").Return(cadvisorApiv2.FsInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorApiv2.FsInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("DockerImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
 | 
			
		||||
	kl := testKubelet.kubelet
 | 
			
		||||
	manager := testKubelet.fakeMirrorClient
 | 
			
		||||
	pod := &api.Pod{
 | 
			
		||||
@@ -2831,9 +2831,9 @@ func TestDeleteOutdatedMirrorPod(t *testing.T) {
 | 
			
		||||
 | 
			
		||||
func TestDeleteOrphanedMirrorPods(t *testing.T) {
 | 
			
		||||
	testKubelet := newTestKubelet(t)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorApi.MachineInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("DockerImagesFsInfo").Return(cadvisorApiv2.FsInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorApiv2.FsInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("DockerImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
 | 
			
		||||
	kl := testKubelet.kubelet
 | 
			
		||||
	manager := testKubelet.fakeMirrorClient
 | 
			
		||||
	orphanPods := []*api.Pod{
 | 
			
		||||
@@ -2915,8 +2915,8 @@ func TestGetContainerInfoForMirrorPods(t *testing.T) {
 | 
			
		||||
 | 
			
		||||
	containerID := "ab2cdf"
 | 
			
		||||
	containerPath := fmt.Sprintf("/docker/%v", containerID)
 | 
			
		||||
	containerInfo := cadvisorApi.ContainerInfo{
 | 
			
		||||
		ContainerReference: cadvisorApi.ContainerReference{
 | 
			
		||||
	containerInfo := cadvisorapi.ContainerInfo{
 | 
			
		||||
		ContainerReference: cadvisorapi.ContainerReference{
 | 
			
		||||
			Name: containerPath,
 | 
			
		||||
		},
 | 
			
		||||
	}
 | 
			
		||||
@@ -2924,7 +2924,7 @@ func TestGetContainerInfoForMirrorPods(t *testing.T) {
 | 
			
		||||
	testKubelet := newTestKubelet(t)
 | 
			
		||||
	fakeRuntime := testKubelet.fakeRuntime
 | 
			
		||||
	mockCadvisor := testKubelet.fakeCadvisor
 | 
			
		||||
	cadvisorReq := &cadvisorApi.ContainerInfoRequest{}
 | 
			
		||||
	cadvisorReq := &cadvisorapi.ContainerInfoRequest{}
 | 
			
		||||
	mockCadvisor.On("DockerContainer", containerID, cadvisorReq).Return(containerInfo, nil)
 | 
			
		||||
	kubelet := testKubelet.kubelet
 | 
			
		||||
 | 
			
		||||
@@ -2956,9 +2956,9 @@ func TestGetContainerInfoForMirrorPods(t *testing.T) {
 | 
			
		||||
 | 
			
		||||
func TestDoNotCacheStatusForStaticPods(t *testing.T) {
 | 
			
		||||
	testKubelet := newTestKubelet(t)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorApi.MachineInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("DockerImagesFsInfo").Return(cadvisorApiv2.FsInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorApiv2.FsInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("DockerImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
 | 
			
		||||
	kubelet := testKubelet.kubelet
 | 
			
		||||
 | 
			
		||||
	pods := []*api.Pod{
 | 
			
		||||
@@ -3144,7 +3144,7 @@ func TestRegisterExistingNodeWithApiserver(t *testing.T) {
 | 
			
		||||
	kubeClient.AddReactor("*", "*", func(action testclient.Action) (bool, runtime.Object, error) {
 | 
			
		||||
		return true, nil, fmt.Errorf("no reaction implemented for %s", action)
 | 
			
		||||
	})
 | 
			
		||||
	machineInfo := &cadvisorApi.MachineInfo{
 | 
			
		||||
	machineInfo := &cadvisorapi.MachineInfo{
 | 
			
		||||
		MachineID:      "123",
 | 
			
		||||
		SystemUUID:     "abc",
 | 
			
		||||
		BootID:         "1b3",
 | 
			
		||||
@@ -3153,7 +3153,7 @@ func TestRegisterExistingNodeWithApiserver(t *testing.T) {
 | 
			
		||||
	}
 | 
			
		||||
	mockCadvisor := testKubelet.fakeCadvisor
 | 
			
		||||
	mockCadvisor.On("MachineInfo").Return(machineInfo, nil)
 | 
			
		||||
	versionInfo := &cadvisorApi.VersionInfo{
 | 
			
		||||
	versionInfo := &cadvisorapi.VersionInfo{
 | 
			
		||||
		KernelVersion:      "3.16.0-0.bpo.4-amd64",
 | 
			
		||||
		ContainerOsVersion: "Debian GNU/Linux 7 (wheezy)",
 | 
			
		||||
		DockerVersion:      "1.5.0",
 | 
			
		||||
@@ -3277,7 +3277,7 @@ func TestIsPodPastActiveDeadline(t *testing.T) {
 | 
			
		||||
func TestSyncPodsSetStatusToFailedForPodsThatRunTooLong(t *testing.T) {
 | 
			
		||||
	testKubelet := newTestKubelet(t)
 | 
			
		||||
	fakeRuntime := testKubelet.fakeRuntime
 | 
			
		||||
	testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorApi.MachineInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil)
 | 
			
		||||
	kubelet := testKubelet.kubelet
 | 
			
		||||
 | 
			
		||||
	now := unversioned.Now()
 | 
			
		||||
@@ -3328,7 +3328,7 @@ func TestSyncPodsSetStatusToFailedForPodsThatRunTooLong(t *testing.T) {
 | 
			
		||||
func TestSyncPodsDoesNotSetPodsThatDidNotRunTooLongToFailed(t *testing.T) {
 | 
			
		||||
	testKubelet := newTestKubelet(t)
 | 
			
		||||
	fakeRuntime := testKubelet.fakeRuntime
 | 
			
		||||
	testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorApi.MachineInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil)
 | 
			
		||||
	kubelet := testKubelet.kubelet
 | 
			
		||||
 | 
			
		||||
	now := unversioned.Now()
 | 
			
		||||
@@ -3378,9 +3378,9 @@ func TestSyncPodsDoesNotSetPodsThatDidNotRunTooLongToFailed(t *testing.T) {
 | 
			
		||||
 | 
			
		||||
func TestDeletePodDirsForDeletedPods(t *testing.T) {
 | 
			
		||||
	testKubelet := newTestKubelet(t)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorApi.MachineInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("DockerImagesFsInfo").Return(cadvisorApiv2.FsInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorApiv2.FsInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("DockerImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
 | 
			
		||||
	kl := testKubelet.kubelet
 | 
			
		||||
	pods := []*api.Pod{
 | 
			
		||||
		{
 | 
			
		||||
@@ -3437,9 +3437,9 @@ func syncAndVerifyPodDir(t *testing.T, testKubelet *TestKubelet, pods []*api.Pod
 | 
			
		||||
 | 
			
		||||
func TestDoesNotDeletePodDirsForTerminatedPods(t *testing.T) {
 | 
			
		||||
	testKubelet := newTestKubelet(t)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorApi.MachineInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("DockerImagesFsInfo").Return(cadvisorApiv2.FsInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorApiv2.FsInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("DockerImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
 | 
			
		||||
	kl := testKubelet.kubelet
 | 
			
		||||
	pods := []*api.Pod{
 | 
			
		||||
		{
 | 
			
		||||
@@ -3475,9 +3475,9 @@ func TestDoesNotDeletePodDirsForTerminatedPods(t *testing.T) {
 | 
			
		||||
 | 
			
		||||
func TestDoesNotDeletePodDirsIfContainerIsRunning(t *testing.T) {
 | 
			
		||||
	testKubelet := newTestKubelet(t)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorApi.MachineInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("DockerImagesFsInfo").Return(cadvisorApiv2.FsInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorApiv2.FsInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("DockerImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
 | 
			
		||||
	testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
 | 
			
		||||
	runningPod := &kubecontainer.Pod{
 | 
			
		||||
		ID:        "12345678",
 | 
			
		||||
		Name:      "pod1",
 | 
			
		||||
 
 | 
			
		||||
@@ -29,7 +29,7 @@ import (
 | 
			
		||||
	"text/template"
 | 
			
		||||
 | 
			
		||||
	docker "github.com/fsouza/go-dockerclient"
 | 
			
		||||
	cadvisorApi "github.com/google/cadvisor/info/v1"
 | 
			
		||||
	cadvisorapi "github.com/google/cadvisor/info/v1"
 | 
			
		||||
 | 
			
		||||
	"k8s.io/kubernetes/pkg/api"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/client/record"
 | 
			
		||||
@@ -154,7 +154,7 @@ func newTestDockerManager() (*dockertools.DockerManager, *dockertools.FakeDocker
 | 
			
		||||
		fakeRecorder,
 | 
			
		||||
		prober.FakeProber{},
 | 
			
		||||
		containerRefManager,
 | 
			
		||||
		&cadvisorApi.MachineInfo{},
 | 
			
		||||
		&cadvisorapi.MachineInfo{},
 | 
			
		||||
		dockertools.PodInfraContainerImage,
 | 
			
		||||
		0, 0, "",
 | 
			
		||||
		kubecontainer.FakeOS{},
 | 
			
		||||
 
 | 
			
		||||
@@ -19,7 +19,7 @@ package kubelet
 | 
			
		||||
import (
 | 
			
		||||
	"github.com/golang/glog"
 | 
			
		||||
	"github.com/google/cadvisor/events"
 | 
			
		||||
	cadvisorApi "github.com/google/cadvisor/info/v1"
 | 
			
		||||
	cadvisorapi "github.com/google/cadvisor/info/v1"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/api"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/api/unversioned"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/client/record"
 | 
			
		||||
@@ -48,8 +48,8 @@ const systemOOMEvent = "SystemOOM"
 | 
			
		||||
// Watches cadvisor for system oom's and records an event for every system oom encountered.
 | 
			
		||||
func (ow *realOOMWatcher) Start(ref *api.ObjectReference) error {
 | 
			
		||||
	request := events.Request{
 | 
			
		||||
		EventType: map[cadvisorApi.EventType]bool{
 | 
			
		||||
			cadvisorApi.EventOom: true,
 | 
			
		||||
		EventType: map[cadvisorapi.EventType]bool{
 | 
			
		||||
			cadvisorapi.EventOom: true,
 | 
			
		||||
		},
 | 
			
		||||
		ContainerName:        "/",
 | 
			
		||||
		IncludeSubcontainers: false,
 | 
			
		||||
 
 | 
			
		||||
@@ -24,7 +24,7 @@ import (
 | 
			
		||||
	"time"
 | 
			
		||||
 | 
			
		||||
	docker "github.com/fsouza/go-dockerclient"
 | 
			
		||||
	cadvisorApi "github.com/google/cadvisor/info/v1"
 | 
			
		||||
	cadvisorapi "github.com/google/cadvisor/info/v1"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/api"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/client/record"
 | 
			
		||||
	kubecontainer "k8s.io/kubernetes/pkg/kubelet/container"
 | 
			
		||||
@@ -46,7 +46,7 @@ func newPod(uid, name string) *api.Pod {
 | 
			
		||||
func createFakeRuntimeCache(fakeRecorder *record.FakeRecorder) kubecontainer.RuntimeCache {
 | 
			
		||||
	fakeDocker := &dockertools.FakeDockerClient{}
 | 
			
		||||
	np, _ := network.InitNetworkPlugin([]network.NetworkPlugin{}, "", network.NewFakeHost(nil))
 | 
			
		||||
	dockerManager := dockertools.NewFakeDockerManager(fakeDocker, fakeRecorder, nil, nil, &cadvisorApi.MachineInfo{}, dockertools.PodInfraContainerImage, 0, 0, "", kubecontainer.FakeOS{}, np, nil, nil, nil)
 | 
			
		||||
	dockerManager := dockertools.NewFakeDockerManager(fakeDocker, fakeRecorder, nil, nil, &cadvisorapi.MachineInfo{}, dockertools.PodInfraContainerImage, 0, 0, "", kubecontainer.FakeOS{}, np, nil, nil, nil)
 | 
			
		||||
	return kubecontainer.NewFakeRuntimeCache(dockerManager)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -194,7 +194,7 @@ func TestFakePodWorkers(t *testing.T) {
 | 
			
		||||
	fakeDocker := &dockertools.FakeDockerClient{}
 | 
			
		||||
	fakeRecorder := &record.FakeRecorder{}
 | 
			
		||||
	np, _ := network.InitNetworkPlugin([]network.NetworkPlugin{}, "", network.NewFakeHost(nil))
 | 
			
		||||
	dockerManager := dockertools.NewFakeDockerManager(fakeDocker, fakeRecorder, nil, nil, &cadvisorApi.MachineInfo{}, dockertools.PodInfraContainerImage, 0, 0, "", kubecontainer.FakeOS{}, np, nil, nil, nil)
 | 
			
		||||
	dockerManager := dockertools.NewFakeDockerManager(fakeDocker, fakeRecorder, nil, nil, &cadvisorapi.MachineInfo{}, dockertools.PodInfraContainerImage, 0, 0, "", kubecontainer.FakeOS{}, np, nil, nil, nil)
 | 
			
		||||
	fakeRuntimeCache := kubecontainer.NewFakeRuntimeCache(dockerManager)
 | 
			
		||||
 | 
			
		||||
	kubeletForRealWorkers := &simpleFakeKubelet{}
 | 
			
		||||
 
 | 
			
		||||
@@ -20,7 +20,7 @@ import (
 | 
			
		||||
	"testing"
 | 
			
		||||
	"time"
 | 
			
		||||
 | 
			
		||||
	cadvisorApi "github.com/google/cadvisor/info/v1"
 | 
			
		||||
	cadvisorapi "github.com/google/cadvisor/info/v1"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/api"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/client/record"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/kubelet/cadvisor"
 | 
			
		||||
@@ -32,7 +32,7 @@ import (
 | 
			
		||||
 | 
			
		||||
func TestRunOnce(t *testing.T) {
 | 
			
		||||
	cadvisor := &cadvisor.Mock{}
 | 
			
		||||
	cadvisor.On("MachineInfo").Return(&cadvisorApi.MachineInfo{}, nil)
 | 
			
		||||
	cadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil)
 | 
			
		||||
	podManager := kubepod.NewBasicPodManager(kubepod.NewFakeMirrorClient())
 | 
			
		||||
	diskSpaceManager, _ := newDiskSpaceManager(cadvisor, DiskSpacePolicy{})
 | 
			
		||||
	fakeRuntime := &kubecontainer.FakeRuntime{}
 | 
			
		||||
 
 | 
			
		||||
@@ -33,7 +33,7 @@ import (
 | 
			
		||||
 | 
			
		||||
	restful "github.com/emicklei/go-restful"
 | 
			
		||||
	"github.com/golang/glog"
 | 
			
		||||
	cadvisorApi "github.com/google/cadvisor/info/v1"
 | 
			
		||||
	cadvisorapi "github.com/google/cadvisor/info/v1"
 | 
			
		||||
	"github.com/prometheus/client_golang/prometheus"
 | 
			
		||||
 | 
			
		||||
	"k8s.io/kubernetes/pkg/api"
 | 
			
		||||
@@ -137,10 +137,10 @@ type AuthInterface interface {
 | 
			
		||||
// HostInterface contains all the kubelet methods required by the server.
 | 
			
		||||
// For testablitiy.
 | 
			
		||||
type HostInterface interface {
 | 
			
		||||
	GetContainerInfo(podFullName string, uid types.UID, containerName string, req *cadvisorApi.ContainerInfoRequest) (*cadvisorApi.ContainerInfo, error)
 | 
			
		||||
	GetContainerInfo(podFullName string, uid types.UID, containerName string, req *cadvisorapi.ContainerInfoRequest) (*cadvisorapi.ContainerInfo, error)
 | 
			
		||||
	GetContainerRuntimeVersion() (kubecontainer.Version, error)
 | 
			
		||||
	GetRawContainerInfo(containerName string, req *cadvisorApi.ContainerInfoRequest, subcontainers bool) (map[string]*cadvisorApi.ContainerInfo, error)
 | 
			
		||||
	GetCachedMachineInfo() (*cadvisorApi.MachineInfo, error)
 | 
			
		||||
	GetRawContainerInfo(containerName string, req *cadvisorapi.ContainerInfoRequest, subcontainers bool) (map[string]*cadvisorapi.ContainerInfo, error)
 | 
			
		||||
	GetCachedMachineInfo() (*cadvisorapi.MachineInfo, error)
 | 
			
		||||
	GetPods() []*api.Pod
 | 
			
		||||
	GetRunningPods() ([]*api.Pod, error)
 | 
			
		||||
	GetPodByName(namespace, name string) (*api.Pod, bool)
 | 
			
		||||
@@ -232,7 +232,7 @@ func (s *Server) InstallDefaultHandlers() {
 | 
			
		||||
	ws.Route(ws.GET("").
 | 
			
		||||
		To(s.getSpec).
 | 
			
		||||
		Operation("getSpec").
 | 
			
		||||
		Writes(cadvisorApi.MachineInfo{}))
 | 
			
		||||
		Writes(cadvisorapi.MachineInfo{}))
 | 
			
		||||
	s.restfulCont.Add(ws)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -1101,7 +1101,7 @@ func (s *Server) serveStats(w http.ResponseWriter, req *http.Request) {
 | 
			
		||||
		s.error(w, err)
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	cadvisorRequest := cadvisorApi.ContainerInfoRequest{
 | 
			
		||||
	cadvisorRequest := cadvisorapi.ContainerInfoRequest{
 | 
			
		||||
		NumStats: query.NumStats,
 | 
			
		||||
		Start:    query.Start,
 | 
			
		||||
		End:      query.End,
 | 
			
		||||
@@ -1110,7 +1110,7 @@ func (s *Server) serveStats(w http.ResponseWriter, req *http.Request) {
 | 
			
		||||
	switch len(components) {
 | 
			
		||||
	case 1:
 | 
			
		||||
		// Root container stats.
 | 
			
		||||
		var statsMap map[string]*cadvisorApi.ContainerInfo
 | 
			
		||||
		var statsMap map[string]*cadvisorapi.ContainerInfo
 | 
			
		||||
		statsMap, err = s.host.GetRawContainerInfo("/", &cadvisorRequest, false)
 | 
			
		||||
		stats = statsMap["/"]
 | 
			
		||||
	case 2:
 | 
			
		||||
 
 | 
			
		||||
@@ -33,7 +33,7 @@ import (
 | 
			
		||||
	"testing"
 | 
			
		||||
	"time"
 | 
			
		||||
 | 
			
		||||
	cadvisorApi "github.com/google/cadvisor/info/v1"
 | 
			
		||||
	cadvisorapi "github.com/google/cadvisor/info/v1"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/api"
 | 
			
		||||
	apierrs "k8s.io/kubernetes/pkg/api/errors"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/auth/authorizer"
 | 
			
		||||
@@ -49,9 +49,9 @@ import (
 | 
			
		||||
 | 
			
		||||
type fakeKubelet struct {
 | 
			
		||||
	podByNameFunc                      func(namespace, name string) (*api.Pod, bool)
 | 
			
		||||
	containerInfoFunc                  func(podFullName string, uid types.UID, containerName string, req *cadvisorApi.ContainerInfoRequest) (*cadvisorApi.ContainerInfo, error)
 | 
			
		||||
	rawInfoFunc                        func(query *cadvisorApi.ContainerInfoRequest) (map[string]*cadvisorApi.ContainerInfo, error)
 | 
			
		||||
	machineInfoFunc                    func() (*cadvisorApi.MachineInfo, error)
 | 
			
		||||
	containerInfoFunc                  func(podFullName string, uid types.UID, containerName string, req *cadvisorapi.ContainerInfoRequest) (*cadvisorapi.ContainerInfo, error)
 | 
			
		||||
	rawInfoFunc                        func(query *cadvisorapi.ContainerInfoRequest) (map[string]*cadvisorapi.ContainerInfo, error)
 | 
			
		||||
	machineInfoFunc                    func() (*cadvisorapi.MachineInfo, error)
 | 
			
		||||
	podsFunc                           func() []*api.Pod
 | 
			
		||||
	runningPodsFunc                    func() ([]*api.Pod, error)
 | 
			
		||||
	logFunc                            func(w http.ResponseWriter, req *http.Request)
 | 
			
		||||
@@ -79,11 +79,11 @@ func (fk *fakeKubelet) GetPodByName(namespace, name string) (*api.Pod, bool) {
 | 
			
		||||
	return fk.podByNameFunc(namespace, name)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (fk *fakeKubelet) GetContainerInfo(podFullName string, uid types.UID, containerName string, req *cadvisorApi.ContainerInfoRequest) (*cadvisorApi.ContainerInfo, error) {
 | 
			
		||||
func (fk *fakeKubelet) GetContainerInfo(podFullName string, uid types.UID, containerName string, req *cadvisorapi.ContainerInfoRequest) (*cadvisorapi.ContainerInfo, error) {
 | 
			
		||||
	return fk.containerInfoFunc(podFullName, uid, containerName, req)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (fk *fakeKubelet) GetRawContainerInfo(containerName string, req *cadvisorApi.ContainerInfoRequest, subcontainers bool) (map[string]*cadvisorApi.ContainerInfo, error) {
 | 
			
		||||
func (fk *fakeKubelet) GetRawContainerInfo(containerName string, req *cadvisorapi.ContainerInfoRequest, subcontainers bool) (map[string]*cadvisorapi.ContainerInfo, error) {
 | 
			
		||||
	return fk.rawInfoFunc(req)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -91,7 +91,7 @@ func (fk *fakeKubelet) GetContainerRuntimeVersion() (kubecontainer.Version, erro
 | 
			
		||||
	return fk.containerVersionFunc()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (fk *fakeKubelet) GetCachedMachineInfo() (*cadvisorApi.MachineInfo, error) {
 | 
			
		||||
func (fk *fakeKubelet) GetCachedMachineInfo() (*cadvisorapi.MachineInfo, error) {
 | 
			
		||||
	return fk.machineInfoFunc()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -218,11 +218,11 @@ func getPodName(name, namespace string) string {
 | 
			
		||||
 | 
			
		||||
func TestContainerInfo(t *testing.T) {
 | 
			
		||||
	fw := newServerTest()
 | 
			
		||||
	expectedInfo := &cadvisorApi.ContainerInfo{}
 | 
			
		||||
	expectedInfo := &cadvisorapi.ContainerInfo{}
 | 
			
		||||
	podID := "somepod"
 | 
			
		||||
	expectedPodID := getPodName(podID, "")
 | 
			
		||||
	expectedContainerName := "goodcontainer"
 | 
			
		||||
	fw.fakeKubelet.containerInfoFunc = func(podID string, uid types.UID, containerName string, req *cadvisorApi.ContainerInfoRequest) (*cadvisorApi.ContainerInfo, error) {
 | 
			
		||||
	fw.fakeKubelet.containerInfoFunc = func(podID string, uid types.UID, containerName string, req *cadvisorapi.ContainerInfoRequest) (*cadvisorapi.ContainerInfo, error) {
 | 
			
		||||
		if podID != expectedPodID || containerName != expectedContainerName {
 | 
			
		||||
			return nil, fmt.Errorf("bad podID or containerName: podID=%v; containerName=%v", podID, containerName)
 | 
			
		||||
		}
 | 
			
		||||
@@ -234,7 +234,7 @@ func TestContainerInfo(t *testing.T) {
 | 
			
		||||
		t.Fatalf("Got error GETing: %v", err)
 | 
			
		||||
	}
 | 
			
		||||
	defer resp.Body.Close()
 | 
			
		||||
	var receivedInfo cadvisorApi.ContainerInfo
 | 
			
		||||
	var receivedInfo cadvisorapi.ContainerInfo
 | 
			
		||||
	err = json.NewDecoder(resp.Body).Decode(&receivedInfo)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		t.Fatalf("received invalid json data: %v", err)
 | 
			
		||||
@@ -246,13 +246,13 @@ func TestContainerInfo(t *testing.T) {
 | 
			
		||||
 | 
			
		||||
func TestContainerInfoWithUidNamespace(t *testing.T) {
 | 
			
		||||
	fw := newServerTest()
 | 
			
		||||
	expectedInfo := &cadvisorApi.ContainerInfo{}
 | 
			
		||||
	expectedInfo := &cadvisorapi.ContainerInfo{}
 | 
			
		||||
	podID := "somepod"
 | 
			
		||||
	expectedNamespace := "custom"
 | 
			
		||||
	expectedPodID := getPodName(podID, expectedNamespace)
 | 
			
		||||
	expectedContainerName := "goodcontainer"
 | 
			
		||||
	expectedUid := "9b01b80f-8fb4-11e4-95ab-4200af06647"
 | 
			
		||||
	fw.fakeKubelet.containerInfoFunc = func(podID string, uid types.UID, containerName string, req *cadvisorApi.ContainerInfoRequest) (*cadvisorApi.ContainerInfo, error) {
 | 
			
		||||
	fw.fakeKubelet.containerInfoFunc = func(podID string, uid types.UID, containerName string, req *cadvisorapi.ContainerInfoRequest) (*cadvisorapi.ContainerInfo, error) {
 | 
			
		||||
		if podID != expectedPodID || string(uid) != expectedUid || containerName != expectedContainerName {
 | 
			
		||||
			return nil, fmt.Errorf("bad podID or uid or containerName: podID=%v; uid=%v; containerName=%v", podID, uid, containerName)
 | 
			
		||||
		}
 | 
			
		||||
@@ -264,7 +264,7 @@ func TestContainerInfoWithUidNamespace(t *testing.T) {
 | 
			
		||||
		t.Fatalf("Got error GETing: %v", err)
 | 
			
		||||
	}
 | 
			
		||||
	defer resp.Body.Close()
 | 
			
		||||
	var receivedInfo cadvisorApi.ContainerInfo
 | 
			
		||||
	var receivedInfo cadvisorapi.ContainerInfo
 | 
			
		||||
	err = json.NewDecoder(resp.Body).Decode(&receivedInfo)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		t.Fatalf("received invalid json data: %v", err)
 | 
			
		||||
@@ -280,7 +280,7 @@ func TestContainerNotFound(t *testing.T) {
 | 
			
		||||
	expectedNamespace := "custom"
 | 
			
		||||
	expectedContainerName := "slowstartcontainer"
 | 
			
		||||
	expectedUid := "9b01b80f-8fb4-11e4-95ab-4200af06647"
 | 
			
		||||
	fw.fakeKubelet.containerInfoFunc = func(podID string, uid types.UID, containerName string, req *cadvisorApi.ContainerInfoRequest) (*cadvisorApi.ContainerInfo, error) {
 | 
			
		||||
	fw.fakeKubelet.containerInfoFunc = func(podID string, uid types.UID, containerName string, req *cadvisorapi.ContainerInfoRequest) (*cadvisorapi.ContainerInfo, error) {
 | 
			
		||||
		return nil, ErrContainerNotFound
 | 
			
		||||
	}
 | 
			
		||||
	resp, err := http.Get(fw.testHTTPServer.URL + fmt.Sprintf("/stats/%v/%v/%v/%v", expectedNamespace, podID, expectedUid, expectedContainerName))
 | 
			
		||||
@@ -295,13 +295,13 @@ func TestContainerNotFound(t *testing.T) {
 | 
			
		||||
 | 
			
		||||
func TestRootInfo(t *testing.T) {
 | 
			
		||||
	fw := newServerTest()
 | 
			
		||||
	expectedInfo := &cadvisorApi.ContainerInfo{
 | 
			
		||||
		ContainerReference: cadvisorApi.ContainerReference{
 | 
			
		||||
	expectedInfo := &cadvisorapi.ContainerInfo{
 | 
			
		||||
		ContainerReference: cadvisorapi.ContainerReference{
 | 
			
		||||
			Name: "/",
 | 
			
		||||
		},
 | 
			
		||||
	}
 | 
			
		||||
	fw.fakeKubelet.rawInfoFunc = func(req *cadvisorApi.ContainerInfoRequest) (map[string]*cadvisorApi.ContainerInfo, error) {
 | 
			
		||||
		return map[string]*cadvisorApi.ContainerInfo{
 | 
			
		||||
	fw.fakeKubelet.rawInfoFunc = func(req *cadvisorapi.ContainerInfoRequest) (map[string]*cadvisorapi.ContainerInfo, error) {
 | 
			
		||||
		return map[string]*cadvisorapi.ContainerInfo{
 | 
			
		||||
			expectedInfo.Name: expectedInfo,
 | 
			
		||||
		}, nil
 | 
			
		||||
	}
 | 
			
		||||
@@ -311,7 +311,7 @@ func TestRootInfo(t *testing.T) {
 | 
			
		||||
		t.Fatalf("Got error GETing: %v", err)
 | 
			
		||||
	}
 | 
			
		||||
	defer resp.Body.Close()
 | 
			
		||||
	var receivedInfo cadvisorApi.ContainerInfo
 | 
			
		||||
	var receivedInfo cadvisorapi.ContainerInfo
 | 
			
		||||
	err = json.NewDecoder(resp.Body).Decode(&receivedInfo)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		t.Fatalf("received invalid json data: %v", err)
 | 
			
		||||
@@ -325,19 +325,19 @@ func TestSubcontainerContainerInfo(t *testing.T) {
 | 
			
		||||
	fw := newServerTest()
 | 
			
		||||
	const kubeletContainer = "/kubelet"
 | 
			
		||||
	const kubeletSubContainer = "/kubelet/sub"
 | 
			
		||||
	expectedInfo := map[string]*cadvisorApi.ContainerInfo{
 | 
			
		||||
	expectedInfo := map[string]*cadvisorapi.ContainerInfo{
 | 
			
		||||
		kubeletContainer: {
 | 
			
		||||
			ContainerReference: cadvisorApi.ContainerReference{
 | 
			
		||||
			ContainerReference: cadvisorapi.ContainerReference{
 | 
			
		||||
				Name: kubeletContainer,
 | 
			
		||||
			},
 | 
			
		||||
		},
 | 
			
		||||
		kubeletSubContainer: {
 | 
			
		||||
			ContainerReference: cadvisorApi.ContainerReference{
 | 
			
		||||
			ContainerReference: cadvisorapi.ContainerReference{
 | 
			
		||||
				Name: kubeletSubContainer,
 | 
			
		||||
			},
 | 
			
		||||
		},
 | 
			
		||||
	}
 | 
			
		||||
	fw.fakeKubelet.rawInfoFunc = func(req *cadvisorApi.ContainerInfoRequest) (map[string]*cadvisorApi.ContainerInfo, error) {
 | 
			
		||||
	fw.fakeKubelet.rawInfoFunc = func(req *cadvisorapi.ContainerInfoRequest) (map[string]*cadvisorapi.ContainerInfo, error) {
 | 
			
		||||
		return expectedInfo, nil
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
@@ -347,7 +347,7 @@ func TestSubcontainerContainerInfo(t *testing.T) {
 | 
			
		||||
		t.Fatalf("Got error GETing: %v", err)
 | 
			
		||||
	}
 | 
			
		||||
	defer resp.Body.Close()
 | 
			
		||||
	var receivedInfo map[string]*cadvisorApi.ContainerInfo
 | 
			
		||||
	var receivedInfo map[string]*cadvisorapi.ContainerInfo
 | 
			
		||||
	err = json.NewDecoder(resp.Body).Decode(&receivedInfo)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		t.Fatalf("Received invalid json data: %v", err)
 | 
			
		||||
@@ -368,11 +368,11 @@ func TestSubcontainerContainerInfo(t *testing.T) {
 | 
			
		||||
 | 
			
		||||
func TestMachineInfo(t *testing.T) {
 | 
			
		||||
	fw := newServerTest()
 | 
			
		||||
	expectedInfo := &cadvisorApi.MachineInfo{
 | 
			
		||||
	expectedInfo := &cadvisorapi.MachineInfo{
 | 
			
		||||
		NumCores:       4,
 | 
			
		||||
		MemoryCapacity: 1024,
 | 
			
		||||
	}
 | 
			
		||||
	fw.fakeKubelet.machineInfoFunc = func() (*cadvisorApi.MachineInfo, error) {
 | 
			
		||||
	fw.fakeKubelet.machineInfoFunc = func() (*cadvisorapi.MachineInfo, error) {
 | 
			
		||||
		return expectedInfo, nil
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
@@ -381,7 +381,7 @@ func TestMachineInfo(t *testing.T) {
 | 
			
		||||
		t.Fatalf("Got error GETing: %v", err)
 | 
			
		||||
	}
 | 
			
		||||
	defer resp.Body.Close()
 | 
			
		||||
	var receivedInfo cadvisorApi.MachineInfo
 | 
			
		||||
	var receivedInfo cadvisorapi.MachineInfo
 | 
			
		||||
	err = json.NewDecoder(resp.Body).Decode(&receivedInfo)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		t.Fatalf("received invalid json data: %v", err)
 | 
			
		||||
 
 | 
			
		||||
@@ -19,7 +19,7 @@ package kubelet
 | 
			
		||||
import (
 | 
			
		||||
	"fmt"
 | 
			
		||||
 | 
			
		||||
	cadvisorApi "github.com/google/cadvisor/info/v1"
 | 
			
		||||
	cadvisorapi "github.com/google/cadvisor/info/v1"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/api"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/api/resource"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/capabilities"
 | 
			
		||||
@@ -27,7 +27,7 @@ import (
 | 
			
		||||
	"k8s.io/kubernetes/pkg/securitycontext"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func CapacityFromMachineInfo(info *cadvisorApi.MachineInfo) api.ResourceList {
 | 
			
		||||
func CapacityFromMachineInfo(info *cadvisorapi.MachineInfo) api.ResourceList {
 | 
			
		||||
	c := api.ResourceList{
 | 
			
		||||
		api.ResourceCPU: *resource.NewMilliQuantity(
 | 
			
		||||
			int64(info.NumCores*1000),
 | 
			
		||||
 
 | 
			
		||||
@@ -29,7 +29,7 @@ import (
 | 
			
		||||
	"text/tabwriter"
 | 
			
		||||
	"time"
 | 
			
		||||
 | 
			
		||||
	cadvisor "github.com/google/cadvisor/info/v1"
 | 
			
		||||
	cadvisorapi "github.com/google/cadvisor/info/v1"
 | 
			
		||||
	"github.com/prometheus/common/model"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/api"
 | 
			
		||||
	client "k8s.io/kubernetes/pkg/client/unversioned"
 | 
			
		||||
@@ -149,7 +149,7 @@ func HighLatencyKubeletOperations(c *client.Client, threshold time.Duration, nod
 | 
			
		||||
 | 
			
		||||
// getContainerInfo contacts kubelet for the container informaton. The "Stats"
 | 
			
		||||
// in the returned ContainerInfo is subject to the requirements in statsRequest.
 | 
			
		||||
func getContainerInfo(c *client.Client, nodeName string, req *kubelet.StatsRequest) (map[string]cadvisor.ContainerInfo, error) {
 | 
			
		||||
func getContainerInfo(c *client.Client, nodeName string, req *kubelet.StatsRequest) (map[string]cadvisorapi.ContainerInfo, error) {
 | 
			
		||||
	reqBody, err := json.Marshal(req)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
@@ -163,7 +163,7 @@ func getContainerInfo(c *client.Client, nodeName string, req *kubelet.StatsReque
 | 
			
		||||
		Body(reqBody).
 | 
			
		||||
		Do().Raw()
 | 
			
		||||
 | 
			
		||||
	var containers map[string]cadvisor.ContainerInfo
 | 
			
		||||
	var containers map[string]cadvisorapi.ContainerInfo
 | 
			
		||||
	err = json.Unmarshal(data, &containers)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
@@ -332,7 +332,7 @@ func GetKubeletPods(c *client.Client, node string) (*api.PodList, error) {
 | 
			
		||||
	return result, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func computeContainerResourceUsage(name string, oldStats, newStats *cadvisor.ContainerStats) *containerResourceUsage {
 | 
			
		||||
func computeContainerResourceUsage(name string, oldStats, newStats *cadvisorapi.ContainerStats) *containerResourceUsage {
 | 
			
		||||
	return &containerResourceUsage{
 | 
			
		||||
		Name:                    name,
 | 
			
		||||
		Timestamp:               newStats.Timestamp,
 | 
			
		||||
@@ -371,7 +371,7 @@ func newResourceCollector(c *client.Client, nodeName string, containerNames []st
 | 
			
		||||
func (r *resourceCollector) Start() {
 | 
			
		||||
	r.stopCh = make(chan struct{}, 1)
 | 
			
		||||
	// Keep the last observed stats for comparison.
 | 
			
		||||
	oldStats := make(map[string]*cadvisor.ContainerStats)
 | 
			
		||||
	oldStats := make(map[string]*cadvisorapi.ContainerStats)
 | 
			
		||||
	go util.Until(func() { r.collectStats(oldStats) }, r.pollingInterval, r.stopCh)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -382,7 +382,7 @@ func (r *resourceCollector) Stop() {
 | 
			
		||||
 | 
			
		||||
// collectStats gets the latest stats from kubelet's /stats/container, computes
 | 
			
		||||
// the resource usage, and pushes it to the buffer.
 | 
			
		||||
func (r *resourceCollector) collectStats(oldStats map[string]*cadvisor.ContainerStats) {
 | 
			
		||||
func (r *resourceCollector) collectStats(oldStats map[string]*cadvisorapi.ContainerStats) {
 | 
			
		||||
	infos, err := getContainerInfo(r.client, r.node, &kubelet.StatsRequest{
 | 
			
		||||
		ContainerName: "/",
 | 
			
		||||
		NumStats:      1,
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user