Files
kata-containers/virtcontainers/implementation.go
Samuel Ortiz 24eff72d82 virtcontainers: Initial import
This is a virtcontainers 1.0.8 import into Kata Containers runtime.

virtcontainers is a Go library designed to manage hardware virtualized
pods and containers. It is the core Clear Containers framework and will
become the core Kata Containers framework, as discussed at
https://github.com/kata-containers/runtime/issues/33

Some more more pointers:

virtcontainers README, including some design and architecure notes:
https://github.com/containers/virtcontainers/blob/master/README.md

virtcontainers 1.0 API:
https://github.com/containers/virtcontainers/blob/master/documentation/api/1.0/api.md

Fixes #40

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2018-03-13 00:49:46 +01:00

120 lines
4.0 KiB
Go

// Copyright (c) 2017 Intel Corporation
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// Description: The true virtcontainers function of the same name.
// This indirection is required to allow an alternative implemenation to be
// used for testing purposes.
package virtcontainers
import (
"syscall"
"github.com/sirupsen/logrus"
)
// VCImpl is the official virtcontainers function of the same name.
type VCImpl struct {
}
// SetLogger implements the VC function of the same name.
func (impl *VCImpl) SetLogger(logger logrus.FieldLogger) {
SetLogger(logger)
}
// CreatePod implements the VC function of the same name.
func (impl *VCImpl) CreatePod(podConfig PodConfig) (VCPod, error) {
return CreatePod(podConfig)
}
// DeletePod implements the VC function of the same name.
func (impl *VCImpl) DeletePod(podID string) (VCPod, error) {
return DeletePod(podID)
}
// StartPod implements the VC function of the same name.
func (impl *VCImpl) StartPod(podID string) (VCPod, error) {
return StartPod(podID)
}
// StopPod implements the VC function of the same name.
func (impl *VCImpl) StopPod(podID string) (VCPod, error) {
return StopPod(podID)
}
// RunPod implements the VC function of the same name.
func (impl *VCImpl) RunPod(podConfig PodConfig) (VCPod, error) {
return RunPod(podConfig)
}
// ListPod implements the VC function of the same name.
func (impl *VCImpl) ListPod() ([]PodStatus, error) {
return ListPod()
}
// StatusPod implements the VC function of the same name.
func (impl *VCImpl) StatusPod(podID string) (PodStatus, error) {
return StatusPod(podID)
}
// PausePod implements the VC function of the same name.
func (impl *VCImpl) PausePod(podID string) (VCPod, error) {
return PausePod(podID)
}
// ResumePod implements the VC function of the same name.
func (impl *VCImpl) ResumePod(podID string) (VCPod, error) {
return ResumePod(podID)
}
// CreateContainer implements the VC function of the same name.
func (impl *VCImpl) CreateContainer(podID string, containerConfig ContainerConfig) (VCPod, VCContainer, error) {
return CreateContainer(podID, containerConfig)
}
// DeleteContainer implements the VC function of the same name.
func (impl *VCImpl) DeleteContainer(podID, containerID string) (VCContainer, error) {
return DeleteContainer(podID, containerID)
}
// StartContainer implements the VC function of the same name.
func (impl *VCImpl) StartContainer(podID, containerID string) (VCContainer, error) {
return StartContainer(podID, containerID)
}
// StopContainer implements the VC function of the same name.
func (impl *VCImpl) StopContainer(podID, containerID string) (VCContainer, error) {
return StopContainer(podID, containerID)
}
// EnterContainer implements the VC function of the same name.
func (impl *VCImpl) EnterContainer(podID, containerID string, cmd Cmd) (VCPod, VCContainer, *Process, error) {
return EnterContainer(podID, containerID, cmd)
}
// StatusContainer implements the VC function of the same name.
func (impl *VCImpl) StatusContainer(podID, containerID string) (ContainerStatus, error) {
return StatusContainer(podID, containerID)
}
// KillContainer implements the VC function of the same name.
func (impl *VCImpl) KillContainer(podID, containerID string, signal syscall.Signal, all bool) error {
return KillContainer(podID, containerID, signal, all)
}
// ProcessListContainer implements the VC function of the same name.
func (impl *VCImpl) ProcessListContainer(podID, containerID string, options ProcessListOptions) (ProcessList, error) {
return ProcessListContainer(podID, containerID, options)
}