Documentation ¶
Index ¶
- Constants
- type AssignedDevice
- type ComputeSystemQuery
- type ContainerConfig
- type ContainerProperties
- type GuestConnectionInfo
- type GuestDefinedCapabilities
- type HvRuntime
- type Layer
- type MappedDir
- type MappedPipe
- type MappedVirtualDisk
- type MappedVirtualDiskController
- type MemoryStats
- type NetworkStats
- type ProcessConfig
- type ProcessListItem
- type ProcessorStats
- type PropertyQuery
- type PropertyType
- type RequestType
- type ResourceModificationRequestResponse
- type ResourceType
- type Statistics
- type StorageStats
Constants ¶
const ( Add RequestType = "Add" Remove RequestType = "Remove" Network ResourceType = "Network" )
RequestType const
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AssignedDevice ¶
type AssignedDevice struct { // InterfaceClassGUID of the device to assign to container. InterfaceClassGUID string `json:"InterfaceClassGuid,omitempty"` }
AssignedDevice represents a device that has been directly assigned to a container
NOTE: Support added in RS5
type ComputeSystemQuery ¶
type ContainerConfig ¶
type ContainerConfig struct { SystemType string // HCS requires this to be hard-coded to "Container" Name string // Name of the container. We use the docker ID. Owner string `json:",omitempty"` // The management platform that created this container VolumePath string `json:",omitempty"` // Windows volume path for scratch space. Used by Windows Server Containers only. Format \\?\\Volume{GUID} IgnoreFlushesDuringBoot bool `json:",omitempty"` // Optimization hint for container startup in Windows LayerFolderPath string `json:",omitempty"` // Where the layer folders are located. Used by Windows Server Containers only. Format %root%\windowsfilter\containerID Layers []Layer // List of storage layers. Required for Windows Server and Hyper-V Containers. Format ID=GUID;Path=%root%\windowsfilter\layerID Credentials string `json:",omitempty"` // Credentials information ProcessorCount uint32 `json:",omitempty"` // Number of processors to assign to the container. ProcessorWeight uint64 `json:",omitempty"` // CPU shares (relative weight to other containers with cpu shares). Range is from 1 to 10000. A value of 0 results in default shares. ProcessorMaximum int64 `json:",omitempty"` // Specifies the portion of processor cycles that this container can use as a percentage times 100. Range is from 1 to 10000. A value of 0 results in no limit. StorageIOPSMaximum uint64 `json:",omitempty"` // Maximum Storage IOPS StorageBandwidthMaximum uint64 `json:",omitempty"` // Maximum Storage Bandwidth in bytes per second StorageSandboxSize uint64 `json:",omitempty"` // Size in bytes that the container system drive should be expanded to if smaller MemoryMaximumInMB int64 `json:",omitempty"` // Maximum memory available to the container in Megabytes HostName string `json:",omitempty"` // Hostname MappedDirectories []MappedDir `json:",omitempty"` // List of mapped directories (volumes/mounts) MappedPipes []MappedPipe `json:",omitempty"` // List of mapped Windows named pipes HvPartition bool // True if it a Hyper-V Container EndpointList []string `json:",omitempty"` // List of networking endpoints to be attached to container HvRuntime *HvRuntime `json:",omitempty"` // Hyper-V container settings. Used by Hyper-V containers only. Format ImagePath=%root%\BaseLayerID\UtilityVM Servicing bool `json:",omitempty"` // True if this container is for servicing AllowUnqualifiedDNSQuery bool `json:",omitempty"` // True to allow unqualified DNS name resolution DNSSearchList string `json:",omitempty"` // Comma seperated list of DNS suffixes to use for name resolution ContainerType string `json:",omitempty"` // "Linux" for Linux containers on Windows. Omitted otherwise. TerminateOnLastHandleClosed bool `json:",omitempty"` // Should HCS terminate the container once all handles have been closed MappedVirtualDisks []MappedVirtualDisk `json:",omitempty"` // Array of virtual disks to mount at start AssignedDevices []AssignedDevice `json:",omitempty"` // Array of devices to assign. NOTE: Support added in RS5 }
ContainerConfig is used as both the input of CreateContainer and to convert the parameters to JSON for passing onto the HCS
type ContainerProperties ¶
type ContainerProperties struct { ID string `json:"Id"` State string Name string SystemType string RuntimeOSType string `json:"RuntimeOsType,omitempty"` Owner string SiloGUID string `json:"SiloGuid,omitempty"` RuntimeID guid.GUID `json:"RuntimeId,omitempty"` IsRuntimeTemplate bool `json:",omitempty"` RuntimeImagePath string `json:",omitempty"` Stopped bool `json:",omitempty"` ExitType string `json:",omitempty"` AreUpdatesPending bool `json:",omitempty"` ObRoot string `json:",omitempty"` Statistics Statistics `json:",omitempty"` ProcessList []ProcessListItem `json:",omitempty"` MappedVirtualDiskControllers map[int]MappedVirtualDiskController `json:",omitempty"` GuestConnectionInfo GuestConnectionInfo `json:",omitempty"` }
ContainerProperties holds the properties for a container and the processes running in that container
type GuestConnectionInfo ¶
type GuestConnectionInfo struct { SupportedSchemaVersions []hcsschema.Version `json:",omitempty"` ProtocolVersion uint32 `json:",omitempty"` GuestDefinedCapabilities GuestDefinedCapabilities `json:",omitempty"` }
GuestConnectionInfo is the structure of an iterm return by a GuestConnection call on a utility VM
type GuestDefinedCapabilities ¶
type GuestDefinedCapabilities struct { NamespaceAddRequestSupported bool `json:",omitempty"` SignalProcessSupported bool `json:",omitempty"` DumpStacksSupported bool `json:",omitempty"` DeleteContainerStateSupported bool `json:",omitempty"` UpdateContainerSupported bool `json:",omitempty"` }
GuestDefinedCapabilities is part of the GuestConnectionInfo returned by a GuestConnection call on a utility VM
type HvRuntime ¶
type HvRuntime struct { ImagePath string `json:",omitempty"` SkipTemplate bool `json:",omitempty"` LinuxInitrdFile string `json:",omitempty"` // File under ImagePath on host containing an initrd image for starting a Linux utility VM LinuxKernelFile string `json:",omitempty"` // File under ImagePath on host containing a kernel for starting a Linux utility VM LinuxBootParameters string `json:",omitempty"` // Additional boot parameters for starting a Linux Utility VM in initrd mode BootSource string `json:",omitempty"` // "Vhd" for Linux Utility VM booting from VHD WritableBootSource bool `json:",omitempty"` // Linux Utility VM booting from VHD }
type MappedPipe ¶
type MappedVirtualDisk ¶
type MappedVirtualDisk struct { HostPath string `json:",omitempty"` // Path to VHD on the host ContainerPath string // Platform-specific mount point path in the container CreateInUtilityVM bool `json:",omitempty"` ReadOnly bool `json:",omitempty"` Cache string `json:",omitempty"` // "" (Unspecified); "Disabled"; "Enabled"; "Private"; "PrivateAllowSharing" AttachOnly bool `json:",omitempty"` }
type MappedVirtualDiskController ¶
type MappedVirtualDiskController struct {
MappedVirtualDisks map[int]MappedVirtualDisk `json:",omitempty"`
}
MappedVirtualDiskController is the structure of an item returned by a MappedVirtualDiskList call on a container
type MemoryStats ¶
type MemoryStats struct { UsageCommitBytes uint64 `json:"MemoryUsageCommitBytes,omitempty"` UsageCommitPeakBytes uint64 `json:"MemoryUsageCommitPeakBytes,omitempty"` UsagePrivateWorkingSetBytes uint64 `json:"MemoryUsagePrivateWorkingSetBytes,omitempty"` }
MemoryStats holds the memory statistics for a container
type NetworkStats ¶
type NetworkStats struct { BytesReceived uint64 `json:",omitempty"` BytesSent uint64 `json:",omitempty"` PacketsReceived uint64 `json:",omitempty"` PacketsSent uint64 `json:",omitempty"` DroppedPacketsIncoming uint64 `json:",omitempty"` DroppedPacketsOutgoing uint64 `json:",omitempty"` EndpointId string `json:",omitempty"` InstanceId string `json:",omitempty"` }
NetworkStats holds the network statistics for a container
type ProcessConfig ¶
type ProcessConfig struct { ApplicationName string `json:",omitempty"` CommandLine string `json:",omitempty"` CommandArgs []string `json:",omitempty"` // Used by Linux Containers on Windows User string `json:",omitempty"` WorkingDirectory string `json:",omitempty"` Environment map[string]string `json:",omitempty"` EmulateConsole bool `json:",omitempty"` CreateStdInPipe bool `json:",omitempty"` CreateStdOutPipe bool `json:",omitempty"` CreateStdErrPipe bool `json:",omitempty"` ConsoleSize [2]uint `json:",omitempty"` CreateInUtilityVm bool `json:",omitempty"` // Used by Linux Containers on Windows OCISpecification *json.RawMessage `json:",omitempty"` // Used by Linux Containers on Windows }
ProcessConfig is used as both the input of Container.CreateProcess and to convert the parameters to JSON for passing onto the HCS
type ProcessListItem ¶
type ProcessListItem struct { CreateTimestamp time.Time `json:",omitempty"` ImageName string `json:",omitempty"` KernelTime100ns uint64 `json:",omitempty"` MemoryCommitBytes uint64 `json:",omitempty"` MemoryWorkingSetPrivateBytes uint64 `json:",omitempty"` ProcessId uint32 `json:",omitempty"` UserTime100ns uint64 `json:",omitempty"` }
ProcessList is the structure of an item returned by a ProcessList call on a container
type ProcessorStats ¶
type ProcessorStats struct { TotalRuntime100ns uint64 `json:",omitempty"` RuntimeUser100ns uint64 `json:",omitempty"` RuntimeKernel100ns uint64 `json:",omitempty"` }
ProcessorStats holds the processor statistics for a container
type PropertyQuery ¶
type PropertyQuery struct {
PropertyTypes []PropertyType `json:",omitempty"`
}
type PropertyType ¶
type PropertyType string
const ( PropertyTypeStatistics PropertyType = "Statistics" // V1 and V2 PropertyTypeProcessList PropertyType = "ProcessList" // V1 and V2 PropertyTypeMappedVirtualDisk PropertyType = "MappedVirtualDisk" // Not supported in V2 schema call PropertyTypeGuestConnection PropertyType = "GuestConnection" // V1 and V2. Nil return from HCS before RS5 )
type ResourceModificationRequestResponse ¶
type ResourceModificationRequestResponse struct { Resource ResourceType `json:"ResourceType"` Data interface{} `json:"Settings"` Request RequestType `json:"RequestType,omitempty"` }
ResourceModificationRequestResponse is the structure used to send request to the container to modify the system Supported resource types are Network and Request Types are Add/Remove
type Statistics ¶
type Statistics struct { Timestamp time.Time `json:",omitempty"` ContainerStartTime time.Time `json:",omitempty"` Uptime100ns uint64 `json:",omitempty"` Memory MemoryStats `json:",omitempty"` Processor ProcessorStats `json:",omitempty"` Storage StorageStats `json:",omitempty"` Network []NetworkStats `json:",omitempty"` }
Statistics is the structure returned by a statistics call on a container