diff --git a/collector/systemd_linux.go b/collector/systemd_linux.go index 40c78438..a21cc3cb 100644 --- a/collector/systemd_linux.go +++ b/collector/systemd_linux.go @@ -83,10 +83,6 @@ type systemdCollector struct { var unitStatesName = []string{"active", "activating", "deactivating", "inactive", "failed"} -type Manager interface { - GetManagerProperty(prop string) (string, error) -} - func init() { registerCollector("systemd", defaultDisabled, NewSystemdCollector) } @@ -437,8 +433,8 @@ func (c *systemdCollector) collectSummaryMetrics(ch chan<- prometheus.Metric, su } } -func (c *systemdCollector) collectSystemState(m Manager, ch chan<- prometheus.Metric) error { - systemState, err := m.GetManagerProperty("SystemState") +func (c *systemdCollector) collectSystemState(conn *dbus.Conn, ch chan<- prometheus.Metric) error { + systemState, err := conn.GetManagerProperty("SystemState") if err != nil { return fmt.Errorf("couldn't get system state: %w", err) } @@ -506,8 +502,8 @@ func filterUnits(units []unit, includePattern, excludePattern *regexp.Regexp, lo return filtered } -func (c *systemdCollector) getSystemdVersion(m Manager) (float64, string) { - version, err := m.GetManagerProperty("Version") +func (c *systemdCollector) getSystemdVersion(conn *dbus.Conn) (float64, string) { + version, err := conn.GetManagerProperty("Version") if err != nil { c.logger.Debug("Unable to get systemd version property, defaulting to 0") return 0, "" @@ -523,8 +519,8 @@ func (c *systemdCollector) getSystemdVersion(m Manager) (float64, string) { return v, version } -func (c *systemdCollector) getSystemdVirtualization(m Manager) string { - virt, err := m.GetManagerProperty("Virtualization") +func (c *systemdCollector) getSystemdVirtualization(conn *dbus.Conn) string { + virt, err := conn.GetManagerProperty("Virtualization") if err != nil { c.logger.Debug("Could not get Virtualization property", "err", err) return "unknown" diff --git a/collector/systemd_linux_test.go b/collector/systemd_linux_test.go index 0ac0bdad..1c290377 100644 --- a/collector/systemd_linux_test.go +++ b/collector/systemd_linux_test.go @@ -17,7 +17,6 @@ package collector import ( - "errors" "io" "log/slog" "regexp" @@ -138,60 +137,3 @@ func testSummaryHelper(t *testing.T, state string, actual float64, expected floa t.Errorf("Summary mode didn't count %s jobs correctly. Actual: %f, expected: %f", state, actual, expected) } } - -// fakeManager implements the Manager interface for testing. -type fakeManager struct { - result string - err error -} - -// GetManagerProperty returns the controlled result for tests. -func (f *fakeManager) GetManagerProperty(prop string) (string, error) { - return f.result, f.err -} - -func Test_systemdCollector_getSystemdVirtualization(t *testing.T) { - logger := slog.New(slog.NewTextHandler(io.Discard, nil)) - c, err := NewSystemdCollector(logger) - if err != nil { - t.Fatal(err) - } - sysdCollector := c.(*systemdCollector) - - tests := []struct { - name string - fake *fakeManager - want string - }{ - { - name: "Error", - fake: &fakeManager{ - err: errors.New("test error"), - }, - want: "unknown", - }, - { - name: "Empty", - fake: &fakeManager{ - result: `""`, - }, - want: "none", - }, - { - name: "Valid", - fake: &fakeManager{ - result: `"kvm"`, - }, - want: "kvm", - }, - } - - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - got := sysdCollector.getSystemdVirtualization(tt.fake) - if got != tt.want { - t.Errorf("getSystemdVirtualization() = %v, want %v", got, tt.want) - } - }) - } -}