Files
kata-containers/virtcontainers/pkg/vcmock/sandbox.go
Julio Montes 81f376920e cli: implement update command
Update command is used to update container's resources at run time.
All constraints are applied inside the VM to each container cgroup.
By now only CPU constraints are fully supported, vCPU are hot added
or removed depending of the new constraint.

fixes #189

Signed-off-by: Julio Montes <julio.montes@intel.com>
2018-05-08 07:26:38 -05:00

136 lines
3.8 KiB
Go

// Copyright (c) 2017 Intel Corporation
//
// SPDX-License-Identifier: Apache-2.0
//
package vcmock
import (
"io"
"syscall"
vc "github.com/kata-containers/runtime/virtcontainers"
specs "github.com/opencontainers/runtime-spec/specs-go"
)
// ID implements the VCSandbox function of the same name.
func (p *Sandbox) ID() string {
return p.MockID
}
// Annotations implements the VCSandbox function of the same name.
func (p *Sandbox) Annotations(key string) (string, error) {
return p.MockAnnotations[key], nil
}
// SetAnnotations implements the VCSandbox function of the same name.
func (p *Sandbox) SetAnnotations(annotations map[string]string) error {
return nil
}
// GetAnnotations implements the VCSandbox function of the same name.
func (p *Sandbox) GetAnnotations() map[string]string {
return p.MockAnnotations
}
// GetAllContainers implements the VCSandbox function of the same name.
func (p *Sandbox) GetAllContainers() []vc.VCContainer {
var ifa = make([]vc.VCContainer, len(p.MockContainers))
for i, v := range p.MockContainers {
ifa[i] = v
}
return ifa
}
// GetContainer implements the VCSandbox function of the same name.
func (p *Sandbox) GetContainer(containerID string) vc.VCContainer {
for _, c := range p.MockContainers {
if c.MockID == containerID {
return c
}
}
return &Container{}
}
// Release implements the VCSandbox function of the same name.
func (p *Sandbox) Release() error {
return nil
}
// Pause implements the VCSandbox function of the same name.
func (p *Sandbox) Pause() error {
return nil
}
// Resume implements the VCSandbox function of the same name.
func (p *Sandbox) Resume() error {
return nil
}
// Delete implements the VCSandbox function of the same name.
func (p *Sandbox) Delete() error {
return nil
}
// CreateContainer implements the VCSandbox function of the same name.
func (p *Sandbox) CreateContainer(conf vc.ContainerConfig) (vc.VCContainer, error) {
return &Container{}, nil
}
// DeleteContainer implements the VCSandbox function of the same name.
func (p *Sandbox) DeleteContainer(contID string) (vc.VCContainer, error) {
return &Container{}, nil
}
// StartContainer implements the VCSandbox function of the same name.
func (p *Sandbox) StartContainer(contID string) (vc.VCContainer, error) {
return &Container{}, nil
}
// StatusContainer implements the VCSandbox function of the same name.
func (p *Sandbox) StatusContainer(contID string) (vc.ContainerStatus, error) {
return vc.ContainerStatus{}, nil
}
// Status implements the VCSandbox function of the same name.
func (p *Sandbox) Status() vc.SandboxStatus {
return vc.SandboxStatus{}
}
// EnterContainer implements the VCSandbox function of the same name.
func (p *Sandbox) EnterContainer(containerID string, cmd vc.Cmd) (vc.VCContainer, *vc.Process, error) {
return &Container{}, &vc.Process{}, nil
}
// Monitor implements the VCSandbox function of the same name.
func (p *Sandbox) Monitor() (chan error, error) {
return nil, nil
}
// UpdateContainer implements the VCSandbox function of the same name.
func (p *Sandbox) UpdateContainer(containerID string, resources specs.LinuxResources) error {
return nil
}
// WaitProcess implements the VCSandbox function of the same name.
func (p *Sandbox) WaitProcess(containerID, processID string) (int32, error) {
return 0, nil
}
// SignalProcess implements the VCSandbox function of the same name.
func (p *Sandbox) SignalProcess(containerID, processID string, signal syscall.Signal, all bool) error {
return nil
}
// WinsizeProcess implements the VCSandbox function of the same name.
func (p *Sandbox) WinsizeProcess(containerID, processID string, height, width uint32) error {
return nil
}
// IOStream implements the VCSandbox function of the same name.
func (p *Sandbox) IOStream(containerID, processID string) (io.WriteCloser, io.Reader, io.Reader, error) {
return nil, nil, nil, nil
}