Commit 6224f447 authored by k8s-merge-robot's avatar k8s-merge-robot

Merge pull request #25771 from sjpotter/fs-info

Automatic merge from submit-queue kubelet/cadvisor: Refactor cadvisor disk stat/usage interfaces. basically 1) cadvisor struct will know what runtime the kubelet is, passed in via additional argument to New() 2) rename cadvisor wrapper function to DockerImagesFsInfo() to ImagesFsInfo() and have linux implementation choose a label based on the runtime inside the cadvisor struct 2a) mock/fake/unsupported modified to take the same additional argument in New() 3) kubelet's wrapper for the cadvisor wrapper is renamed in parallel 4) make all tests use new interface
parents 3b74a6b0 ae08ef38
...@@ -343,7 +343,7 @@ func run(s *options.KubeletServer, kcfg *KubeletConfig) (err error) { ...@@ -343,7 +343,7 @@ func run(s *options.KubeletServer, kcfg *KubeletConfig) (err error) {
} }
if kcfg.CAdvisorInterface == nil { if kcfg.CAdvisorInterface == nil {
kcfg.CAdvisorInterface, err = cadvisor.New(s.CAdvisorPort) kcfg.CAdvisorInterface, err = cadvisor.New(s.CAdvisorPort, kcfg.ContainerRuntime)
if err != nil { if err != nil {
return err return err
} }
......
...@@ -28,8 +28,8 @@ type MesosCadvisor struct { ...@@ -28,8 +28,8 @@ type MesosCadvisor struct {
mem uint64 mem uint64
} }
func NewMesosCadvisor(cores int, mem uint64, port uint) (*MesosCadvisor, error) { func NewMesosCadvisor(cores int, mem uint64, port uint, runtime string) (*MesosCadvisor, error) {
c, err := cadvisor.New(port) c, err := cadvisor.New(port, runtime)
if err != nil { if err != nil {
return nil, err return nil, err
} }
......
...@@ -209,7 +209,7 @@ func (s *KubeletExecutorServer) runKubelet( ...@@ -209,7 +209,7 @@ func (s *KubeletExecutorServer) runKubelet(
// create custom cAdvisor interface which return the resource values that Mesos reports // create custom cAdvisor interface which return the resource values that Mesos reports
ni := <-nodeInfos ni := <-nodeInfos
cAdvisorInterface, err := NewMesosCadvisor(ni.Cores, ni.Mem, s.CAdvisorPort) cAdvisorInterface, err := NewMesosCadvisor(ni.Cores, ni.Mem, s.CAdvisorPort, kcfg.ContainerRuntime)
if err != nil { if err != nil {
return err return err
} }
......
...@@ -39,6 +39,7 @@ import ( ...@@ -39,6 +39,7 @@ import (
) )
type cadvisorClient struct { type cadvisorClient struct {
runtime string
manager.Manager manager.Manager
} }
...@@ -60,7 +61,7 @@ func init() { ...@@ -60,7 +61,7 @@ func init() {
} }
// Creates a cAdvisor and exports its API on the specified port if port > 0. // Creates a cAdvisor and exports its API on the specified port if port > 0.
func New(port uint) (Interface, error) { func New(port uint, runtime string) (Interface, error) {
sysFs, err := sysfs.NewRealSysFs() sysFs, err := sysfs.NewRealSysFs()
if err != nil { if err != nil {
return nil, err return nil, err
...@@ -73,6 +74,7 @@ func New(port uint) (Interface, error) { ...@@ -73,6 +74,7 @@ func New(port uint) (Interface, error) {
} }
cadvisorClient := &cadvisorClient{ cadvisorClient := &cadvisorClient{
runtime: runtime,
Manager: m, Manager: m,
} }
...@@ -163,8 +165,19 @@ func (cc *cadvisorClient) MachineInfo() (*cadvisorapi.MachineInfo, error) { ...@@ -163,8 +165,19 @@ func (cc *cadvisorClient) MachineInfo() (*cadvisorapi.MachineInfo, error) {
return cc.GetMachineInfo() return cc.GetMachineInfo()
} }
func (cc *cadvisorClient) DockerImagesFsInfo() (cadvisorapiv2.FsInfo, error) { func (cc *cadvisorClient) ImagesFsInfo() (cadvisorapiv2.FsInfo, error) {
return cc.getFsInfo(cadvisorfs.LabelDockerImages) var label string
switch cc.runtime {
case "docker":
label = cadvisorfs.LabelDockerImages
case "rkt":
label = cadvisorfs.LabelRktImages
default:
return cadvisorapiv2.FsInfo{}, fmt.Errorf("ImagesFsInfo: unknown runtime: %v", cc.runtime)
}
return cc.getFsInfo(label)
} }
func (cc *cadvisorClient) RootFsInfo() (cadvisorapiv2.FsInfo, error) { func (cc *cadvisorClient) RootFsInfo() (cadvisorapiv2.FsInfo, error) {
......
...@@ -31,7 +31,7 @@ type cadvisorUnsupported struct { ...@@ -31,7 +31,7 @@ type cadvisorUnsupported struct {
var _ Interface = new(cadvisorUnsupported) var _ Interface = new(cadvisorUnsupported)
func New(port uint) (Interface, error) { func New(port uint, runtime string) (Interface, error) {
return &cadvisorUnsupported{}, nil return &cadvisorUnsupported{}, nil
} }
...@@ -65,7 +65,7 @@ func (cu *cadvisorUnsupported) VersionInfo() (*cadvisorapi.VersionInfo, error) { ...@@ -65,7 +65,7 @@ func (cu *cadvisorUnsupported) VersionInfo() (*cadvisorapi.VersionInfo, error) {
return nil, unsupportedErr return nil, unsupportedErr
} }
func (cu *cadvisorUnsupported) DockerImagesFsInfo() (cadvisorapiv2.FsInfo, error) { func (cu *cadvisorUnsupported) ImagesFsInfo() (cadvisorapiv2.FsInfo, error) {
return cadvisorapiv2.FsInfo{}, unsupportedErr return cadvisorapiv2.FsInfo{}, unsupportedErr
} }
......
...@@ -62,7 +62,7 @@ func (c *Fake) VersionInfo() (*cadvisorapi.VersionInfo, error) { ...@@ -62,7 +62,7 @@ func (c *Fake) VersionInfo() (*cadvisorapi.VersionInfo, error) {
return new(cadvisorapi.VersionInfo), nil return new(cadvisorapi.VersionInfo), nil
} }
func (c *Fake) DockerImagesFsInfo() (cadvisorapiv2.FsInfo, error) { func (c *Fake) ImagesFsInfo() (cadvisorapiv2.FsInfo, error) {
return cadvisorapiv2.FsInfo{}, nil return cadvisorapiv2.FsInfo{}, nil
} }
......
...@@ -69,7 +69,7 @@ func (c *Mock) VersionInfo() (*cadvisorapi.VersionInfo, error) { ...@@ -69,7 +69,7 @@ func (c *Mock) VersionInfo() (*cadvisorapi.VersionInfo, error) {
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) ImagesFsInfo() (cadvisorapiv2.FsInfo, error) {
args := c.Called() args := c.Called()
return args.Get(0).(cadvisorapiv2.FsInfo), args.Error(1) return args.Get(0).(cadvisorapiv2.FsInfo), args.Error(1)
} }
......
...@@ -34,7 +34,7 @@ type Interface interface { ...@@ -34,7 +34,7 @@ type Interface interface {
VersionInfo() (*cadvisorapi.VersionInfo, error) VersionInfo() (*cadvisorapi.VersionInfo, error)
// Returns usage information about the filesystem holding Docker images. // Returns usage information about the filesystem holding Docker images.
DockerImagesFsInfo() (cadvisorapiv2.FsInfo, error) ImagesFsInfo() (cadvisorapiv2.FsInfo, error)
// Returns usage information about the root filesystem. // Returns usage information about the root filesystem.
RootFsInfo() (cadvisorapiv2.FsInfo, error) RootFsInfo() (cadvisorapiv2.FsInfo, error)
......
...@@ -35,7 +35,7 @@ const mb = 1024 * 1024 ...@@ -35,7 +35,7 @@ const mb = 1024 * 1024
type diskSpaceManager interface { type diskSpaceManager interface {
// Checks the available disk space // Checks the available disk space
IsRootDiskSpaceAvailable() (bool, error) IsRootDiskSpaceAvailable() (bool, error)
IsDockerDiskSpaceAvailable() (bool, error) IsRuntimeDiskSpaceAvailable() (bool, error)
} }
type DiskSpacePolicy struct { type DiskSpacePolicy struct {
...@@ -83,8 +83,8 @@ func (dm *realDiskSpaceManager) getFsInfo(fsType string, f func() (cadvisorapi.F ...@@ -83,8 +83,8 @@ func (dm *realDiskSpaceManager) getFsInfo(fsType string, f func() (cadvisorapi.F
return fsi, nil return fsi, nil
} }
func (dm *realDiskSpaceManager) IsDockerDiskSpaceAvailable() (bool, error) { func (dm *realDiskSpaceManager) IsRuntimeDiskSpaceAvailable() (bool, error) {
return dm.isSpaceAvailable("docker", dm.policy.DockerFreeDiskMB, dm.cadvisor.DockerImagesFsInfo) return dm.isSpaceAvailable("runtime", dm.policy.DockerFreeDiskMB, dm.cadvisor.ImagesFsInfo)
} }
func (dm *realDiskSpaceManager) IsRootDiskSpaceAvailable() (bool, error) { func (dm *realDiskSpaceManager) IsRootDiskSpaceAvailable() (bool, error) {
......
...@@ -61,7 +61,7 @@ func TestSpaceAvailable(t *testing.T) { ...@@ -61,7 +61,7 @@ func TestSpaceAvailable(t *testing.T) {
dm, err := newDiskSpaceManager(mockCadvisor, policy) dm, err := newDiskSpaceManager(mockCadvisor, policy)
assert.NoError(err) assert.NoError(err)
mockCadvisor.On("DockerImagesFsInfo").Return(cadvisorapi.FsInfo{ mockCadvisor.On("ImagesFsInfo").Return(cadvisorapi.FsInfo{
Usage: 400 * mb, Usage: 400 * mb,
Capacity: 1000 * mb, Capacity: 1000 * mb,
Available: 600 * mb, Available: 600 * mb,
...@@ -71,7 +71,7 @@ func TestSpaceAvailable(t *testing.T) { ...@@ -71,7 +71,7 @@ func TestSpaceAvailable(t *testing.T) {
Capacity: 10 * mb, Capacity: 10 * mb,
}, nil) }, nil)
ok, err := dm.IsDockerDiskSpaceAvailable() ok, err := dm.IsRuntimeDiskSpaceAvailable()
assert.NoError(err) assert.NoError(err)
assert.True(ok) assert.True(ok)
...@@ -80,31 +80,31 @@ func TestSpaceAvailable(t *testing.T) { ...@@ -80,31 +80,31 @@ func TestSpaceAvailable(t *testing.T) {
assert.False(ok) assert.False(ok)
} }
// TestIsDockerDiskSpaceAvailableWithSpace verifies IsDockerDiskSpaceAvailable results when // TestIsRuntimeDiskSpaceAvailableWithSpace verifies IsRuntimeDiskSpaceAvailable results when
// space is available. // space is available.
func TestIsDockerDiskSpaceAvailableWithSpace(t *testing.T) { func TestIsRuntimeDiskSpaceAvailableWithSpace(t *testing.T) {
assert, policy, mockCadvisor := setUp(t) assert, policy, mockCadvisor := setUp(t)
dm, err := newDiskSpaceManager(mockCadvisor, policy) dm, err := newDiskSpaceManager(mockCadvisor, policy)
require.NoError(t, err) require.NoError(t, err)
// 500MB available // 500MB available
mockCadvisor.On("DockerImagesFsInfo").Return(cadvisorapi.FsInfo{ mockCadvisor.On("ImagesFsInfo").Return(cadvisorapi.FsInfo{
Usage: 9500 * mb, Usage: 9500 * mb,
Capacity: 10000 * mb, Capacity: 10000 * mb,
Available: 500 * mb, Available: 500 * mb,
}, nil) }, nil)
ok, err := dm.IsDockerDiskSpaceAvailable() ok, err := dm.IsRuntimeDiskSpaceAvailable()
assert.NoError(err) assert.NoError(err)
assert.True(ok) assert.True(ok)
} }
// TestIsDockerDiskSpaceAvailableWithoutSpace verifies IsDockerDiskSpaceAvailable results when // TestIsRuntimeDiskSpaceAvailableWithoutSpace verifies IsRuntimeDiskSpaceAvailable results when
// space is not available. // space is not available.
func TestIsDockerDiskSpaceAvailableWithoutSpace(t *testing.T) { func TestIsRuntimeDiskSpaceAvailableWithoutSpace(t *testing.T) {
// 1MB available // 1MB available
assert, policy, mockCadvisor := setUp(t) assert, policy, mockCadvisor := setUp(t)
mockCadvisor.On("DockerImagesFsInfo").Return(cadvisorapi.FsInfo{ mockCadvisor.On("ImagesFsInfo").Return(cadvisorapi.FsInfo{
Usage: 999 * mb, Usage: 999 * mb,
Capacity: 1000 * mb, Capacity: 1000 * mb,
Available: 1 * mb, Available: 1 * mb,
...@@ -113,7 +113,7 @@ func TestIsDockerDiskSpaceAvailableWithoutSpace(t *testing.T) { ...@@ -113,7 +113,7 @@ func TestIsDockerDiskSpaceAvailableWithoutSpace(t *testing.T) {
dm, err := newDiskSpaceManager(mockCadvisor, policy) dm, err := newDiskSpaceManager(mockCadvisor, policy)
require.NoError(t, err) require.NoError(t, err)
ok, err := dm.IsDockerDiskSpaceAvailable() ok, err := dm.IsRuntimeDiskSpaceAvailable()
assert.NoError(err) assert.NoError(err)
assert.False(ok) assert.False(ok)
} }
...@@ -164,7 +164,7 @@ func TestCache(t *testing.T) { ...@@ -164,7 +164,7 @@ func TestCache(t *testing.T) {
dm, err := newDiskSpaceManager(mockCadvisor, policy) dm, err := newDiskSpaceManager(mockCadvisor, policy)
assert.NoError(err) assert.NoError(err)
mockCadvisor.On("DockerImagesFsInfo").Return(cadvisorapi.FsInfo{ mockCadvisor.On("ImagesFsInfo").Return(cadvisorapi.FsInfo{
Usage: 400 * mb, Usage: 400 * mb,
Capacity: 1000 * mb, Capacity: 1000 * mb,
Available: 300 * mb, Available: 300 * mb,
...@@ -176,7 +176,7 @@ func TestCache(t *testing.T) { ...@@ -176,7 +176,7 @@ func TestCache(t *testing.T) {
}, nil).Once() }, nil).Once()
// Initial calls which should be recorded in mockCadvisor // Initial calls which should be recorded in mockCadvisor
ok, err := dm.IsDockerDiskSpaceAvailable() ok, err := dm.IsRuntimeDiskSpaceAvailable()
assert.NoError(err) assert.NoError(err)
assert.True(ok) assert.True(ok)
...@@ -188,7 +188,7 @@ func TestCache(t *testing.T) { ...@@ -188,7 +188,7 @@ func TestCache(t *testing.T) {
cadvisorCallCount := len(mockCadvisor.Calls) cadvisorCallCount := len(mockCadvisor.Calls)
// Checking for space again shouldn't need to mock as cache would serve it. // Checking for space again shouldn't need to mock as cache would serve it.
ok, err = dm.IsDockerDiskSpaceAvailable() ok, err = dm.IsRuntimeDiskSpaceAvailable()
assert.NoError(err) assert.NoError(err)
assert.True(ok) assert.True(ok)
...@@ -208,9 +208,9 @@ func TestFsInfoError(t *testing.T) { ...@@ -208,9 +208,9 @@ func TestFsInfoError(t *testing.T) {
dm, err := newDiskSpaceManager(mockCadvisor, policy) dm, err := newDiskSpaceManager(mockCadvisor, policy)
assert.NoError(err) assert.NoError(err)
mockCadvisor.On("DockerImagesFsInfo").Return(cadvisorapi.FsInfo{}, fmt.Errorf("can't find fs")) mockCadvisor.On("ImagesFsInfo").Return(cadvisorapi.FsInfo{}, fmt.Errorf("can't find fs"))
mockCadvisor.On("RootFsInfo").Return(cadvisorapi.FsInfo{}, fmt.Errorf("EBUSY")) mockCadvisor.On("RootFsInfo").Return(cadvisorapi.FsInfo{}, fmt.Errorf("EBUSY"))
ok, err := dm.IsDockerDiskSpaceAvailable() ok, err := dm.IsRuntimeDiskSpaceAvailable()
assert.Error(err) assert.Error(err)
assert.True(ok) assert.True(ok)
ok, err = dm.IsRootDiskSpaceAvailable() ok, err = dm.IsRootDiskSpaceAvailable()
......
...@@ -209,7 +209,7 @@ func (im *realImageManager) detectImages(detectTime time.Time) error { ...@@ -209,7 +209,7 @@ func (im *realImageManager) detectImages(detectTime time.Time) error {
func (im *realImageManager) GarbageCollect() error { func (im *realImageManager) GarbageCollect() error {
// Get disk usage on disk holding images. // Get disk usage on disk holding images.
fsInfo, err := im.cadvisor.DockerImagesFsInfo() fsInfo, err := im.cadvisor.ImagesFsInfo()
if err != nil { if err != nil {
return err return err
} }
......
...@@ -373,7 +373,7 @@ func TestGarbageCollectBelowLowThreshold(t *testing.T) { ...@@ -373,7 +373,7 @@ func TestGarbageCollectBelowLowThreshold(t *testing.T) {
manager, _, mockCadvisor := newRealImageManager(policy) manager, _, mockCadvisor := newRealImageManager(policy)
// Expect 40% usage. // Expect 40% usage.
mockCadvisor.On("DockerImagesFsInfo").Return(cadvisorapiv2.FsInfo{ mockCadvisor.On("ImagesFsInfo").Return(cadvisorapiv2.FsInfo{
Usage: 400, Usage: 400,
Capacity: 1000, Capacity: 1000,
}, nil) }, nil)
...@@ -388,7 +388,7 @@ func TestGarbageCollectCadvisorFailure(t *testing.T) { ...@@ -388,7 +388,7 @@ func TestGarbageCollectCadvisorFailure(t *testing.T) {
} }
manager, _, mockCadvisor := newRealImageManager(policy) manager, _, mockCadvisor := newRealImageManager(policy)
mockCadvisor.On("DockerImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, fmt.Errorf("error")) mockCadvisor.On("ImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, fmt.Errorf("error"))
assert.NotNil(t, manager.GarbageCollect()) assert.NotNil(t, manager.GarbageCollect())
} }
...@@ -400,7 +400,7 @@ func TestGarbageCollectBelowSuccess(t *testing.T) { ...@@ -400,7 +400,7 @@ func TestGarbageCollectBelowSuccess(t *testing.T) {
manager, fakeRuntime, mockCadvisor := newRealImageManager(policy) manager, fakeRuntime, mockCadvisor := newRealImageManager(policy)
// Expect 95% usage and most of it gets freed. // Expect 95% usage and most of it gets freed.
mockCadvisor.On("DockerImagesFsInfo").Return(cadvisorapiv2.FsInfo{ mockCadvisor.On("ImagesFsInfo").Return(cadvisorapiv2.FsInfo{
Usage: 950, Usage: 950,
Capacity: 1000, Capacity: 1000,
}, nil) }, nil)
...@@ -419,7 +419,7 @@ func TestGarbageCollectNotEnoughFreed(t *testing.T) { ...@@ -419,7 +419,7 @@ func TestGarbageCollectNotEnoughFreed(t *testing.T) {
manager, fakeRuntime, mockCadvisor := newRealImageManager(policy) manager, fakeRuntime, mockCadvisor := newRealImageManager(policy)
// Expect 95% usage and little of it gets freed. // Expect 95% usage and little of it gets freed.
mockCadvisor.On("DockerImagesFsInfo").Return(cadvisorapiv2.FsInfo{ mockCadvisor.On("ImagesFsInfo").Return(cadvisorapiv2.FsInfo{
Usage: 950, Usage: 950,
Capacity: 1000, Capacity: 1000,
}, nil) }, nil)
......
...@@ -2386,7 +2386,7 @@ func (kl *Kubelet) isOutOfDisk() bool { ...@@ -2386,7 +2386,7 @@ func (kl *Kubelet) isOutOfDisk() bool {
outOfDockerDisk := false outOfDockerDisk := false
outOfRootDisk := false outOfRootDisk := false
// Check disk space once globally and reject or accept all new pods. // Check disk space once globally and reject or accept all new pods.
withinBounds, err := kl.diskSpaceManager.IsDockerDiskSpaceAvailable() withinBounds, err := kl.diskSpaceManager.IsRuntimeDiskSpaceAvailable()
// Assume enough space in case of errors. // Assume enough space in case of errors.
if err == nil && !withinBounds { if err == nil && !withinBounds {
outOfDockerDisk = true outOfDockerDisk = true
......
...@@ -50,10 +50,10 @@ func (kl *Kubelet) GetContainerInfoV2(name string, options cadvisorapiv2.Request ...@@ -50,10 +50,10 @@ func (kl *Kubelet) GetContainerInfoV2(name string, options cadvisorapiv2.Request
return kl.cadvisor.ContainerInfoV2(name, options) return kl.cadvisor.ContainerInfoV2(name, options)
} }
// DockerImagesFsInfo returns information about docker image fs usage from // ImagesFsInfo returns information about docker image fs usage from
// cadvisor. // cadvisor.
func (kl *Kubelet) DockerImagesFsInfo() (cadvisorapiv2.FsInfo, error) { func (kl *Kubelet) ImagesFsInfo() (cadvisorapiv2.FsInfo, error) {
return kl.cadvisor.DockerImagesFsInfo() return kl.cadvisor.ImagesFsInfo()
} }
// RootFsInfo returns info about the root fs from cadvisor. // RootFsInfo returns info about the root fs from cadvisor.
......
...@@ -356,7 +356,7 @@ func TestSyncLoopAbort(t *testing.T) { ...@@ -356,7 +356,7 @@ func TestSyncLoopAbort(t *testing.T) {
func TestSyncPodsStartPod(t *testing.T) { func TestSyncPodsStartPod(t *testing.T) {
testKubelet := newTestKubelet(t) testKubelet := newTestKubelet(t)
testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil) testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil)
testKubelet.fakeCadvisor.On("DockerImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil) testKubelet.fakeCadvisor.On("ImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil) testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
kubelet := testKubelet.kubelet kubelet := testKubelet.kubelet
fakeRuntime := testKubelet.fakeRuntime fakeRuntime := testKubelet.fakeRuntime
...@@ -378,7 +378,7 @@ func TestSyncPodsDeletesWhenSourcesAreReady(t *testing.T) { ...@@ -378,7 +378,7 @@ func TestSyncPodsDeletesWhenSourcesAreReady(t *testing.T) {
testKubelet := newTestKubelet(t) testKubelet := newTestKubelet(t)
fakeRuntime := testKubelet.fakeRuntime fakeRuntime := testKubelet.fakeRuntime
testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil) testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil)
testKubelet.fakeCadvisor.On("DockerImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil) testKubelet.fakeCadvisor.On("ImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil) testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
kubelet := testKubelet.kubelet kubelet := testKubelet.kubelet
kubelet.sourcesReady = config.NewSourcesReady(func(_ sets.String) bool { return ready }) kubelet.sourcesReady = config.NewSourcesReady(func(_ sets.String) bool { return ready })
...@@ -2184,7 +2184,7 @@ func TestHandlePortConflicts(t *testing.T) { ...@@ -2184,7 +2184,7 @@ func TestHandlePortConflicts(t *testing.T) {
testKubelet := newTestKubelet(t) testKubelet := newTestKubelet(t)
kl := testKubelet.kubelet kl := testKubelet.kubelet
testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil) testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil)
testKubelet.fakeCadvisor.On("DockerImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil) testKubelet.fakeCadvisor.On("ImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil) testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
kl.nodeLister = testNodeLister{nodes: []api.Node{ kl.nodeLister = testNodeLister{nodes: []api.Node{
...@@ -2245,7 +2245,7 @@ func TestHandleHostNameConflicts(t *testing.T) { ...@@ -2245,7 +2245,7 @@ func TestHandleHostNameConflicts(t *testing.T) {
testKubelet := newTestKubelet(t) testKubelet := newTestKubelet(t)
kl := testKubelet.kubelet kl := testKubelet.kubelet
testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil) testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil)
testKubelet.fakeCadvisor.On("DockerImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil) testKubelet.fakeCadvisor.On("ImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil) testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
kl.nodeLister = testNodeLister{nodes: []api.Node{ kl.nodeLister = testNodeLister{nodes: []api.Node{
...@@ -2315,7 +2315,7 @@ func TestHandleNodeSelector(t *testing.T) { ...@@ -2315,7 +2315,7 @@ func TestHandleNodeSelector(t *testing.T) {
kl.nodeLister = testNodeLister{nodes: nodes} kl.nodeLister = testNodeLister{nodes: nodes}
kl.nodeInfo = testNodeInfo{nodes: nodes} kl.nodeInfo = testNodeInfo{nodes: nodes}
testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil) testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil)
testKubelet.fakeCadvisor.On("DockerImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil) testKubelet.fakeCadvisor.On("ImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil) testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
pods := []*api.Pod{ pods := []*api.Pod{
podWithUidNameNsSpec("123456789", "podA", "foo", api.PodSpec{NodeSelector: map[string]string{"key": "A"}}), podWithUidNameNsSpec("123456789", "podA", "foo", api.PodSpec{NodeSelector: map[string]string{"key": "A"}}),
...@@ -2360,7 +2360,7 @@ func TestHandleMemExceeded(t *testing.T) { ...@@ -2360,7 +2360,7 @@ func TestHandleMemExceeded(t *testing.T) {
kl.nodeLister = testNodeLister{nodes: nodes} kl.nodeLister = testNodeLister{nodes: nodes}
kl.nodeInfo = testNodeInfo{nodes: nodes} kl.nodeInfo = testNodeInfo{nodes: nodes}
testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil) testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil)
testKubelet.fakeCadvisor.On("DockerImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil) testKubelet.fakeCadvisor.On("ImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil) testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
spec := api.PodSpec{NodeName: kl.nodeName, spec := api.PodSpec{NodeName: kl.nodeName,
...@@ -2404,7 +2404,7 @@ func TestHandleMemExceeded(t *testing.T) { ...@@ -2404,7 +2404,7 @@ func TestHandleMemExceeded(t *testing.T) {
func TestPurgingObsoleteStatusMapEntries(t *testing.T) { func TestPurgingObsoleteStatusMapEntries(t *testing.T) {
testKubelet := newTestKubelet(t) testKubelet := newTestKubelet(t)
testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil) testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil)
testKubelet.fakeCadvisor.On("DockerImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil) testKubelet.fakeCadvisor.On("ImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil) testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
versionInfo := &cadvisorapi.VersionInfo{ versionInfo := &cadvisorapi.VersionInfo{
KernelVersion: "3.16.0-0.bpo.4-amd64", KernelVersion: "3.16.0-0.bpo.4-amd64",
...@@ -2553,7 +2553,7 @@ func TestValidateContainerLogStatus(t *testing.T) { ...@@ -2553,7 +2553,7 @@ func TestValidateContainerLogStatus(t *testing.T) {
func updateDiskSpacePolicy(kubelet *Kubelet, mockCadvisor *cadvisortest.Mock, rootCap, dockerCap, rootAvail, dockerAvail uint64, rootThreshold, dockerThreshold int) error { func updateDiskSpacePolicy(kubelet *Kubelet, mockCadvisor *cadvisortest.Mock, rootCap, dockerCap, rootAvail, dockerAvail uint64, rootThreshold, dockerThreshold int) error {
dockerimagesFsInfo := cadvisorapiv2.FsInfo{Capacity: rootCap * mb, Available: rootAvail * mb} dockerimagesFsInfo := cadvisorapiv2.FsInfo{Capacity: rootCap * mb, Available: rootAvail * mb}
rootFsInfo := cadvisorapiv2.FsInfo{Capacity: dockerCap * mb, Available: dockerAvail * mb} rootFsInfo := cadvisorapiv2.FsInfo{Capacity: dockerCap * mb, Available: dockerAvail * mb}
mockCadvisor.On("DockerImagesFsInfo").Return(dockerimagesFsInfo, nil) mockCadvisor.On("ImagesFsInfo").Return(dockerimagesFsInfo, nil)
mockCadvisor.On("RootFsInfo").Return(rootFsInfo, nil) mockCadvisor.On("RootFsInfo").Return(rootFsInfo, nil)
dsp := DiskSpacePolicy{DockerFreeDiskMB: rootThreshold, RootFreeDiskMB: dockerThreshold} dsp := DiskSpacePolicy{DockerFreeDiskMB: rootThreshold, RootFreeDiskMB: dockerThreshold}
...@@ -3315,7 +3315,7 @@ func TestDeleteOutdatedMirrorPod(t *testing.T) { ...@@ -3315,7 +3315,7 @@ func TestDeleteOutdatedMirrorPod(t *testing.T) {
testKubelet := newTestKubelet(t) testKubelet := newTestKubelet(t)
testKubelet.fakeCadvisor.On("Start").Return(nil) testKubelet.fakeCadvisor.On("Start").Return(nil)
testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil) testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil)
testKubelet.fakeCadvisor.On("DockerImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil) testKubelet.fakeCadvisor.On("ImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil) testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
kl := testKubelet.kubelet kl := testKubelet.kubelet
...@@ -3358,7 +3358,7 @@ func TestDeleteOrphanedMirrorPods(t *testing.T) { ...@@ -3358,7 +3358,7 @@ func TestDeleteOrphanedMirrorPods(t *testing.T) {
testKubelet := newTestKubelet(t) testKubelet := newTestKubelet(t)
testKubelet.fakeCadvisor.On("Start").Return(nil) testKubelet.fakeCadvisor.On("Start").Return(nil)
testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil) testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil)
testKubelet.fakeCadvisor.On("DockerImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil) testKubelet.fakeCadvisor.On("ImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil) testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
kl := testKubelet.kubelet kl := testKubelet.kubelet
...@@ -3641,7 +3641,7 @@ func TestRegisterExistingNodeWithApiserver(t *testing.T) { ...@@ -3641,7 +3641,7 @@ func TestRegisterExistingNodeWithApiserver(t *testing.T) {
DockerVersion: "1.5.0", DockerVersion: "1.5.0",
} }
mockCadvisor.On("VersionInfo").Return(versionInfo, nil) mockCadvisor.On("VersionInfo").Return(versionInfo, nil)
mockCadvisor.On("DockerImagesFsInfo").Return(cadvisorapiv2.FsInfo{ mockCadvisor.On("ImagesFsInfo").Return(cadvisorapiv2.FsInfo{
Usage: 400 * mb, Usage: 400 * mb,
Capacity: 1000 * mb, Capacity: 1000 * mb,
Available: 600 * mb, Available: 600 * mb,
...@@ -3866,7 +3866,7 @@ func podWithUidNameNsSpec(uid types.UID, name, namespace string, spec api.PodSpe ...@@ -3866,7 +3866,7 @@ func podWithUidNameNsSpec(uid types.UID, name, namespace string, spec api.PodSpe
func TestDeletePodDirsForDeletedPods(t *testing.T) { func TestDeletePodDirsForDeletedPods(t *testing.T) {
testKubelet := newTestKubelet(t) testKubelet := newTestKubelet(t)
testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil) testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil)
testKubelet.fakeCadvisor.On("DockerImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil) testKubelet.fakeCadvisor.On("ImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil) testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
kl := testKubelet.kubelet kl := testKubelet.kubelet
pods := []*api.Pod{ pods := []*api.Pod{
...@@ -3913,7 +3913,7 @@ func syncAndVerifyPodDir(t *testing.T, testKubelet *TestKubelet, pods []*api.Pod ...@@ -3913,7 +3913,7 @@ func syncAndVerifyPodDir(t *testing.T, testKubelet *TestKubelet, pods []*api.Pod
func TestDoesNotDeletePodDirsForTerminatedPods(t *testing.T) { func TestDoesNotDeletePodDirsForTerminatedPods(t *testing.T) {
testKubelet := newTestKubelet(t) testKubelet := newTestKubelet(t)
testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil) testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil)
testKubelet.fakeCadvisor.On("DockerImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil) testKubelet.fakeCadvisor.On("ImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil) testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
kl := testKubelet.kubelet kl := testKubelet.kubelet
pods := []*api.Pod{ pods := []*api.Pod{
...@@ -3933,7 +3933,7 @@ func TestDoesNotDeletePodDirsForTerminatedPods(t *testing.T) { ...@@ -3933,7 +3933,7 @@ func TestDoesNotDeletePodDirsForTerminatedPods(t *testing.T) {
func TestDoesNotDeletePodDirsIfContainerIsRunning(t *testing.T) { func TestDoesNotDeletePodDirsIfContainerIsRunning(t *testing.T) {
testKubelet := newTestKubelet(t) testKubelet := newTestKubelet(t)
testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil) testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil)
testKubelet.fakeCadvisor.On("DockerImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil) testKubelet.fakeCadvisor.On("ImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil) testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
runningPod := &kubecontainer.Pod{ runningPod := &kubecontainer.Pod{
ID: "12345678", ID: "12345678",
...@@ -4586,7 +4586,7 @@ func TestHandlePodAdditionsInvokesPodAdmitHandlers(t *testing.T) { ...@@ -4586,7 +4586,7 @@ func TestHandlePodAdditionsInvokesPodAdmitHandlers(t *testing.T) {
}, },
}} }}
testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil) testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil)
testKubelet.fakeCadvisor.On("DockerImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil) testKubelet.fakeCadvisor.On("ImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil) testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
pods := []*api.Pod{ pods := []*api.Pod{
......
...@@ -46,7 +46,7 @@ import ( ...@@ -46,7 +46,7 @@ import (
func TestRunOnce(t *testing.T) { func TestRunOnce(t *testing.T) {
cadvisor := &cadvisortest.Mock{} cadvisor := &cadvisortest.Mock{}
cadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil) cadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil)
cadvisor.On("DockerImagesFsInfo").Return(cadvisorapiv2.FsInfo{ cadvisor.On("ImagesFsInfo").Return(cadvisorapiv2.FsInfo{
Usage: 400 * mb, Usage: 400 * mb,
Capacity: 1000 * mb, Capacity: 1000 * mb,
Available: 600 * mb, Available: 600 * mb,
......
...@@ -171,7 +171,7 @@ type HostInterface interface { ...@@ -171,7 +171,7 @@ type HostInterface interface {
GetNode() (*api.Node, error) GetNode() (*api.Node, error)
GetNodeConfig() cm.NodeConfig GetNodeConfig() cm.NodeConfig
LatestLoopEntryTime() time.Time LatestLoopEntryTime() time.Time
DockerImagesFsInfo() (cadvisorapiv2.FsInfo, error) ImagesFsInfo() (cadvisorapiv2.FsInfo, error)
RootFsInfo() (cadvisorapiv2.FsInfo, error) RootFsInfo() (cadvisorapiv2.FsInfo, error)
ListVolumesForPod(podUID types.UID) (map[string]volume.Volume, bool) ListVolumesForPod(podUID types.UID) (map[string]volume.Volume, bool)
PLEGHealthCheck() (bool, error) PLEGHealthCheck() (bool, error)
......
...@@ -142,8 +142,8 @@ func (_ *fakeKubelet) GetContainerInfoV2(_ string, _ cadvisorapiv2.RequestOption ...@@ -142,8 +142,8 @@ func (_ *fakeKubelet) GetContainerInfoV2(_ string, _ cadvisorapiv2.RequestOption
return nil, nil return nil, nil
} }
func (_ *fakeKubelet) DockerImagesFsInfo() (cadvisorapiv2.FsInfo, error) { func (_ *fakeKubelet) ImagesFsInfo() (cadvisorapiv2.FsInfo, error) {
return cadvisorapiv2.FsInfo{}, fmt.Errorf("Unsupported Operation DockerImagesFsInfo") return cadvisorapiv2.FsInfo{}, fmt.Errorf("Unsupported Operation ImagesFsInfo")
} }
func (_ *fakeKubelet) RootFsInfo() (cadvisorapiv2.FsInfo, error) { func (_ *fakeKubelet) RootFsInfo() (cadvisorapiv2.FsInfo, error) {
......
...@@ -44,7 +44,7 @@ type StatsProvider interface { ...@@ -44,7 +44,7 @@ type StatsProvider interface {
GetPodByName(namespace, name string) (*api.Pod, bool) GetPodByName(namespace, name string) (*api.Pod, bool)
GetNode() (*api.Node, error) GetNode() (*api.Node, error)
GetNodeConfig() cm.NodeConfig GetNodeConfig() cm.NodeConfig
DockerImagesFsInfo() (cadvisorapiv2.FsInfo, error) ImagesFsInfo() (cadvisorapiv2.FsInfo, error)
RootFsInfo() (cadvisorapiv2.FsInfo, error) RootFsInfo() (cadvisorapiv2.FsInfo, error)
ListVolumesForPod(podUID types.UID) (map[string]volume.Volume, bool) ListVolumesForPod(podUID types.UID) (map[string]volume.Volume, bool)
GetPods() []*api.Pod GetPods() []*api.Pod
......
...@@ -162,8 +162,8 @@ func (_m *MockStatsProvider) GetNodeConfig() cm.NodeConfig { ...@@ -162,8 +162,8 @@ func (_m *MockStatsProvider) GetNodeConfig() cm.NodeConfig {
return r0 return r0
} }
// DockerImagesFsInfo provides a mock function with given fields: // ImagesFsInfo provides a mock function with given fields:
func (_m *MockStatsProvider) DockerImagesFsInfo() (cadvisorapiv2.FsInfo, error) { func (_m *MockStatsProvider) ImagesFsInfo() (cadvisorapiv2.FsInfo, error) {
ret := _m.Called() ret := _m.Called()
var r0 cadvisorapiv2.FsInfo var r0 cadvisorapiv2.FsInfo
......
...@@ -81,7 +81,7 @@ func (sp *summaryProviderImpl) Get() (*stats.Summary, error) { ...@@ -81,7 +81,7 @@ func (sp *summaryProviderImpl) Get() (*stats.Summary, error) {
if err != nil { if err != nil {
return nil, err return nil, err
} }
imageFsInfo, err := sp.provider.DockerImagesFsInfo() imageFsInfo, err := sp.provider.ImagesFsInfo()
if err != nil { if err != nil {
return nil, err return nil, err
} }
......
...@@ -99,7 +99,7 @@ func containerRuntime() error { ...@@ -99,7 +99,7 @@ func containerRuntime() error {
} }
// Setup cadvisor to check the container environment // Setup cadvisor to check the container environment
c, err := cadvisor.New(0 /*don't start the http server*/) c, err := cadvisor.New(0 /*don't start the http server*/, "docker")
if err != nil { if err != nil {
return printError("Container Runtime Check: %s Could not start cadvisor %v", failed, err) return printError("Container Runtime Check: %s Could not start cadvisor %v", failed, err)
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment