/// <summary> /// Prüft den Equals Parameter auf gültigkeit /// </summary> static void check_equalsParameters() { cmdActionArgsEqualType result; string value = ""; dicCmdArgs.TryGetValue("equals", out value); foreach (string enumarg in Enum.GetNames(typeof(cmdActionArgsEqualType))) { if (!string.IsNullOrWhiteSpace(value) && value.ToLower() == enumarg.ToLower()) { Debug.WriteLine("{0} = {1}", enumarg, value); Enum.TryParse(enumarg, out result); if (equalType == cmdActionArgsEqualType.NONE) { equalType = result; } else { equalType = equalType | result; } } } Debug.WriteLine("Equals = {0}", equalType); }
/// <summary> /// Prüft den Equals Parameter auf gültigkeit /// </summary> static void check_equalsParameters() { cmdActionArgsEqualType result; string value = ""; dicCmdArgs.TryGetValue("equals", out value); foreach (string enumarg in Enum.GetNames(typeof(cmdActionArgsEqualType))) { if (!string.IsNullOrWhiteSpace(value) && value.ToLower() == enumarg.ToLower()) { Debug.WriteLine("{0} = {1}", enumarg, value); Enum.TryParse(enumarg, out result); if (equalType == cmdActionArgsEqualType.NONE) { equalType = result; } else equalType = equalType | result; } } Debug.WriteLine("Equals = {0}", equalType); }
/// <summary> /// Main Funktion der Anwendung /// </summary> /// <param name="args"></param> /// <returns></returns> /// Parameter Zum Debuggen: -process=AM5 -version=1.8.0.70 -compare=Major,Build,private public static int Main(string[] args) { string prz, ver, cmp = ""; // Console.WriteLine("Nagios Client - NSClient++ App"); Console.Title = "Nagios Client - NSClient++ App"; compareType = cmdActionArgsCompareType.NONE; equalType = cmdActionArgsEqualType.NONE; #if DEBUG Console.WriteLine(Environment.CommandLine); Debug.WriteLine(Environment.CommandLine); #endif if (!check_cmdLineArgs()) { //printUsage(); Console.WriteLine("Es wurden keine Parameter übergeben. \nEs muss mindestens ein Parameter für den gesuchten Prozess angegeben werden\n\t -process[PROZESSNAME]"); return((int)nagiosStatus.Unknown); } else { Console.WriteLine("BlaBlubb"); } // Es muss mindestens ein Prozessname angegeben sein if (dicCmdArgs.TryGetValue("process", out prz)) { // Wenn eine Version angegeben ist, dann Vergleich durchführem if (dicCmdArgs.TryGetValue("version", out ver)) { // Für den Vergleich muss die Version mit angegeben sein if (dicCmdArgs.TryGetValue("compare", out cmp)) { if (!string.IsNullOrWhiteSpace(cmp)) { foreach (string str in cmp.Split(',')) { if (!check_compareParameters(str)) { Console.WriteLine("Der angegebene vergleichs Parameter {0} ist ungültig", str); printUsage(); return((int)nagiosStatus.Unknown); } } } } else { // Kein compare Parameter angegeben } } #if DEBUG Console.WriteLine(string.Format("Main() - Parameter: -version: '{0}' | -process: '{1}' | compare: '{2}' | equals: '{3}'", !string.IsNullOrWhiteSpace(ver) ? ver : "LEER", !string.IsNullOrWhiteSpace(prz) ? prz : "LEER", !string.IsNullOrWhiteSpace(cmp) ? cmp : "LEER", "N/A")); Debug.WriteLine(string.Format("Main() - Parameter: -version: '{0}' | -process: '{1}' | compare: '{2}' | equals: '{3}'", !string.IsNullOrWhiteSpace(ver) ? ver : "LEER", !string.IsNullOrWhiteSpace(prz) ? prz : "LEER", !string.IsNullOrWhiteSpace(cmp) ? cmp : "LEER", "N/A")); #endif // Wenn keine Version vorhanden ist, // dann nur ausgabe der Version vom Prozes if (!string.IsNullOrWhiteSpace(prz)) { string strVersion; //string strVerNeed; bool equal = false;; #if DEBUG int[] iVerPrz; int[] iVerNeed; #endif if (!check_ProcessIsRunning(prz, out strVersion)) { Console.WriteLine("'Es muss mindestens der Name eines Prozesses angegeben werden oder der angegebene Prozess ist nicht gestartet'"); printUsage(); #if DEBUG Console.Write("Press any key to continue . . . "); Console.ReadKey(true); #endif status = (int)nagiosStatus.Unknown; } else { if (!string.IsNullOrWhiteSpace(ver)) { if ((compareType & cmdActionArgsCompareType.TEXT) != 0) { equal = check_VersionNumbers(strVersion, ver); } else { #if DEBUG iVerPrz = strVersion2IntArray(strVersion); iVerNeed = strVersion2IntArray(ver); equal = check_VersionNumbers(iVerPrz, iVerNeed); #else equal = check_VersionNumbers(strVersion2IntArray(strVersion), strVersion2IntArray(ver)); #endif } status = equal ? (int)nagiosStatus.Ok : (int)nagiosStatus.Critical; #if DEBUG if (equal) { Debug.WriteLine(string.Format("Version ist OK (Erf. {0} ({2}) / App {1})", ver, strVersion, compareType)); } else { Debug.WriteLine(string.Format("Version ist NOK (Erf. {0} ({2}) / App {1})", ver, strVersion, compareType)); } #endif Console.WriteLine(string.Format("Version ist {3}|'(Erforderlich {0} ({2}) / Anwendung {1})'", ver, strVersion, compareType, equal ? "OK" : "NOK", status)); } else { Console.WriteLine(string.Format("'Version von {1} lautet {0}'", strVersion, prz)); status = (int)nagiosStatus.Ok; } } #if DEBUG Console.Write("Press any key to continue . . . "); Console.ReadKey(true); #endif return(status); } } else { Console.WriteLine("Es muss mindestens der Name eines Prozesses angegeben werden oder der angegebene Prozess ist nicht gestartet"); printUsage(); } return((int)nagiosStatus.Ok); }
/// <summary> /// Main Funktion der Anwendung /// </summary> /// <param name="args"></param> /// <returns></returns> /// Parameter Zum Debuggen: -process=AM5 -version=1.8.0.70 -compare=Major,Build,private public static int Main(string[] args) { string prz, ver, cmp = ""; // Console.WriteLine("Nagios Client - NSClient++ App"); Console.Title = "Nagios Client - NSClient++ App"; compareType = cmdActionArgsCompareType.NONE; equalType = cmdActionArgsEqualType.NONE; #if DEBUG Console.WriteLine(Environment.CommandLine); Debug.WriteLine(Environment.CommandLine); #endif if(!check_cmdLineArgs()) { //printUsage(); Console.WriteLine("Es wurden keine Parameter übergeben. \nEs muss mindestens ein Parameter für den gesuchten Prozess angegeben werden\n\t -process[PROZESSNAME]"); return (int)nagiosStatus.Unknown; } else Console.WriteLine("BlaBlubb"); // Es muss mindestens ein Prozessname angegeben sein if (dicCmdArgs.TryGetValue("process", out prz)) { // Wenn eine Version angegeben ist, dann Vergleich durchführem if (dicCmdArgs.TryGetValue("version", out ver)) { // Für den Vergleich muss die Version mit angegeben sein if (dicCmdArgs.TryGetValue("compare", out cmp)) { if (!string.IsNullOrWhiteSpace(cmp)) { foreach (string str in cmp.Split(',')) { if(!check_compareParameters(str)) { Console.WriteLine("Der angegebene vergleichs Parameter {0} ist ungültig", str); printUsage(); return (int)nagiosStatus.Unknown; } } } } else { // Kein compare Parameter angegeben } } #if DEBUG Console.WriteLine(string.Format("Main() - Parameter: -version: '{0}' | -process: '{1}' | compare: '{2}' | equals: '{3}'", !string.IsNullOrWhiteSpace(ver) ? ver : "LEER", !string.IsNullOrWhiteSpace(prz) ? prz : "LEER", !string.IsNullOrWhiteSpace(cmp) ? cmp : "LEER", "N/A")); Debug.WriteLine(string.Format("Main() - Parameter: -version: '{0}' | -process: '{1}' | compare: '{2}' | equals: '{3}'", !string.IsNullOrWhiteSpace(ver) ? ver : "LEER", !string.IsNullOrWhiteSpace(prz) ? prz : "LEER", !string.IsNullOrWhiteSpace(cmp) ? cmp : "LEER", "N/A")); #endif // Wenn keine Version vorhanden ist, // dann nur ausgabe der Version vom Prozes if (!string.IsNullOrWhiteSpace(prz)) { string strVersion; //string strVerNeed; bool equal = false; ; #if DEBUG int[] iVerPrz; int[] iVerNeed; #endif if (!check_ProcessIsRunning(prz, out strVersion)) { Console.WriteLine("'Es muss mindestens der Name eines Prozesses angegeben werden oder der angegebene Prozess ist nicht gestartet'"); printUsage(); #if DEBUG Console.Write("Press any key to continue . . . "); Console.ReadKey(true); #endif status = (int)nagiosStatus.Unknown; } else { if (!string.IsNullOrWhiteSpace(ver)) { if ((compareType & cmdActionArgsCompareType.TEXT) != 0) { equal = check_VersionNumbers(strVersion, ver); } else { #if DEBUG iVerPrz = strVersion2IntArray(strVersion); iVerNeed = strVersion2IntArray(ver); equal = check_VersionNumbers(iVerPrz, iVerNeed); #else equal = check_VersionNumbers(strVersion2IntArray(strVersion), strVersion2IntArray(ver)); #endif } status = equal ? (int)nagiosStatus.Ok : (int)nagiosStatus.Critical; #if DEBUG if (equal) Debug.WriteLine(string.Format("Version ist OK (Erf. {0} ({2}) / App {1})", ver, strVersion, compareType)); else Debug.WriteLine(string.Format("Version ist NOK (Erf. {0} ({2}) / App {1})", ver, strVersion, compareType)); #endif Console.WriteLine(string.Format("Version ist {3}|'(Erforderlich {0} ({2}) / Anwendung {1})'", ver, strVersion, compareType, equal ? "OK" : "NOK", status)); } else { Console.WriteLine(string.Format("'Version von {1} lautet {0}'", strVersion, prz)); status = (int)nagiosStatus.Ok; } } #if DEBUG Console.Write("Press any key to continue . . . "); Console.ReadKey(true); #endif return status; } } else { Console.WriteLine("Es muss mindestens der Name eines Prozesses angegeben werden oder der angegebene Prozess ist nicht gestartet"); printUsage(); } return (int)nagiosStatus.Ok; }