Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type PlatformBuilder ¶ added in v1.2.0
type PlatformBuilder struct { Type string Path string Name string Version string CodePackage []byte PlatformRegistry *platforms.Registry }
PlatformBuilder implements the Build interface using the platforms package GenerateDockerBuild function. XXX This is a pretty awkward spot for the builder, it should really probably be pushed into the dockercontroller, as it only builds docker images, but, doing so would require contaminating the dockercontroller package with the CDS, which is also undesirable.
func (*PlatformBuilder) Build ¶ added in v1.2.0
func (b *PlatformBuilder) Build() (io.Reader, error)
Build a tar stream based on the CDS
type StartContainerReq ¶ added in v1.2.0
type StartContainerReq struct { ccintf.CCID Builder Builder Args []string Env []string FilesToUpload map[string][]byte }
StartContainerReq - properties for starting a container.
func (StartContainerReq) Do ¶ added in v1.2.0
func (si StartContainerReq) Do(v VM) error
func (StartContainerReq) GetCCID ¶ added in v1.2.0
func (si StartContainerReq) GetCCID() ccintf.CCID
type StopContainerReq ¶ added in v1.2.0
type StopContainerReq struct { ccintf.CCID Timeout uint //by default we will kill the container after stopping Dontkill bool //by default we will remove the container after killing Dontremove bool }
StopContainerReq - properties for stopping a container.
func (StopContainerReq) Do ¶ added in v1.2.0
func (si StopContainerReq) Do(v VM) error
func (StopContainerReq) GetCCID ¶ added in v1.2.0
func (si StopContainerReq) GetCCID() ccintf.CCID
type VM ¶
type VM interface { Start(ccid ccintf.CCID, args []string, env []string, filesToUpload map[string][]byte, builder Builder) error Stop(ccid ccintf.CCID, timeout uint, dontkill bool, dontremove bool) error }
VM is an abstract virtual image for supporting arbitrary virual machines
type VMCReq ¶ added in v1.2.0
VMCReq - all requests should implement this interface. The context should be passed and tested at each layer till we stop note that we'd stop on the first method on the stack that does not take context
type VMController ¶
VMController - manages VMs
. abstract construction of different types of VMs (we only care about Docker for now) . manage lifecycle of VM (start with build, start, stop ... eventually probably need fine grained management)
func NewVMController ¶ added in v1.2.0
func NewVMController(vmProviders map[string]VMProvider) *VMController
NewVMController creates a new instance of VMController
func (*VMController) Process ¶ added in v1.2.0
func (vmc *VMController) Process(vmtype string, req VMCReq) error