From 93ae8a9099ad68ecf1c112a7ef7d28fa600a08bb Mon Sep 17 00:00:00 2001 From: roy wang Date: Thu, 28 Jan 2021 17:43:45 +0900 Subject: [PATCH] fix staticcheck issues add staticcheck CI action add staticcheck in Makefile Signed-off-by: roywang --- .github/workflows/go.yml | 21 +++++++++++++++++- Makefile | 22 ++++++++++++++++--- .../v1alpha1/autoscaler_types.go | 5 ++--- go.sum | 2 -- pkg/appfile/addon.go | 2 +- pkg/appfile/addon_suit_test.go | 2 +- pkg/appfile/addon_test.go | 2 +- pkg/appfile/api/appfile_test.go | 9 ++++---- pkg/appfile/driver/local.go | 2 +- pkg/appfile/driver/local_test.go | 2 +- pkg/appfile/parser_test.go | 9 ++++---- pkg/builtin/registry/registry.go | 1 + pkg/builtin/registry/registry_runner.go | 2 +- pkg/commands/exec.go | 3 +-- pkg/commands/logs.go | 5 ++--- pkg/commands/portforward.go | 7 +++--- pkg/commands/up_test.go | 8 ++----- pkg/commands/util/init.go | 3 +-- pkg/commands/util/init_test.go | 2 ++ .../applicationconfiguration.go | 13 +++++------ .../component_test.go | 9 ++++---- .../applicationconfiguration/render_test.go | 3 +-- .../applicationdeployment/suite_test.go | 2 +- .../core/scopes/healthscope/healthscope.go | 9 ++++---- .../healthscope_controller_test.go | 15 ++++++------- .../autoscaler/autoscaler_controller.go | 7 +++--- .../v1alpha1/autoscaler/suite_test.go | 2 +- .../v1alpha1/podspecworkload/suite_test.go | 2 +- .../v1alpha1/routes/route_controller.go | 7 +++--- pkg/oam/mock/mapper.go | 8 +++---- pkg/oam/util/test_utils.go | 10 ++++----- pkg/plugins/cluster.go | 5 ++--- pkg/plugins/suit_test.go | 2 +- pkg/server/appHandlers.go | 3 +-- pkg/server/util/errors.go | 4 ++-- pkg/serverlib/application.go | 11 +++++----- pkg/serverlib/definition_test.go | 3 +++ pkg/serverlib/workload.go | 3 +-- pkg/utils/apply/apply_suite_test.go | 1 - .../v1alpha2/application/suite_test.go | 2 +- .../validating_handler.go | 2 +- staticcheck.conf | 8 +++++++ test/e2e-test/component_version_test.go | 11 +++++----- 43 files changed, 136 insertions(+), 115 deletions(-) create mode 100644 staticcheck.conf diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index 8b0409b9b..c2e7c192b 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -114,6 +114,25 @@ jobs: - name: Run e2e tests run: make e2e-test + staticcheck: + runs-on: ubuntu-20.04 + + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + submodules: true + + - name: Cache Go Dependencies + uses: actions/cache@v2 + with: + path: .work/pkg + key: ${{ runner.os }}-pkg-${{ hashFiles('**/go.sum') }} + restore-keys: ${{ runner.os }}-pkg- + + - name: Static Check + run: go run honnef.co/go/tools/cmd/staticcheck -- ./... + lint: runs-on: ubuntu-20.04 @@ -164,4 +183,4 @@ jobs: run: go install golang.org/x/tools/cmd/goimports && make fmt - name: Check Diff - run: make check-diff \ No newline at end of file + run: make check-diff diff --git a/Makefile b/Makefile index 0dec394bf..2089e4681 100644 --- a/Makefile +++ b/Makefile @@ -37,12 +37,12 @@ endif all: build # Run tests -test: vet lint +test: vet lint staticcheck go test -race -coverprofile=coverage.txt -covermode=atomic ./pkg/... ./cmd/... @$(OK) unit-tests pass # Build manager binary -build: fmt vet lint +build: fmt vet lint staticcheck go run hack/chart/generate.go go build -o bin/vela -ldflags ${LDFLAGS} cmd/vela/main.go git checkout cmd/vela/fake/chart_source.go @@ -102,10 +102,13 @@ fmt: goimports installcue vet: go vet ./... +staticcheck: staticchecktool + $(STATICCHECK) ./... + lint: golangci $(GOLANGCILINT) run ./... -reviewable: manifests fmt vet lint +reviewable: manifests fmt vet lint staticcheck go mod tidy # Execute auto-gen code commands and ensure branch is clean. @@ -206,6 +209,19 @@ else GOLANGCILINT=$(shell which golangci-lint) endif +.PHONY: staticchecktool +staticchecktool: +ifeq (, $(shell which staticcheck)) + @{ \ + set -e ;\ + echo 'installing honnef.co/go/tools/cmd/staticcheck ' ;\ + GO111MODULE=off go get honnef.co/go/tools/cmd/staticcheck ;\ + } +STATICCHECK=$(GOBIN)/staticcheck +else +STATICCHECK=$(shell which staticcheck) +endif + .PHONY: goimports goimports: ifeq (, $(shell which goimports)) diff --git a/apis/standard.oam.dev/v1alpha1/autoscaler_types.go b/apis/standard.oam.dev/v1alpha1/autoscaler_types.go index 5bce6a9d2..3779c98b6 100644 --- a/apis/standard.oam.dev/v1alpha1/autoscaler_types.go +++ b/apis/standard.oam.dev/v1alpha1/autoscaler_types.go @@ -18,7 +18,6 @@ package v1alpha1 import ( "github.com/crossplane/crossplane-runtime/apis/core/v1alpha1" - runtimev1alpha1 "github.com/crossplane/crossplane-runtime/apis/core/v1alpha1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) @@ -91,7 +90,7 @@ type AutoscalerSpec struct { TargetWorkload TargetWorkload `json:"targetWorkload,omitempty"` // WorkloadReference marks the owner of the workload - WorkloadReference runtimev1alpha1.TypedReference `json:"workloadRef,omitempty"` + WorkloadReference v1alpha1.TypedReference `json:"workloadRef,omitempty"` } // TargetWorkload holds the a reference to the scale target Object @@ -105,7 +104,7 @@ type TargetWorkload struct { // AutoscalerStatus defines the observed state of Autoscaler type AutoscalerStatus struct { - runtimev1alpha1.ConditionedStatus `json:",inline"` + v1alpha1.ConditionedStatus `json:",inline"` } // +kubebuilder:object:root=true diff --git a/go.sum b/go.sum index 80a2c3007..ddcb41f69 100644 --- a/go.sum +++ b/go.sum @@ -2135,8 +2135,6 @@ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9 h1:SQFwaSi55rU7vdNs9Yr0Z324VNlrF+0wMqRXT4St8ck= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20200826173525-f9321e4c35a6 h1:DvY3Zkh7KabQE/kfzMvYvKirSiguP9Q/veMtkYyf0o8= -golang.org/x/sys v0.0.0-20200826173525-f9321e4c35a6 h1:DvY3Zkh7KabQE/kfzMvYvKirSiguP9Q/veMtkYyf0o8= -golang.org/x/sys v0.0.0-20200826173525-f9321e4c35a6/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200826173525-f9321e4c35a6/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 h1:v+OssWQX+hTHEmOBgwxdZxK4zHq3yOs8F9J7mk0PY8E= diff --git a/pkg/appfile/addon.go b/pkg/appfile/addon.go index 66aa92d90..b53e4f061 100644 --- a/pkg/appfile/addon.go +++ b/pkg/appfile/addon.go @@ -125,7 +125,7 @@ func generateSecretFromTerraformOutput(k8sClient client.Client, outputList []str for _, i := range outputList { line := strings.Split(i, "=") if len(line) != 2 { - return fmt.Errorf("Terraform output isn't in the right format") + return fmt.Errorf("terraform output isn't in the right format") } k := strings.TrimSpace(line[0]) v := strings.TrimSpace(line[1]) diff --git a/pkg/appfile/addon_suit_test.go b/pkg/appfile/addon_suit_test.go index 5e17ad08e..d57acf6f2 100644 --- a/pkg/appfile/addon_suit_test.go +++ b/pkg/appfile/addon_suit_test.go @@ -45,7 +45,7 @@ func TestAppFile(t *testing.T) { } var _ = BeforeSuite(func(done Done) { - logf.SetLogger(zap.LoggerTo(GinkgoWriter, true)) + logf.SetLogger(zap.New(zap.UseDevMode(true), zap.WriteTo(GinkgoWriter))) ctx := context.Background() By("bootstrapping test environment") useExistCluster := false diff --git a/pkg/appfile/addon_test.go b/pkg/appfile/addon_test.go index 68cc60aa2..c9c3e5dc0 100644 --- a/pkg/appfile/addon_test.go +++ b/pkg/appfile/addon_test.go @@ -46,6 +46,6 @@ var _ = Describe("Test generateSecretFromTerraformOutput", func() { It("invalid output list", func() { outputList := []string{"name"} err := generateSecretFromTerraformOutput(k8sClient, outputList, name, addonNamespace) - Expect(err).Should(Equal(fmt.Errorf("Terraform output isn't in the right format"))) + Expect(err).Should(Equal(fmt.Errorf("terraform output isn't in the right format"))) }) }) diff --git a/pkg/appfile/api/appfile_test.go b/pkg/appfile/api/appfile_test.go index fcc4146d6..5e81582ee 100644 --- a/pkg/appfile/api/appfile_test.go +++ b/pkg/appfile/api/appfile_test.go @@ -9,7 +9,6 @@ import ( "github.com/stretchr/testify/assert" v12 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "github.com/oam-dev/kubevela/apis/core.oam.dev/v1alpha2" @@ -51,10 +50,10 @@ func TestBuildOAMApplication2(t *testing.T) { }, }, expectApp: &v1alpha2.Application{ - TypeMeta: v1.TypeMeta{ + TypeMeta: metav1.TypeMeta{ Kind: "Application", APIVersion: "core.oam.dev/v1alpha2", - }, ObjectMeta: v1.ObjectMeta{ + }, ObjectMeta: metav1.ObjectMeta{ Name: "test", }, Spec: v1alpha2.ApplicationSpec{ @@ -85,10 +84,10 @@ func TestBuildOAMApplication2(t *testing.T) { }, }, expectApp: &v1alpha2.Application{ - TypeMeta: v1.TypeMeta{ + TypeMeta: metav1.TypeMeta{ Kind: "Application", APIVersion: "core.oam.dev/v1alpha2", - }, ObjectMeta: v1.ObjectMeta{ + }, ObjectMeta: metav1.ObjectMeta{ Name: "test", }, Spec: v1alpha2.ApplicationSpec{ diff --git a/pkg/appfile/driver/local.go b/pkg/appfile/driver/local.go index b4a81f726..727328033 100644 --- a/pkg/appfile/driver/local.go +++ b/pkg/appfile/driver/local.go @@ -110,7 +110,7 @@ func getApplicationDir(envName string) (string, error) { appDir := filepath.Join(env.GetEnvDirByName(envName), "applications") _, err := system.CreateIfNotExist(appDir) if err != nil { - err = fmt.Errorf("Getting application directory from env %s failed, error: %w ", envName, err) + err = fmt.Errorf("getting application directory from env %s failed, error: %w ", envName, err) } return appDir, err } diff --git a/pkg/appfile/driver/local_test.go b/pkg/appfile/driver/local_test.go index 3d509961e..ae9c97a9f 100644 --- a/pkg/appfile/driver/local_test.go +++ b/pkg/appfile/driver/local_test.go @@ -24,7 +24,7 @@ func init() { tm, _ = template.Load() afile = api.NewAppFile() afile.Name = appName - svcs := make(map[string]api.Service, 0) + svcs := make(map[string]api.Service) svcs["wordpress"] = map[string]interface{}{ "type": "webservice", "image": "wordpress:php7.4-apache", diff --git a/pkg/appfile/parser_test.go b/pkg/appfile/parser_test.go index 2e9a13fb5..95f70b70d 100644 --- a/pkg/appfile/parser_test.go +++ b/pkg/appfile/parser_test.go @@ -30,7 +30,6 @@ import ( "github.com/stretchr/testify/assert" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" @@ -372,10 +371,10 @@ var _ = Describe("Test appFile parser", func() { ac, components, err := NewApplicationParser(k8sClient, nil).GenerateApplicationConfiguration(TestApp, "default") Expect(err).To(BeNil()) expectAppConfig := &v1alpha2.ApplicationConfiguration{ - TypeMeta: v1.TypeMeta{ + TypeMeta: metav1.TypeMeta{ Kind: "ApplicationConfiguration", APIVersion: "core.oam.dev/v1alpha2", - }, ObjectMeta: v1.ObjectMeta{ + }, ObjectMeta: metav1.ObjectMeta{ Name: "test", Namespace: "default", Labels: map[string]string{"application.oam.dev": "test"}, @@ -417,10 +416,10 @@ var _ = Describe("Test appFile parser", func() { Expect(ac).To(BeEquivalentTo(expectAppConfig)) expectComponent := &v1alpha2.Component{ - TypeMeta: v1.TypeMeta{ + TypeMeta: metav1.TypeMeta{ Kind: "Component", APIVersion: "core.oam.dev/v1alpha2", - }, ObjectMeta: v1.ObjectMeta{ + }, ObjectMeta: metav1.ObjectMeta{ Name: "myweb", Namespace: "default", Labels: map[string]string{"application.oam.dev": "test"}, diff --git a/pkg/builtin/registry/registry.go b/pkg/builtin/registry/registry.go index 2cde9d4bd..4228b21dc 100644 --- a/pkg/builtin/registry/registry.go +++ b/pkg/builtin/registry/registry.go @@ -84,6 +84,7 @@ func newCallCtx(io util.IOStreams, data map[string]interface{}) CallCtx { } } +// Run executes tasks // Deprecated: Run is deprecated, you should use DoTasks is builtin package, it will automatically register all internal functions func Run(spec map[string]interface{}, io util.IOStreams) (map[string]interface{}, error) { var ( diff --git a/pkg/builtin/registry/registry_runner.go b/pkg/builtin/registry/registry_runner.go index d7d887a4b..36777be2b 100644 --- a/pkg/builtin/registry/registry_runner.go +++ b/pkg/builtin/registry/registry_runner.go @@ -20,7 +20,7 @@ type Meta struct { Err error } -// LookupRunner fetch the value of context by filed +// Lookup fetches the value of context by filed func (m *Meta) Lookup(field string) cue.Value { f := m.Obj.Lookup(field) if !f.Exists() { diff --git a/pkg/commands/exec.go b/pkg/commands/exec.go index ae03a2970..05e06c6a6 100644 --- a/pkg/commands/exec.go +++ b/pkg/commands/exec.go @@ -18,7 +18,6 @@ import ( "github.com/oam-dev/kubevela/pkg/appfile" "github.com/oam-dev/kubevela/pkg/appfile/api" "github.com/oam-dev/kubevela/pkg/commands/util" - velacmdutil "github.com/oam-dev/kubevela/pkg/commands/util" "github.com/oam-dev/kubevela/pkg/oam" ) @@ -48,7 +47,7 @@ type VelaExecOptions struct { } // NewExecCommand creates `exec` command -func NewExecCommand(c types.Args, ioStreams velacmdutil.IOStreams) *cobra.Command { +func NewExecCommand(c types.Args, ioStreams util.IOStreams) *cobra.Command { o := &VelaExecOptions{ kcExecOptions: &cmdexec.ExecOptions{ StreamOptions: cmdexec.StreamOptions{ diff --git a/pkg/commands/logs.go b/pkg/commands/logs.go index b7845f001..642b59e0c 100644 --- a/pkg/commands/logs.go +++ b/pkg/commands/logs.go @@ -19,11 +19,10 @@ import ( "github.com/oam-dev/kubevela/pkg/appfile" "github.com/oam-dev/kubevela/pkg/appfile/api" "github.com/oam-dev/kubevela/pkg/commands/util" - cmdutil "github.com/oam-dev/kubevela/pkg/commands/util" ) // NewLogsCommand creates `logs` command to tail logs of application -func NewLogsCommand(c types.Args, ioStreams cmdutil.IOStreams) *cobra.Command { +func NewLogsCommand(c types.Args, ioStreams util.IOStreams) *cobra.Command { largs := &Args{C: c} cmd := &cobra.Command{} cmd.Use = "logs" @@ -73,7 +72,7 @@ type Args struct { } // Run refer to the implementation at https://github.com/oam-dev/stern/blob/master/stern/main.go -func (l *Args) Run(ctx context.Context, ioStreams cmdutil.IOStreams) error { +func (l *Args) Run(ctx context.Context, ioStreams util.IOStreams) error { clientSet, err := kubernetes.NewForConfig(l.C.Config) if err != nil { diff --git a/pkg/commands/portforward.go b/pkg/commands/portforward.go index 14d3608df..52ca383cc 100644 --- a/pkg/commands/portforward.go +++ b/pkg/commands/portforward.go @@ -27,7 +27,6 @@ import ( "github.com/oam-dev/kubevela/pkg/appfile" "github.com/oam-dev/kubevela/pkg/appfile/api" "github.com/oam-dev/kubevela/pkg/commands/util" - velacmdutil "github.com/oam-dev/kubevela/pkg/commands/util" "github.com/oam-dev/kubevela/pkg/oam" ) @@ -35,7 +34,7 @@ import ( type VelaPortForwardOptions struct { Cmd *cobra.Command Args []string - ioStreams velacmdutil.IOStreams + ioStreams util.IOStreams context.Context VelaC types.Args @@ -50,7 +49,7 @@ type VelaPortForwardOptions struct { } // NewPortForwardCommand is vela port-forward command -func NewPortForwardCommand(c types.Args, ioStreams velacmdutil.IOStreams) *cobra.Command { +func NewPortForwardCommand(c types.Args, ioStreams util.IOStreams) *cobra.Command { o := &VelaPortForwardOptions{ ioStreams: ioStreams, kcPortForwardOptions: &cmdpf.PortForwardOptions{ @@ -268,7 +267,7 @@ func splitPort(port string) (local, remote string) { } type defaultPortForwarder struct { - velacmdutil.IOStreams + util.IOStreams } func (f *defaultPortForwarder) ForwardPorts(method string, url *url.URL, opts cmdpf.PortForwardOptions) error { diff --git a/pkg/commands/up_test.go b/pkg/commands/up_test.go index b7970b34a..54f379553 100644 --- a/pkg/commands/up_test.go +++ b/pkg/commands/up_test.go @@ -7,8 +7,6 @@ import ( "github.com/spf13/cobra" "github.com/stretchr/testify/assert" - "k8s.io/client-go/kubernetes/scheme" - "sigs.k8s.io/controller-runtime/pkg/client/fake" "github.com/oam-dev/kubevela/apis/core.oam.dev/v1alpha2" "github.com/oam-dev/kubevela/apis/types" @@ -17,7 +15,6 @@ import ( ) func TestUp(t *testing.T) { - client := fake.NewFakeClientWithScheme(scheme.Scheme) ioStream := util.IOStreams{In: os.Stdin, Out: os.Stdout, ErrOut: os.Stderr} env := types.EnvMeta{ Name: "up", @@ -25,9 +22,8 @@ func TestUp(t *testing.T) { Issuer: "up", } o := serverlib.AppfileOptions{ - Kubecli: client, - IO: ioStream, - Env: &env, + IO: ioStream, + Env: &env, } app := &v1alpha2.Application{} app.Name = "app-up" diff --git a/pkg/commands/util/init.go b/pkg/commands/util/init.go index 8f307d88c..88ac29a91 100644 --- a/pkg/commands/util/init.go +++ b/pkg/commands/util/init.go @@ -4,7 +4,6 @@ import ( "context" corev1 "k8s.io/api/core/v1" - v1 "k8s.io/api/core/v1" "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions" "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,7 +26,7 @@ func DoesNamespaceExist(c client.Client, namespace string) (bool, error) { // NewNamespace create namespace func NewNamespace(c client.Client, namespace string) error { - ns := &v1.Namespace{ObjectMeta: metav1.ObjectMeta{Name: namespace, + ns := &corev1.Namespace{ObjectMeta: metav1.ObjectMeta{Name: namespace, // marking a special label for prometheus monitoring. Labels: OAMLabel}} err := c.Create(context.Background(), ns) diff --git a/pkg/commands/util/init_test.go b/pkg/commands/util/init_test.go index 9088797af..9294784b7 100644 --- a/pkg/commands/util/init_test.go +++ b/pkg/commands/util/init_test.go @@ -11,6 +11,8 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "sigs.k8s.io/controller-runtime/pkg/client" + + //lint:ignore SA1019 We will use pkg/envtest before upgrading controller-runtime to v1.0.0 "sigs.k8s.io/controller-runtime/pkg/client/fake" ) diff --git a/pkg/controller/core.oam.dev/v1alpha2/applicationconfiguration/applicationconfiguration.go b/pkg/controller/core.oam.dev/v1alpha2/applicationconfiguration/applicationconfiguration.go index 1e0639a35..14a9e9e2f 100644 --- a/pkg/controller/core.oam.dev/v1alpha2/applicationconfiguration/applicationconfiguration.go +++ b/pkg/controller/core.oam.dev/v1alpha2/applicationconfiguration/applicationconfiguration.go @@ -33,7 +33,6 @@ import ( "sigs.k8s.io/controller-runtime/pkg/source" "github.com/crossplane/crossplane-runtime/apis/core/v1alpha1" - runtimev1alpha1 "github.com/crossplane/crossplane-runtime/apis/core/v1alpha1" "github.com/crossplane/crossplane-runtime/pkg/event" "github.com/crossplane/crossplane-runtime/pkg/logging" "github.com/crossplane/crossplane-runtime/pkg/meta" @@ -473,7 +472,7 @@ func (w Workload) Status() v1alpha2.WorkloadStatus { acw := v1alpha2.WorkloadStatus{ ComponentName: w.ComponentName, ComponentRevisionName: w.ComponentRevisionName, - Reference: runtimev1alpha1.TypedReference{ + Reference: v1alpha1.TypedReference{ APIVersion: w.Workload.GetAPIVersion(), Kind: w.Workload.GetKind(), Name: w.Workload.GetName(), @@ -485,14 +484,14 @@ func (w Workload) Status() v1alpha2.WorkloadStatus { if tr.Definition.Name == util.Dummy && tr.Definition.Spec.Reference.Name == util.Dummy { acw.Traits[i].Message = util.DummyTraitMessage } - acw.Traits[i].Reference = runtimev1alpha1.TypedReference{ + acw.Traits[i].Reference = v1alpha1.TypedReference{ APIVersion: w.Traits[i].Object.GetAPIVersion(), Kind: w.Traits[i].Object.GetKind(), Name: w.Traits[i].Object.GetName(), } } for i, s := range w.Scopes { - acw.Scopes[i].Reference = runtimev1alpha1.TypedReference{ + acw.Scopes[i].Reference = v1alpha1.TypedReference{ APIVersion: s.GetAPIVersion(), Kind: s.GetKind(), Name: s.GetName(), @@ -523,16 +522,16 @@ func IsRevisionWorkload(status v1alpha2.WorkloadStatus) bool { } func eligible(namespace string, ws []v1alpha2.WorkloadStatus, w []Workload) []unstructured.Unstructured { - applied := make(map[runtimev1alpha1.TypedReference]bool) + applied := make(map[v1alpha1.TypedReference]bool) for _, wl := range w { - r := runtimev1alpha1.TypedReference{ + r := v1alpha1.TypedReference{ APIVersion: wl.Workload.GetAPIVersion(), Kind: wl.Workload.GetKind(), Name: wl.Workload.GetName(), } applied[r] = true for _, t := range wl.Traits { - r := runtimev1alpha1.TypedReference{ + r := v1alpha1.TypedReference{ APIVersion: t.Object.GetAPIVersion(), Kind: t.Object.GetKind(), Name: t.Object.GetName(), diff --git a/pkg/controller/core.oam.dev/v1alpha2/applicationconfiguration/component_test.go b/pkg/controller/core.oam.dev/v1alpha2/applicationconfiguration/component_test.go index e12ebd9d6..d26ae6dd0 100644 --- a/pkg/controller/core.oam.dev/v1alpha2/applicationconfiguration/component_test.go +++ b/pkg/controller/core.oam.dev/v1alpha2/applicationconfiguration/component_test.go @@ -10,7 +10,6 @@ import ( "github.com/crossplane/crossplane-runtime/pkg/test" "github.com/stretchr/testify/assert" appsv1 "k8s.io/api/apps/v1" - v1 "k8s.io/api/apps/v1" v12 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" @@ -112,7 +111,7 @@ func TestComponentHandler(t *testing.T) { } comp := &v1alpha2.Component{ ObjectMeta: metav1.ObjectMeta{Namespace: "biz", Name: "comp1", Generation: 1}, - Spec: v1alpha2.ComponentSpec{Workload: runtime.RawExtension{Object: &v1.Deployment{Spec: v1.DeploymentSpec{Template: v12.PodTemplateSpec{Spec: v12.PodSpec{Containers: []v12.Container{{Image: "nginx:v1"}}}}}}}}, + Spec: v1alpha2.ComponentSpec{Workload: runtime.RawExtension{Object: &appsv1.Deployment{Spec: appsv1.DeploymentSpec{Template: v12.PodTemplateSpec{Spec: v12.PodSpec{Containers: []v12.Container{{Image: "nginx:v1"}}}}}}}}, } // ============ Test Create Event Start =================== @@ -148,7 +147,7 @@ func TestComponentHandler(t *testing.T) { comp2 := &v1alpha2.Component{ ObjectMeta: metav1.ObjectMeta{Namespace: "biz", Name: "comp1"}, // change image - Spec: v1alpha2.ComponentSpec{Workload: runtime.RawExtension{Object: &v1.Deployment{Spec: v1.DeploymentSpec{Template: v12.PodTemplateSpec{Spec: v12.PodSpec{Containers: []v12.Container{{Image: "nginx:v2"}}}}}}}}, + Spec: v1alpha2.ComponentSpec{Workload: runtime.RawExtension{Object: &appsv1.Deployment{Spec: appsv1.DeploymentSpec{Template: v12.PodTemplateSpec{Spec: v12.PodSpec{Containers: []v12.Container{{Image: "nginx:v2"}}}}}}}}, } curComp.Status.DeepCopyInto(&comp2.Status) updateEvt := event.UpdateEvent{ @@ -185,7 +184,7 @@ func TestComponentHandler(t *testing.T) { // test no changes with component spec comp3 := &v1alpha2.Component{ ObjectMeta: metav1.ObjectMeta{Namespace: "biz", Name: "comp1", Labels: map[string]string{"bar": "foo"}}, - Spec: v1alpha2.ComponentSpec{Workload: runtime.RawExtension{Object: &v1.Deployment{Spec: v1.DeploymentSpec{Template: v12.PodTemplateSpec{Spec: v12.PodSpec{Containers: []v12.Container{{Image: "nginx:v2"}}}}}}}}, + Spec: v1alpha2.ComponentSpec{Workload: runtime.RawExtension{Object: &appsv1.Deployment{Spec: appsv1.DeploymentSpec{Template: v12.PodTemplateSpec{Spec: v12.PodSpec{Containers: []v12.Container{{Image: "nginx:v2"}}}}}}}}, } curComp.Status.DeepCopyInto(&comp3.Status) updateEvt = event.UpdateEvent{ @@ -204,7 +203,7 @@ func TestComponentHandler(t *testing.T) { // test clean revision comp4 := &v1alpha2.Component{ ObjectMeta: metav1.ObjectMeta{Namespace: "biz", Name: "comp1", Labels: map[string]string{"bar": "foo"}}, - Spec: v1alpha2.ComponentSpec{Workload: runtime.RawExtension{Object: &v1.Deployment{Spec: v1.DeploymentSpec{Template: v12.PodTemplateSpec{Spec: v12.PodSpec{Containers: []v12.Container{{Image: "nginx:v3"}}}}}}}}, + Spec: v1alpha2.ComponentSpec{Workload: runtime.RawExtension{Object: &appsv1.Deployment{Spec: appsv1.DeploymentSpec{Template: v12.PodTemplateSpec{Spec: v12.PodSpec{Containers: []v12.Container{{Image: "nginx:v3"}}}}}}}}, } curComp.Status.DeepCopyInto(&comp4.Status) updateEvt = event.UpdateEvent{ diff --git a/pkg/controller/core.oam.dev/v1alpha2/applicationconfiguration/render_test.go b/pkg/controller/core.oam.dev/v1alpha2/applicationconfiguration/render_test.go index 7049f6222..f9e38aff4 100644 --- a/pkg/controller/core.oam.dev/v1alpha2/applicationconfiguration/render_test.go +++ b/pkg/controller/core.oam.dev/v1alpha2/applicationconfiguration/render_test.go @@ -22,7 +22,6 @@ import ( "testing" "github.com/crossplane/crossplane-runtime/apis/core/v1alpha1" - runtimev1alpha1 "github.com/crossplane/crossplane-runtime/apis/core/v1alpha1" "github.com/crossplane/crossplane-runtime/pkg/fieldpath" "github.com/crossplane/crossplane-runtime/pkg/test" "github.com/google/go-cmp/cmp" @@ -506,7 +505,7 @@ func TestRenderComponents(t *testing.T) { oam.LabelAppComponentRevision: revisionName, oam.LabelOAMResourceType: oam.ResourceTypeTrait, }) - workloadRef := runtimev1alpha1.TypedReference{ + workloadRef := v1alpha1.TypedReference{ APIVersion: "traitApiVersion", Kind: "traitKind", Name: componentName, diff --git a/pkg/controller/core.oam.dev/v1alpha2/applicationdeployment/suite_test.go b/pkg/controller/core.oam.dev/v1alpha2/applicationdeployment/suite_test.go index 9a178a2d0..ecdfd034e 100644 --- a/pkg/controller/core.oam.dev/v1alpha2/applicationdeployment/suite_test.go +++ b/pkg/controller/core.oam.dev/v1alpha2/applicationdeployment/suite_test.go @@ -34,7 +34,7 @@ func TestAPIs(t *testing.T) { } var _ = BeforeSuite(func(done Done) { - logf.SetLogger(zap.LoggerTo(GinkgoWriter, true)) + logf.SetLogger(zap.New(zap.UseDevMode(true), zap.WriteTo(GinkgoWriter))) By("bootstrapping test environment") testEnv = &envtest.Environment{ diff --git a/pkg/controller/core.oam.dev/v1alpha2/core/scopes/healthscope/healthscope.go b/pkg/controller/core.oam.dev/v1alpha2/core/scopes/healthscope/healthscope.go index a7630be1f..215dbf0b9 100644 --- a/pkg/controller/core.oam.dev/v1alpha2/core/scopes/healthscope/healthscope.go +++ b/pkg/controller/core.oam.dev/v1alpha2/core/scopes/healthscope/healthscope.go @@ -35,7 +35,6 @@ import ( "sigs.k8s.io/controller-runtime/pkg/client" "github.com/oam-dev/kubevela/apis/core.oam.dev/v1alpha2" - corev1alpha2 "github.com/oam-dev/kubevela/apis/core.oam.dev/v1alpha2" "github.com/oam-dev/kubevela/pkg/oam" @@ -65,7 +64,7 @@ const ( ) var ( - kindContainerizedWorkload = corev1alpha2.ContainerizedWorkloadKind + kindContainerizedWorkload = v1alpha2.ContainerizedWorkloadKind kindDeployment = reflect.TypeOf(apps.Deployment{}).Name() kindService = reflect.TypeOf(core.Service{}).Name() kindStatefulSet = reflect.TypeOf(apps.StatefulSet{}).Name() @@ -119,7 +118,7 @@ func (fn WorkloadHealthCheckFn) Check(ctx context.Context, c client.Client, tr r // CheckContainerziedWorkloadHealth check health condition of ContainerizedWorkload func CheckContainerziedWorkloadHealth(ctx context.Context, c client.Client, ref runtimev1alpha1.TypedReference, namespace string) *WorkloadHealthCondition { - if ref.GroupVersionKind() != corev1alpha2.SchemeGroupVersion.WithKind(kindContainerizedWorkload) { + if ref.GroupVersionKind() != v1alpha2.SchemeGroupVersion.WithKind(kindContainerizedWorkload) { return nil } r := &WorkloadHealthCondition{ @@ -127,8 +126,8 @@ func CheckContainerziedWorkloadHealth(ctx context.Context, c client.Client, ref TargetWorkload: ref, } - cwObj := corev1alpha2.ContainerizedWorkload{} - cwObj.SetGroupVersionKind(corev1alpha2.SchemeGroupVersion.WithKind(kindContainerizedWorkload)) + cwObj := v1alpha2.ContainerizedWorkload{} + cwObj.SetGroupVersionKind(v1alpha2.SchemeGroupVersion.WithKind(kindContainerizedWorkload)) if err := c.Get(ctx, types.NamespacedName{Namespace: namespace, Name: ref.Name}, &cwObj); err != nil { r.HealthStatus = StatusUnhealthy r.Diagnosis = errors.Wrap(err, errHealthCheck).Error() diff --git a/pkg/controller/core.oam.dev/v1alpha2/core/scopes/healthscope/healthscope_controller_test.go b/pkg/controller/core.oam.dev/v1alpha2/core/scopes/healthscope/healthscope_controller_test.go index cbe56bece..d6ca87e06 100644 --- a/pkg/controller/core.oam.dev/v1alpha2/core/scopes/healthscope/healthscope_controller_test.go +++ b/pkg/controller/core.oam.dev/v1alpha2/core/scopes/healthscope/healthscope_controller_test.go @@ -25,7 +25,6 @@ import ( "github.com/crossplane/crossplane-runtime/pkg/test" "github.com/oam-dev/kubevela/apis/core.oam.dev/v1alpha2" - corev1alpha2 "github.com/oam-dev/kubevela/apis/core.oam.dev/v1alpha2" "github.com/oam-dev/kubevela/pkg/oam/mock" "github.com/oam-dev/kubevela/pkg/oam/util" @@ -59,7 +58,7 @@ var _ = Describe("HealthScope Controller Reconcile Test", func() { WithChecker(MockHealthyChecker), ) - hs := v1alpha2.HealthScope{Spec: corev1alpha2.HealthScopeSpec{WorkloadReferences: []v1alpha1.TypedReference{ + hs := v1alpha2.HealthScope{Spec: v1alpha2.HealthScopeSpec{WorkloadReferences: []v1alpha1.TypedReference{ // add one wlRef to trigger mockChecker { APIVersion: "mock", @@ -155,14 +154,14 @@ var _ = Describe("Test GetScopeHealthStatus", func() { hs := v1alpha2.HealthScope{} var cwRef, deployRef, svcRef v1alpha1.TypedReference - cwRef.SetGroupVersionKind(corev1alpha2.SchemeGroupVersion.WithKind(kindContainerizedWorkload)) + cwRef.SetGroupVersionKind(v1alpha2.SchemeGroupVersion.WithKind(kindContainerizedWorkload)) cwRef.Name = "cw" deployRef.SetGroupVersionKind(appsv1.SchemeGroupVersion.WithKind(kindDeployment)) deployRef.Name = "deploy" svcRef.SetGroupVersionKind(appsv1.SchemeGroupVersion.WithKind(kindService)) - cw := corev1alpha2.ContainerizedWorkload{} - cw.SetGroupVersionKind(corev1alpha2.SchemeGroupVersion.WithKind(kindContainerizedWorkload)) + cw := v1alpha2.ContainerizedWorkload{} + cw.SetGroupVersionKind(v1alpha2.SchemeGroupVersion.WithKind(kindContainerizedWorkload)) cw.Status.Resources = []v1alpha1.TypedReference{deployRef, svcRef} hDeploy := appsv1.Deployment{ @@ -210,7 +209,7 @@ var _ = Describe("Test GetScopeHealthStatus", func() { caseName: "2 supportted workloads(cw,deploy)", hsWorkloadRefs: []v1alpha1.TypedReference{cwRef, deployRef}, mockGetFn: func(ctx context.Context, key types.NamespacedName, obj runtime.Object) error { - if o, ok := obj.(*corev1alpha2.ContainerizedWorkload); ok { + if o, ok := obj.(*v1alpha2.ContainerizedWorkload); ok { *o = cw } if o, ok := obj.(*appsv1.Deployment); ok { @@ -253,7 +252,7 @@ var _ = Describe("Test GetScopeHealthStatus", func() { hsWorkloadRefs: []v1alpha1.TypedReference{cwRef, deployRef}, mockGetFn: func(ctx context.Context, key types.NamespacedName, obj runtime.Object) error { switch o := obj.(type) { - case *corev1alpha2.ContainerizedWorkload: + case *v1alpha2.ContainerizedWorkload: *o = cw case *appsv1.Deployment: *o = hDeploy @@ -279,7 +278,7 @@ var _ = Describe("Test GetScopeHealthStatus", func() { hsWorkloadRefs: []v1alpha1.TypedReference{cwRef, uhGeneralRef}, mockGetFn: func(ctx context.Context, key types.NamespacedName, obj runtime.Object) error { switch o := obj.(type) { - case *corev1alpha2.ContainerizedWorkload: + case *v1alpha2.ContainerizedWorkload: *o = cw case *appsv1.Deployment: *o = hDeploy diff --git a/pkg/controller/standard.oam.dev/v1alpha1/autoscaler/autoscaler_controller.go b/pkg/controller/standard.oam.dev/v1alpha1/autoscaler/autoscaler_controller.go index 61579a6c1..fdae3611a 100644 --- a/pkg/controller/standard.oam.dev/v1alpha1/autoscaler/autoscaler_controller.go +++ b/pkg/controller/standard.oam.dev/v1alpha1/autoscaler/autoscaler_controller.go @@ -34,7 +34,6 @@ import ( "github.com/oam-dev/kubevela/pkg/controller/common" "github.com/oam-dev/kubevela/pkg/oam/discoverymapper" "github.com/oam-dev/kubevela/pkg/oam/util" - oamutil "github.com/oam-dev/kubevela/pkg/oam/util" ) // nolint:golint @@ -88,13 +87,13 @@ func (r *Reconciler) Reconcile(req ctrl.Request) (ctrl.Result, error) { } // Fetch the instance to which the trait refers to - workload, err := oamutil.FetchWorkload(ctx, r, log, &scaler) + workload, err := util.FetchWorkload(ctx, r, log, &scaler) if err != nil { log.Error(err, "Error while fetching the workload", "workload reference", scaler.GetWorkloadReference()) r.record.Event(&scaler, event.Warning(common.ErrLocatingWorkload, err)) - return oamutil.ReconcileWaitResult, - oamutil.PatchCondition(ctx, r, &scaler, + return util.ReconcileWaitResult, + util.PatchCondition(ctx, r, &scaler, cpv1alpha1.ReconcileError(errors.Wrap(err, common.ErrLocatingWorkload))) } diff --git a/pkg/controller/standard.oam.dev/v1alpha1/autoscaler/suite_test.go b/pkg/controller/standard.oam.dev/v1alpha1/autoscaler/suite_test.go index 5bdd88241..3f583787b 100644 --- a/pkg/controller/standard.oam.dev/v1alpha1/autoscaler/suite_test.go +++ b/pkg/controller/standard.oam.dev/v1alpha1/autoscaler/suite_test.go @@ -50,7 +50,7 @@ func TestAPIs(t *testing.T) { } var _ = BeforeSuite(func(done Done) { - logf.SetLogger(zap.LoggerTo(GinkgoWriter, true)) + logf.SetLogger(zap.New(zap.UseDevMode(true), zap.WriteTo(GinkgoWriter))) By("bootstrapping test environment") testEnv = &envtest.Environment{ diff --git a/pkg/controller/standard.oam.dev/v1alpha1/podspecworkload/suite_test.go b/pkg/controller/standard.oam.dev/v1alpha1/podspecworkload/suite_test.go index 0d8b54666..d2d9c07e7 100644 --- a/pkg/controller/standard.oam.dev/v1alpha1/podspecworkload/suite_test.go +++ b/pkg/controller/standard.oam.dev/v1alpha1/podspecworkload/suite_test.go @@ -50,7 +50,7 @@ func TestAPIs(t *testing.T) { } var _ = BeforeSuite(func(done Done) { - logf.SetLogger(zap.LoggerTo(GinkgoWriter, true)) + logf.SetLogger(zap.New(zap.UseDevMode(true), zap.WriteTo(GinkgoWriter))) By("bootstrapping test environment") testEnv = &envtest.Environment{ diff --git a/pkg/controller/standard.oam.dev/v1alpha1/routes/route_controller.go b/pkg/controller/standard.oam.dev/v1alpha1/routes/route_controller.go index 08e908517..e91678501 100644 --- a/pkg/controller/standard.oam.dev/v1alpha1/routes/route_controller.go +++ b/pkg/controller/standard.oam.dev/v1alpha1/routes/route_controller.go @@ -29,7 +29,6 @@ import ( "github.com/oam-dev/kubevela/pkg/controller/common" "github.com/oam-dev/kubevela/pkg/controller/standard.oam.dev/v1alpha1/routes/ingress" - cpv1alpha1 "github.com/crossplane/crossplane-runtime/apis/core/v1alpha1" runtimev1alpha1 "github.com/crossplane/crossplane-runtime/apis/core/v1alpha1" "github.com/crossplane/crossplane-runtime/pkg/event" "github.com/go-logr/logr" @@ -98,13 +97,13 @@ func (r *Reconciler) Reconcile(req ctrl.Request) (ctrl.Result, error) { r.record.Event(eventObj, event.Warning(common.ErrLocatingWorkload, err)) return oamutil.ReconcileWaitResult, oamutil.PatchCondition(ctx, r, &routeTrait, - cpv1alpha1.ReconcileError(errors.Wrap(err, common.ErrLocatingWorkload))) + runtimev1alpha1.ReconcileError(errors.Wrap(err, common.ErrLocatingWorkload))) } var svc *runtimev1alpha1.TypedReference if NeedDiscovery(&routeTrait) { if svc, err = r.discoveryAndFillBackend(ctx, mLog, eventObj, workload, &routeTrait); err != nil { return oamutil.ReconcileWaitResult, oamutil.PatchCondition(ctx, r, &routeTrait, - cpv1alpha1.ReconcileError(err)) + runtimev1alpha1.ReconcileError(err)) } } @@ -125,7 +124,7 @@ func (r *Reconciler) Reconcile(req ctrl.Request) (ctrl.Result, error) { r.record.Event(eventObj, event.Warning(errApplyNginxIngress, err)) return oamutil.ReconcileWaitResult, oamutil.PatchCondition(ctx, r, &routeTrait, - cpv1alpha1.ReconcileError(errors.Wrap(err, errApplyNginxIngress))) + runtimev1alpha1.ReconcileError(errors.Wrap(err, errApplyNginxIngress))) } r.record.Event(eventObj, event.Normal("nginx ingress patched", fmt.Sprintf("successfully server side patched a route trait `%s`", routeTrait.Name))) diff --git a/pkg/oam/mock/mapper.go b/pkg/oam/mock/mapper.go index 1cbb8e35b..6f7f92040 100644 --- a/pkg/oam/mock/mapper.go +++ b/pkg/oam/mock/mapper.go @@ -9,16 +9,16 @@ import ( var _ discoverymapper.DiscoveryMapper = &DiscoveryMapper{} -// nolint +// GetMapper is func type for mock convenience type GetMapper func() (meta.RESTMapper, error) -// nolint +// Refresh is func type for mock convenience type Refresh func() (meta.RESTMapper, error) -// nolint +// RESTMapping is func type for mock convenience type RESTMapping func(gk schema.GroupKind, versions ...string) (*meta.RESTMapping, error) -// nolint +// KindsFor is func type for mock convenience type KindsFor func(input schema.GroupVersionResource) ([]schema.GroupVersionKind, error) // NewMockDiscoveryMapper for unit test only diff --git a/pkg/oam/util/test_utils.go b/pkg/oam/util/test_utils.go index de43c0fe6..40b8982b1 100644 --- a/pkg/oam/util/test_utils.go +++ b/pkg/oam/util/test_utils.go @@ -85,11 +85,10 @@ func (matcher ErrorMatcher) Match(actual interface{}) (success bool, err error) } // FailureMessage builds an error message. -//nolint:errorlint -// TODO(roywang) use errors.As() instead of type assertion on error func (matcher ErrorMatcher) FailureMessage(actual interface{}) (message string) { actualError, actualOK := actual.(error) - expectedError, expectedOK := matcher.ExpectedError.(error) + expectedError := matcher.ExpectedError + expectedOK := expectedError != nil if actualOK && expectedOK { return format.MessageWithDiff(actualError.Error(), "to equal", expectedError.Error()) @@ -107,11 +106,10 @@ func (matcher ErrorMatcher) FailureMessage(actual interface{}) (message string) } // NegatedFailureMessage builds an error message. -//nolint:errorlint -// TODO(roywang) use errors.As() instead of type assertion on error func (matcher ErrorMatcher) NegatedFailureMessage(actual interface{}) (message string) { actualError, actualOK := actual.(error) - expectedError, expectedOK := matcher.ExpectedError.(error) + expectedError := matcher.ExpectedError + expectedOK := expectedError != nil if actualOK && expectedOK { return format.MessageWithDiff(actualError.Error(), "not to equal", expectedError.Error()) diff --git a/pkg/plugins/cluster.go b/pkg/plugins/cluster.go index de0c5f317..7bed52719 100644 --- a/pkg/plugins/cluster.go +++ b/pkg/plugins/cluster.go @@ -13,7 +13,6 @@ import ( "k8s.io/apimachinery/pkg/runtime" "sigs.k8s.io/controller-runtime/pkg/client" - "github.com/oam-dev/kubevela/apis/core.oam.dev/v1alpha2" corev1alpha2 "github.com/oam-dev/kubevela/apis/core.oam.dev/v1alpha2" "github.com/oam-dev/kubevela/apis/types" util2 "github.com/oam-dev/kubevela/pkg/commands/util" @@ -25,7 +24,7 @@ import ( "github.com/oam-dev/kubevela/pkg/utils/system" ) -// nolint +// DescriptionUndefined indicates the description is not defined const DescriptionUndefined = "description not defined" // GetCapabilitiesFromCluster will get capability from K8s cluster @@ -108,7 +107,7 @@ func GetTraitsFromCluster(ctx context.Context, namespace string, c types.Args, s } // validateCapabilities validates whether helm charts are successful installed, GVK are successfully retrieved. -func validateCapabilities(tmp types.Capability, dm discoverymapper.DiscoveryMapper, definitionName string, reference v1alpha2.DefinitionReference) (types.Capability, error) { +func validateCapabilities(tmp types.Capability, dm discoverymapper.DiscoveryMapper, definitionName string, reference corev1alpha2.DefinitionReference) (types.Capability, error) { var err error if tmp.Install != nil { tmp.Source = &types.Source{ChartName: tmp.Install.Helm.Name} diff --git a/pkg/plugins/suit_test.go b/pkg/plugins/suit_test.go index 334744f86..1a3588f32 100644 --- a/pkg/plugins/suit_test.go +++ b/pkg/plugins/suit_test.go @@ -51,7 +51,7 @@ func TestAPIs(t *testing.T) { } var _ = BeforeSuite(func(done Done) { - logf.SetLogger(zap.LoggerTo(GinkgoWriter, true)) + logf.SetLogger(zap.New(zap.UseDevMode(true), zap.WriteTo(GinkgoWriter))) ctx := context.Background() By("bootstrapping test environment") useExistCluster := false diff --git a/pkg/server/appHandlers.go b/pkg/server/appHandlers.go index 6f27d154b..8674a7e37 100644 --- a/pkg/server/appHandlers.go +++ b/pkg/server/appHandlers.go @@ -11,7 +11,6 @@ import ( "github.com/oam-dev/kubevela/pkg/server/util" "github.com/oam-dev/kubevela/pkg/serverlib" "github.com/oam-dev/kubevela/pkg/utils/env" - env2 "github.com/oam-dev/kubevela/pkg/utils/env" ) // UpdateApps is placeholder for updating applications @@ -97,7 +96,7 @@ func (s *APIServer) CreateApplication(c *gin.Context) { util.HandleError(c, util.InvalidArgument, "the application creation request body is invalid") return } - env, err := env2.GetEnvByName(c.Param("envName")) + env, err := env.GetEnvByName(c.Param("envName")) if err != nil { util.HandleError(c, util.StatusInternalServerError, err.Error()) return diff --git a/pkg/server/util/errors.go b/pkg/server/util/errors.go index 0472f8370..23847d176 100644 --- a/pkg/server/util/errors.go +++ b/pkg/server/util/errors.go @@ -58,8 +58,8 @@ func ConstructError(ec Code, a ...interface{}) error { case a == nil && c > 0 || a != nil && (c != len(a) || a[0] == nil): { - ctrl.Log.Error(fmt.Errorf("Args '%v' do not match placeholders in the msg '%s'", a, ec.Message()), - "Invalid error message argument") + ctrl.Log.Error(fmt.Errorf("args '%v' do not match placeholders in the msg '%s'", a, ec.Message()), + "invalid error message argument") } case len(a) == 0 || a[0] == nil: { diff --git a/pkg/serverlib/application.go b/pkg/serverlib/application.go index 35baa8f12..54ecd6696 100644 --- a/pkg/serverlib/application.go +++ b/pkg/serverlib/application.go @@ -20,7 +20,6 @@ import ( "k8s.io/client-go/rest" "sigs.k8s.io/controller-runtime/pkg/client" - "github.com/oam-dev/kubevela/apis/core.oam.dev/v1alpha2" corev1alpha2 "github.com/oam-dev/kubevela/apis/core.oam.dev/v1alpha2" "github.com/oam-dev/kubevela/apis/types" "github.com/oam-dev/kubevela/pkg/appfile" @@ -54,7 +53,7 @@ type AppfileOptions struct { // BuildResult is the export struct from AppFile yaml or AppFile object type BuildResult struct { appFile *api.AppFile - application *v1alpha2.Application + application *corev1alpha2.Application scopes []oam.Object } @@ -461,13 +460,13 @@ func (o *AppfileOptions) saveToAppDir(f *api.AppFile) error { // - for create, it displays app status along with information of url, metrics, ssh, logging. // - for update, it rolls out a canary deployment and prints its information. User can verify the canary deployment. // This will wait for user approval. If approved, it continues upgrading the whole; otherwise, it would rollback. -func (o *AppfileOptions) ApplyApp(app *v1alpha2.Application, scopes []oam.Object) error { +func (o *AppfileOptions) ApplyApp(app *corev1alpha2.Application, scopes []oam.Object) error { key := apitypes.NamespacedName{ Namespace: app.Namespace, Name: app.Name, } o.IO.Infof("Checking if app has been deployed...\n") - var tmpApp v1alpha2.Application + var tmpApp corev1alpha2.Application err := o.Kubecli.Get(context.TODO(), key, &tmpApp) switch { case apierrors.IsNotFound(err): @@ -484,7 +483,7 @@ func (o *AppfileOptions) ApplyApp(app *v1alpha2.Application, scopes []oam.Object return nil } -func (o *AppfileOptions) apply(app *v1alpha2.Application, scopes []oam.Object) error { +func (o *AppfileOptions) apply(app *corev1alpha2.Application, scopes []oam.Object) error { if err := appfile.Run(context.TODO(), o.Kubecli, app, scopes); err != nil { return err } @@ -492,7 +491,7 @@ func (o *AppfileOptions) apply(app *v1alpha2.Application, scopes []oam.Object) e } // Info shows the status of each service in the Appfile -func (o *AppfileOptions) Info(app *v1alpha2.Application) string { +func (o *AppfileOptions) Info(app *corev1alpha2.Application) string { appName := app.Name var appUpMessage = "✅ App has been deployed 🚀🚀🚀\n" + fmt.Sprintf(" Port forward: vela port-forward %s\n", appName) + diff --git a/pkg/serverlib/definition_test.go b/pkg/serverlib/definition_test.go index 99609f22f..0adb4fa2e 100644 --- a/pkg/serverlib/definition_test.go +++ b/pkg/serverlib/definition_test.go @@ -213,6 +213,9 @@ func TestGetParameterFromOpenAPISchema(t *testing.T) { t.Run(name, func(t *testing.T) { rawFile := filepath.Join(tc.fileDir, tc.fileName) raw, err := ioutil.ReadFile(rawFile) + if err != nil { + t.Errorf("%s\ngetParameterFromOpenAPISchema(...): raw file %s could not be read: %s", tc.reason, rawFile, err) + } got, err := getParameterFromOpenAPISchema(raw) if (err == nil && tc.want != nil) || (err != nil && tc.want == nil) { t.Errorf("%s\ngetParameterFromOpenAPISchema(...): -want %s, +got %s", tc.reason, tc.want, err) diff --git a/pkg/serverlib/workload.go b/pkg/serverlib/workload.go index 9f485525d..ddc3ca43d 100644 --- a/pkg/serverlib/workload.go +++ b/pkg/serverlib/workload.go @@ -14,7 +14,6 @@ import ( "github.com/oam-dev/kubevela/pkg/appfile" "github.com/oam-dev/kubevela/pkg/appfile/api" "github.com/oam-dev/kubevela/pkg/commands/util" - cmdutil "github.com/oam-dev/kubevela/pkg/commands/util" "github.com/oam-dev/kubevela/pkg/plugins" ) @@ -134,7 +133,7 @@ func BaseComplete(envName string, workloadName string, appName string, flagSet * } // BaseRun will check if it's a stating operation before run -func BaseRun(staging bool, app *api.Application, kubeClient client.Client, env *types.EnvMeta, io cmdutil.IOStreams) (string, error) { +func BaseRun(staging bool, app *api.Application, kubeClient client.Client, env *types.EnvMeta, io util.IOStreams) (string, error) { if staging { return "Staging saved", nil } diff --git a/pkg/utils/apply/apply_suite_test.go b/pkg/utils/apply/apply_suite_test.go index 77cccf0f7..af85df3a6 100644 --- a/pkg/utils/apply/apply_suite_test.go +++ b/pkg/utils/apply/apply_suite_test.go @@ -22,7 +22,6 @@ import ( "sigs.k8s.io/controller-runtime/pkg/log/zap" ) -var mgrclose chan struct{} var testEnv *envtest.Environment var cfg *rest.Config var rawClient client.Client diff --git a/pkg/webhook/core.oam.dev/v1alpha2/application/suite_test.go b/pkg/webhook/core.oam.dev/v1alpha2/application/suite_test.go index 6c44f0f9a..142c0d42b 100644 --- a/pkg/webhook/core.oam.dev/v1alpha2/application/suite_test.go +++ b/pkg/webhook/core.oam.dev/v1alpha2/application/suite_test.go @@ -58,7 +58,7 @@ func TestAPIs(t *testing.T) { } var _ = BeforeSuite(func(done Done) { - logf.SetLogger(zap.LoggerTo(GinkgoWriter, true)) + logf.SetLogger(zap.New(zap.UseDevMode(true), zap.WriteTo(GinkgoWriter))) By("bootstrapping test environment") testEnv = &envtest.Environment{ diff --git a/pkg/webhook/core.oam.dev/v1alpha2/applicationconfiguration/validating_handler.go b/pkg/webhook/core.oam.dev/v1alpha2/applicationconfiguration/validating_handler.go index f7753ddb3..5657d2326 100644 --- a/pkg/webhook/core.oam.dev/v1alpha2/applicationconfiguration/validating_handler.go +++ b/pkg/webhook/core.oam.dev/v1alpha2/applicationconfiguration/validating_handler.go @@ -23,7 +23,7 @@ import ( ) const ( - errFmtWorkloadNameNotEmpty = "versioning-enabled component's workload name MUST NOT be assigned, expect workload name %q to be empty." + errFmtWorkloadNameNotEmpty = "versioning-enabled component's workload name MUST NOT be assigned, expect workload name %q to be empty" errFmtRevisionName = "componentName %q and revisionName %q are mutually exclusive, you can only specify one of them" diff --git a/staticcheck.conf b/staticcheck.conf new file mode 100644 index 000000000..93789c1b5 --- /dev/null +++ b/staticcheck.conf @@ -0,0 +1,8 @@ +# This is config file for staticcheck. +# If you need to add ignored checks, pls also add explaination in comments. + +checks = ["all", "-ST1000", "-ST1003", "-ST1016"] + +# ST1000 - Incorrect or missing package comment (non-default) +# ST1003 – Poorly chosen identifier (non-default) +# ST1016 – Use consistent method receiver names (non-default) diff --git a/test/e2e-test/component_version_test.go b/test/e2e-test/component_version_test.go index 1b97011c7..3b9bc6a44 100644 --- a/test/e2e-test/component_version_test.go +++ b/test/e2e-test/component_version_test.go @@ -12,7 +12,6 @@ import ( "github.com/ghodss/yaml" appsv1 "k8s.io/api/apps/v1" - v1 "k8s.io/api/apps/v1" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" @@ -496,10 +495,10 @@ var _ = Describe("Component revision", func() { namespace := "default" componentName := "revision-component" appConfigName := "revision-app" - workload := v1.Deployment{ + workload := appsv1.Deployment{ TypeMeta: metav1.TypeMeta{APIVersion: "apps/v1", Kind: "Deployment"}, ObjectMeta: metav1.ObjectMeta{Namespace: namespace}, - Spec: v1.DeploymentSpec{ + Spec: appsv1.DeploymentSpec{ Selector: &metav1.LabelSelector{ MatchLabels: map[string]string{ "app": "nginx", @@ -579,7 +578,7 @@ var _ = Describe("Component revision", func() { Expect(k8sClient.Create(ctx, &appConfig)).Should(Succeed()) By("check workload") - var deploy v1.Deployment + var deploy appsv1.Deployment Eventually( func() error { return k8sClient.Get(ctx, workloadObjKey, &deploy) @@ -594,11 +593,11 @@ var _ = Describe("Component revision", func() { By("check current workload exists") time.Sleep(3 * time.Second) - var currentDeploy v1.Deployment + var currentDeploy appsv1.Deployment Expect(k8sClient.Get(ctx, workloadObjKey, ¤tDeploy)).Should(BeNil()) By("check version 1 workload doesn't exist") - var v1Deploy v1.Deployment + var v1Deploy appsv1.Deployment workloadObjKey := client.ObjectKey{Name: componentName + "-v1", Namespace: namespace} Expect(k8sClient.Get(ctx, workloadObjKey, &v1Deploy)).Should(SatisfyAny(&util.NotFoundMatcher{})) })