From d64d427ec847874911cc6fd2f22a5d2d5f5c99e4 Mon Sep 17 00:00:00 2001 From: Sargun Dhillon Date: Thu, 3 Dec 2020 11:33:06 -0800 Subject: [PATCH] Enable all linters by default This removes the directive from .golangci.yml to disable all linters, and fixes the relevant bugs / issues that are exposed. --- .golangci.yml | 1 - .../internal/commands/providers/provider.go | 1 - .../commands/root/tracing_register_jaeger.go | 2 +- .../internal/provider/mock/mock.go | 4 +-- internal/podutils/env.go | 4 +-- node/node_test.go | 25 ++++++------------- node/podcontroller.go | 1 - trace/opencensus/opencensus_test.go | 9 ++----- 8 files changed, 14 insertions(+), 33 deletions(-) diff --git a/.golangci.yml b/.golangci.yml index 82b300ef4..ba85f7f08 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -3,7 +3,6 @@ linter-settings: line-length: 200 linters: - disable-all: true enable: - errcheck - govet diff --git a/cmd/virtual-kubelet/internal/commands/providers/provider.go b/cmd/virtual-kubelet/internal/commands/providers/provider.go index f9d1df3f5..084e319ab 100644 --- a/cmd/virtual-kubelet/internal/commands/providers/provider.go +++ b/cmd/virtual-kubelet/internal/commands/providers/provider.go @@ -47,7 +47,6 @@ func NewCommand(s *provider.Store) *cobra.Command { } fmt.Fprintln(cmd.OutOrStdout(), args[0]) } - return }, } } diff --git a/cmd/virtual-kubelet/internal/commands/root/tracing_register_jaeger.go b/cmd/virtual-kubelet/internal/commands/root/tracing_register_jaeger.go index c0636e263..f23b56f34 100644 --- a/cmd/virtual-kubelet/internal/commands/root/tracing_register_jaeger.go +++ b/cmd/virtual-kubelet/internal/commands/root/tracing_register_jaeger.go @@ -40,7 +40,7 @@ func NewJaegerExporter(opts TracingExporterOptions) (trace.Exporter, error) { }, } - if jOpts.Endpoint == "" && jOpts.AgentEndpoint == "" { + if jOpts.Endpoint == "" && jOpts.AgentEndpoint == "" { // nolint:staticcheck return nil, errors.New("Must specify either JAEGER_ENDPOINT or JAEGER_AGENT_ENDPOINT") } diff --git a/cmd/virtual-kubelet/internal/provider/mock/mock.go b/cmd/virtual-kubelet/internal/provider/mock/mock.go index 50faaff1a..5ed05434d 100644 --- a/cmd/virtual-kubelet/internal/provider/mock/mock.go +++ b/cmd/virtual-kubelet/internal/provider/mock/mock.go @@ -329,7 +329,7 @@ func (p *MockProvider) GetPods(ctx context.Context) ([]*v1.Pod, error) { } func (p *MockProvider) ConfigureNode(ctx context.Context, n *v1.Node) { - ctx, span := trace.StartSpan(ctx, "mock.ConfigureNode") //nolint:ineffassign + ctx, span := trace.StartSpan(ctx, "mock.ConfigureNode") // nolint:staticcheck,ineffassign defer span.End() n.Status.Capacity = p.capacity() @@ -429,7 +429,7 @@ func (p *MockProvider) nodeDaemonEndpoints() v1.NodeDaemonEndpoints { // GetStatsSummary returns dummy stats for all pods known by this provider. func (p *MockProvider) GetStatsSummary(ctx context.Context) (*stats.Summary, error) { var span trace.Span - ctx, span = trace.StartSpan(ctx, "GetStatsSummary") //nolint: ineffassign + ctx, span = trace.StartSpan(ctx, "GetStatsSummary") //nolint: ineffassign,staticcheck defer span.End() // Grab the current timestamp so we can report it as the time the stats were generated. diff --git a/internal/podutils/env.go b/internal/podutils/env.go index 55a6bcb4e..7cc8bbe49 100755 --- a/internal/podutils/env.go +++ b/internal/podutils/env.go @@ -108,7 +108,7 @@ func populateContainerEnvironment(ctx context.Context, pod *corev1.Pod, containe // https://github.com/kubernetes/kubernetes/blob/v1.13.1/pkg/kubelet/kubelet_pods.go#L557-L558 container.EnvFrom = []corev1.EnvFromSource{} - res := make([]corev1.EnvVar, 0) + res := make([]corev1.EnvVar, 0, len(tmpEnv)) for key, val := range tmpEnv { res = append(res, corev1.EnvVar{ @@ -171,7 +171,7 @@ func getServiceEnvVarMap(rm *manager.ResourceManager, ns string, enableServiceLi // makeEnvironmentMapBasedOnEnvFrom returns a map representing the resolved environment of the specified container after being populated from the entries in the ".envFrom" field. func makeEnvironmentMapBasedOnEnvFrom(ctx context.Context, pod *corev1.Pod, container *corev1.Container, rm *manager.ResourceManager, recorder record.EventRecorder) (map[string]string, error) { // Create a map to hold the resulting environment. - res := make(map[string]string, 0) + res := make(map[string]string) // Iterate over "envFrom" references in order to populate the environment. loop: for _, envFrom := range container.EnvFrom { diff --git a/node/node_test.go b/node/node_test.go index 8014777a0..aad5f91c4 100644 --- a/node/node_test.go +++ b/node/node_test.go @@ -250,13 +250,13 @@ func TestUpdateNodeStatus(t *testing.T) { nodes := testclient.NewSimpleClientset().CoreV1().Nodes() ctx := context.Background() - updated, err := updateNodeStatus(ctx, nodes, n.DeepCopy()) + _, err := updateNodeStatus(ctx, nodes, n.DeepCopy()) assert.Equal(t, errors.IsNotFound(err), true, err) _, err = nodes.Create(ctx, n, metav1.CreateOptions{}) assert.NilError(t, err) - updated, err = updateNodeStatus(ctx, nodes, n.DeepCopy()) + updated, err := updateNodeStatus(ctx, nodes, n.DeepCopy()) assert.NilError(t, err) assert.NilError(t, err) @@ -382,16 +382,11 @@ func TestPingAfterStatusUpdate(t *testing.T) { } notifyTimer := time.After(interval * time.Duration(10)) - select { - case <-notifyTimer: - testP.triggerStatusUpdate(testNodeCopy) - } + <-notifyTimer + testP.triggerStatusUpdate(testNodeCopy) endTimer := time.After(interval * time.Duration(10)) - select { - case <-endTimer: - break - } + <-endTimer testP.maxPingIntervalLock.Lock() defer testP.maxPingIntervalLock.Unlock() @@ -445,10 +440,7 @@ func TestBeforeAnnotationsPreserved(t *testing.T) { t.Log("Waiting for node to exist") assert.NilError(t, <-waitForEvent(ctx, nr, func(e watch.Event) bool { - if e.Object == nil { - return false - } - return true + return e.Object != nil })) testP.notifyNodeStatus(&corev1.Node{ @@ -519,10 +511,7 @@ func TestManualConditionsPreserved(t *testing.T) { return false } receivedNode := e.Object.(*corev1.Node) - if len(receivedNode.Status.Conditions) != 0 { - return false - } - return true + return len(receivedNode.Status.Conditions) == 0 })) newNode, err := nodes.Get(ctx, testNodeCopy.Name, emptyGetOptions) diff --git a/node/podcontroller.go b/node/podcontroller.go index ca03c57cb..79890eb75 100644 --- a/node/podcontroller.go +++ b/node/podcontroller.go @@ -629,7 +629,6 @@ func (pc *PodController) deleteDanglingPods(ctx context.Context, threadiness int // Wait for all pods to be deleted. wg.Wait() - return } // loggablePodName returns the "namespace/name" key for the specified pod. diff --git a/trace/opencensus/opencensus_test.go b/trace/opencensus/opencensus_test.go index 6a62156e2..e976bfb6f 100644 --- a/trace/opencensus/opencensus_test.go +++ b/trace/opencensus/opencensus_test.go @@ -15,13 +15,8 @@ package opencensus import ( - "testing" - "github.com/virtual-kubelet/virtual-kubelet/trace" ) -func TestTracerImplementsTracer(t *testing.T) { - // ensure that Adapter implements trace.Tracer - if tt := trace.Tracer(Adapter{}); tt == nil { - } -} +// ensure that Adapter implements trace.Tracer +var _ trace.Tracer = (*Adapter)(nil)