From 8cb38067f2f8e25c0fbcec402d131e3885dc15c5 Mon Sep 17 00:00:00 2001 From: Vincent Batts Date: Mon, 3 Aug 2015 10:19:56 -0400 Subject: [PATCH 1/2] spec_linux: conform to `golint` Signed-off-by: Vincent Batts --- spec_linux.go | 39 +++++++++++++++++++++++---------------- 1 file changed, 23 insertions(+), 16 deletions(-) diff --git a/spec_linux.go b/spec_linux.go index eb28cbcf3..e5869cb31 100644 --- a/spec_linux.go +++ b/spec_linux.go @@ -2,19 +2,19 @@ package specs -// LinuxSpec is the full specification for linux containers. +// LinuxSpec is the full specification for Linux containers. type LinuxSpec struct { Spec - // Linux is platform specific configuration for linux based containers. + // Linux is platform specific configuration for Linux based containers. Linux Linux `json:"linux"` } -// Linux contains platform specific configuration for linux based containers. +// Linux contains platform specific configuration for Linux based containers. type Linux struct { - // UidMapping specifies user mappings for supporting user namespaces on linux. - UidMappings []IDMapping `json:"uidMappings"` - // UidMapping specifies group mappings for supporting user namespaces on linux. - GidMappings []IDMapping `json:"gidMappings"` + // UIDMapping specifies user mappings for supporting user namespaces on Linux. + UIDMappings []IDMapping `json:"uidMappings"` + // GIDMapping specifies group mappings for supporting user namespaces on Linux. + GIDMappings []IDMapping `json:"gidMappings"` // Rlimits specifies rlimit options to apply to the container's process. Rlimits []Rlimit `json:"rlimits"` // Sysctl are a set of key value pairs that are set for the container on start. @@ -24,7 +24,7 @@ type Linux struct { Resources Resources `json:"resources"` // Namespaces contains the namespaces that are created and/or joined by the container. Namespaces []Namespace `json:"namespaces"` - // Capabilities are linux capabilities that are kept for the container. + // Capabilities are Linux capabilities that are kept for the container. Capabilities []string `json:"capabilities"` // Devices are a list of device nodes that are created and enabled for the container. Devices []string `json:"devices"` @@ -32,31 +32,31 @@ type Linux struct { RootfsPropagation string `json:"rootfsPropagation"` } -// User specifies linux specific user and group information for the container's +// User specifies Linux specific user and group information for the container's // main process. type User struct { // Uid is the user id. - Uid int32 `json:"uid"` + UID int32 `json:"uid"` // Gid is the group id. - Gid int32 `json:"gid"` + GID int32 `json:"gid"` // AdditionalGids are additional group ids set for the container's process. AdditionalGids []int32 `json:"additionalGids"` } -// Namespace is the configuration for a linux namespace. +// Namespace is the configuration for a Linux namespace. type Namespace struct { - // Type is the type of linux namespace. + // Type is the type of Linux namespace. Type string `json:"type"` // Path is a path to an existing namespace persisted on disk that can be joined // and is of the same type. Path string `json:"path"` } -// IDMapping specifies uid/gid mappings. +// IDMapping specifies UID/GID mappings. type IDMapping struct { - // HostID is the uid/gid of the host user or group. + // HostID is the UID/GID of the host user or group. HostID int32 `json:"hostID"` - // ContainerID is the uid/gid of the container's user or group. + // ContainerID is the UID/GID of the container's user or group. ContainerID int32 `json:"containerID"` // Size is the length of the range of IDs mapped between the two namespaces. Size int32 `json:"size"` @@ -72,11 +72,13 @@ type Rlimit struct { Soft uint64 `json:"soft"` } +// HugepageLimit structure corresponds to limiting kernel hugepages type HugepageLimit struct { Pagesize string `json:"pageSize"` Limit int `json:"limit"` } +// InterfacePriority for network interfaces type InterfacePriority struct { // Name is the name of the network interface. Name string `json:"name"` @@ -84,6 +86,7 @@ type InterfacePriority struct { Priority int64 `json:"priority"` } +// BlockIO for Linux cgroup 'blockio' resource management type BlockIO struct { // Specifies per cgroup weight, range is from 10 to 1000. Weight int64 `json:"blkioWeight"` @@ -99,6 +102,7 @@ type BlockIO struct { ThrottleWriteIOpsDevice string `json:"blkioThrottleWriteIopsDevice"` } +// Memory for Linux cgroup 'memory' resource management type Memory struct { // Memory limit (in bytes) Limit int64 `json:"limit"` @@ -112,6 +116,7 @@ type Memory struct { Swappiness int64 `json:"swappiness"` } +// CPU for Linux cgroup 'cpu' resource management type CPU struct { // CPU shares (relative weight vs. other cgroups with cpu shares). Shares int64 `json:"shares"` @@ -129,6 +134,7 @@ type CPU struct { Mems string `json:"mems"` } +// Network identification and priority configuration type Network struct { // Set class identifier for container's network packets. ClassID string `json:"classId"` @@ -136,6 +142,7 @@ type Network struct { Priorities []InterfacePriority `json:"priorities"` } +// Resources has container runtime resource constraints type Resources struct { // DisableOOMKiller disables the OOM killer for out of memory conditions. DisableOOMKiller bool `json:"disableOOMKiller"` From 8029d26bcabb77e9774c15b6e6752c6fd95c4557 Mon Sep 17 00:00:00 2001 From: Vincent Batts Date: Mon, 3 Aug 2015 10:20:46 -0400 Subject: [PATCH 2/2] spec_linux: remove ending periods on one-line comments Signed-off-by: Vincent Batts --- spec_linux.go | 100 +++++++++++++++++++++++++------------------------- 1 file changed, 50 insertions(+), 50 deletions(-) diff --git a/spec_linux.go b/spec_linux.go index e5869cb31..3c82db4b4 100644 --- a/spec_linux.go +++ b/spec_linux.go @@ -2,73 +2,73 @@ package specs -// LinuxSpec is the full specification for Linux containers. +// LinuxSpec is the full specification for Linux containers type LinuxSpec struct { Spec - // Linux is platform specific configuration for Linux based containers. + // Linux is platform specific configuration for Linux based containers Linux Linux `json:"linux"` } -// Linux contains platform specific configuration for Linux based containers. +// Linux contains platform specific configuration for Linux based containers type Linux struct { - // UIDMapping specifies user mappings for supporting user namespaces on Linux. + // UIDMapping specifies user mappings for supporting user namespaces on Linux UIDMappings []IDMapping `json:"uidMappings"` - // GIDMapping specifies group mappings for supporting user namespaces on Linux. + // GIDMapping specifies group mappings for supporting user namespaces on Linux GIDMappings []IDMapping `json:"gidMappings"` - // Rlimits specifies rlimit options to apply to the container's process. + // Rlimits specifies rlimit options to apply to the container's process Rlimits []Rlimit `json:"rlimits"` - // Sysctl are a set of key value pairs that are set for the container on start. + // Sysctl are a set of key value pairs that are set for the container on start Sysctl map[string]string `json:"sysctl"` // Resources contain cgroup information for handling resource constraints - // for the container. + // for the container Resources Resources `json:"resources"` - // Namespaces contains the namespaces that are created and/or joined by the container. + // Namespaces contains the namespaces that are created and/or joined by the container Namespaces []Namespace `json:"namespaces"` - // Capabilities are Linux capabilities that are kept for the container. + // Capabilities are Linux capabilities that are kept for the container Capabilities []string `json:"capabilities"` - // Devices are a list of device nodes that are created and enabled for the container. + // Devices are a list of device nodes that are created and enabled for the container Devices []string `json:"devices"` - // RootfsPropagation is the rootfs mount propagation mode for the container. + // RootfsPropagation is the rootfs mount propagation mode for the container RootfsPropagation string `json:"rootfsPropagation"` } // User specifies Linux specific user and group information for the container's -// main process. +// main process type User struct { - // Uid is the user id. + // Uid is the user id UID int32 `json:"uid"` - // Gid is the group id. + // Gid is the group id GID int32 `json:"gid"` - // AdditionalGids are additional group ids set for the container's process. + // AdditionalGids are additional group ids set for the container's process AdditionalGids []int32 `json:"additionalGids"` } -// Namespace is the configuration for a Linux namespace. +// Namespace is the configuration for a Linux namespace type Namespace struct { - // Type is the type of Linux namespace. + // Type is the type of Linux namespace Type string `json:"type"` // Path is a path to an existing namespace persisted on disk that can be joined - // and is of the same type. + // and is of the same type Path string `json:"path"` } -// IDMapping specifies UID/GID mappings. +// IDMapping specifies UID/GID mappings type IDMapping struct { - // HostID is the UID/GID of the host user or group. + // HostID is the UID/GID of the host user or group HostID int32 `json:"hostID"` - // ContainerID is the UID/GID of the container's user or group. + // ContainerID is the UID/GID of the container's user or group ContainerID int32 `json:"containerID"` - // Size is the length of the range of IDs mapped between the two namespaces. + // Size is the length of the range of IDs mapped between the two namespaces Size int32 `json:"size"` } -// Rlimit type and restrictions. +// Rlimit type and restrictions type Rlimit struct { - // Type of the rlimit to set. + // Type of the rlimit to set Type int `json:"type"` - // Hard is the hard limit for the specified type. + // Hard is the hard limit for the specified type Hard uint64 `json:"hard"` - // Soft is the soft limit for the specified type. + // Soft is the soft limit for the specified type Soft uint64 `json:"soft"` } @@ -80,25 +80,25 @@ type HugepageLimit struct { // InterfacePriority for network interfaces type InterfacePriority struct { - // Name is the name of the network interface. + // Name is the name of the network interface Name string `json:"name"` - // Priority for the interface. + // Priority for the interface Priority int64 `json:"priority"` } // BlockIO for Linux cgroup 'blockio' resource management type BlockIO struct { - // Specifies per cgroup weight, range is from 10 to 1000. + // Specifies per cgroup weight, range is from 10 to 1000 Weight int64 `json:"blkioWeight"` - // Weight per cgroup per device, can override BlkioWeight. + // Weight per cgroup per device, can override BlkioWeight WeightDevice string `json:"blkioWeightDevice"` - // IO read rate limit per cgroup per device, bytes per second. + // IO read rate limit per cgroup per device, bytes per second ThrottleReadBpsDevice string `json:"blkioThrottleReadBpsDevice"` - // IO write rate limit per cgroup per divice, bytes per second. + // IO write rate limit per cgroup per divice, bytes per second ThrottleWriteBpsDevice string `json:"blkioThrottleWriteBpsDevice"` - // IO read rate limit per cgroup per device, IO per second. + // IO read rate limit per cgroup per device, IO per second ThrottleReadIOpsDevice string `json:"blkioThrottleReadIopsDevice"` - // IO write rate limit per cgroup per device, IO per second. + // IO write rate limit per cgroup per device, IO per second ThrottleWriteIOpsDevice string `json:"blkioThrottleWriteIopsDevice"` } @@ -112,48 +112,48 @@ type Memory struct { Swap int64 `json:"swap"` // Kernel memory limit (in bytes) Kernel int64 `json:"kernel"` - // How aggressive the kernel will swap memory pages. Range from 0 to 100. Set -1 to use system default. + // How aggressive the kernel will swap memory pages. Range from 0 to 100. Set -1 to use system default Swappiness int64 `json:"swappiness"` } // CPU for Linux cgroup 'cpu' resource management type CPU struct { - // CPU shares (relative weight vs. other cgroups with cpu shares). + // CPU shares (relative weight vs. other cgroups with cpu shares) Shares int64 `json:"shares"` - // CPU hardcap limit (in usecs). Allowed cpu time in a given period. + // CPU hardcap limit (in usecs). Allowed cpu time in a given period Quota int64 `json:"quota"` - // CPU period to be used for hardcapping (in usecs). 0 to use system default. + // CPU period to be used for hardcapping (in usecs). 0 to use system default Period int64 `json:"period"` - // How many time CPU will use in realtime scheduling (in usecs). + // How many time CPU will use in realtime scheduling (in usecs) RealtimeRuntime int64 `json:"realtimeRuntime"` - // CPU period to be used for realtime scheduling (in usecs). + // CPU period to be used for realtime scheduling (in usecs) RealtimePeriod int64 `json:"realtimePeriod"` - // CPU to use within the cpuset. + // CPU to use within the cpuset Cpus string `json:"cpus"` - // MEM to use within the cpuset. + // MEM to use within the cpuset Mems string `json:"mems"` } // Network identification and priority configuration type Network struct { - // Set class identifier for container's network packets. + // Set class identifier for container's network packets ClassID string `json:"classId"` - // Set priority of network traffic for container. + // Set priority of network traffic for container Priorities []InterfacePriority `json:"priorities"` } // Resources has container runtime resource constraints type Resources struct { - // DisableOOMKiller disables the OOM killer for out of memory conditions. + // DisableOOMKiller disables the OOM killer for out of memory conditions DisableOOMKiller bool `json:"disableOOMKiller"` - // Memory restriction configuration. + // Memory restriction configuration Memory Memory `json:"memory"` - // CPU resource restriction configuration. + // CPU resource restriction configuration CPU CPU `json:"cpu"` - // BlockIO restriction configuration. + // BlockIO restriction configuration BlockIO BlockIO `json:"blockIO"` // Hugetlb limit (in bytes) HugepageLimits []HugepageLimit `json:"hugepageLimits"` - // Network restriction configuration. + // Network restriction configuration Network Network `json:"network"` }