package container

import "k8s.io/kubernetes/Godeps/_workspace/src/github.com/google/cadvisor/container"

Package container defines types for sub-container events and also defines an interface for container operation handlers.

Index

Functions

func ClearContainerHandlerFactories

func ClearContainerHandlerFactories()

Clear the known factories.

func DebugInfo

func DebugInfo() map[string][]string

func HasFactories

func HasFactories() bool

Returns whether there are any container handler factories registered.

func RegisterContainerHandlerFactory

func RegisterContainerHandlerFactory(factory ContainerHandlerFactory)

Register a ContainerHandlerFactory. These should be registered from least general to most general as they will be asked in order whether they can handle a particular container.

Types

type ContainerHandler

type ContainerHandler interface {
	// Returns the ContainerReference
	ContainerReference() (info.ContainerReference, error)

	// Returns container's isolation spec.
	GetSpec() (info.ContainerSpec, error)

	// Returns the current stats values of the container.
	GetStats() (*info.ContainerStats, error)

	// Returns the subcontainers of this container.
	ListContainers(listType ListType) ([]info.ContainerReference, error)

	// Returns the threads inside this container.
	ListThreads(listType ListType) ([]int, error)

	// Returns the processes inside this container.
	ListProcesses(listType ListType) ([]int, error)

	// Registers a channel to listen for events affecting subcontainers (recursively).
	WatchSubcontainers(events chan SubcontainerEvent) error

	// Stops watching for subcontainer changes.
	StopWatchingSubcontainers() error

	// Returns absolute cgroup path for the requested resource.
	GetCgroupPath(resource string) (string, error)

	// Returns container labels, if available.
	GetContainerLabels() map[string]string

	// Returns whether the container still exists.
	Exists() bool
}

Interface for container operation handlers.

func NewContainerHandler

func NewContainerHandler(name string, inHostNamespace bool) (ContainerHandler, bool, error)

Create a new ContainerHandler for the specified container.

type ContainerHandlerFactory

type ContainerHandlerFactory interface {
	// Create a new ContainerHandler using this factory. CanHandleAndAccept() must have returned true.
	NewContainerHandler(name string, inHostNamespace bool) (c ContainerHandler, err error)

	// Returns whether this factory can handle and accept the specified container.
	CanHandleAndAccept(name string) (handle bool, accept bool, err error)

	// Name of the factory.
	String() string

	// Returns debugging information. Map of lines per category.
	DebugInfo() map[string][]string
}

type FactoryForMockContainerHandler

type FactoryForMockContainerHandler struct {
	Name                        string
	PrepareContainerHandlerFunc func(name string, handler *MockContainerHandler)
}

func (*FactoryForMockContainerHandler) CanHandle

func (self *FactoryForMockContainerHandler) CanHandle(name string) bool

func (*FactoryForMockContainerHandler) NewContainerHandler

func (self *FactoryForMockContainerHandler) NewContainerHandler(name string, inHostNamespace bool) (ContainerHandler, error)

func (*FactoryForMockContainerHandler) String

func (self *FactoryForMockContainerHandler) String() string

type ListType

type ListType int

ListType describes whether listing should be just for a specific container or performed recursively.

const (
	ListSelf ListType = iota
	ListRecursive
)

type MockContainerHandler

type MockContainerHandler struct {
	mock.Mock
	Name    string
	Aliases []string
}

This struct mocks a container handler.

func NewMockContainerHandler

func NewMockContainerHandler(containerName string) *MockContainerHandler

func (*MockContainerHandler) ContainerReference

func (self *MockContainerHandler) ContainerReference() (info.ContainerReference, error)

If self.Name is not empty, then ContainerReference() will return self.Name and self.Aliases. Otherwise, it will use the value provided by .On().Return().

func (*MockContainerHandler) Exists

func (self *MockContainerHandler) Exists() bool

func (*MockContainerHandler) GetCgroupPath

func (self *MockContainerHandler) GetCgroupPath(path string) (string, error)

func (*MockContainerHandler) GetContainerLabels

func (self *MockContainerHandler) GetContainerLabels() map[string]string

func (*MockContainerHandler) GetSpec

func (self *MockContainerHandler) GetSpec() (info.ContainerSpec, error)

func (*MockContainerHandler) GetStats

func (self *MockContainerHandler) GetStats() (*info.ContainerStats, error)

func (*MockContainerHandler) ListContainers

func (self *MockContainerHandler) ListContainers(listType ListType) ([]info.ContainerReference, error)

func (*MockContainerHandler) ListProcesses

func (self *MockContainerHandler) ListProcesses(listType ListType) ([]int, error)

func (*MockContainerHandler) ListThreads

func (self *MockContainerHandler) ListThreads(listType ListType) ([]int, error)

func (*MockContainerHandler) StopWatchingSubcontainers

func (self *MockContainerHandler) StopWatchingSubcontainers() error

func (*MockContainerHandler) WatchSubcontainers

func (self *MockContainerHandler) WatchSubcontainers(events chan SubcontainerEvent) error

type SubcontainerEvent

type SubcontainerEvent struct {
	// The type of event that occurred.
	EventType SubcontainerEventType

	// The full container name of the container where the event occurred.
	Name string
}

SubcontainerEvent represents a

type SubcontainerEventType

type SubcontainerEventType int

SubcontainerEventType indicates an addition or deletion event.

const (
	SubcontainerAdd SubcontainerEventType = iota
	SubcontainerDelete
)

Source Files

container.go factory.go mock.go

Directories

PathSynopsis
Godeps/_workspace/src/github.com/google/cadvisor/container/dockerHandler for Docker containers.
Godeps/_workspace/src/github.com/google/cadvisor/container/libcontainer
Godeps/_workspace/src/github.com/google/cadvisor/container/rawUnmarshal's a Containers description json file.
Version
v1.1.2
Published
Nov 19, 2015
Platform
js/wasm
Imports
5 packages
Last checked
2 minutes ago

Tools for package owners.