Enable staticcheck linter. Disable check for folder /pkg and /test by now.

Signed-off-by: Xun Jiang <blackpiglet@gmail.com>
pull/5788/head
Xun Jiang 2023-01-19 16:39:38 +08:00
parent 71b459dff9
commit 955eec7033
13 changed files with 35 additions and 43 deletions

View File

@ -4,6 +4,8 @@ jobs:
build:
name: Run CI
runs-on: ubuntu-latest
strategy:
fail-fast: false
steps:
- name: Set up Go
uses: actions/setup-go@v2
@ -27,3 +29,7 @@ jobs:
token: ${{ secrets.CODECOV_TOKEN }}
files: coverage.out
verbose: true
- name: Run staticcheck
uses: dominikh/staticcheck-action@v1.3.0
with:
version: "2022.1.3"

View File

@ -0,0 +1 @@
Enable staticcheck linter.

View File

@ -18,7 +18,6 @@ package main
import (
"fmt"
"io/ioutil"
"os"
"path/filepath"
"time"
@ -34,18 +33,16 @@ func main() {
defer ticker.Stop()
for {
select {
case <-ticker.C:
if done() {
fmt.Println("All restic restores are done")
err := removeFolder()
if err != nil {
fmt.Println(err)
} else {
fmt.Println("Done cleanup .velero folder")
}
return
<-ticker.C
if done() {
fmt.Println("All restic restores are done")
err := removeFolder()
if err != nil {
fmt.Println(err)
} else {
fmt.Println("Done cleanup .velero folder")
}
return
}
}
}
@ -54,7 +51,7 @@ func main() {
// within the .velero/ subdirectory whose name is equal to os.Args[1], or
// false otherwise
func done() bool {
children, err := ioutil.ReadDir("/restores")
children, err := os.ReadDir("/restores")
if err != nil {
fmt.Fprintf(os.Stderr, "ERROR reading /restores directory: %s\n", err)
return false
@ -84,7 +81,7 @@ func done() bool {
// remove .velero folder
func removeFolder() error {
children, err := ioutil.ReadDir("/restores")
children, err := os.ReadDir("/restores")
if err != nil {
return err
}

View File

@ -21,7 +21,7 @@ package crds
import (
"bytes"
"compress/gzip"
"io/ioutil"
"io"
apiextinstall "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/install"
apiextv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
@ -53,7 +53,7 @@ func crds() []*apiextv1.CustomResourceDefinition {
if err != nil {
panic(err)
}
bytes, err := ioutil.ReadAll(gzr)
bytes, err := io.ReadAll(gzr)
if err != nil {
panic(err)
}

View File

@ -24,7 +24,6 @@ import (
"compress/gzip"
"fmt"
"io"
"io/ioutil"
"log"
"os"
"text/template"
@ -41,7 +40,7 @@ package crds
import (
"bytes"
"compress/gzip"
"io/ioutil"
"io"
apiextinstall "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/install"
apiextv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
@ -65,7 +64,7 @@ func crds() []*apiextv1.CustomResourceDefinition {
if err != nil {
panic(err)
}
bytes, err := ioutil.ReadAll(gzr)
bytes, err := io.ReadAll(gzr)
if err != nil {
panic(err)
}
@ -87,7 +86,7 @@ type templateData struct {
}
func main() {
headerBytes, err := ioutil.ReadFile(goHeaderFile)
headerBytes, err := os.ReadFile(goHeaderFile)
if err != nil {
log.Fatalln(err)
}
@ -97,7 +96,7 @@ func main() {
}
// This is relative to config/crd/crds
manifests, err := ioutil.ReadDir("../bases")
manifests, err := os.ReadDir("../bases")
if err != nil {
log.Fatalln(err)
}

View File

@ -28,7 +28,7 @@ import (
// minor
// patch
// prerelease (this will be alpha/beta/rc followed by a ".", followed by 1 or more digits (alpha.5)
var release_regex *regexp.Regexp = regexp.MustCompile("^v(?P<major>[[:digit:]]+)\\.(?P<minor>[[:digit:]]+)\\.(?P<patch>[[:digit:]]+)(-{1}(?P<prerelease>(alpha|beta|rc)\\.[[:digit:]]+))*")
var release_regex *regexp.Regexp = regexp.MustCompile(`^v(?P<major>[[:digit:]]+)\.(?P<minor>[[:digit:]]+)\.(?P<patch>[[:digit:]]+)(-{1}(?P<prerelease>(alpha|beta|rc)\.[[:digit:]]+))*`)
// This small program exists because checking the VELERO_VERSION rules in bash is difficult, and difficult to test for correctness.
// Calling it with --verify will verify whether or not the VELERO_VERSION environment variable is a valid version string, without parsing for its components.

View File

@ -22,7 +22,6 @@ import (
"time"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/mock"
"github.com/stretchr/testify/require"
@ -40,15 +39,6 @@ import (
"github.com/vmware-tanzu/velero/pkg/util/collections"
)
type mockItemHookHandler struct {
mock.Mock
}
func (h *mockItemHookHandler) HandleHooks(log logrus.FieldLogger, groupResource schema.GroupResource, obj runtime.Unstructured, resourceHooks []ResourceHook, phase hookPhase) error {
args := h.Called(log, groupResource, obj, resourceHooks, phase)
return args.Error(0)
}
func TestHandleHooksSkips(t *testing.T) {
tests := []struct {
name string

View File

@ -119,7 +119,7 @@ func (e *DefaultWaitExecHookHandler) HandleHooks(
)
if newPod.Status.Phase == v1.PodSucceeded || newPod.Status.Phase == v1.PodFailed {
err := fmt.Errorf("Pod entered phase %s before some post-restore exec hooks ran", newPod.Status.Phase)
err := fmt.Errorf("pod entered phase %s before some post-restore exec hooks ran", newPod.Status.Phase)
podLog.Warning(err)
cancel()
return
@ -155,7 +155,7 @@ func (e *DefaultWaitExecHookHandler) HandleHooks(
)
// Check the individual hook's wait timeout is not expired
if hook.Hook.WaitTimeout.Duration != 0 && time.Since(waitStart) > hook.Hook.WaitTimeout.Duration {
err := fmt.Errorf("Hook %s in container %s expired before executing", hook.HookName, hook.Hook.Container)
err := fmt.Errorf("hook %s in container %s expired before executing", hook.HookName, hook.Hook.Container)
hookLog.Error(err)
if hook.Hook.OnError == velerov1api.HookErrorModeFail {
errors = append(errors, err)
@ -194,7 +194,7 @@ func (e *DefaultWaitExecHookHandler) HandleHooks(
handler(newObj)
},
DeleteFunc: func(obj interface{}) {
err := fmt.Errorf("Pod %s deleted before all hooks were executed", kube.NamespaceAndName(pod))
err := fmt.Errorf("pod %s deleted before all hooks were executed", kube.NamespaceAndName(pod))
log.Error(err)
cancel()
},
@ -212,7 +212,7 @@ func (e *DefaultWaitExecHookHandler) HandleHooks(
if hook.executed {
continue
}
err := fmt.Errorf("Hook %s in container %s in pod %s not executed: %v", hook.HookName, hook.Hook.Container, kube.NamespaceAndName(pod), ctx.Err())
err := fmt.Errorf("hook %s in container %s in pod %s not executed: %v", hook.HookName, hook.Hook.Container, kube.NamespaceAndName(pod), ctx.Err())
hookLog := log.WithFields(
logrus.Fields{
"hookSource": hook.HookSource,

View File

@ -465,7 +465,7 @@ func TestWaitExecHandleHooks(t *testing.T) {
},
}).
Result(),
expectedErrors: []error{errors.New("Hook my-hook-1 in container container1 in pod default/my-pod not executed: context deadline exceeded")},
expectedErrors: []error{errors.New("hook my-hook-1 in container container1 in pod default/my-pod not executed: context deadline exceeded")},
byContainer: map[string][]PodExecRestoreHook{
"container1": {
{
@ -496,7 +496,7 @@ func TestWaitExecHandleHooks(t *testing.T) {
},
}).
Result(),
expectedErrors: []error{errors.New("Hook my-hook-1 in container container1 in pod default/my-pod not executed: context deadline exceeded")},
expectedErrors: []error{errors.New("hook my-hook-1 in container container1 in pod default/my-pod not executed: context deadline exceeded")},
byContainer: map[string][]PodExecRestoreHook{
"container1": {
{

View File

@ -71,10 +71,7 @@ func IsReadyToValidate(bslValidationFrequency *metav1.Duration, lastValidationTi
// We want to validate BSL only if the set validation frequency/ interval has elapsed.
nextValidation := lastValidation.Add(validationFrequency) // next validation time: last validation time + validation frequency
if time.Now().UTC().Before(nextValidation) { // ready only when NOW is equal to or after the next validation time
return false
}
return true
return !time.Now().UTC().Before(nextValidation) // ready only when NOW is equal to or after the next validation time
}
// ListBackupStorageLocations verifies if there are any backup storage locations.

View File

@ -163,7 +163,7 @@ func TestListBackupStorageLocations(t *testing.T) {
t.Run(tt.name, func(t *testing.T) {
g := NewWithT(t)
client := fake.NewFakeClientWithScheme(scheme.Scheme, tt.backupLocations)
client := fake.NewClientBuilder().WithScheme(scheme.Scheme).WithRuntimeObjects(tt.backupLocations).Build()
if tt.expectError {
_, err := ListBackupStorageLocations(context.Background(), client, "ns-1")
g.Expect(err).NotTo(BeNil())

1
pkg/staticcheck.conf Normal file
View File

@ -0,0 +1 @@
checks = []

1
test/staticcheck.conf Normal file
View File

@ -0,0 +1 @@
checks = []