package main import ( "context" "fmt" "time" "github.com/itworx/pulse/internal/agentsource" "github.com/itworx/pulse/internal/agentstore" "github.com/itworx/pulse/internal/datasource" ) var requiredUnraidCapabilities = []agentstore.Capability{ agentstore.CapabilityHost, agentstore.CapabilityProcesses, agentstore.CapabilityContainers, agentstore.CapabilityArray, agentstore.CapabilityDisks, agentstore.CapabilityPools, agentstore.CapabilityShares, } var requiredStorageCapabilities = []agentstore.Capability{ agentstore.CapabilityArray, agentstore.CapabilityDisks, agentstore.CapabilityPools, agentstore.CapabilityShares, } func readAgentSourceHealth(ctx context.Context, reader agentstore.Reader, now time.Time) (datasource.SourceHealth, datasource.SourceHealth, error) { unraidHealth, err := agentsource.Health(ctx, reader, requiredUnraidCapabilities, agentsource.Windows{}, now) if err != nil { return datasource.SourceHealth{}, datasource.SourceHealth{}, fmt.Errorf("summarize Unraid capabilities: %w", err) } storageHealth, err := agentsource.Health(ctx, reader, requiredStorageCapabilities, agentsource.Windows{}, now) if err != nil { return datasource.SourceHealth{}, datasource.SourceHealth{}, fmt.Errorf("summarize storage capabilities: %w", err) } return unraidHealth, storageHealth, nil }