func matchAgentStatus(patterns []string, status state.Status) (bool, bool, error) { oneValidStatus := false for _, p := range patterns { // If the pattern isn't a known status, ignore it. ps := state.Status(p) if !ps.KnownAgentStatus() { continue } oneValidStatus = true if status.Matches(ps) { return true, true, nil } } return false, oneValidStatus, nil }
func matchWorkloadStatus(patterns []string, workloadStatus state.Status, agentStatus state.Status) (bool, bool, error) { oneValidStatus := false for _, p := range patterns { // If the pattern isn't a known status, ignore it. ps := state.Status(p) if !ps.KnownWorkloadStatus() { continue } oneValidStatus = true // To preserve current expected behaviour, we only report on workload status // if the agent itself is not in error. if agentStatus != state.StatusError && workloadStatus.WorkloadMatches(ps) { return true, true, nil } } return false, oneValidStatus, nil }