diff --git a/.golangci.yaml b/.golangci.yaml index 095907b4f..40f241f95 100644 --- a/.golangci.yaml +++ b/.golangci.yaml @@ -7,13 +7,14 @@ linters: - revive - gosec - prealloc -run: - skip-files: +issues: + exclude-files: - /zz_generated_ - _generated - skip-dirs: + exclude-dirs: - generated - deadline: 5m +run: + timeout: 5m tests: true build-tags: - test diff --git a/Dockerfile.dapper b/Dockerfile.dapper index 0d1d9471b..aceafaccc 100644 --- a/Dockerfile.dapper +++ b/Dockerfile.dapper @@ -1,6 +1,6 @@ FROM quay.io/costoolkit/releases-teal:grub2-live-0.0.4-2 as grub2-mbr FROM quay.io/costoolkit/releases-teal:grub2-efi-image-live-0.0.4-2 as grub2-efi -FROM registry.suse.com/bci/golang:1.20 +FROM registry.suse.com/bci/golang:1.21 ARG http_proxy=$http_proxy ARG https_proxy=$https_proxy @@ -20,7 +20,7 @@ RUN zypper -n rm container-suseconnect && \ zypper -n install git curl docker gzip tar wget zstd squashfs xorriso awk jq mtools dosfstools unzip rsync patch RUN curl -sfL https://github.com/mikefarah/yq/releases/download/v4.21.1/yq_linux_${ARCH} -o /usr/bin/yq && chmod +x /usr/bin/yq RUN if [ "${ARCH}" == "amd64" ]; then \ - curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s v1.55.2; \ + curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s v1.57.1; \ fi RUN zypper addrepo http://download.opensuse.org/distribution/leap/15.4/repo/oss/ oss && \ diff --git a/go.mod b/go.mod index 49e70194b..a22895df3 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/harvester/harvester-installer -go 1.20 +go 1.21 require ( github.com/harvester/go-common v0.0.0-20230718010724-11313421a8f5 diff --git a/go.sum b/go.sum index d328d2e01..68367a6c1 100644 --- a/go.sum +++ b/go.sum @@ -127,6 +127,7 @@ github.com/cockroachdb/datadriven v0.0.0-20200714090401-bf6692d28da5/go.mod h1:h github.com/cockroachdb/errors v1.2.4/go.mod h1:rQD95gz6FARkaKkQXUksEje/d9a6wBJoCr5oaCLELYA= github.com/cockroachdb/logtags v0.0.0-20190617123548-eb05cc24525f/go.mod h1:i/u985jwjWRlyHXQbwatDASoW0RMlZ/3i9yJHE2xLkI= github.com/containerd/stargz-snapshotter/estargz v0.12.1 h1:+7nYmHJb0tEkcRaAW+MHqoKaJYZmkikupxCqVtmPuY0= +github.com/containerd/stargz-snapshotter/estargz v0.12.1/go.mod h1:12VUuCq3qPq4y8yUW+l5w3+oXV3cx2Po3KSe/SmPGqw= github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= @@ -298,11 +299,13 @@ github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-containerregistry v0.12.2-0.20230106184643-b063f6aeac72 h1:mjNVVKGHs3+xtaGPnTHz4ozBphZNsxsgqFR4+TNwRVM= github.com/google/go-containerregistry v0.12.2-0.20230106184643-b063f6aeac72/go.mod h1:J9FQ+eSS4a1aC2GNZxvNpbWhgp0487v+cgiilB4FqDo= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= +github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= @@ -589,6 +592,7 @@ github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40T github.com/rancher-sandbox/cloud-init v1.14.3-0.20210913085759-bf90bf5eb77e h1:1GSTIPu7CB2UCkS++2/wMygc3S+aa5O0VbTsdDrYupE= github.com/rancher-sandbox/cloud-init v1.14.3-0.20210913085759-bf90bf5eb77e/go.mod h1:qbJr82AYxRKlEa4ZSm6qENOmXebBxPXne8BWbtll4cg= github.com/rancher/dynamiclistener v0.3.5 h1:5TaIHvkDGmZKvc96Huur16zfTKOiLhDtK4S+WV0JA6A= +github.com/rancher/dynamiclistener v0.3.5/go.mod h1:dW/YF6/m2+uEyJ5VtEcd9THxda599HP6N9dSXk81+k0= github.com/rancher/lasso v0.0.0-20221227210133-6ea88ca2fbcc/go.mod h1:dEfC9eFQigj95lv/JQ8K5e7+qQCacWs1aIA6nLxKzT8= github.com/rancher/mapper v0.0.0-20190814232720-058a8b7feb99 h1:rGnt9h1Uk7Yw4qNPyGq0LWHGdPyag/+Fg/wJWSTkKx4= github.com/rancher/mapper v0.0.0-20190814232720-058a8b7feb99/go.mod h1:zU4cm21k7ZBFVQhUu2aSH7NwouY317rLYxruOn+wdOQ= @@ -684,6 +688,7 @@ github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGr github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= github.com/vbatts/tar-split v0.11.2 h1:Via6XqJr0hceW4wff3QRzD5gAk/tatMw/4ZA7cTlIME= +github.com/vbatts/tar-split v0.11.2/go.mod h1:vV3ZuO2yWSVsz+pfFzDG/upWH1JhjOiEaWq6kXyQ3VI= github.com/vishvananda/netlink v0.0.0-20170808154308-f5a6f697a596/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJqOg65H/2ktk= github.com/vishvananda/netlink v1.1.0 h1:1iyaYNBLmP6L0220aDnYQpo1QEV4t4hJ+xEEhhJH8j0= github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE= @@ -1010,6 +1015,7 @@ golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuX golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.13.0 h1:bb+I9cTfFazGW51MZqBVmZy7+JEJMouUHTUSKVQLBek= +golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1287,6 +1293,7 @@ k8s.io/klog/v2 v2.10.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec= k8s.io/klog/v2 v2.60.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= k8s.io/klog/v2 v2.70.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= k8s.io/klog/v2 v2.80.1 h1:atnLQ121W371wYYFawwYx1aEY2eUfs4l3J72wtgAwV4= +k8s.io/klog/v2 v2.80.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= k8s.io/kube-aggregator v0.25.4/go.mod h1:PH65mLSQoUld53w0VkdYcsIGh7wjJGZ5DyfoARronz0= k8s.io/kube-openapi v0.0.0-20210421082810-95288971da7e/go.mod h1:vHXdDvt9+2spS2Rx9ql3I8tycm3H9FDfdUoIuKCefvw= k8s.io/kube-openapi v0.0.0-20220328201542-3ee0da9b0b42/go.mod h1:Z/45zLw8lUo4wdiUkI+v/ImEGAvu3WatcZl3lPMR4Rk= diff --git a/pkg/config/coerce.go b/pkg/config/coerce.go index 26c554591..35e24959e 100644 --- a/pkg/config/coerce.go +++ b/pkg/config/coerce.go @@ -34,7 +34,7 @@ func (t *typeConverter) ToInternal(data map[string]interface{}) error { return t.mappers.ToInternal(data) } -func (t *typeConverter) ModifySchema(schema *mapper.Schema, schemas *mapper.Schemas) error { +func (t *typeConverter) ModifySchema(schema *mapper.Schema, _ *mapper.Schemas) error { for name, field := range schema.ResourceFields { if field.Type == t.fieldType { t.mappers = append(t.mappers, fieldConverter{ diff --git a/pkg/config/cos_test.go b/pkg/config/cos_test.go index 6a3124079..8fa32d34a 100644 --- a/pkg/config/cos_test.go +++ b/pkg/config/cos_test.go @@ -40,17 +40,17 @@ func TestCalcCosPersistentPartSize(t *testing.T) { { diskSize: 300, partitionSize: "153600Ki", - err: "Partition size must end with 'Mi' or 'Gi'. Decimals and negatives are not allowed.", + err: "Partition size must end with 'Mi' or 'Gi'. Decimals and negatives are not allowed", }, { diskSize: 2000, partitionSize: "1.5Ti", - err: "Partition size must end with 'Mi' or 'Gi'. Decimals and negatives are not allowed.", + err: "Partition size must end with 'Mi' or 'Gi'. Decimals and negatives are not allowed", }, { diskSize: 500, partitionSize: "abcd", - err: "Partition size must end with 'Mi' or 'Gi'. Decimals and negatives are not allowed.", + err: "Partition size must end with 'Mi' or 'Gi'. Decimals and negatives are not allowed", }, } diff --git a/pkg/config/rename.go b/pkg/config/rename.go index 8debc7617..c8b236c1e 100644 --- a/pkg/config/rename.go +++ b/pkg/config/rename.go @@ -28,7 +28,7 @@ func (f *FuzzyNames) addName(name, toName string) { f.names[strings.ToLower(convert.ToYAMLKey(name))] = toName } -func (f *FuzzyNames) ModifySchema(schema *mapper.Schema, schemas *mapper.Schemas) error { +func (f *FuzzyNames) ModifySchema(schema *mapper.Schema, _ *mapper.Schemas) error { f.names = map[string]string{} for name := range schema.ResourceFields { diff --git a/pkg/console/console.go b/pkg/console/console.go index f6eeffdc0..47d0978b8 100644 --- a/pkg/console/console.go +++ b/pkg/console/console.go @@ -174,6 +174,6 @@ func setGlobalKeyBindings(g *gocui.Gui) error { return nil } -func quit(g *gocui.Gui, v *gocui.View) error { +func quit(_ *gocui.Gui, _ *gocui.View) error { return gocui.ErrQuit } diff --git a/pkg/console/dashboard_panels.go b/pkg/console/dashboard_panels.go index 3acf15234..a3fdc3237 100644 --- a/pkg/console/dashboard_panels.go +++ b/pkg/console/dashboard_panels.go @@ -171,7 +171,7 @@ func logoPanel(g *gocui.Gui) error { return nil } -func toShell(g *gocui.Gui, v *gocui.View) error { +func toShell(g *gocui.Gui, _ *gocui.View) error { g.Cursor = true maxX, _ := g.Size() adminPasswordFrameV := widgets.NewPanel(g, "adminPasswordFrame") @@ -191,7 +191,7 @@ func toShell(g *gocui.Gui, v *gocui.View) error { validatorV.Focus = false adminPasswordV.KeyBindings = map[gocui.Key]func(*gocui.Gui, *gocui.View) error{ - gocui.KeyEnter: func(g *gocui.Gui, v *gocui.View) error { + gocui.KeyEnter: func(_ *gocui.Gui, _ *gocui.View) error { passwd, err := adminPasswordV.GetData() if err != nil { return err @@ -205,7 +205,7 @@ func toShell(g *gocui.Gui, v *gocui.View) error { validatorV.SetContent("Invalid credential or password hash algorithm not supported.") return nil }, - gocui.KeyEsc: func(g *gocui.Gui, v *gocui.View) error { + gocui.KeyEsc: func(g *gocui.Gui, _ *gocui.View) error { g.Cursor = false if err := adminPasswordFrameV.Close(); err != nil { return err diff --git a/pkg/console/helper.go b/pkg/console/helper.go index 95131f5f9..a9f849be4 100644 --- a/pkg/console/helper.go +++ b/pkg/console/helper.go @@ -13,7 +13,7 @@ type passwordWrapper struct { passwordConfirmV *widgets.Input } -func (p *passwordWrapper) passwordVConfirmKeyBinding(g *gocui.Gui, v *gocui.View) error { +func (p *passwordWrapper) passwordVConfirmKeyBinding(_ *gocui.Gui, _ *gocui.View) error { password1V, err := p.c.GetElement(passwordPanel) if err != nil { return err @@ -28,7 +28,7 @@ func (p *passwordWrapper) passwordVConfirmKeyBinding(g *gocui.Gui, v *gocui.View return showNext(p.c, passwordConfirmPanel) } -func (p *passwordWrapper) passwordVEscapeKeyBinding(g *gocui.Gui, v *gocui.View) error { +func (p *passwordWrapper) passwordVEscapeKeyBinding(_ *gocui.Gui, _ *gocui.View) error { p.passwordV.Close() p.passwordConfirmV.Close() if installModeOnly { @@ -40,7 +40,7 @@ func (p *passwordWrapper) passwordVEscapeKeyBinding(g *gocui.Gui, v *gocui.View) return showNext(p.c, tokenPanel) } -func (p *passwordWrapper) passwordConfirmVArrowUpKeyBinding(g *gocui.Gui, v *gocui.View) error { +func (p *passwordWrapper) passwordConfirmVArrowUpKeyBinding(_ *gocui.Gui, _ *gocui.View) error { var err error userInputData.PasswordConfirm, err = p.passwordConfirmV.GetData() if err != nil { @@ -49,7 +49,7 @@ func (p *passwordWrapper) passwordConfirmVArrowUpKeyBinding(g *gocui.Gui, v *goc return showNext(p.c, passwordPanel) } -func (p *passwordWrapper) passwordConfirmVKeyEnter(g *gocui.Gui, v *gocui.View) error { +func (p *passwordWrapper) passwordConfirmVKeyEnter(_ *gocui.Gui, _ *gocui.View) error { var err error userInputData.PasswordConfirm, err = p.passwordConfirmV.GetData() if err != nil { @@ -72,7 +72,7 @@ func (p *passwordWrapper) passwordConfirmVKeyEnter(g *gocui.Gui, v *gocui.View) return showNext(p.c, ntpServersPanel) } -func (p *passwordWrapper) passwordConfirmVKeyEscape(g *gocui.Gui, v *gocui.View) error { +func (p *passwordWrapper) passwordConfirmVKeyEscape(_ *gocui.Gui, _ *gocui.View) error { p.passwordV.Close() p.passwordConfirmV.Close() if err := p.c.setContentByName(notePanel, ""); err != nil { diff --git a/pkg/console/install_panels.go b/pkg/console/install_panels.go index 1fc061d8f..a6cbfee93 100644 --- a/pkg/console/install_panels.go +++ b/pkg/console/install_panels.go @@ -423,7 +423,7 @@ func addDiskPanel(c *Console) error { return false, updateValidatorMessage(err.Error()) } } - return true, nil; + return true, nil } closeThisPage := func() { c.CloseElements( @@ -436,15 +436,15 @@ func addDiskPanel(c *Console) error { persistentSizePanel, ) } - gotoPrevPage := func(g *gocui.Gui, v *gocui.View) error { + gotoPrevPage := func(_ *gocui.Gui, _ *gocui.View) error { closeThisPage() diskConfirmed = false return showNext(c, askCreatePanel) } - gotoNextPage := func(g *gocui.Gui, v *gocui.View) error { + gotoNextPage := func(_ *gocui.Gui, _ *gocui.View) error { // Don't proceed to the next page if disk size validation fails if valid, err := validateAllDiskSizes(); !valid || err != nil { - return err; + return err } installDisk := c.config.Install.Device @@ -474,7 +474,7 @@ func addDiskPanel(c *Console) error { return showHostnamePage(c) } - diskConfirm := func(g *gocui.Gui, v *gocui.View) error { + diskConfirm := func(_ *gocui.Gui, _ *gocui.View) error { device, err := diskV.GetData() if err != nil { return err @@ -492,7 +492,7 @@ func addDiskPanel(c *Console) error { if len(diskOpts) > 1 { // Show error if disk size validation fails, but allow proceeding to next field if _, err := validateAllDiskSizes(); err != nil { - return err; + return err } if device == dataDisk { return showNext(c, persistentSizePanel, dataDiskPanel) @@ -505,7 +505,7 @@ func addDiskPanel(c *Console) error { } // Show error if disk size validation fails, but allow proceeding to next field if _, err := validateAllDiskSizes(); err != nil { - return err; + return err } return showNext(c, persistentSizePanel) } @@ -513,7 +513,7 @@ func addDiskPanel(c *Console) error { diskV.KeyBindings = map[gocui.Key]func(*gocui.Gui, *gocui.View) error{ gocui.KeyEnter: diskConfirm, gocui.KeyArrowDown: diskConfirm, - gocui.KeyArrowUp: func(g *gocui.Gui, v *gocui.View) error { + gocui.KeyArrowUp: func(_ *gocui.Gui, _ *gocui.View) error { return updateValidatorMessage("") }, gocui.KeyEsc: gotoPrevPage, @@ -540,7 +540,7 @@ func addDiskPanel(c *Console) error { } // Show error if disk size validation fails, but allow proceeding to next field if _, err := validateAllDiskSizes(); err != nil { - return err; + return err } return showNext(c, persistentSizePanel) } @@ -557,7 +557,7 @@ func addDiskPanel(c *Console) error { dataDiskV.KeyBindings = map[gocui.Key]func(*gocui.Gui, *gocui.View) error{ gocui.KeyEnter: dataDiskConfirm, gocui.KeyArrowDown: dataDiskConfirm, - gocui.KeyArrowUp: func(g *gocui.Gui, v *gocui.View) error { + gocui.KeyArrowUp: func(_ *gocui.Gui, _ *gocui.View) error { if err := updateValidatorMessage(""); err != nil { return err } @@ -584,7 +584,7 @@ func addDiskPanel(c *Console) error { } persistentSizeV.KeyBindings = map[gocui.Key]func(*gocui.Gui, *gocui.View) error{ gocui.KeyEnter: persistentSizeConfirm, - gocui.KeyArrowUp: func(g *gocui.Gui, v *gocui.View) error { + gocui.KeyArrowUp: func(_ *gocui.Gui, _ *gocui.View) error { diskConfirmed = false if len(diskOpts) > 1 { if err := updateValidatorMessage(""); err != nil { @@ -627,7 +627,7 @@ func addDiskPanel(c *Console) error { } askForceMBRV.KeyBindings = map[gocui.Key]func(*gocui.Gui, *gocui.View) error{ gocui.KeyEnter: mbrConfirm, - gocui.KeyArrowUp: func(g *gocui.Gui, v *gocui.View) error { + gocui.KeyArrowUp: func(_ *gocui.Gui, _ *gocui.View) error { diskConfirmed = false disk, err := diskV.GetData() @@ -699,7 +699,7 @@ func addAskCreatePanel(c *Console) error { return c.setContentByName(titlePanel, "Choose installation mode") } askCreateV.KeyBindings = map[gocui.Key]func(*gocui.Gui, *gocui.View) error{ - gocui.KeyEnter: func(g *gocui.Gui, v *gocui.View) error { + gocui.KeyEnter: func(_ *gocui.Gui, _ *gocui.View) error { selected, err := askCreateV.GetData() if err != nil { return err @@ -756,7 +756,7 @@ func addServerURLPanel(c *Console) error { return c.setContentByName(notePanel, serverURLNote) } serverURLV.KeyBindings = map[gocui.Key]func(*gocui.Gui, *gocui.View) error{ - gocui.KeyEnter: func(g *gocui.Gui, v *gocui.View) error { + gocui.KeyEnter: func(_ *gocui.Gui, _ *gocui.View) error { asyncTaskV, err := c.GetElement(spinnerPanel) if err != nil { return err @@ -787,21 +787,21 @@ func addServerURLPanel(c *Console) error { go func(g *gocui.Gui) { if err = validatePingServerURL(pingServerURL); err != nil { spinner.Stop(true, err.Error()) - g.Update(func(g *gocui.Gui) error { + g.Update(func(_ *gocui.Gui) error { return showNext(c, serverURLPanel) }) return } spinner.Stop(false, "") c.config.ServerURL = fmtServerURL - g.Update(func(g *gocui.Gui) error { + g.Update(func(_ *gocui.Gui) error { serverURLV.Close() return showNext(c, tokenPanel) }) }(c.Gui) return nil }, - gocui.KeyEsc: func(g *gocui.Gui, v *gocui.View) error { + gocui.KeyEsc: func(g *gocui.Gui, _ *gocui.View) error { g.Cursor = false serverURLV.Close() return showNext(c, dnsServersPanel) @@ -888,7 +888,7 @@ func addSSHKeyPanel(c *Console) error { return showNext(c, cloudInitPanel) } sshKeyV.KeyBindings = map[gocui.Key]func(*gocui.Gui, *gocui.View) error{ - gocui.KeyEnter: func(g *gocui.Gui, v *gocui.View) error { + gocui.KeyEnter: func(_ *gocui.Gui, _ *gocui.View) error { url, err := sshKeyV.GetData() if err != nil { return err @@ -911,7 +911,7 @@ func addSSHKeyPanel(c *Console) error { pubKeys, err := getRemoteSSHKeys(url) if err != nil { spinner.Stop(true, err.Error()) - g.Update(func(g *gocui.Gui) error { + g.Update(func(_ *gocui.Gui) error { return showNext(c, sshKeyPanel) }) return @@ -919,7 +919,7 @@ func addSSHKeyPanel(c *Console) error { spinner.Stop(false, "") logrus.Debug("SSH public keys: ", pubKeys) c.config.SSHAuthorizedKeys = pubKeys - g.Update(func(g *gocui.Gui) error { + g.Update(func(_ *gocui.Gui) error { return gotoNextPage() }) }(c.Gui) @@ -927,7 +927,7 @@ func addSSHKeyPanel(c *Console) error { } return gotoNextPage() }, - gocui.KeyEsc: func(g *gocui.Gui, v *gocui.View) error { + gocui.KeyEsc: func(_ *gocui.Gui, _ *gocui.View) error { closeThisPage() return showNext(c, proxyPanel) }, @@ -968,7 +968,7 @@ func addTokenPanel(c *Console) error { return tokenV.Close() } tokenV.KeyBindings = map[gocui.Key]func(*gocui.Gui, *gocui.View) error{ - gocui.KeyEnter: func(g *gocui.Gui, v *gocui.View) error { + gocui.KeyEnter: func(_ *gocui.Gui, _ *gocui.View) error { token, err := tokenV.GetData() if err != nil { return err @@ -983,7 +983,7 @@ func addTokenPanel(c *Console) error { closeThisPage() return showNext(c, passwordConfirmPanel, passwordPanel) }, - gocui.KeyEsc: func(g *gocui.Gui, v *gocui.View) error { + gocui.KeyEsc: func(g *gocui.Gui, _ *gocui.View) error { closeThisPage() if c.config.Install.Mode == config.ModeCreate { g.Cursor = false @@ -1038,7 +1038,7 @@ func addHostnamePanel(c *Console) error { return showNetworkPage(c) } - prev := func(g *gocui.Gui, v *gocui.View) error { + prev := func(_ *gocui.Gui, _ *gocui.View) error { c.CloseElements(hostnamePanel, hostnameValidatorPanel) if alreadyInstalled { return showNext(c, askCreatePanel) @@ -1070,7 +1070,7 @@ func addHostnamePanel(c *Console) error { } hostnameV.KeyBindings = map[gocui.Key]func(*gocui.Gui, *gocui.View) error{ gocui.KeyArrowUp: prev, - gocui.KeyEnter: func(g *gocui.Gui, v *gocui.View) error { + gocui.KeyEnter: func(_ *gocui.Gui, _ *gocui.View) error { message, err := validate() if err != nil { return err @@ -1154,7 +1154,7 @@ func addNetworkPanel(c *Console) error { } gotoNextPanel := func(c *Console, name []string, hooks ...func() (string, error)) func(g *gocui.Gui, v *gocui.View) error { - return func(g *gocui.Gui, v *gocui.View) error { + return func(_ *gocui.Gui, _ *gocui.View) error { c.CloseElement(networkValidatorPanel) for _, hook := range hooks { msg, err := hook() @@ -1240,12 +1240,12 @@ func addNetworkPanel(c *Console) error { spinner.Stop(isErr, errMsg) // Go back to the panel that triggered gotoNextPage - g.Update(func(g *gocui.Gui) error { + g.Update(func(_ *gocui.Gui) error { return showNext(c, fromPanel) }) } else { spinner.Stop(false, "") - g.Update(func(g *gocui.Gui) error { + g.Update(func(_ *gocui.Gui) error { closeThisPage() return showNext(c, getNextPagePanel()...) }) @@ -1254,7 +1254,7 @@ func addNetworkPanel(c *Console) error { return nil } - gotoPrevPage := func(g *gocui.Gui, v *gocui.View) error { + gotoPrevPage := func(_ *gocui.Gui, _ *gocui.View) error { closeThisPage() return showHostnamePage(c) } @@ -1352,7 +1352,7 @@ func addNetworkPanel(c *Console) error { } return nil } - askBondModeVConfirm := func(g *gocui.Gui, v *gocui.View) error { + askBondModeVConfirm := func(_ *gocui.Gui, _ *gocui.View) error { mode, err := askBondModeV.GetData() mgmtNetwork.BondOptions = map[string]string{ "mode": mode, @@ -1379,7 +1379,7 @@ func addNetworkPanel(c *Console) error { c.AddElement(askBondModePanel, askBondModeV) // askNetworkMethodV - askNetworkMethodVConfirm := func(g *gocui.Gui, _ *gocui.View) error { + askNetworkMethodVConfirm := func(_ *gocui.Gui, _ *gocui.View) error { selected, err := askNetworkMethodV.GetData() if err != nil { return err @@ -1503,7 +1503,7 @@ func addNetworkPanel(c *Console) error { mgmtNetwork.MTU = mtu return "", nil } - mtuVConfirm := func(g *gocui.Gui, v *gocui.View) error { + mtuVConfirm := func(_ *gocui.Gui, _ *gocui.View) error { msg, err := validateMTU() if err != nil { return err @@ -1615,7 +1615,7 @@ func addProxyPanel(c *Console) error { return c.setContentByName(notePanel, proxyNote) } proxyV.KeyBindings = map[gocui.Key]func(*gocui.Gui, *gocui.View) error{ - gocui.KeyEnter: func(g *gocui.Gui, v *gocui.View) error { + gocui.KeyEnter: func(_ *gocui.Gui, _ *gocui.View) error { proxy, err := proxyV.GetData() if err != nil { return err @@ -1635,7 +1635,7 @@ func addProxyPanel(c *Console) error { noteV.Close() return showNext(c, sshKeyPanel) }, - gocui.KeyEsc: func(g *gocui.Gui, v *gocui.View) error { + gocui.KeyEsc: func(_ *gocui.Gui, _ *gocui.View) error { proxyV.Close() c.CloseElement(notePanel) return showNext(c, ntpServersPanel) @@ -1660,7 +1660,7 @@ func addCloudInitPanel(c *Console) error { return showNext(c, confirmInstallPanel) } cloudInitV.KeyBindings = map[gocui.Key]func(*gocui.Gui, *gocui.View) error{ - gocui.KeyEnter: func(g *gocui.Gui, v *gocui.View) error { + gocui.KeyEnter: func(_ *gocui.Gui, _ *gocui.View) error { configURL, err := cloudInitV.GetData() if err != nil { return err @@ -1680,13 +1680,13 @@ func addCloudInitPanel(c *Console) error { go func(g *gocui.Gui) { if _, err = getRemoteConfig(configURL); err != nil { spinner.Stop(true, err.Error()) - g.Update(func(g *gocui.Gui) error { + g.Update(func(_ *gocui.Gui) error { return showNext(c, cloudInitPanel) }) return } spinner.Stop(false, "") - g.Update(func(g *gocui.Gui) error { + g.Update(func(_ *gocui.Gui) error { return gotoNextPage() }) }(c.Gui) @@ -1694,7 +1694,7 @@ func addCloudInitPanel(c *Console) error { } return gotoNextPage() }, - gocui.KeyEsc: func(g *gocui.Gui, v *gocui.View) error { + gocui.KeyEsc: func(_ *gocui.Gui, _ *gocui.View) error { cloudInitV.Close() return showNext(c, sshKeyPanel) }, @@ -1760,7 +1760,7 @@ func addConfirmInstallPanel(c *Console) error { return c.setContentByName(titlePanel, "Confirm installation options") } confirmV.KeyBindings = map[gocui.Key]func(*gocui.Gui, *gocui.View) error{ - gocui.KeyEnter: func(g *gocui.Gui, v *gocui.View) error { + gocui.KeyEnter: func(_ *gocui.Gui, _ *gocui.View) error { confirmed, err := confirmV.GetData() if err != nil { return err @@ -1775,7 +1775,7 @@ func addConfirmInstallPanel(c *Console) error { confirmV.Close() return showNext(c, installPanel) }, - gocui.KeyEsc: func(g *gocui.Gui, v *gocui.View) error { + gocui.KeyEsc: func(_ *gocui.Gui, _ *gocui.View) error { confirmV.Close() if installModeOnly { return showNext(c, passwordConfirmPanel, passwordPanel) @@ -1807,7 +1807,7 @@ func addConfirmUpgradePanel(c *Console) error { return c.setContentByName(titlePanel, fmt.Sprintf("Confirm upgrading Harvester to %s?", version.Version)) } confirmV.KeyBindings = map[gocui.Key]func(*gocui.Gui, *gocui.View) error{ - gocui.KeyEnter: func(g *gocui.Gui, v *gocui.View) error { + gocui.KeyEnter: func(_ *gocui.Gui, _ *gocui.View) error { confirmed, err := confirmV.GetData() if err != nil { return err @@ -1818,7 +1818,7 @@ func addConfirmUpgradePanel(c *Console) error { } return showNext(c, upgradePanel) }, - gocui.KeyEsc: func(g *gocui.Gui, v *gocui.View) error { + gocui.KeyEsc: func(_ *gocui.Gui, _ *gocui.View) error { confirmV.Close() return showNext(c, askCreatePanel) }, @@ -1980,15 +1980,15 @@ func addVIPPanel(c *Console) error { vipTextPanel) } - gotoPrevPage := func(g *gocui.Gui, v *gocui.View) error { + gotoPrevPage := func(_ *gocui.Gui, _ *gocui.View) error { closeThisPage() return showNext(c, dnsServersPanel) } - gotoNextPage := func(g *gocui.Gui, v *gocui.View) error { + gotoNextPage := func(_ *gocui.Gui, _ *gocui.View) error { closeThisPage() return showNext(c, tokenPanel) } - gotoVipPanel := func(g *gocui.Gui, v *gocui.View) error { + gotoVipPanel := func(g *gocui.Gui, _ *gocui.View) error { selected, err := askVipMethodV.GetData() if err != nil { return err @@ -2001,7 +2001,7 @@ func addVIPPanel(c *Console) error { vip, err := getVipThroughDHCP(mgmtName) if err != nil { spinner.Stop(true, err.Error()) - g.Update(func(g *gocui.Gui) error { + g.Update(func(_ *gocui.Gui) error { return showNext(c, askVipMethodPanel) }) return @@ -2010,13 +2010,13 @@ func addVIPPanel(c *Console) error { c.config.Vip = vip.ipv4Addr c.config.VipMode = selected c.config.VipHwAddr = vip.hwAddr - g.Update(func(g *gocui.Gui) error { + g.Update(func(_ *gocui.Gui) error { return vipV.SetData(vip.ipv4Addr) }) }(c.Gui) } else { vipTextV.SetContent("") - g.Update(func(gui *gocui.Gui) error { + g.Update(func(_ *gocui.Gui) error { return vipV.SetData("") }) c.config.VipMode = config.NetworkMethodStatic @@ -2054,7 +2054,7 @@ func addVIPPanel(c *Console) error { return gotoNextPage(g, v) } - gotoAskVipMethodPanel := func(g *gocui.Gui, v *gocui.View) error { + gotoAskVipMethodPanel := func(_ *gocui.Gui, _ *gocui.View) error { return showNext(c, askVipMethodPanel) } askVipMethodV.KeyBindings = map[gocui.Key]func(*gocui.Gui, *gocui.View) error{ @@ -2109,7 +2109,7 @@ func addNTPServersPanel(c *Console) error { c.CloseElement(notePanel) return ntpServersV.Close() } - gotoPrevPage := func(g *gocui.Gui, v *gocui.View) error { + gotoPrevPage := func(_ *gocui.Gui, _ *gocui.View) error { userInputData.HasCheckedNTPServers = false closeThisPage() return showNext(c, passwordConfirmPanel, passwordPanel) @@ -2121,13 +2121,13 @@ func addNTPServersPanel(c *Console) error { } gotoSpinnerErrorPage := func(g *gocui.Gui, spinner *Spinner, msg string) { spinner.Stop(true, msg) - g.Update(func(g *gocui.Gui) error { + g.Update(func(_ *gocui.Gui) error { return showNext(c, ntpServersPanel) }) } ntpServersV.KeyBindings = map[gocui.Key]func(*gocui.Gui, *gocui.View) error{ - gocui.KeyEnter: func(g *gocui.Gui, v *gocui.View) error { + gocui.KeyEnter: func(_ *gocui.Gui, _ *gocui.View) error { // get ntp servers input ntpServers, err := ntpServersV.GetData() if err != nil { @@ -2182,7 +2182,7 @@ func addNTPServersPanel(c *Console) error { } spinner.Stop(false, "") - g.Update(func(g *gocui.Gui) error { + g.Update(func(_ *gocui.Gui) error { return gotoNextPage() }) }(c.Gui) @@ -2224,7 +2224,7 @@ func addDNSServersPanel(c *Console) error { c.CloseElement(notePanel) return dnsServersV.Close() } - gotoPrevPage := func(g *gocui.Gui, v *gocui.View) error { + gotoPrevPage := func(_ *gocui.Gui, _ *gocui.View) error { closeThisPage() return showNetworkPage(c) } @@ -2237,13 +2237,13 @@ func addDNSServersPanel(c *Console) error { } gotoSpinnerErrorPage := func(g *gocui.Gui, spinner *Spinner, msg string) { spinner.Stop(true, msg) - g.Update(func(g *gocui.Gui) error { + g.Update(func(_ *gocui.Gui) error { return showNext(c, dnsServersPanel) }) } dnsServersV.KeyBindings = map[gocui.Key]func(*gocui.Gui, *gocui.View) error{ - gocui.KeyEnter: func(g *gocui.Gui, v *gocui.View) error { + gocui.KeyEnter: func(_ *gocui.Gui, _ *gocui.View) error { // init asyncTaskV asyncTaskV, err := c.GetElement(spinnerPanel) if err != nil { @@ -2287,7 +2287,7 @@ func addDNSServersPanel(c *Console) error { c.config.OS.DNSNameservers = dnsServerList } spinner.Stop(false, "") - g.Update(func(g *gocui.Gui) error { + g.Update(func(_ *gocui.Gui) error { return gotoNextPage() }) }(c.Gui) diff --git a/pkg/console/util_test.go b/pkg/console/util_test.go index 71256ec3b..b212c5039 100644 --- a/pkg/console/util_test.go +++ b/pkg/console/util_test.go @@ -39,7 +39,7 @@ func TestGetSSHKeysFromURL(t *testing.T) { for _, testCase := range testCases { t.Run(testCase.name, func(t *testing.T) { - ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) { fmt.Fprintln(w, testCase.httpResp) })) defer ts.Close() diff --git a/pkg/console/webhooks_test.go b/pkg/console/webhooks_test.go index bfeb48da4..dc6ff1db4 100644 --- a/pkg/console/webhooks_test.go +++ b/pkg/console/webhooks_test.go @@ -150,7 +150,7 @@ func TestParsedWebhook_Send(t *testing.T) { if tt.fields.TLS { newTestServer = httptest.NewTLSServer } - ts := newTestServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + ts := newTestServer(http.HandlerFunc(func(_ http.ResponseWriter, r *http.Request) { recorder.Method = r.Method recorder.Headers = dupHeaders(r.Header) defer r.Body.Close() diff --git a/pkg/util/disk.go b/pkg/util/disk.go index d5e9f417e..a2cad4647 100644 --- a/pkg/util/disk.go +++ b/pkg/util/disk.go @@ -22,7 +22,7 @@ func ParsePartitionSize(diskSizeBytes uint64, partitionSize string) (uint64, err actualDiskSizeBytes := diskSizeBytes - fixedOccupiedSize if !sizeRegexp.MatchString(partitionSize) { - return 0, fmt.Errorf("Partition size must end with 'Mi' or 'Gi'. Decimals and negatives are not allowed.") + return 0, fmt.Errorf("Partition size must end with 'Mi' or 'Gi'. Decimals and negatives are not allowed") } size, err := strconv.ParseUint(partitionSize[:len(partitionSize)-2], 10, 64) diff --git a/pkg/util/disk_test.go b/pkg/util/disk_test.go index 0099cd905..7f368722a 100644 --- a/pkg/util/disk_test.go +++ b/pkg/util/disk_test.go @@ -51,22 +51,22 @@ func TestParsePartitionSize(t *testing.T) { { diskSize: 2000 * GiByteMultiplier, partitionSize: "abcd", - err: "Partition size must end with 'Mi' or 'Gi'. Decimals and negatives are not allowed.", + err: "Partition size must end with 'Mi' or 'Gi'. Decimals and negatives are not allowed", }, { diskSize: 2000 * GiByteMultiplier, partitionSize: "1Ti", - err: "Partition size must end with 'Mi' or 'Gi'. Decimals and negatives are not allowed.", + err: "Partition size must end with 'Mi' or 'Gi'. Decimals and negatives are not allowed", }, { diskSize: 2000 * GiByteMultiplier, partitionSize: "50Ki", - err: "Partition size must end with 'Mi' or 'Gi'. Decimals and negatives are not allowed.", + err: "Partition size must end with 'Mi' or 'Gi'. Decimals and negatives are not allowed", }, { diskSize: 2000 * GiByteMultiplier, partitionSize: "5.5", - err: "Partition size must end with 'Mi' or 'Gi'. Decimals and negatives are not allowed.", + err: "Partition size must end with 'Mi' or 'Gi'. Decimals and negatives are not allowed", }, { diskSize: 400 * GiByteMultiplier, diff --git a/pkg/widgets/dropdown.go b/pkg/widgets/dropdown.go index d1902589e..07643d611 100644 --- a/pkg/widgets/dropdown.go +++ b/pkg/widgets/dropdown.go @@ -88,7 +88,7 @@ func (d *DropDown) Show() error { d.Text = d.Select.options[0].Text } } - err = d.g.SetKeybinding(d.ViewName, gocui.KeyTab, gocui.ModNone, func(g *gocui.Gui, v *gocui.View) error { + err = d.g.SetKeybinding(d.ViewName, gocui.KeyTab, gocui.ModNone, func(_ *gocui.Gui, _ *gocui.View) error { d.Select.Value = d.Value d.Select.Panel.SetLocation(x0, y0, x1, y0+1) return d.Select.Show() @@ -122,7 +122,7 @@ func (d *DropDown) Show() error { } return d.KeyBindings[gocui.KeyEnter](g, v) } - d.Select.KeyBindings[gocui.KeyEsc] = func(g *gocui.Gui, v *gocui.View) error { + d.Select.KeyBindings[gocui.KeyEsc] = func(_ *gocui.Gui, _ *gocui.View) error { if err = d.Select.Close(); err != nil { return err } diff --git a/pkg/widgets/select.go b/pkg/widgets/select.go index 006b75e8a..d63708785 100644 --- a/pkg/widgets/select.go +++ b/pkg/widgets/select.go @@ -201,7 +201,7 @@ func (s *Select) updateSelectedStatus(v *gocui.View) error { func (s *Select) setOptionsKeyBindings(viewName string) error { setOptionsKeyBindings(s.g, viewName) if s.multi { - handler := func(g *gocui.Gui, v *gocui.View) error { + handler := func(_ *gocui.Gui, v *gocui.View) error { _, cy := v.Cursor() if len(s.options) >= cy+1 { s.selectedIndexes[cy] = !s.selectedIndexes[cy] diff --git a/pkg/widgets/util.go b/pkg/widgets/util.go index e25d82325..1ae90b6c2 100644 --- a/pkg/widgets/util.go +++ b/pkg/widgets/util.go @@ -4,7 +4,7 @@ import ( "github.com/jroimartin/gocui" ) -func ArrowUp(g *gocui.Gui, v *gocui.View) error { +func ArrowUp(_ *gocui.Gui, v *gocui.View) error { if v == nil || isAtTop(v) { return nil } @@ -19,7 +19,7 @@ func ArrowUp(g *gocui.Gui, v *gocui.View) error { return nil } -func ArrowDown(g *gocui.Gui, v *gocui.View) error { +func ArrowDown(_ *gocui.Gui, v *gocui.View) error { if v == nil || isAtEnd(v) { return nil }