From 696423e0444c962899e07859a6fbeb5e4c4cb664 Mon Sep 17 00:00:00 2001 From: goltermann Date: Wed, 23 Mar 2016 16:45:24 -0700 Subject: [PATCH] Vet fixes, mostly pass lock by value errors. --- api/swagger-spec/v1.json | 3 -- .../go-to-protobuf/protobuf/generator.go | 5 +-- cmd/libs/go2idl/parser/parse_test.go | 2 +- contrib/mesos/pkg/executor/executor.go | 2 +- contrib/mesos/pkg/executor/registry.go | 15 +++---- contrib/mesos/pkg/executor/watcher.go | 8 ++-- docs/api-reference/v1/definitions.html | 4 +- pkg/api/errors/storage/storage.go | 2 +- pkg/api/rest/delete.go | 2 +- pkg/api/types.generated.go | 43 +++++++++++-------- pkg/api/types.go | 10 ++++- pkg/api/v1/types.generated.go | 43 +++++++++++-------- pkg/api/v1/types.go | 10 ++++- pkg/apis/componentconfig/types.generated.go | 4 +- pkg/apis/componentconfig/types.go | 2 +- .../unversioned/clientcmd/api/helpers_test.go | 2 +- .../unversioned/clientcmd/api/types_test.go | 4 +- .../unversioned/clientcmd/loader_test.go | 6 +-- pkg/client/unversioned/testclient/fixture.go | 2 - pkg/controller/podautoscaler/horizontal.go | 2 +- .../podautoscaler/horizontal_test.go | 2 +- pkg/kubectl/cmd/cmd_test.go | 16 +++---- pkg/kubectl/cmd/config/config_test.go | 2 +- pkg/kubectl/cmd/util/factory.go | 4 +- pkg/master/master_test.go | 4 +- .../thirdpartyresourcedata/codec_test.go | 2 +- pkg/runtime/embedded.go | 6 +-- pkg/util/line_delimiter_test.go | 4 +- pkg/volume/flocker/plugin_test.go | 4 +- test/e2e/example_k8petstore.go | 5 +-- test/e2e/log_size_monitoring.go | 8 ++-- test/e2e/util.go | 8 ++-- .../resource_consumer_handler.go | 18 ++++---- 33 files changed, 136 insertions(+), 118 deletions(-) diff --git a/api/swagger-spec/v1.json b/api/swagger-spec/v1.json index 0b99b99275..c4386868d6 100644 --- a/api/swagger-spec/v1.json +++ b/api/swagger-spec/v1.json @@ -15627,9 +15627,6 @@ "v1.NodeStatus": { "id": "v1.NodeStatus", "description": "NodeStatus is information about the current status of a node.", - "required": [ - "images" - ], "properties": { "capacity": { "type": "any", diff --git a/cmd/libs/go2idl/go-to-protobuf/protobuf/generator.go b/cmd/libs/go2idl/go-to-protobuf/protobuf/generator.go index e81c814002..861853b352 100644 --- a/cmd/libs/go2idl/go-to-protobuf/protobuf/generator.go +++ b/cmd/libs/go2idl/go-to-protobuf/protobuf/generator.go @@ -153,7 +153,6 @@ func (g *genProtoIDL) GenerateType(c *generator.Context, t *types.Type, w io.Wri default: return b.unknown(sw) } - return sw.Error() } // ProtobufFromGoNamer finds the protobuf name of a type (and its package, and @@ -424,7 +423,7 @@ func memberTypeToProtobufField(locator ProtobufLocator, field *protoField, t *ty field.Nullable = true case types.Alias: if err := memberTypeToProtobufField(locator, field, t.Underlying); err != nil { - log.Printf("failed to alias: %s %s: err", t.Name, t.Underlying.Name, err) + log.Printf("failed to alias: %s %s: err %v", t.Name, t.Underlying.Name, err) return err } if field.Extras == nil { @@ -594,7 +593,7 @@ func membersToFields(locator ProtobufLocator, t *types.Type, localPackage types. tag := field.Tag if tag != -1 { if existing, ok := byTag[tag]; ok { - return nil, fmt.Errorf("field %q and %q in %q both have tag %d", field.Name, existing.Name, tag) + return nil, fmt.Errorf("field %q and %q both have tag %d", field.Name, existing.Name, tag) } byTag[tag] = field } diff --git a/cmd/libs/go2idl/parser/parse_test.go b/cmd/libs/go2idl/parser/parse_test.go index f45e4da38c..58fa808a92 100644 --- a/cmd/libs/go2idl/parser/parse_test.go +++ b/cmd/libs/go2idl/parser/parse_test.go @@ -165,7 +165,7 @@ var FooAnotherVar proto.Frobber = proto.AnotherVar t.Errorf("Wanted, got:\n%v\n-----\n%v\n", e, a) } if p := u.Package("base/foo/proto"); !p.HasImport("base/common/proto") { - t.Errorf("Unexpected lack of import line: %#s", p.Imports) + t.Errorf("Unexpected lack of import line: %s", p.Imports) } } diff --git a/contrib/mesos/pkg/executor/executor.go b/contrib/mesos/pkg/executor/executor.go index 72d8997273..c32083c617 100644 --- a/contrib/mesos/pkg/executor/executor.go +++ b/contrib/mesos/pkg/executor/executor.go @@ -488,7 +488,7 @@ func (k *Executor) bindAndWatchTask(driver bindings.ExecutorDriver, task *mesos. // within the launch timeout window we should see a pod-task update via the registry. // if we see a Running update then we need to generate a TASK_RUNNING status update for mesos. handlerFinished := false - handler := watchHandler{ + handler := &watchHandler{ expiration: watchExpiration{ timeout: launchTimer.C, onEvent: func(taskID string) { diff --git a/contrib/mesos/pkg/executor/registry.go b/contrib/mesos/pkg/executor/registry.go index 11ffb28b90..f8139dfce1 100644 --- a/contrib/mesos/pkg/executor/registry.go +++ b/contrib/mesos/pkg/executor/registry.go @@ -118,7 +118,7 @@ func NewRegistry(client *clientset.Clientset) Registry { return r } -func (r registryImpl) watch() <-chan *PodEvent { +func (r *registryImpl) watch() <-chan *PodEvent { return r.updates } @@ -130,26 +130,26 @@ func taskIDFor(pod *api.Pod) (taskID string, err error) { return } -func (r registryImpl) shutdown() { +func (r *registryImpl) shutdown() { //TODO(jdef) flesh this out r.m.Lock() defer r.m.Unlock() r.boundTasks = map[string]*api.Pod{} } -func (r registryImpl) empty() bool { +func (r *registryImpl) empty() bool { r.m.RLock() defer r.m.RUnlock() return len(r.boundTasks) == 0 } -func (r registryImpl) pod(taskID string) *api.Pod { +func (r *registryImpl) pod(taskID string) *api.Pod { r.m.RLock() defer r.m.RUnlock() return r.boundTasks[taskID] } -func (r registryImpl) Remove(taskID string) error { +func (r *registryImpl) Remove(taskID string) error { r.m.Lock() defer r.m.Unlock() pod, ok := r.boundTasks[taskID] @@ -169,7 +169,7 @@ func (r registryImpl) Remove(taskID string) error { return nil } -func (r registryImpl) Update(pod *api.Pod) (*PodEvent, error) { +func (r *registryImpl) Update(pod *api.Pod) (*PodEvent, error) { // Don't do anything for pods without task anotation which means: // - "pre-scheduled" pods which have a NodeName set to this node without being scheduled already. // - static/mirror pods: they'll never have a TaskID annotation, and we don't expect them to ever change. @@ -254,8 +254,7 @@ func copyPorts(dest, src *api.Pod) bool { return true } -func (r registryImpl) bind(taskID string, pod *api.Pod) error { - +func (r *registryImpl) bind(taskID string, pod *api.Pod) error { // validate taskID matches that of the annotation annotatedTaskID, err := taskIDFor(pod) if err != nil { diff --git a/contrib/mesos/pkg/executor/watcher.go b/contrib/mesos/pkg/executor/watcher.go index 081e85375b..b164214618 100644 --- a/contrib/mesos/pkg/executor/watcher.go +++ b/contrib/mesos/pkg/executor/watcher.go @@ -55,7 +55,7 @@ type ( watcher struct { updates <-chan *PodEvent rw sync.RWMutex - handlers map[string]watchHandler + handlers map[string]*watchHandler filters []watchFilter runOnce chan struct{} } @@ -64,7 +64,7 @@ type ( func newWatcher(updates <-chan *PodEvent) *watcher { return &watcher{ updates: updates, - handlers: make(map[string]watchHandler), + handlers: make(map[string]*watchHandler), runOnce: make(chan struct{}), } } @@ -86,7 +86,7 @@ updateLoop: } } log.V(1).Info("handling " + u.FormatShort()) - h, ok := func() (h watchHandler, ok bool) { + h, ok := func() (h *watchHandler, ok bool) { pw.rw.RLock() defer pw.rw.RUnlock() h, ok = pw.handlers[u.taskID] @@ -125,7 +125,7 @@ func (pw *watcher) addFilter(f watchFilter) { } // forTask associates a handler `h` with the given taskID. -func (pw *watcher) forTask(taskID string, h watchHandler) { +func (pw *watcher) forTask(taskID string, h *watchHandler) { pw.rw.Lock() pw.handlers[taskID] = h pw.rw.Unlock() diff --git a/docs/api-reference/v1/definitions.html b/docs/api-reference/v1/definitions.html index a5a09ff33a..fdf083f79c 100755 --- a/docs/api-reference/v1/definitions.html +++ b/docs/api-reference/v1/definitions.html @@ -4492,7 +4492,7 @@ The resulting set of endpoints can be viewed as:

images

List of container images on this node

-

true

+

false

v1.ContainerImage array

@@ -7780,7 +7780,7 @@ The resulting set of endpoints can be viewed as:
diff --git a/pkg/api/errors/storage/storage.go b/pkg/api/errors/storage/storage.go index d257cc131a..2a22b4f171 100644 --- a/pkg/api/errors/storage/storage.go +++ b/pkg/api/errors/storage/storage.go @@ -101,7 +101,7 @@ func InterpretWatchError(err error, resource unversioned.GroupResource, name str switch { case storage.IsInvalidError(err): invalidError, _ := err.(storage.InvalidError) - return errors.NewInvalid(unversioned.GroupKind{resource.Group, resource.Resource}, name, invalidError.Errs) + return errors.NewInvalid(unversioned.GroupKind{Group: resource.Group, Kind: resource.Resource}, name, invalidError.Errs) default: return err } diff --git a/pkg/api/rest/delete.go b/pkg/api/rest/delete.go index b4377d6464..34965d52fe 100644 --- a/pkg/api/rest/delete.go +++ b/pkg/api/rest/delete.go @@ -52,7 +52,7 @@ func BeforeDelete(strategy RESTDeleteStrategy, ctx api.Context, obj runtime.Obje } // Checking the Preconditions here to fail early. They'll be enforced later on when we actually do the deletion, too. if options.Preconditions != nil && options.Preconditions.UID != nil && *options.Preconditions.UID != objectMeta.UID { - return false, false, errors.NewConflict(unversioned.GroupResource{gvk.Group, gvk.Kind}, objectMeta.Name, fmt.Errorf("the UID in the precondition (%s) does not match the UID in record (%s). The object might have been deleted and then recreated", *options.Preconditions.UID, objectMeta.UID)) + return false, false, errors.NewConflict(unversioned.GroupResource{Group: gvk.Group, Resource: gvk.Kind}, objectMeta.Name, fmt.Errorf("the UID in the precondition (%s) does not match the UID in record (%s). The object might have been deleted and then recreated", *options.Preconditions.UID, objectMeta.UID)) } gracefulStrategy, ok := strategy.(RESTGracefulDeleteStrategy) if !ok { diff --git a/pkg/api/types.generated.go b/pkg/api/types.generated.go index c599335ca4..214eda0481 100644 --- a/pkg/api/types.generated.go +++ b/pkg/api/types.generated.go @@ -33273,11 +33273,12 @@ func (x *NodeStatus) CodecEncodeSelf(e *codec1978.Encoder) { yyq2[4] = len(x.Addresses) != 0 yyq2[5] = true yyq2[6] = true + yyq2[7] = len(x.Images) != 0 var yynn2 int if yyr2 || yy2arr2 { r.EncodeArrayStart(8) } else { - yynn2 = 1 + yynn2 = 0 for _, b := range yyq2 { if b { yynn2++ @@ -33449,28 +33450,34 @@ func (x *NodeStatus) CodecEncodeSelf(e *codec1978.Encoder) { } if yyr2 || yy2arr2 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - if x.Images == nil { - r.EncodeNil() - } else { - yym29 := z.EncBinary() - _ = yym29 - if false { + if yyq2[7] { + if x.Images == nil { + r.EncodeNil() } else { - h.encSliceContainerImage(([]ContainerImage)(x.Images), e) + yym29 := z.EncBinary() + _ = yym29 + if false { + } else { + h.encSliceContainerImage(([]ContainerImage)(x.Images), e) + } } + } else { + r.EncodeNil() } } else { - z.EncSendContainerState(codecSelfer_containerMapKey1234) - r.EncodeString(codecSelferC_UTF81234, string("images")) - z.EncSendContainerState(codecSelfer_containerMapValue1234) - if x.Images == nil { - r.EncodeNil() - } else { - yym30 := z.EncBinary() - _ = yym30 - if false { + if yyq2[7] { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("images")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + if x.Images == nil { + r.EncodeNil() } else { - h.encSliceContainerImage(([]ContainerImage)(x.Images), e) + yym30 := z.EncBinary() + _ = yym30 + if false { + } else { + h.encSliceContainerImage(([]ContainerImage)(x.Images), e) + } } } } diff --git a/pkg/api/types.go b/pkg/api/types.go index 17fb73a580..1b5f40af10 100644 --- a/pkg/api/types.go +++ b/pkg/api/types.go @@ -1671,8 +1671,14 @@ type NodeSpec struct { // DaemonEndpoint contains information about a single Daemon endpoint. type DaemonEndpoint struct { + /* + The port tag was not properly in quotes in earlier releases, so it must be + uppercased for backwards compat (since it was falling back to var name of + 'Port'). + */ + // Port number of the given endpoint. - Port int `json:port` + Port int `json:"Port"` } // NodeDaemonEndpoints lists ports opened by daemons running on the Node. @@ -1718,7 +1724,7 @@ type NodeStatus struct { // Set of ids/uuids to uniquely identify the node. NodeInfo NodeSystemInfo `json:"nodeInfo,omitempty"` // List of container images on this node - Images []ContainerImage `json:"images",omitempty` + Images []ContainerImage `json:"images,omitempty"` } // Describe a container image diff --git a/pkg/api/v1/types.generated.go b/pkg/api/v1/types.generated.go index ca285b77c8..5048704178 100644 --- a/pkg/api/v1/types.generated.go +++ b/pkg/api/v1/types.generated.go @@ -33155,11 +33155,12 @@ func (x *NodeStatus) CodecEncodeSelf(e *codec1978.Encoder) { yyq2[4] = len(x.Addresses) != 0 yyq2[5] = true yyq2[6] = true + yyq2[7] = len(x.Images) != 0 var yynn2 int if yyr2 || yy2arr2 { r.EncodeArrayStart(8) } else { - yynn2 = 1 + yynn2 = 0 for _, b := range yyq2 { if b { yynn2++ @@ -33331,28 +33332,34 @@ func (x *NodeStatus) CodecEncodeSelf(e *codec1978.Encoder) { } if yyr2 || yy2arr2 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - if x.Images == nil { - r.EncodeNil() - } else { - yym29 := z.EncBinary() - _ = yym29 - if false { + if yyq2[7] { + if x.Images == nil { + r.EncodeNil() } else { - h.encSliceContainerImage(([]ContainerImage)(x.Images), e) + yym29 := z.EncBinary() + _ = yym29 + if false { + } else { + h.encSliceContainerImage(([]ContainerImage)(x.Images), e) + } } + } else { + r.EncodeNil() } } else { - z.EncSendContainerState(codecSelfer_containerMapKey1234) - r.EncodeString(codecSelferC_UTF81234, string("images")) - z.EncSendContainerState(codecSelfer_containerMapValue1234) - if x.Images == nil { - r.EncodeNil() - } else { - yym30 := z.EncBinary() - _ = yym30 - if false { + if yyq2[7] { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("images")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + if x.Images == nil { + r.EncodeNil() } else { - h.encSliceContainerImage(([]ContainerImage)(x.Images), e) + yym30 := z.EncBinary() + _ = yym30 + if false { + } else { + h.encSliceContainerImage(([]ContainerImage)(x.Images), e) + } } } } diff --git a/pkg/api/v1/types.go b/pkg/api/v1/types.go index 8e6ffe7f21..29181e294e 100644 --- a/pkg/api/v1/types.go +++ b/pkg/api/v1/types.go @@ -2047,8 +2047,14 @@ type NodeSpec struct { // DaemonEndpoint contains information about a single Daemon endpoint. type DaemonEndpoint struct { + /* + The port tag was not properly in quotes in earlier releases, so it must be + uppercased for backwards compat (since it was falling back to var name of + 'Port'). + */ + // Port number of the given endpoint. - Port int32 `json:port` + Port int32 `json:"Port"` } // NodeDaemonEndpoints lists ports opened by daemons running on the Node. @@ -2101,7 +2107,7 @@ type NodeStatus struct { // More info: http://releases.k8s.io/HEAD/docs/admin/node.md#node-info NodeInfo NodeSystemInfo `json:"nodeInfo,omitempty"` // List of container images on this node - Images []ContainerImage `json:"images",omitempty` + Images []ContainerImage `json:"images,omitempty"` } // Describe a container image diff --git a/pkg/apis/componentconfig/types.generated.go b/pkg/apis/componentconfig/types.generated.go index 60c3dfeeb7..3ca4b476c4 100644 --- a/pkg/apis/componentconfig/types.generated.go +++ b/pkg/apis/componentconfig/types.generated.go @@ -2048,7 +2048,7 @@ func (x *KubeletConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { } } else { z.EncSendContainerState(codecSelfer_containerMapKey1234) - r.EncodeString(codecSelferC_UTF81234, string("VolumeStatsAggPeriod")) + r.EncodeString(codecSelferC_UTF81234, string("volumeStatsAggPeriod")) z.EncSendContainerState(codecSelfer_containerMapValue1234) yy149 := &x.VolumeStatsAggPeriod yym150 := z.EncBinary() @@ -3190,7 +3190,7 @@ func (x *KubeletConfiguration) codecDecodeSelfFromMap(l int, d *codec1978.Decode } else { x.LowDiskSpaceThresholdMB = int(r.DecodeInt(codecSelferBitsize1234)) } - case "VolumeStatsAggPeriod": + case "volumeStatsAggPeriod": if r.TryDecodeAsNil() { x.VolumeStatsAggPeriod = pkg1_unversioned.Duration{} } else { diff --git a/pkg/apis/componentconfig/types.go b/pkg/apis/componentconfig/types.go index 3234489ab2..9fb0d6577c 100644 --- a/pkg/apis/componentconfig/types.go +++ b/pkg/apis/componentconfig/types.go @@ -230,7 +230,7 @@ type KubeletConfiguration struct { // be rejected. LowDiskSpaceThresholdMB int `json:"lowDiskSpaceThresholdMB"` // How frequently to calculate and cache volume disk usage for all pods - VolumeStatsAggPeriod unversioned.Duration `json:volumeStatsAggPeriod` + VolumeStatsAggPeriod unversioned.Duration `json:"volumeStatsAggPeriod"` // networkPluginName is the name of the network plugin to be invoked for // various events in kubelet/pod lifecycle NetworkPluginName string `json:"networkPluginName"` diff --git a/pkg/client/unversioned/clientcmd/api/helpers_test.go b/pkg/client/unversioned/clientcmd/api/helpers_test.go index ca970f3b4c..6952524c6b 100644 --- a/pkg/client/unversioned/clientcmd/api/helpers_test.go +++ b/pkg/client/unversioned/clientcmd/api/helpers_test.go @@ -206,7 +206,7 @@ func TestFlattenSuccess(t *testing.T) { } -func ExampleMinifyAndShorten() { +func Example_minifyAndShorten() { certFile, _ := ioutil.TempFile("", "") defer os.Remove(certFile.Name()) keyFile, _ := ioutil.TempFile("", "") diff --git a/pkg/client/unversioned/clientcmd/api/types_test.go b/pkg/client/unversioned/clientcmd/api/types_test.go index 2de870afad..398e139bdf 100644 --- a/pkg/client/unversioned/clientcmd/api/types_test.go +++ b/pkg/client/unversioned/clientcmd/api/types_test.go @@ -22,7 +22,7 @@ import ( "github.com/ghodss/yaml" ) -func ExampleEmptyConfig() { +func Example_emptyConfig() { defaultConfig := NewConfig() output, err := yaml.Marshal(defaultConfig) @@ -39,7 +39,7 @@ func ExampleEmptyConfig() { // users: {} } -func ExampleOfOptionsConfig() { +func Example_ofOptionsConfig() { defaultConfig := NewConfig() defaultConfig.Preferences.Colors = true defaultConfig.Clusters["alfa"] = &Cluster{ diff --git a/pkg/client/unversioned/clientcmd/loader_test.go b/pkg/client/unversioned/clientcmd/loader_test.go index 0921f7043a..ad79c7b818 100644 --- a/pkg/client/unversioned/clientcmd/loader_test.go +++ b/pkg/client/unversioned/clientcmd/loader_test.go @@ -376,7 +376,7 @@ func TestMigratingFileSourceMissingSkip(t *testing.T) { } } -func ExampleNoMergingOnExplicitPaths() { +func Example_noMergingOnExplicitPaths() { commandLineFile, _ := ioutil.TempFile("", "") defer os.Remove(commandLineFile.Name()) envVarFile, _ := ioutil.TempFile("", "") @@ -423,7 +423,7 @@ func ExampleNoMergingOnExplicitPaths() { // token: red-token } -func ExampleMergingSomeWithConflict() { +func Example_mergingSomeWithConflict() { commandLineFile, _ := ioutil.TempFile("", "") defer os.Remove(commandLineFile.Name()) envVarFile, _ := ioutil.TempFile("", "") @@ -476,7 +476,7 @@ func ExampleMergingSomeWithConflict() { // token: yellow-token } -func ExampleMergingEverythingNoConflicts() { +func Example_mergingEverythingNoConflicts() { commandLineFile, _ := ioutil.TempFile("", "") defer os.Remove(commandLineFile.Name()) envVarFile, _ := ioutil.TempFile("", "") diff --git a/pkg/client/unversioned/testclient/fixture.go b/pkg/client/unversioned/testclient/fixture.go index 4956a1b90f..364cb28fc5 100644 --- a/pkg/client/unversioned/testclient/fixture.go +++ b/pkg/client/unversioned/testclient/fixture.go @@ -98,8 +98,6 @@ func ObjectReaction(o ObjectRetriever, mapper meta.RESTMapper) ReactionFunc { default: return false, nil, fmt.Errorf("no reaction implemented for %s", action) } - - return true, nil, nil } } diff --git a/pkg/controller/podautoscaler/horizontal.go b/pkg/controller/podautoscaler/horizontal.go index d066ce48e4..2c1fe4c026 100644 --- a/pkg/controller/podautoscaler/horizontal.go +++ b/pkg/controller/podautoscaler/horizontal.go @@ -104,7 +104,7 @@ func newInformer(controller *HorizontalController, resyncPeriod time.Duration) ( func NewHorizontalController(evtNamespacer unversionedcore.EventsGetter, scaleNamespacer unversionedextensions.ScalesGetter, hpaNamespacer unversionedextensions.HorizontalPodAutoscalersGetter, metricsClient metrics.MetricsClient, resyncPeriod time.Duration) *HorizontalController { broadcaster := record.NewBroadcaster() - broadcaster.StartRecordingToSink(&unversionedcore.EventSinkImpl{evtNamespacer.Events("")}) + broadcaster.StartRecordingToSink(&unversionedcore.EventSinkImpl{Interface: evtNamespacer.Events("")}) recorder := broadcaster.NewRecorder(api.EventSource{Component: "horizontal-pod-autoscaler"}) controller := &HorizontalController{ diff --git a/pkg/controller/podautoscaler/horizontal_test.go b/pkg/controller/podautoscaler/horizontal_test.go index e86f469b8a..9872a2171a 100644 --- a/pkg/controller/podautoscaler/horizontal_test.go +++ b/pkg/controller/podautoscaler/horizontal_test.go @@ -333,7 +333,7 @@ func (tc *testCase) runTest(t *testing.T) { metricsClient := metrics.NewHeapsterMetricsClient(testClient, metrics.DefaultHeapsterNamespace, metrics.DefaultHeapsterScheme, metrics.DefaultHeapsterService, metrics.DefaultHeapsterPort) broadcaster := record.NewBroadcasterForTests(0) - broadcaster.StartRecordingToSink(&unversionedcore.EventSinkImpl{testClient.Core().Events("")}) + broadcaster.StartRecordingToSink(&unversionedcore.EventSinkImpl{Interface: testClient.Core().Events("")}) recorder := broadcaster.NewRecorder(api.EventSource{Component: "horizontal-pod-autoscaler"}) hpaController := &HorizontalController{ diff --git a/pkg/kubectl/cmd/cmd_test.go b/pkg/kubectl/cmd/cmd_test.go index 6dd0e3e24d..bf18712718 100644 --- a/pkg/kubectl/cmd/cmd_test.go +++ b/pkg/kubectl/cmd/cmd_test.go @@ -344,7 +344,7 @@ func stringBody(body string) io.ReadCloser { // } //} -func ExamplePrintReplicationControllerWithNamespace() { +func Example_printReplicationControllerWithNamespace() { f, tf, codec := NewAPIFactory() tf.Printer = kubectl.NewHumanReadablePrinter(false, true, false, false, false, false, []string{}) tf.Client = &fake.RESTClient{ @@ -389,7 +389,7 @@ func ExamplePrintReplicationControllerWithNamespace() { // beep foo 1 1 10y } -func ExamplePrintMultiContainersReplicationControllerWithWide() { +func Example_printMultiContainersReplicationControllerWithWide() { f, tf, codec := NewAPIFactory() tf.Printer = kubectl.NewHumanReadablePrinter(false, false, true, false, false, false, []string{}) tf.Client = &fake.RESTClient{ @@ -437,7 +437,7 @@ func ExamplePrintMultiContainersReplicationControllerWithWide() { // foo 1 1 10y foo,foo2 someimage,someimage2 foo=bar } -func ExamplePrintReplicationController() { +func Example_printReplicationController() { f, tf, codec := NewAPIFactory() tf.Printer = kubectl.NewHumanReadablePrinter(false, false, false, false, false, false, []string{}) tf.Client = &fake.RESTClient{ @@ -485,7 +485,7 @@ func ExamplePrintReplicationController() { // foo 1 1 10y } -func ExamplePrintPodWithWideFormat() { +func Example_printPodWithWideFormat() { f, tf, codec := NewAPIFactory() tf.Printer = kubectl.NewHumanReadablePrinter(false, false, true, false, false, false, []string{}) tf.Client = &fake.RESTClient{ @@ -520,7 +520,7 @@ func ExamplePrintPodWithWideFormat() { // test1 1/2 podPhase 6 10y kubernetes-minion-abcd } -func ExamplePrintPodWithShowLabels() { +func Example_printPodWithShowLabels() { f, tf, codec := NewAPIFactory() tf.Printer = kubectl.NewHumanReadablePrinter(false, false, false, false, true, false, []string{}) tf.Client = &fake.RESTClient{ @@ -651,7 +651,7 @@ func newAllPhasePodList() *api.PodList { } } -func ExamplePrintPodHideTerminated() { +func Example_printPodHideTerminated() { f, tf, codec := NewAPIFactory() tf.Printer = kubectl.NewHumanReadablePrinter(false, false, false, false, false, false, []string{}) tf.Client = &fake.RESTClient{ @@ -671,7 +671,7 @@ func ExamplePrintPodHideTerminated() { // test5 1/2 Unknown 6 10y } -func ExamplePrintPodShowAll() { +func Example_printPodShowAll() { f, tf, codec := NewAPIFactory() tf.Printer = kubectl.NewHumanReadablePrinter(false, false, false, true, false, false, []string{}) tf.Client = &fake.RESTClient{ @@ -693,7 +693,7 @@ func ExamplePrintPodShowAll() { // test5 1/2 Unknown 6 10y } -func ExamplePrintServiceWithNamespacesAndLabels() { +func Example_printServiceWithNamespacesAndLabels() { f, tf, codec := NewAPIFactory() tf.Printer = kubectl.NewHumanReadablePrinter(false, true, false, false, false, false, []string{"l1"}) tf.Client = &fake.RESTClient{ diff --git a/pkg/kubectl/cmd/config/config_test.go b/pkg/kubectl/cmd/config/config_test.go index 045498dae4..73237ba34e 100644 --- a/pkg/kubectl/cmd/config/config_test.go +++ b/pkg/kubectl/cmd/config/config_test.go @@ -44,7 +44,7 @@ func newRedFederalCowHammerConfig() clientcmdapi.Config { } } -func ExampleView() { +func Example_view() { expectedConfig := newRedFederalCowHammerConfig() test := configCommandTest{ args: []string{"view"}, diff --git a/pkg/kubectl/cmd/util/factory.go b/pkg/kubectl/cmd/util/factory.go index f8c001f85e..68a3d00505 100644 --- a/pkg/kubectl/cmd/util/factory.go +++ b/pkg/kubectl/cmd/util/factory.go @@ -327,14 +327,14 @@ func NewFactory(optionalClientConfig clientcmd.ClientConfig) *Factory { // TODO(madhusudancs): Make this smarter by admitting MatchExpressions with Equals // operator, DoubleEquals operator and In operator with only one element in the set. if len(t.Spec.Selector.MatchExpressions) > 0 { - return "", fmt.Errorf("couldn't convert expressions - \"%+v\" to map-based selector format") + return "", fmt.Errorf("couldn't convert expressions - \"%+v\" to map-based selector format", t.Spec.Selector.MatchExpressions) } return kubectl.MakeLabels(t.Spec.Selector.MatchLabels), nil case *extensions.ReplicaSet: // TODO(madhusudancs): Make this smarter by admitting MatchExpressions with Equals // operator, DoubleEquals operator and In operator with only one element in the set. if len(t.Spec.Selector.MatchExpressions) > 0 { - return "", fmt.Errorf("couldn't convert expressions - \"%+v\" to map-based selector format") + return "", fmt.Errorf("couldn't convert expressions - \"%+v\" to map-based selector format", t.Spec.Selector.MatchExpressions) } return kubectl.MakeLabels(t.Spec.Selector.MatchLabels), nil default: diff --git a/pkg/master/master_test.go b/pkg/master/master_test.go index 5bb2a549e4..ea70df771f 100644 --- a/pkg/master/master_test.go +++ b/pkg/master/master_test.go @@ -56,10 +56,10 @@ import ( ) // setUp is a convience function for setting up for (most) tests. -func setUp(t *testing.T) (Master, *etcdtesting.EtcdTestServer, Config, *assert.Assertions) { +func setUp(t *testing.T) (*Master, *etcdtesting.EtcdTestServer, Config, *assert.Assertions) { server := etcdtesting.NewEtcdTestClientServer(t) - master := Master{ + master := &Master{ GenericAPIServer: &genericapiserver.GenericAPIServer{}, } config := Config{ diff --git a/pkg/registry/thirdpartyresourcedata/codec_test.go b/pkg/registry/thirdpartyresourcedata/codec_test.go index 6b08ee8aa0..188e44befc 100644 --- a/pkg/registry/thirdpartyresourcedata/codec_test.go +++ b/pkg/registry/thirdpartyresourcedata/codec_test.go @@ -42,7 +42,7 @@ type FooList struct { unversioned.TypeMeta `json:",inline"` unversioned.ListMeta `json:"metadata,omitempty" description:"standard list metadata; see http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata"` - items []Foo `json:"items"` + Items []Foo `json:"items"` } func TestCodec(t *testing.T) { diff --git a/pkg/runtime/embedded.go b/pkg/runtime/embedded.go index 5b91e854e9..a62080e39a 100644 --- a/pkg/runtime/embedded.go +++ b/pkg/runtime/embedded.go @@ -24,9 +24,9 @@ import ( ) type encodable struct { - e Encoder `json:"-"` + E Encoder `json:"-"` obj Object - versions []unversioned.GroupVersion `json:"-"` + versions []unversioned.GroupVersion } func (e encodable) GetObjectKind() unversioned.ObjectKind { return e.obj.GetObjectKind() } @@ -47,7 +47,7 @@ func (re encodable) UnmarshalJSON(in []byte) error { // Marshal may get called on pointers or values, so implement MarshalJSON on value. // http://stackoverflow.com/questions/21390979/custom-marshaljson-never-gets-called-in-go func (re encodable) MarshalJSON() ([]byte, error) { - return Encode(re.e, re.obj) + return Encode(re.E, re.obj) } // NewEncodableList creates an object that will be encoded with the provided codec on demand. diff --git a/pkg/util/line_delimiter_test.go b/pkg/util/line_delimiter_test.go index 8777bb949e..728d0abeae 100644 --- a/pkg/util/line_delimiter_test.go +++ b/pkg/util/line_delimiter_test.go @@ -21,7 +21,7 @@ import ( "os" ) -func ExampleTrailingNewline() { +func Example_trailingNewline() { ld := NewLineDelimiter(os.Stdout, "|") defer ld.Flush() fmt.Fprint(ld, " Hello \n World \n") @@ -30,7 +30,7 @@ func ExampleTrailingNewline() { // | World | // || } -func ExampleNoTrailingNewline() { +func Example_noTrailingNewline() { ld := NewLineDelimiter(os.Stdout, "|") defer ld.Flush() fmt.Fprint(ld, " Hello \n World ") diff --git a/pkg/volume/flocker/plugin_test.go b/pkg/volume/flocker/plugin_test.go index 8376de0c9d..f4d2561108 100644 --- a/pkg/volume/flocker/plugin_test.go +++ b/pkg/volume/flocker/plugin_test.go @@ -31,8 +31,8 @@ import ( const pluginName = "kubernetes.io/flocker" -func newInitializedVolumePlugMgr(t *testing.T) (volume.VolumePluginMgr, string) { - plugMgr := volume.VolumePluginMgr{} +func newInitializedVolumePlugMgr(t *testing.T) (*volume.VolumePluginMgr, string) { + plugMgr := &volume.VolumePluginMgr{} dir, err := utiltesting.MkTmpdir("flocker") assert.NoError(t, err) plugMgr.InitPlugins(ProbeVolumePlugins(), volumetest.NewFakeVolumeHost(dir, nil, nil)) diff --git a/test/e2e/example_k8petstore.go b/test/e2e/example_k8petstore.go index 98b2758eff..881479ec1f 100644 --- a/test/e2e/example_k8petstore.go +++ b/test/e2e/example_k8petstore.go @@ -18,7 +18,6 @@ package e2e import ( "fmt" - "log" "os" "os/exec" "path/filepath" @@ -90,13 +89,13 @@ func runK8petstore(restServers int, loadGenerators int, c *client.Client, ns str // Run the k8petstore app, and log / fail if it returns any errors. // This should return quickly, assuming containers are downloaded. if err = cmd.Start(); err != nil { - log.Fatal(err) + Failf("%v", err) } // Make sure there are no command errors. if err = cmd.Wait(); err != nil { if exiterr, ok := err.(*exec.ExitError); ok { if status, ok := exiterr.Sys().(syscall.WaitStatus); ok { - log.Printf("Exit Status: %d", status.ExitStatus()) + Logf("Exit Status: %d", status.ExitStatus()) } } } diff --git a/test/e2e/log_size_monitoring.go b/test/e2e/log_size_monitoring.go index 30de88d2b4..72290b9349 100644 --- a/test/e2e/log_size_monitoring.go +++ b/test/e2e/log_size_monitoring.go @@ -67,7 +67,7 @@ type LogsSizeVerifier struct { client *client.Client stopChannel chan bool // data stores LogSizeData groupped per IP and log_path - data LogsSizeData + data *LogsSizeData masterAddress string nodeAddresses []string wg sync.WaitGroup @@ -117,13 +117,13 @@ type WorkItem struct { backoffMultiplier int } -func prepareData(masterAddress string, nodeAddresses []string) LogsSizeData { +func prepareData(masterAddress string, nodeAddresses []string) *LogsSizeData { data := make(LogSizeDataTimeseries) ips := append(nodeAddresses, masterAddress) for _, ip := range ips { data[ip] = make(map[string][]TimestampedSize) } - return LogsSizeData{ + return &LogsSizeData{ data: data, lock: sync.Mutex{}, } @@ -164,7 +164,7 @@ func NewLogsVerifier(c *client.Client, stopChannel chan bool) *LogsSizeVerifier for i := 0; i < workersNo; i++ { workers[i] = &LogSizeGatherer{ stopChannel: stopChannel, - data: &verifier.data, + data: verifier.data, wg: &verifier.wg, workChannel: workChannel, } diff --git a/test/e2e/util.go b/test/e2e/util.go index 7338c1fb3a..dbdf8b0414 100644 --- a/test/e2e/util.go +++ b/test/e2e/util.go @@ -307,23 +307,23 @@ func nowStamp() string { return time.Now().Format(time.StampMilli) } -func logf(level string, format string, args ...interface{}) { +func log(level string, format string, args ...interface{}) { fmt.Fprintf(GinkgoWriter, nowStamp()+": "+level+": "+format+"\n", args...) } func Logf(format string, args ...interface{}) { - logf("INFO", format, args...) + log("INFO", format, args...) } func Failf(format string, args ...interface{}) { msg := fmt.Sprintf(format, args...) - logf("FAIL", msg) + log("INFO", msg) Fail(nowStamp()+": "+msg, 1) } func Skipf(format string, args ...interface{}) { msg := fmt.Sprintf(format, args...) - logf("SKIP", msg) + log("INFO", msg) Skip(nowStamp() + ": " + msg) } diff --git a/test/images/resource-consumer/resource_consumer_handler.go b/test/images/resource-consumer/resource_consumer_handler.go index 464a27e758..1459d0423f 100644 --- a/test/images/resource-consumer/resource_consumer_handler.go +++ b/test/images/resource-consumer/resource_consumer_handler.go @@ -47,11 +47,11 @@ type ResourceConsumerHandler struct { metricsLock sync.Mutex } -func NewResourceConsumerHandler() ResourceConsumerHandler { - return ResourceConsumerHandler{metrics: map[string]float64{}} +func NewResourceConsumerHandler() *ResourceConsumerHandler { + return &ResourceConsumerHandler{metrics: map[string]float64{}} } -func (handler ResourceConsumerHandler) ServeHTTP(w http.ResponseWriter, req *http.Request) { +func (handler *ResourceConsumerHandler) ServeHTTP(w http.ResponseWriter, req *http.Request) { // handle exposing metrics in Prometheus format (both GET & POST) if req.URL.Path == metricsAddress { handler.handleMetrics(w) @@ -89,7 +89,7 @@ func (handler ResourceConsumerHandler) ServeHTTP(w http.ResponseWriter, req *htt http.Error(w, unknownFunction, http.StatusNotFound) } -func (handler ResourceConsumerHandler) handleConsumeCPU(w http.ResponseWriter, query url.Values) { +func (handler *ResourceConsumerHandler) handleConsumeCPU(w http.ResponseWriter, query url.Values) { // geting string data for consumeCPU durationSecString := query.Get(durationSecQuery) millicoresString := query.Get(millicoresQuery) @@ -112,7 +112,7 @@ func (handler ResourceConsumerHandler) handleConsumeCPU(w http.ResponseWriter, q fmt.Fprintln(w, durationSec, durationSecQuery) } -func (handler ResourceConsumerHandler) handleConsumeMem(w http.ResponseWriter, query url.Values) { +func (handler *ResourceConsumerHandler) handleConsumeMem(w http.ResponseWriter, query url.Values) { // geting string data for consumeMem durationSecString := query.Get(durationSecQuery) megabytesString := query.Get(megabytesQuery) @@ -135,13 +135,13 @@ func (handler ResourceConsumerHandler) handleConsumeMem(w http.ResponseWriter, q fmt.Fprintln(w, durationSec, durationSecQuery) } -func (handler ResourceConsumerHandler) handleGetCurrentStatus(w http.ResponseWriter) { +func (handler *ResourceConsumerHandler) handleGetCurrentStatus(w http.ResponseWriter) { GetCurrentStatus() fmt.Fprintln(w, "Warning: not implemented!") fmt.Fprint(w, getCurrentStatusAddress[1:]) } -func (handler ResourceConsumerHandler) handleMetrics(w http.ResponseWriter) { +func (handler *ResourceConsumerHandler) handleMetrics(w http.ResponseWriter) { handler.metricsLock.Lock() defer handler.metricsLock.Unlock() for k, v := range handler.metrics { @@ -151,7 +151,7 @@ func (handler ResourceConsumerHandler) handleMetrics(w http.ResponseWriter) { } } -func (handler ResourceConsumerHandler) bumpMetric(metric string, delta float64, duration time.Duration) { +func (handler *ResourceConsumerHandler) bumpMetric(metric string, delta float64, duration time.Duration) { handler.metricsLock.Lock() if _, ok := handler.metrics[metric]; ok { handler.metrics[metric] += delta @@ -167,7 +167,7 @@ func (handler ResourceConsumerHandler) bumpMetric(metric string, delta float64, handler.metricsLock.Unlock() } -func (handler ResourceConsumerHandler) handleBumpMetric(w http.ResponseWriter, query url.Values) { +func (handler *ResourceConsumerHandler) handleBumpMetric(w http.ResponseWriter, query url.Values) { // geting string data for handleBumpMetric metric := query.Get(metricNameQuery) deltaString := query.Get(deltaQuery)