From 864bfb65da8bdefb2e01df717008e341ca80a300 Mon Sep 17 00:00:00 2001 From: Yuki Yugui Sonoda Date: Thu, 13 Nov 2014 21:01:25 +0900 Subject: [PATCH] Fixes golint errors in pkg/api. --- pkg/api/errors/validation.go | 1 + pkg/api/latest/latest.go | 4 ++-- pkg/api/meta/meta_test.go | 2 +- pkg/api/meta/restmapper.go | 4 ++-- pkg/api/ref.go | 3 ++- pkg/api/register.go | 1 + pkg/api/serialization_test.go | 19 +++++++++---------- pkg/api/types.go | 26 +++++++++++++++----------- pkg/api/v1beta1/types.go | 23 +++++++++++++---------- pkg/api/v1beta2/types.go | 23 +++++++++++++---------- pkg/api/v1beta3/types.go | 19 +++++++++++-------- pkg/api/validation/validation.go | 1 + 12 files changed, 71 insertions(+), 55 deletions(-) diff --git a/pkg/api/errors/validation.go b/pkg/api/errors/validation.go index c7785367d71..a9d711466a9 100644 --- a/pkg/api/errors/validation.go +++ b/pkg/api/errors/validation.go @@ -52,6 +52,7 @@ const ( ValidationErrorTypeForbidden ValidationErrorType = "FieldValueForbidden" ) +// ValueOf converts a ValidationErrorType into its corresponding error message. func ValueOf(t ValidationErrorType) string { switch t { case ValidationErrorTypeNotFound: diff --git a/pkg/api/latest/latest.go b/pkg/api/latest/latest.go index 69c0108796d..afed8ce60c1 100644 --- a/pkg/api/latest/latest.go +++ b/pkg/api/latest/latest.go @@ -52,13 +52,13 @@ var accessor = meta.NewAccessor() // ResourceVersioner describes a default versioner that can handle all types // of versioning. // TODO: when versioning changes, make this part of each API definition. -var ResourceVersioner runtime.ResourceVersioner = accessor +var ResourceVersioner = runtime.ResourceVersioner(accessor) // SelfLinker can set or get the SelfLink field of all API types. // TODO: when versioning changes, make this part of each API definition. // TODO(lavalamp): Combine SelfLinker & ResourceVersioner interfaces, force all uses // to go through the InterfacesFor method below. -var SelfLinker runtime.SelfLinker = accessor +var SelfLinker = runtime.SelfLinker(accessor) // RESTMapper provides the default mapping between REST paths and the objects declared in api.Scheme and all known // Kubernetes versions. diff --git a/pkg/api/meta/meta_test.go b/pkg/api/meta/meta_test.go index d6e9f04bfec..9bda50b2b45 100644 --- a/pkg/api/meta/meta_test.go +++ b/pkg/api/meta/meta_test.go @@ -471,7 +471,7 @@ func TestTypeMetaSelfLinker(t *testing.T) { }, } - var linker runtime.SelfLinker = NewAccessor() + linker := runtime.SelfLinker(NewAccessor()) for name, item := range table { got, err := linker.SelfLink(item.obj) if e, a := item.succeed, err == nil; e != a { diff --git a/pkg/api/meta/restmapper.go b/pkg/api/meta/restmapper.go index 5a041452138..5e3db787cc2 100644 --- a/pkg/api/meta/restmapper.go +++ b/pkg/api/meta/restmapper.go @@ -30,7 +30,7 @@ type typeMeta struct { Kind string } -// RESTMapper exposes mappings between the types defined in a +// DefaultRESTMapper exposes mappings between the types defined in a // runtime.Scheme. It assumes that all types defined the provided scheme // can be mapped with the provided MetadataAccessor and Codec interfaces. // @@ -132,7 +132,7 @@ func (m *DefaultRESTMapper) RESTMapping(version, kind string) (*RESTMapping, err } } if len(version) == 0 { - return nil, fmt.Errorf("no object named %q is registered.", kind) + return nil, fmt.Errorf("no object named %q is registered", kind) } } diff --git a/pkg/api/ref.go b/pkg/api/ref.go index 90223b365c1..7c5db5789d2 100644 --- a/pkg/api/ref.go +++ b/pkg/api/ref.go @@ -25,6 +25,7 @@ import ( "github.com/GoogleCloudPlatform/kubernetes/pkg/runtime" ) +// ErrNilObject indicates an error that the obj passed to GetReference is nil. var ErrNilObject = errors.New("Can't reference a nil object") var versionFromSelfLink = regexp.MustCompile("/api/([^/]*)/") @@ -72,6 +73,6 @@ func GetPartialReference(obj runtime.Object, fieldPath string) (*ObjectReference return ref, nil } -// Allow clients to preemptively get a reference to an API object and pass it to places that +// IsAnAPIObject allows clients to preemptively get a reference to an API object and pass it to places that // intend only to get a reference to that object. This simplifies the event recording interface. func (*ObjectReference) IsAnAPIObject() {} diff --git a/pkg/api/register.go b/pkg/api/register.go index 95b22ca87f1..14f7283c5ca 100644 --- a/pkg/api/register.go +++ b/pkg/api/register.go @@ -20,6 +20,7 @@ import ( "github.com/GoogleCloudPlatform/kubernetes/pkg/runtime" ) +// Scheme is the default instance of runtime.Scheme to which types in the Kubernetes API are already registered. var Scheme = runtime.NewScheme() func init() { diff --git a/pkg/api/serialization_test.go b/pkg/api/serialization_test.go index b849e1c56b6..6fba25f17d0 100644 --- a/pkg/api/serialization_test.go +++ b/pkg/api/serialization_test.go @@ -160,22 +160,21 @@ func runTest(t *testing.T, codec runtime.Codec, source runtime.Object) { if err != nil { t.Errorf("%v: %v", name, err) return - } else { - if !reflect.DeepEqual(source, obj2) { - t.Errorf("1: %v: diff: %v\nCodec: %v\nData: %s\nSource: %#v", name, util.ObjectDiff(source, obj2), codec, string(data), source) - return - } } + if !reflect.DeepEqual(source, obj2) { + t.Errorf("1: %v: diff: %v\nCodec: %v\nData: %s\nSource: %#v", name, util.ObjectDiff(source, obj2), codec, string(data), source) + return + } + obj3 := reflect.New(reflect.TypeOf(source).Elem()).Interface().(runtime.Object) err = codec.DecodeInto(data, obj3) if err != nil { t.Errorf("2: %v: %v", name, err) return - } else { - if !reflect.DeepEqual(source, obj3) { - t.Errorf("3: %v: diff: %v\nCodec: %v", name, util.ObjectDiff(source, obj3), codec) - return - } + } + if !reflect.DeepEqual(source, obj3) { + t.Errorf("3: %v: diff: %v\nCodec: %v", name, util.ObjectDiff(source, obj3), codec) + return } } diff --git a/pkg/api/types.go b/pkg/api/types.go index bc278d82fc2..aad246e32b4 100644 --- a/pkg/api/types.go +++ b/pkg/api/types.go @@ -136,8 +136,9 @@ type Volume struct { Source *VolumeSource `json:"source" yaml:"source"` } +// VolumeSource represents the source location of a valume to mount. +// Only one of its members may be specified. type VolumeSource struct { - // Only one of the following sources may be specified // HostDir represents a pre-existing directory on the host machine that is directly // exposed to the container. This is generally used for system agents or other privileged // things that are allowed to see the host machine. Most containers will NOT need this. @@ -170,7 +171,8 @@ const ( ProtocolUDP Protocol = "UDP" ) -// GCEPersistent Disk resource. +// GCEPersistentDisk represents a Persistent Disk resource in Google Compute Engine. +// // A GCE PD must exist and be formatted before mounting to a container. // The disk must also be in the same GCE project and zone as the kubelet. // A GCE PD can only be mounted as read/write once. @@ -275,11 +277,11 @@ type LivenessProbe struct { type PullPolicy string const ( - // Always attempt to pull the latest image. Container will fail If the pull fails. + // PullAlways means that kubelet always attempts to pull the latest image. Container will fail If the pull fails. PullAlways PullPolicy = "PullAlways" - // Never pull an image, only use a local image. Container will fail if the image isn't present + // PullNever means that kubelet never pulls an image, but only uses a local image. Container will fail if the image isn't present PullNever PullPolicy = "PullNever" - // Pull if the image isn't present on disk. Container will fail if the image isn't present and the pull fails. + // PullIfNotPresent means that kubelet pulls if the image isn't present on disk. Container will fail if the image isn't present and the pull fails. PullIfNotPresent PullPolicy = "PullIfNotPresent" ) @@ -373,9 +375,10 @@ type ContainerStateTerminated struct { FinishedAt time.Time `json:"finishedAt,omitempty" yaml:"finishedAt,omitempty"` } +// ContainerState holds a possible state of container. +// Only one of its members may be specified. +// If none of them is specified, the default one is ContainerStateWaiting. type ContainerState struct { - // Only one of the following ContainerState may be specified. - // If none of them is specified, the default one is ContainerStateWaiting. Waiting *ContainerStateWaiting `json:"waiting,omitempty" yaml:"waiting,omitempty"` Running *ContainerStateRunning `json:"running,omitempty" yaml:"running,omitempty"` Termination *ContainerStateTerminated `json:"termination,omitempty" yaml:"termination,omitempty"` @@ -408,10 +411,11 @@ type RestartPolicyOnFailure struct{} type RestartPolicyNever struct{} +// RestartPolicy describes how the container should be restarted. +// Only one of the following restart policies may be specified. +// If none of the following policies is specified, the default one +// is RestartPolicyAlways. type RestartPolicy struct { - // Only one of the following restart policies may be specified. - // If none of the following policies is specified, the default one - // is RestartPolicyAlways. Always *RestartPolicyAlways `json:"always,omitempty" yaml:"always,omitempty"` OnFailure *RestartPolicyOnFailure `json:"onFailure,omitempty" yaml:"onFailure,omitempty"` Never *RestartPolicyNever `json:"never,omitempty" yaml:"never,omitempty"` @@ -808,7 +812,7 @@ const ( // CauseTypeFieldValueNotFound is used to report failure to find a requested value // (e.g. looking up an ID). CauseTypeFieldValueNotFound CauseType = "FieldValueNotFound" - // CauseTypeFieldValueInvalid is used to report required values that are not + // CauseTypeFieldValueRequired is used to report required values that are not // provided (e.g. empty strings, null values, or empty arrays). CauseTypeFieldValueRequired CauseType = "FieldValueRequired" // CauseTypeFieldValueDuplicate is used to report collisions of values that must be diff --git a/pkg/api/v1beta1/types.go b/pkg/api/v1beta1/types.go index 0d7dacf2b03..fe95b3e4033 100644 --- a/pkg/api/v1beta1/types.go +++ b/pkg/api/v1beta1/types.go @@ -80,8 +80,9 @@ type Volume struct { Source *VolumeSource `yaml:"source" json:"source"` } +// VolumeSource represents the source location of a valume to mount. +// Only one of its members may be specified. type VolumeSource struct { - // Only one of the following sources may be specified // HostDir represents a pre-existing directory on the host machine that is directly // exposed to the container. This is generally used for system agents or other privileged // things that are allowed to see the host machine. Most containers will NOT need this. @@ -114,9 +115,10 @@ const ( ProtocolUDP Protocol = "UDP" ) -// GCEPersistent Disk resource. -// A GCE PD must exist before mounting to a container. The disk must -// also be in the same GCE project and zone as the kubelet. +// GCEPersistentDisk represents a Persistent Disk resource in Google Compute Engine. +// +// A GCE PD must exist and be formatted before mounting to a container. +// The disk must also be in the same GCE project and zone as the kubelet. // A GCE PD can only be mounted as read/write once. type GCEPersistentDisk struct { // Unique name of the PD resource. Used to identify the disk in GCE @@ -228,11 +230,11 @@ type LivenessProbe struct { type PullPolicy string const ( - // Always attempt to pull the latest image. Container will fail If the pull fails. + // PullAlways means that kubelet always attempts to pull the latest image. Container will fail If the pull fails. PullAlways PullPolicy = "PullAlways" - // Never pull an image, only use a local image. Container will fail if the image isn't present + // PullNever means that kubelet never pulls an image, but only uses a local image. Container will fail if the image isn't present PullNever PullPolicy = "PullNever" - // Pull if the image isn't present on disk. Container will fail if the image isn't present and the pull fails. + // PullIfNotPresent means that kubelet pulls if the image isn't present on disk. Container will fail if the image isn't present and the pull fails. PullIfNotPresent PullPolicy = "PullIfNotPresent" ) @@ -337,9 +339,10 @@ type ContainerStateTerminated struct { FinishedAt time.Time `json:"finishedAt,omitempty" yaml:"finishedAt,omitempty"` } +// ContainerState holds a possible state of container. +// Only one of its members may be specified. +// If none of them is specified, the default one is ContainerStateWaiting. type ContainerState struct { - // Only one of the following ContainerState may be specified. - // If none of them is specified, the default one is ContainerStateWaiting. Waiting *ContainerStateWaiting `json:"waiting,omitempty" yaml:"waiting,omitempty"` Running *ContainerStateRunning `json:"running,omitempty" yaml:"running,omitempty"` Termination *ContainerStateTerminated `json:"termination,omitempty" yaml:"termination,omitempty"` @@ -657,7 +660,7 @@ const ( // CauseTypeFieldValueNotFound is used to report failure to find a requested value // (e.g. looking up an ID). CauseTypeFieldValueNotFound CauseType = "FieldValueNotFound" - // CauseTypeFieldValueInvalid is used to report required values that are not + // CauseTypeFieldValueRequired is used to report required values that are not // provided (e.g. empty strings, null values, or empty arrays). CauseTypeFieldValueRequired CauseType = "FieldValueRequired" // CauseTypeFieldValueDuplicate is used to report collisions of values that must be diff --git a/pkg/api/v1beta2/types.go b/pkg/api/v1beta2/types.go index 9b4754d8418..3d45e58f825 100644 --- a/pkg/api/v1beta2/types.go +++ b/pkg/api/v1beta2/types.go @@ -56,8 +56,9 @@ type Volume struct { Source *VolumeSource `yaml:"source" json:"source"` } +// VolumeSource represents the source location of a valume to mount. +// Only one of its members may be specified. type VolumeSource struct { - // Only one of the following sources may be specified // HostDir represents a pre-existing directory on the host machine that is directly // exposed to the container. This is generally used for system agents or other privileged // things that are allowed to see the host machine. Most containers will NOT need this. @@ -105,9 +106,10 @@ type Port struct { HostIP string `yaml:"hostIP,omitempty" json:"hostIP,omitempty"` } -// GCEPersistent Disk resource. -// A GCE PD must exist before mounting to a container. The disk must -// also be in the same GCE project and zone as the kubelet. +// GCEPersistentDisk represents a Persistent Disk resource in Google Compute Engine. +// +// A GCE PD must exist and be formatted before mounting to a container. +// The disk must also be in the same GCE project and zone as the kubelet. // A GCE PD can only be mounted as read/write once. type GCEPersistentDisk struct { // Unique name of the PD resource. Used to identify the disk in GCE @@ -194,11 +196,11 @@ type LivenessProbe struct { type PullPolicy string const ( - // Always attempt to pull the latest image. Container will fail If the pull fails. + // PullAlways means that kubelet always attempts to pull the latest image. Container will fail If the pull fails. PullAlways PullPolicy = "PullAlways" - // Never pull an image, only use a local image. Container will fail if the image isn't present + // PullNever means that kubelet never pulls an image, but only uses a local image. Container will fail if the image isn't present PullNever PullPolicy = "PullNever" - // Pull if the image isn't present on disk. Container will fail if the image isn't present and the pull fails. + // PullIfNotPresent means that kubelet pulls if the image isn't present on disk. Container will fail if the image isn't present and the pull fails. PullIfNotPresent PullPolicy = "PullIfNotPresent" ) @@ -302,9 +304,10 @@ type ContainerStateTerminated struct { FinishedAt time.Time `json:"finishedAt,omitempty" yaml:"finishedAt,omitempty"` } +// ContainerState holds a possible state of container. +// Only one of its members may be specified. +// If none of them is specified, the default one is ContainerStateWaiting. type ContainerState struct { - // Only one of the following ContainerState may be specified. - // If none of them is specified, the default one is ContainerStateWaiting. Waiting *ContainerStateWaiting `json:"waiting,omitempty" yaml:"waiting,omitempty"` Running *ContainerStateRunning `json:"running,omitempty" yaml:"running,omitempty"` Termination *ContainerStateTerminated `json:"termination,omitempty" yaml:"termination,omitempty"` @@ -632,7 +635,7 @@ const ( // CauseTypeFieldValueNotFound is used to report failure to find a requested value // (e.g. looking up an ID). CauseTypeFieldValueNotFound CauseType = "FieldValueNotFound" - // CauseTypeFieldValueInvalid is used to report required values that are not + // CauseTypeFieldValueRequired is used to report required values that are not // provided (e.g. empty strings, null values, or empty arrays). CauseTypeFieldValueRequired CauseType = "FieldValueRequired" // CauseTypeFieldValueDuplicate is used to report collisions of values that must be diff --git a/pkg/api/v1beta3/types.go b/pkg/api/v1beta3/types.go index eedd95a1fb2..7bfd9a2cc8d 100644 --- a/pkg/api/v1beta3/types.go +++ b/pkg/api/v1beta3/types.go @@ -166,8 +166,9 @@ type Volume struct { Source *VolumeSource `json:"source" yaml:"source"` } +// VolumeSource represents the source location of a valume to mount. +// Only one of its members may be specified. type VolumeSource struct { - // Only one of the following sources may be specified // HostDir represents a pre-existing directory on the host machine that is directly // exposed to the container. This is generally used for system agents or other privileged // things that are allowed to see the host machine. Most containers will NOT need this. @@ -200,7 +201,8 @@ const ( ProtocolUDP Protocol = "UDP" ) -// GCEPersistent Disk resource. +// GCEPersistentDisk represents a Persistent Disk resource in Google Compute Engine. +// // A GCE PD must exist and be formatted before mounting to a container. // The disk must also be in the same GCE project and zone as the kubelet. // A GCE PD can only be mounted as read/write once. @@ -306,11 +308,11 @@ type LivenessProbe struct { type PullPolicy string const ( - // Always attempt to pull the latest image. Container will fail If the pull fails. + // PullAlways means that kubelet always attempts to pull the latest image. Container will fail If the pull fails. PullAlways PullPolicy = "PullAlways" - // Never pull an image, only use a local image. Container will fail if the image isn't present + // PullNever means that kubelet never pulls an image, but only uses a local image. Container will fail if the image isn't present PullNever PullPolicy = "PullNever" - // Pull if the image isn't present on disk. Container will fail if the image isn't present and the pull fails. + // PullIfNotPresent means that kubelet pulls if the image isn't present on disk. Container will fail if the image isn't present and the pull fails. PullIfNotPresent PullPolicy = "PullIfNotPresent" ) @@ -402,9 +404,10 @@ type ContainerStateTerminated struct { FinishedAt time.Time `json:"finishedAt,omitempty" yaml:"finishedAt,omitempty"` } +// ContainerState holds a possible state of container. +// Only one of its members may be specified. +// If none of them is specified, the default one is ContainerStateWaiting. type ContainerState struct { - // Only one of the following ContainerState may be specified. - // If none of them is specified, the default one is ContainerStateWaiting. Waiting *ContainerStateWaiting `json:"waiting,omitempty" yaml:"waiting,omitempty"` Running *ContainerStateRunning `json:"running,omitempty" yaml:"running,omitempty"` Termination *ContainerStateTerminated `json:"termination,omitempty" yaml:"termination,omitempty"` @@ -852,7 +855,7 @@ const ( // CauseTypeFieldValueNotFound is used to report failure to find a requested value // (e.g. looking up an ID). CauseTypeFieldValueNotFound CauseType = "FieldValueNotFound" - // CauseTypeFieldValueInvalid is used to report required values that are not + // CauseTypeFieldValueRequired is used to report required values that are not // provided (e.g. empty strings, null values, or empty arrays). CauseTypeFieldValueRequired CauseType = "FieldValueRequired" // CauseTypeFieldValueDuplicate is used to report collisions of values that must be diff --git a/pkg/api/validation/validation.go b/pkg/api/validation/validation.go index ebb86d9e3ef..43470cceb2b 100644 --- a/pkg/api/validation/validation.go +++ b/pkg/api/validation/validation.go @@ -28,6 +28,7 @@ import ( "github.com/GoogleCloudPlatform/kubernetes/pkg/util" ) +// ServiceLister is an abstract interface for testing. type ServiceLister interface { ListServices(api.Context) (*api.ServiceList, error) }