func GetSystemdUnits(logger *log.Logger) map[string]types.SystemdUnit { systemdUnits := map[string]types.SystemdUnit{} logger.Notice("DS1001", "Performing systemd discovery") for _, name := range []string{"openshift", "openshift-master", "openshift-node", "openshift-sdn-master", "openshift-sdn-node", "docker", "openvswitch", "iptables", "etcd", "kubernetes"} { systemdUnits[name] = discoverSystemdUnit(logger, name) if systemdUnits[name].Exists { logger.Debug("DS1002", fmt.Sprintf("Saw systemd unit %s", name)) } } logger.Debug("DS1003", fmt.Sprintf("%v", systemdUnits)) return systemdUnits }
func GetSystemdUnits(logger *log.Logger) map[string]types.SystemdUnit { systemdUnits := map[string]types.SystemdUnit{} if !HasSystemctl() { logger.Notice("DS1010", "Systemd not available, skipping unit discovery.") return systemdUnits } logger.Notice("DS1001", "Performing systemd discovery") for _, name := range []string{"origin-master", "origin-node", "atomic-openshift-master", "atomic-openshift-node", "docker", "openvswitch", "iptables", "etcd", "kubernetes"} { systemdUnits[name] = discoverSystemdUnit(logger, name) if systemdUnits[name].Exists { logger.Debug("DS1002", fmt.Sprintf("Saw systemd unit %s", name)) } } logger.Debug("DS1003", fmt.Sprintf("%v", systemdUnits)) return systemdUnits }
// runDiagnostics performs the actual execution of diagnostics once they're built. func runDiagnostics(logger *log.Logger, diagnostics []types.Diagnostic, warnCount int, errorCount int) (bool, error, int, int) { for _, diagnostic := range diagnostics { func() { // wrap diagnostic panic nicely in case of developer error defer func() { if r := recover(); r != nil { errorCount += 1 stack := debug.Stack() logger.Error("CED5001", fmt.Sprintf("While running the %s diagnostic, a panic was encountered.\nThis is a bug in diagnostics. Error and stack trace follow: \n%s\n%s", diagnostic.Name(), fmt.Sprintf("%v", r), stack)) } }() if canRun, reason := diagnostic.CanRun(); !canRun { if reason == nil { logger.Notice("CED5002", fmt.Sprintf("Skipping diagnostic: %s\nDescription: %s", diagnostic.Name(), diagnostic.Description())) } else { logger.Notice("CED5003", fmt.Sprintf("Skipping diagnostic: %s\nDescription: %s\nBecause: %s", diagnostic.Name(), diagnostic.Description(), reason.Error())) } return } logger.Notice("CED5004", fmt.Sprintf("Running diagnostic: %s\nDescription: %s", diagnostic.Name(), diagnostic.Description())) r := diagnostic.Check() for _, entry := range r.Logs() { logger.LogEntry(entry) } warnCount += len(r.Warnings()) errorCount += len(r.Errors()) }() } return errorCount > 0, nil, warnCount, errorCount }