From 45950e4aff5278292376cd90142f1d87929b7a57 Mon Sep 17 00:00:00 2001
From: Victor Morales <chipahuac@hotmail.com>
Date: Wed, 12 Feb 2025 22:16:42 -0800
Subject: [PATCH] Fix linting issues

---
 .github/workflows/linter.yml |  6 ++----
 .github/workflows/update.yml |  1 +
 .golangci.yml                | 24 +++++++++++++++---------
 Makefile                     |  2 +-
 cmd/kar/app/root.go          |  1 +
 cmd/kar/app/root_test.go     |  8 ++++----
 cmd/kar/main.go              |  6 +++++-
 7 files changed, 29 insertions(+), 19 deletions(-)

diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml
index 2b72557..feef268 100644
--- a/.github/workflows/linter.yml
+++ b/.github/workflows/linter.yml
@@ -11,6 +11,7 @@ name: Lint Code Base
 on:
   push:
   pull_request:
+permissions: read-all
 jobs:
   get-sloc:
     name: Count Lines of Code
@@ -42,7 +43,4 @@ jobs:
         env:
           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
           LINTER_RULES_PATH: /
-          VALIDATE_CHECKOV: false
-          VALIDATE_GOOGLE_JAVA_FORMAT: false
-          VALIDATE_JAVA: false
-          VALIDATE_KUBERNETES_KUBECONFORM: false
+          VALIDATE_GO: false
diff --git a/.github/workflows/update.yml b/.github/workflows/update.yml
index 93f6381..af4b74b 100644
--- a/.github/workflows/update.yml
+++ b/.github/workflows/update.yml
@@ -12,6 +12,7 @@ on:
   schedule:
     - cron: "0 0 * * 5"
   workflow_dispatch:
+permissions: read-all
 jobs:
   check-versions:
     permissions:
diff --git a/.golangci.yml b/.golangci.yml
index db19522..943e271 100644
--- a/.golangci.yml
+++ b/.golangci.yml
@@ -10,22 +10,28 @@ linters:
   enable-all: true
   disable:
     - exportloopref # Deprecated (since v1.60.2) due to: Since Go1.22 (loopvar) this linter is no longer relevant. Replaced by copyloopvar.
-    - gomnd # Deprecated (since v1.58.0) due to: The linter has been renamed. Replaced by mnd.
-    - execinquery # Deprecated (since v1.58.0) due to: The repository of the linter has been archived by the owner.
     - exhaustruct
 linters-settings:
   depguard:
     rules:
       prevent_unmaintained_packages:
-        list-mode: lax # allow unless explicitely denied
-        files:
-          - $all
-          - "!$test"
         allow:
           - $gostd
-        deny:
-          - pkg: io/ioutil
-            desc: "replaced by io and os packages since Go 1.16: https://tip.golang.org/doc/go1.16#ioutil"
+          - github.com/electrocucaracha/kubevirt-actions-runner/cmd/kar/app
+          - github.com/electrocucaracha/kubevirt-actions-runner/internal
+          - github.com/golang/mock/gomock
+          - github.com/pkg/errors
+          - github.com/spf13/cobra
+          - github.com/spf13/pflag
+          - github.com/spf13/viper
+          - k8s.io/api/core/v1
+          - k8s.io/apimachinery/pkg/apis/meta/v1
+          - k8s.io/utils/ptr
+          - kubevirt.io/api/core/v1
+          - kubevirt.io/client-go/containerizeddataimporter/fake
+          - kubevirt.io/client-go/kubecli
+          - kubevirt.io/client-go/kubevirt/fake
+          - kubevirt.io/containerized-data-importer-api/pkg/apis/core/v1beta1
   gomoddirectives:
     replace-allow-list:
       - k8s.io/kube-openapi
diff --git a/Makefile b/Makefile
index 935ff03..8f67b74 100644
--- a/Makefile
+++ b/Makefile
@@ -17,8 +17,8 @@ lint:
 	sudo -E $(DOCKER_CMD) run --rm -v $$(pwd):/tmp/lint \
 	-e RUN_LOCAL=true \
 	-e LINTER_RULES_PATH=/ \
-	-e VALIDATE_KUBERNETES_KUBEVAL=false \
 	-e KUBERNETES_KUBECONFORM_OPTIONS='-ignore-missing-schemas' \
+	-e VALIDATE_GO=false \
 	ghcr.io/super-linter/super-linter
 
 .PHONY: fmt
diff --git a/cmd/kar/app/root.go b/cmd/kar/app/root.go
index d65dc14..8d8a1de 100644
--- a/cmd/kar/app/root.go
+++ b/cmd/kar/app/root.go
@@ -45,6 +45,7 @@ func run(ctx context.Context, runner runner.Runner, opts Opts) error {
 	if err := runner.CreateResources(ctx, opts.VMTemplate, opts.RunnerName, opts.JitConfig); err != nil {
 		return errors.Wrap(err, "fail to create resources")
 	}
+
 	if err := runner.WaitForVirtualMachineInstance(ctx, runner.GetVMIName()); err != nil {
 		return errors.Wrap(err, "fail to wait for resources")
 	}
diff --git a/cmd/kar/app/root_test.go b/cmd/kar/app/root_test.go
index 8b943a8..300279f 100644
--- a/cmd/kar/app/root_test.go
+++ b/cmd/kar/app/root_test.go
@@ -19,7 +19,6 @@ package app_test
 import (
 	"context"
 	"errors"
-
 	"slices"
 
 	"github.com/electrocucaracha/kubevirt-actions-runner/cmd/kar/app"
@@ -96,14 +95,15 @@ var _ = Describe("Root Command", func() {
 
 	DescribeTable("initialization process", func(shouldSucceed bool, failure Failure, args ...string) {
 		cmd.SetArgs(args)
+		expectedFailure := errors.New("failure")
 		if HasOneOf(failure, Create) {
-			runner.createErr = errors.New("create failure")
+			runner.createErr = expectedFailure
 		}
 		if HasOneOf(failure, Delete) {
-			runner.deleteErr = errors.New("delete failure")
+			runner.deleteErr = expectedFailure
 		}
 		if HasOneOf(failure, Wait) {
-			runner.waitErr = errors.New("wait failure")
+			runner.waitErr = expectedFailure
 		}
 
 		err := cmd.Execute()
diff --git a/cmd/kar/main.go b/cmd/kar/main.go
index 02e2d8d..33630b4 100644
--- a/cmd/kar/main.go
+++ b/cmd/kar/main.go
@@ -87,7 +87,11 @@ func main() {
 
 	go func() {
 		<-ctx.Done()
-		runner.DeleteResources(ctx, runner.GetVMIName(), runner.GetDataVolumeName())
+
+		if err := runner.DeleteResources(ctx, runner.GetVMIName(), runner.GetDataVolumeName()); err != nil {
+			log.Panicln(err.Error())
+		}
+
 		stop()
 	}()