From ce06b3212f5f10fd864da66733d4e19cbc02f494 Mon Sep 17 00:00:00 2001 From: Markus Opolka Date: Wed, 1 Jul 2026 11:48:25 +0200 Subject: [PATCH 1/3] Use latest Go version for builds --- .github/workflows/build.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 5dfb9a7..721cada 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -19,7 +19,8 @@ jobs: - name: Set up Go uses: actions/setup-go@v6 with: - go-version: 1.24 + go-version: stable + check-latest: true - name: Test run: go test -v ./... From 0dd7b2485f92fadd867073892f8565539b9465c5 Mon Sep 17 00:00:00 2001 From: Markus Opolka Date: Wed, 1 Jul 2026 11:48:53 +0200 Subject: [PATCH 2/3] Bump golangci-lint to v2.12.2 --- .github/workflows/golangci-lint.yaml | 2 +- .golangci.yml | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/golangci-lint.yaml b/.github/workflows/golangci-lint.yaml index d5e7680..a3103bb 100644 --- a/.github/workflows/golangci-lint.yaml +++ b/.github/workflows/golangci-lint.yaml @@ -17,4 +17,4 @@ jobs: - name: golangci-lint uses: golangci/golangci-lint-action@v9 with: - version: v2.11.2 + version: v2.12.2 diff --git a/.golangci.yml b/.golangci.yml index 84fd67d..6bd53e3 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -3,7 +3,12 @@ run: tests: false linters: default: all + enable: + - wsl_v5 + - gomodguard_v2 disable: + - wsl + - gomodguard - cyclop - depguard - dupl From bde5fba9e0a404b3a1bcb735c4a936641317e904 Mon Sep 17 00:00:00 2001 From: Markus Opolka Date: Wed, 1 Jul 2026 11:59:10 +0200 Subject: [PATCH 3/3] Bump go-check to v1.0.0 --- cmd/cpu.go | 19 +++++++++---------- cmd/datastore.go | 28 +++++++++------------------- cmd/hba.go | 11 +++++------ cmd/memory.go | 14 ++++++-------- cmd/nic.go | 11 +++++------ cmd/root.go | 8 ++++---- cmd/temperature.go | 11 +++++------ go.mod | 10 ++++++---- go.sum | 4 ++-- 9 files changed, 51 insertions(+), 65 deletions(-) diff --git a/cmd/cpu.go b/cmd/cpu.go index 7486476..d7e1f95 100644 --- a/cmd/cpu.go +++ b/cmd/cpu.go @@ -1,9 +1,11 @@ package cmd import ( + "fmt" + "github.com/NETWAYS/check_vspheredb_data/internal" + "github.com/NETWAYS/go-check" - "github.com/NETWAYS/go-check/perfdata" "github.com/spf13/cobra" ) @@ -66,12 +68,12 @@ func queryCPU() { // Add Perfdata. // total usage. - pl.Add(&perfdata.Perfdata{ + pl.Add(&check.Perfdata{ Label: "usage", Value: overallCPUUsage, }) // usage in percent, including thresholds. - pl.Add(&perfdata.Perfdata{ + pl.Add(&check.Perfdata{ Label: "usage_percent", Value: cpuUsagePercent, Uom: "%", @@ -79,12 +81,12 @@ func queryCPU() { Crit: cpuCritThreshold, }) // mhz. - pl.Add(&perfdata.Perfdata{ + pl.Add(&check.Perfdata{ Label: "mhz", Value: hardwareCPUMHz, }) // cores. - pl.Add(&perfdata.Perfdata{ + pl.Add(&check.Perfdata{ Label: "cores", Value: hardwareCPUCores, }) @@ -101,9 +103,6 @@ func queryCPU() { } dbConnection.Close() - check.Exitf(statusCode, - "Total CPU usage is %dGHz (%d%%) | %s", - overallCPUUsage/1024, - cpuUsagePercent, - pl.String()) + + check.ExitWithPerfdata(statusCode, pl, fmt.Sprintf("Total CPU usage is %dGHz (%d%%)", overallCPUUsage/1024, cpuUsagePercent)) } diff --git a/cmd/datastore.go b/cmd/datastore.go index 83f5633..9065ec7 100644 --- a/cmd/datastore.go +++ b/cmd/datastore.go @@ -4,8 +4,8 @@ import ( "fmt" "github.com/NETWAYS/check_vspheredb_data/internal" + "github.com/NETWAYS/go-check" - "github.com/NETWAYS/go-check/perfdata" "github.com/NETWAYS/go-check/result" "github.com/spf13/cobra" ) @@ -78,11 +78,7 @@ func queryDatastore() { pl.Add(&perfData) dbConnection.Close() - check.Exitf(statusCode, - "Used storage space for datastore %s: %d%% | %s", - datastore, - perfData.Value, // this is the used capacity in % - pl.String()) + check.ExitWithPerfdata(statusCode, pl, fmt.Sprintf("Used storage space for datastore %s: %d%%", datastore, perfData.Value)) } func queryDatastores() { @@ -135,27 +131,21 @@ func queryDatastores() { perfData, state := processQueryResults(datastoreName, capacity, freeSpace) // Create PartialResult and add to Overall result. - pr := result.PartialResult{ - Output: fmt.Sprintf("Used storage for datastore %s: %d%%", datastoreName, perfData.Value), - } - - err = pr.SetState(state) - if err != nil { - check.ExitError(err) - } - - pr.Perfdata.Add(&perfData) + pr := result.NewPartialResult() + pr.SetOutput(fmt.Sprintf("Used storage for datastore %s: %d%%", datastoreName, perfData.Value)) + pr.SetState(state) + pr.AddPerfdata(&perfData) aggregatedResult.AddSubcheck(pr) } dbConnection.Close() - check.ExitRaw(aggregatedResult.GetStatus(), aggregatedResult.GetOutput()) // ExitRaw because of 'nested formatting issues' otherwise. + check.Exit(aggregatedResult.GetStatus(), aggregatedResult.GetOutput()) } // Computes Perfdata, check result based on the queried data. -func processQueryResults(datastore string, capacity, freeSpace int64) (perfdata.Perfdata, int) { +func processQueryResults(datastore string, capacity, freeSpace int64) (check.Perfdata, check.Status) { // calculate percentage usage for check result decision. datastoreUsagePercent := int64(0) if capacity != 0 { @@ -164,7 +154,7 @@ func processQueryResults(datastore string, capacity, freeSpace int64) (perfdata. // Add Perfdata. // percentage usage. - perfData := perfdata.Perfdata{ + perfData := check.Perfdata{ Label: datastore + "_used", Value: datastoreUsagePercent, Uom: "%", diff --git a/cmd/hba.go b/cmd/hba.go index 41f82ec..5bb9d8a 100644 --- a/cmd/hba.go +++ b/cmd/hba.go @@ -1,9 +1,11 @@ package cmd import ( + "fmt" + "github.com/NETWAYS/check_vspheredb_data/internal" + "github.com/NETWAYS/go-check" - "github.com/NETWAYS/go-check/perfdata" "github.com/spf13/cobra" ) @@ -55,7 +57,7 @@ func queryHba() { check.ExitError(err) } - pl.Add(&perfdata.Perfdata{ + pl.Add(&check.Perfdata{ Label: "hbas", Value: hardwareNumHBAs, Warn: hbaWarnThreshold, @@ -74,8 +76,5 @@ func queryHba() { } dbConnection.Close() - check.Exitf(statusCode, - "Number of HBAs: %d | %s", - hardwareNumHBAs, - pl.String()) + check.ExitWithPerfdata(statusCode, pl, fmt.Sprintf("Number of HBAs: %d", hardwareNumHBAs)) } diff --git a/cmd/memory.go b/cmd/memory.go index cf79901..fdff10f 100644 --- a/cmd/memory.go +++ b/cmd/memory.go @@ -1,9 +1,11 @@ package cmd import ( + "fmt" + "github.com/NETWAYS/check_vspheredb_data/internal" + "github.com/NETWAYS/go-check" - "github.com/NETWAYS/go-check/perfdata" "github.com/spf13/cobra" ) @@ -65,13 +67,13 @@ func queryMemory() { // Add Perfdata. // total usage. - pl.Add(&perfdata.Perfdata{ + pl.Add(&check.Perfdata{ Label: "usage", Value: overallMemoryUsageMB * 1024 * 1024, // Report in Bytes. Uom: "B", }) // percentage usage. - pl.Add(&perfdata.Perfdata{ + pl.Add(&check.Perfdata{ Label: "usage_percent", Value: memoryUsagePercent, Uom: "%", @@ -91,9 +93,5 @@ func queryMemory() { } dbConnection.Close() - check.Exitf(statusCode, - "Total Memory usage is %dGB (%d%%) | %s", - overallMemoryUsageMB/1024, - memoryUsagePercent, - pl.String()) + check.ExitWithPerfdata(statusCode, pl, fmt.Sprintf("Total Memory usage is %dGB (%d%%)", overallMemoryUsageMB/1024, memoryUsagePercent)) } diff --git a/cmd/nic.go b/cmd/nic.go index 02266df..e8834fc 100644 --- a/cmd/nic.go +++ b/cmd/nic.go @@ -1,9 +1,11 @@ package cmd import ( + "fmt" + "github.com/NETWAYS/check_vspheredb_data/internal" + "github.com/NETWAYS/go-check" - "github.com/NETWAYS/go-check/perfdata" "github.com/spf13/cobra" ) @@ -55,7 +57,7 @@ func queryNic() { check.ExitError(err) } - pl.Add(&perfdata.Perfdata{ + pl.Add(&check.Perfdata{ Label: "nics", Value: hardwareNumNICs, Warn: nicWarnThreshold, @@ -74,8 +76,5 @@ func queryNic() { } dbConnection.Close() - check.Exitf(statusCode, - "Number of NICs: %d | %s", - hardwareNumNICs, - pl.String()) + check.ExitWithPerfdata(statusCode, pl, fmt.Sprintf("Number of NICs: %d)", hardwareNumNICs)) } diff --git a/cmd/root.go b/cmd/root.go index 37712a6..b08da30 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -2,8 +2,8 @@ package cmd import ( "github.com/NETWAYS/check_vspheredb_data/internal" + "github.com/NETWAYS/go-check" - "github.com/NETWAYS/go-check/perfdata" "github.com/spf13/cobra" ) @@ -17,7 +17,7 @@ var password string var credentialsFile string // Helper vars. -var pl perfdata.PerfdataList +var pl check.PerfdataList // rootCmd represents the base command when called without any subcommands. var rootCmd = &cobra.Command{ @@ -36,13 +36,13 @@ Icinga2 admins to trigger alerts on their side of the monitoring.`, if machine == "" { cmd.DisableAutoGenTag = true - check.Exitf(check.Unknown, "Error: --machine flag is required") + check.Exit(check.Unknown, "Error: --machine flag is required") } if host == "" { cmd.DisableAutoGenTag = true - check.Exitf(check.Unknown, "Error: --host flag is required") + check.Exit(check.Unknown, "Error: --host flag is required") } // Parse credentials file. if credentialsFile != "" { diff --git a/cmd/temperature.go b/cmd/temperature.go index 7ddb946..aa53967 100644 --- a/cmd/temperature.go +++ b/cmd/temperature.go @@ -1,9 +1,11 @@ package cmd import ( + "fmt" + "github.com/NETWAYS/check_vspheredb_data/internal" + "github.com/NETWAYS/go-check" - "github.com/NETWAYS/go-check/perfdata" "github.com/spf13/cobra" ) @@ -58,7 +60,7 @@ func queryTemperature() { check.ExitError(err) } - pl.Add(&perfdata.Perfdata{ + pl.Add(&check.Perfdata{ Label: "temp", Value: currentReading, Uom: "C", @@ -78,8 +80,5 @@ func queryTemperature() { } dbConnection.Close() - check.Exitf(statusCode, - "Temperature is %d°C | %s", - currentReading, - pl.String()) + check.ExitWithPerfdata(statusCode, pl, fmt.Sprintf("Temperature is %d°C", currentReading)) } diff --git a/go.mod b/go.mod index 33016b3..6565b1d 100644 --- a/go.mod +++ b/go.mod @@ -1,13 +1,15 @@ module github.com/NETWAYS/check_vspheredb_data -go 1.24.0 +go 1.26 -require github.com/NETWAYS/go-check v0.6.4 +require ( + github.com/NETWAYS/go-check v1.0.0 + github.com/go-sql-driver/mysql v1.10.0 + github.com/spf13/cobra v1.10.2 +) require ( filippo.io/edwards25519 v1.2.0 // indirect - github.com/go-sql-driver/mysql v1.10.0 github.com/inconshreveable/mousetrap v1.1.0 // indirect - github.com/spf13/cobra v1.10.2 github.com/spf13/pflag v1.0.10 // indirect ) diff --git a/go.sum b/go.sum index 7f8cb9d..2b37cd3 100644 --- a/go.sum +++ b/go.sum @@ -1,7 +1,7 @@ filippo.io/edwards25519 v1.2.0 h1:crnVqOiS4jqYleHd9vaKZ+HKtHfllngJIiOpNpoJsjo= filippo.io/edwards25519 v1.2.0/go.mod h1:xzAOLCNug/yB62zG1bQ8uziwrIqIuxhctzJT18Q77mc= -github.com/NETWAYS/go-check v0.6.4 h1:4WETSVNZNEP0Yudcp5xlvxq6RGn920cmUKq4fz/P1GQ= -github.com/NETWAYS/go-check v0.6.4/go.mod h1:8/GWnq8SirreAixgRmcp82JG16NnEl38rHq9phICy9s= +github.com/NETWAYS/go-check v1.0.0 h1:YkzTwFfGR+Z+mK3Wsqpnu8wibzsB30im19iPNfCOsMQ= +github.com/NETWAYS/go-check v1.0.0/go.mod h1:8/GWnq8SirreAixgRmcp82JG16NnEl38rHq9phICy9s= github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= github.com/go-sql-driver/mysql v1.10.0 h1:Q+1LV8DkHJvSYAdR83XzuhDaTykuDx0l6fkXxoWCWfw= github.com/go-sql-driver/mysql v1.10.0/go.mod h1:M+cqaI7+xxXGG9swrdeUIoPG3Y3KCkF0pZej+SK+nWk=