private InventoryPollersResult DoMemoryInventory( SnmpSettings nodeSettings, SnmpInventorySettings inventorySettings, SnmpCredentials credentials) { return(((InventoryBase) new MemorySnmpInventory()).DoInventory((GlobalSettingsBase)this.globals, (SettingsBase)nodeSettings, (InventorySettingsBase)inventorySettings, (Credential)credentials) as InventoryPollersResult); }
public static SnmpCredentials GetCredentials(string CredentialName) { SnmpCredentials snmpCredentials = new SnmpCredentials(); using (SqlCommand textCommand = SqlHelper.GetTextCommand("SELECT * FROM SNMPV3Credentials WHERE CredentialName = @CredentialName")) { textCommand.Parameters.Add("@CredentialName", SqlDbType.NVarChar, 200).Value = (object)CredentialName; using (IDataReader dataReader = SqlHelper.ExecuteReader(textCommand)) { if (dataReader.Read()) { for (int i = 0; i < dataReader.FieldCount; ++i) { switch (dataReader.GetName(i)) { case nameof(CredentialName): snmpCredentials.set_CredentialName(DatabaseFunctions.GetString(dataReader, i)); break; case "SNMPV3AuthKey": snmpCredentials.set_SNMPv3AuthPassword(DatabaseFunctions.GetString(dataReader, i)); break; case "SNMPV3AuthKeyIsPwd": snmpCredentials.set_SNMPV3AuthKeyIsPwd(DatabaseFunctions.GetBoolean(dataReader, i)); break; case "SNMPV3AuthMethod": snmpCredentials.set_SNMPv3AuthType((SNMPv3AuthType)Enum.Parse(typeof(SNMPv3AuthType), DatabaseFunctions.GetString(dataReader, i))); break; case "SNMPV3Context": snmpCredentials.set_SnmpV3Context(DatabaseFunctions.GetString(dataReader, i)); break; case "SNMPV3PrivKey": snmpCredentials.set_SNMPv3PrivacyPassword(DatabaseFunctions.GetString(dataReader, i)); break; case "SNMPV3PrivKeyIsPwd": snmpCredentials.set_SNMPV3PrivKeyIsPwd(DatabaseFunctions.GetBoolean(dataReader, i)); break; case "SNMPV3PrivMethod": snmpCredentials.set_SNMPv3PrivacyType((SNMPv3PrivacyType)Enum.Parse(typeof(SNMPv3PrivacyType), DatabaseFunctions.GetString(dataReader, i))); break; case "SNMPV3Username": snmpCredentials.set_SNMPv3UserName(DatabaseFunctions.GetString(dataReader, i)); break; } } } } } return(snmpCredentials); }
// Token: 0x06000867 RID: 2151 RVA: 0x0003C034 File Offset: 0x0003A234 public static void InsertCredentials(SnmpCredentials crendentials) { using (SqlCommand textCommand = SqlHelper.GetTextCommand("INSERT INTO [SNMPV3Credentials]\r\n ([CredentialName]\r\n ,[SNMPV3Username]\r\n ,[SNMPV3Context]\r\n ,[SNMPV3PrivMethod]\r\n ,[SNMPV3PrivKey]\r\n ,[SNMPV3PrivKeyIsPwd]\r\n ,[SNMPV3AuthKey]\r\n ,[SNMPV3AuthMethod]\r\n ,[SNMPV3AuthKeyIsPwd])\r\n VALUES\r\n (@CredentialName\r\n ,@SNMPV3Username\r\n ,@SNMPV3Context\r\n ,@SNMPV3PrivMethod\r\n ,@SNMPV3PrivKey\r\n ,@SNMPV3PrivKeyIsPwd\r\n ,@SNMPV3AuthKey\r\n ,@SNMPV3AuthMethod\r\n ,@SNMPV3AuthKeyIsPwd)")) { textCommand.Parameters.Add("@CredentialName", SqlDbType.NVarChar, 200).Value = crendentials.CredentialName; textCommand.Parameters.Add("@SNMPV3Username", SqlDbType.NVarChar, 50).Value = crendentials.SNMPv3UserName; textCommand.Parameters.Add("@SNMPV3Context", SqlDbType.NVarChar, 50).Value = crendentials.SnmpV3Context; textCommand.Parameters.Add("@SNMPV3PrivMethod", SqlDbType.NVarChar, 50).Value = crendentials.SNMPv3PrivacyType.ToString(); textCommand.Parameters.Add("@SNMPV3PrivKey", SqlDbType.NVarChar, 50).Value = crendentials.SNMPv3PrivacyPassword; textCommand.Parameters.Add("@SNMPV3PrivKeyIsPwd", SqlDbType.Bit).Value = crendentials.SNMPV3PrivKeyIsPwd; textCommand.Parameters.Add("@SNMPV3AuthKey", SqlDbType.NVarChar, 50).Value = crendentials.SNMPv3AuthPassword; textCommand.Parameters.Add("@SNMPV3AuthMethod", SqlDbType.NVarChar, 50).Value = crendentials.SNMPv3AuthType.ToString(); textCommand.Parameters.Add("@SNMPV3AuthKeyIsPwd", SqlDbType.Bit).Value = crendentials.SNMPV3AuthKeyIsPwd; SqlHelper.ExecuteNonQuery(textCommand); } }
// Token: 0x0600086A RID: 2154 RVA: 0x0003C4E0 File Offset: 0x0003A6E0 public static void UpdateCredentials(SnmpCredentials credentials) { using (SqlCommand textCommand = SqlHelper.GetTextCommand("UPDATE [SNMPV3Credentials]\r\n\t\t\t\t\t\t\t\tSET [SNMPV3Username] = @SNMPV3Username\r\n\t\t\t\t\t\t\t\t,[SNMPV3Context] = @SNMPV3Context\r\n\t\t\t\t\t\t\t\t,[SNMPV3PrivMethod] = @SNMPV3PrivMethod\r\n\t\t\t\t\t\t\t\t,[SNMPV3PrivKey] = @SNMPV3PrivKey\r\n\t\t\t\t\t\t\t\t,[SNMPV3PrivKeyIsPwd] = @SNMPV3PrivKeyIsPwd\r\n\t\t\t\t\t\t\t\t,[SNMPV3AuthKey] = @SNMPV3AuthKey\r\n\t\t\t\t\t\t\t\t,[SNMPV3AuthMethod] = @SNMPV3AuthMethod\r\n\t\t\t\t\t\t\t\t,[SNMPV3AuthKeyIsPwd] = @SNMPV3AuthKeyIsPwd\r\n\t\t\t\t\t\t\t\tWHERE [CredentialName] = @CredentialName")) { textCommand.Parameters.Add("@CredentialName", SqlDbType.NVarChar, 200).Value = credentials.CredentialName; textCommand.Parameters.Add("@SNMPV3Username", SqlDbType.NVarChar, 50).Value = credentials.SNMPv3UserName; textCommand.Parameters.Add("@SNMPV3Context", SqlDbType.NVarChar, 50).Value = credentials.SnmpV3Context; textCommand.Parameters.Add("@SNMPV3PrivMethod", SqlDbType.NVarChar, 50).Value = credentials.SNMPv3PrivacyType.ToString(); textCommand.Parameters.Add("@SNMPV3PrivKey", SqlDbType.NVarChar, 50).Value = credentials.SNMPv3PrivacyPassword; textCommand.Parameters.Add("@SNMPV3PrivKeyIsPwd", SqlDbType.Bit).Value = credentials.SNMPV3PrivKeyIsPwd; textCommand.Parameters.Add("@SNMPV3AuthKey", SqlDbType.NVarChar, 50).Value = credentials.SNMPv3AuthPassword; textCommand.Parameters.Add("@SNMPV3AuthMethod", SqlDbType.NVarChar, 50).Value = credentials.SNMPv3AuthType.ToString(); textCommand.Parameters.Add("@SNMPV3AuthKeyIsPwd", SqlDbType.Bit).Value = credentials.SNMPV3AuthKeyIsPwd; SqlHelper.ExecuteNonQuery(textCommand); } }
// Token: 0x06000869 RID: 2153 RVA: 0x0003C210 File Offset: 0x0003A410 public static SnmpCredentials GetCredentials(string CredentialName) { string text = "SELECT * FROM SNMPV3Credentials WHERE CredentialName = @CredentialName"; SnmpCredentials snmpCredentials = new SnmpCredentials(); using (SqlCommand textCommand = SqlHelper.GetTextCommand(text)) { textCommand.Parameters.Add("@CredentialName", SqlDbType.NVarChar, 200).Value = CredentialName; using (IDataReader dataReader = SqlHelper.ExecuteReader(textCommand)) { if (dataReader.Read()) { for (int i = 0; i < dataReader.FieldCount; i++) { string name = dataReader.GetName(i); uint num = < PrivateImplementationDetails >.ComputeStringHash(name); if (num <= 2220914390U) { if (num <= 943772474U) { if (num != 79874626U) { if (num == 943772474U) { if (name == "SNMPV3PrivMethod") { snmpCredentials.SNMPv3PrivacyType = (SNMPv3PrivacyType)Enum.Parse(typeof(SNMPv3PrivacyType), DatabaseFunctions.GetString(dataReader, i)); } } } else if (name == "SNMPV3AuthKeyIsPwd") { snmpCredentials.SNMPV3AuthKeyIsPwd = DatabaseFunctions.GetBoolean(dataReader, i); } } else if (num != 1780899965U) { if (num == 2220914390U) { if (name == "SNMPV3Username") { snmpCredentials.SNMPv3UserName = DatabaseFunctions.GetString(dataReader, i); } } } else if (name == "SNMPV3Context") { snmpCredentials.SnmpV3Context = DatabaseFunctions.GetString(dataReader, i); } } else if (num <= 3748776610U) { if (num != 3070255433U) { if (num == 3748776610U) { if (name == "SNMPV3PrivKey") { snmpCredentials.SNMPv3PrivacyPassword = DatabaseFunctions.GetString(dataReader, i); } } } else if (name == "SNMPV3AuthMethod") { snmpCredentials.SNMPv3AuthType = (SNMPv3AuthType)Enum.Parse(typeof(SNMPv3AuthType), DatabaseFunctions.GetString(dataReader, i)); } } else if (num != 3846471719U) { if (num != 3971732635U) { if (num == 4144601169U) { if (name == "SNMPV3PrivKeyIsPwd") { snmpCredentials.SNMPV3PrivKeyIsPwd = DatabaseFunctions.GetBoolean(dataReader, i); } } } else if (name == "CredentialName") { snmpCredentials.CredentialName = DatabaseFunctions.GetString(dataReader, i); } } else if (name == "SNMPV3AuthKey") { snmpCredentials.SNMPv3AuthPassword = DatabaseFunctions.GetString(dataReader, i); } } } } } return(snmpCredentials); }
internal void DoInventory(BackgroundInventoryManager.InventoryTask task) { Stopwatch stopwatch = Stopwatch.StartNew(); Node node = NodeBLDAL.GetNode(task.NodeID); if (node == null || node.get_PolledStatus() != 1) { BackgroundInventoryManager.log.InfoFormat("Skipping inventorying of Node {0}, status is not UP.", (object)task.NodeID); } else { SnmpSettings snmpSettings = new SnmpSettings(); snmpSettings.set_AgentPort((int)node.get_SNMPPort()); snmpSettings.set_ProtocolVersion((SNMPVersion)node.get_SNMPVersion()); snmpSettings.set_TargetIP(IPAddress.Parse(node.get_IpAddress())); SnmpSettings nodeSettings = snmpSettings; SnmpInventorySettings inventorySettings = new SnmpInventorySettings(node.get_SysObjectID()); SnmpCredentials credentialsFromNode = CredentialHelper.ParseCredentialsFromNode(node) as SnmpCredentials; List <string> detectedPollers = new List <string>(); if (BackgroundInventoryManager.log.get_IsInfoEnabled()) { BackgroundInventoryManager.log.InfoFormat("Starting inventorying of Node {0}, NeedsInventory = '{1}'", (object)task.NodeID, (object)task.Settings); } string[] array = ((IEnumerable <string>)task.Settings.Split(':')).Distinct <string>().ToArray <string>(); List <string> failedTasks = new List <string>(); List <string> completedTasks = new List <string>(); foreach (string key in array) { if (!this.inventories.ContainsKey(key)) { failedTasks.Add(key); if (BackgroundInventoryManager.log.get_IsErrorEnabled()) { BackgroundInventoryManager.log.ErrorFormat("Unable to inventory '{0}' on Node {1}", (object)key, (object)task.NodeID); } } else { if (this.scheduler.IsTaskCanceled) { if (BackgroundInventoryManager.log.get_IsInfoEnabled()) { BackgroundInventoryManager.log.InfoFormat("Inventorying of Node {0} was canceled. ElapsedTime = {1}", (object)task.NodeID, (object)stopwatch.ElapsedMilliseconds); } stopwatch.Stop(); return; } InventoryPollersResult inventoryPollersResult = this.inventories[key](nodeSettings, inventorySettings, credentialsFromNode); if (inventoryPollersResult == null) { failedTasks.Add(key); if (BackgroundInventoryManager.log.get_IsErrorEnabled()) { BackgroundInventoryManager.log.ErrorFormat("Inventory '{0}' on Node {1} returned null result", (object)key, (object)task.NodeID); } } else if (((InventoryResultBase)inventoryPollersResult).get_Outcome() == 1) { completedTasks.Add(key); detectedPollers.AddRange((IEnumerable <string>)inventoryPollersResult.get_PollerTypes()); } else { failedTasks.Add(key); if (((InventoryResultBase)inventoryPollersResult).get_Error() != null) { if (BackgroundInventoryManager.log.get_IsWarnEnabled()) { BackgroundInventoryManager.log.WarnFormat("Inventory '{0}' on Node {1} failed with code {2}", (object)key, (object)task.NodeID, (object)((InventoryResultBase)inventoryPollersResult).get_Error().get_ErrorCode()); } if (((InventoryResultBase)inventoryPollersResult).get_Error().get_ErrorCode() != 31002U) { List <string> list = ((IEnumerable <string>)array).Where <string>((Func <string, bool>)(n => !completedTasks.Contains(n) && !failedTasks.Contains(n))).ToList <string>(); if (list.Count > 0) { failedTasks.AddRange((IEnumerable <string>)list); if (BackgroundInventoryManager.log.get_IsWarnEnabled()) { BackgroundInventoryManager.log.WarnFormat("Skipping inventory for '{0}' on Node {1}", (object)string.Join(":", list.ToArray()), (object)task.NodeID); break; } break; } } } else if (BackgroundInventoryManager.log.get_IsWarnEnabled()) { BackgroundInventoryManager.log.WarnFormat("Inventory '{0}' on Node {1} failed on unknown error", (object)key, (object)task.NodeID); } } } } string lastNodeSettings = NodeSettingsDAL.GetLastNodeSettings(task.NodeID, (string)CoreConstants.NeedsInventoryFlag); if ((string.IsNullOrEmpty(lastNodeSettings) || !lastNodeSettings.Equals(task.Settings, StringComparison.OrdinalIgnoreCase)) && BackgroundInventoryManager.log.get_IsInfoEnabled()) { BackgroundInventoryManager.log.InfoFormat("Skipping inventory result processing for Node {0}, NeedsInventory flag changed. OldValue = '{1}', NewValue = '{2}'.", (object)task.NodeID, (object)task.Settings, (object)lastNodeSettings); } else { this.InsertDetectedPollers(task, detectedPollers); if (failedTasks.Count == 0) { NodeSettingsDAL.DeleteSpecificSettingForNode(task.NodeID, (string)CoreConstants.NeedsInventoryFlag); if (BackgroundInventoryManager.log.get_IsInfoEnabled()) { BackgroundInventoryManager.log.InfoFormat("Inventorying of Node {0} completed in {1}ms.", (object)task.NodeID, (object)stopwatch.ElapsedMilliseconds); } } else if (failedTasks.Count < array.Length) { string str = string.Join(":", failedTasks.ToArray()); NodeSettingsDAL.SafeInsertNodeSetting(task.NodeID, (string)CoreConstants.NeedsInventoryFlag, (object)str); if (BackgroundInventoryManager.log.get_IsInfoEnabled()) { BackgroundInventoryManager.log.InfoFormat("Inventorying of Node {0} partially completed in {1}ms. NeedsInventory updated to '{2}'", (object)task.NodeID, (object)stopwatch.ElapsedMilliseconds, (object)str); } } else if (BackgroundInventoryManager.log.get_IsInfoEnabled()) { BackgroundInventoryManager.log.InfoFormat("Inventorying of Node {0} failed. Elapsed time {1}ms.", (object)task.NodeID, (object)stopwatch.ElapsedMilliseconds); } stopwatch.Stop(); } } }
// Token: 0x06000241 RID: 577 RVA: 0x0000F870 File Offset: 0x0000DA70 internal void DoInventory(BackgroundInventoryManager.InventoryTask task) { Stopwatch stopwatch = Stopwatch.StartNew(); Node node = NodeBLDAL.GetNode(task.NodeID); if (node == null || node.PolledStatus != 1) { BackgroundInventoryManager.log.InfoFormat("Skipping inventorying of Node {0}, status is not UP.", task.NodeID); return; } SnmpSettings nodeSettings = new SnmpSettings { AgentPort = (int)node.SNMPPort, ProtocolVersion = node.SNMPVersion, TargetIP = IPAddress.Parse(node.IpAddress) }; SnmpInventorySettings inventorySettings = new SnmpInventorySettings(node.SysObjectID); SnmpCredentials credentials = CredentialHelper.ParseCredentialsFromNode(node) as SnmpCredentials; List <string> list = new List <string>(); if (BackgroundInventoryManager.log.IsInfoEnabled) { BackgroundInventoryManager.log.InfoFormat("Starting inventorying of Node {0}, NeedsInventory = '{1}'", task.NodeID, task.Settings); } string[] array = task.Settings.Split(new char[] { ':' }).Distinct <string>().ToArray <string>(); List <string> failedTasks = new List <string>(); List <string> completedTasks = new List <string>(); Func <string, bool> < > 9__0; foreach (string text in array) { if (!this.inventories.ContainsKey(text)) { failedTasks.Add(text); if (BackgroundInventoryManager.log.IsErrorEnabled) { BackgroundInventoryManager.log.ErrorFormat("Unable to inventory '{0}' on Node {1}", text, task.NodeID); } } else { if (this.scheduler.IsTaskCanceled) { if (BackgroundInventoryManager.log.IsInfoEnabled) { BackgroundInventoryManager.log.InfoFormat("Inventorying of Node {0} was canceled. ElapsedTime = {1}", task.NodeID, stopwatch.ElapsedMilliseconds); } stopwatch.Stop(); return; } InventoryPollersResult inventoryPollersResult = this.inventories[text](nodeSettings, inventorySettings, credentials); if (inventoryPollersResult == null) { failedTasks.Add(text); if (BackgroundInventoryManager.log.IsErrorEnabled) { BackgroundInventoryManager.log.ErrorFormat("Inventory '{0}' on Node {1} returned null result", text, task.NodeID); } } else if (inventoryPollersResult.Outcome == 1) { completedTasks.Add(text); list.AddRange(inventoryPollersResult.PollerTypes); } else { failedTasks.Add(text); if (inventoryPollersResult.Error != null) { if (BackgroundInventoryManager.log.IsWarnEnabled) { BackgroundInventoryManager.log.WarnFormat("Inventory '{0}' on Node {1} failed with code {2}", text, task.NodeID, inventoryPollersResult.Error.ErrorCode); } if (inventoryPollersResult.Error.ErrorCode != 31002U) { IEnumerable <string> source = array; Func <string, bool> predicate; if ((predicate = < > 9__0) == null) { predicate = (< > 9__0 = ((string n) => !completedTasks.Contains(n) && !failedTasks.Contains(n))); } List <string> list2 = source.Where(predicate).ToList <string>(); if (list2.Count > 0) { failedTasks.AddRange(list2); if (BackgroundInventoryManager.log.IsWarnEnabled) { BackgroundInventoryManager.log.WarnFormat("Skipping inventory for '{0}' on Node {1}", string.Join(":", list2.ToArray()), task.NodeID); break; } break; } } } else if (BackgroundInventoryManager.log.IsWarnEnabled) { BackgroundInventoryManager.log.WarnFormat("Inventory '{0}' on Node {1} failed on unknown error", text, task.NodeID); } } } } string lastNodeSettings = NodeSettingsDAL.GetLastNodeSettings(task.NodeID, CoreConstants.NeedsInventoryFlag); if ((string.IsNullOrEmpty(lastNodeSettings) || !lastNodeSettings.Equals(task.Settings, StringComparison.OrdinalIgnoreCase)) && BackgroundInventoryManager.log.IsInfoEnabled) { BackgroundInventoryManager.log.InfoFormat("Skipping inventory result processing for Node {0}, NeedsInventory flag changed. OldValue = '{1}', NewValue = '{2}'.", task.NodeID, task.Settings, lastNodeSettings); return; } this.InsertDetectedPollers(task, list); if (failedTasks.Count == 0) { NodeSettingsDAL.DeleteSpecificSettingForNode(task.NodeID, CoreConstants.NeedsInventoryFlag); if (BackgroundInventoryManager.log.IsInfoEnabled) { BackgroundInventoryManager.log.InfoFormat("Inventorying of Node {0} completed in {1}ms.", task.NodeID, stopwatch.ElapsedMilliseconds); } } else if (failedTasks.Count < array.Length) { string text2 = string.Join(":", failedTasks.ToArray()); NodeSettingsDAL.SafeInsertNodeSetting(task.NodeID, CoreConstants.NeedsInventoryFlag, text2); if (BackgroundInventoryManager.log.IsInfoEnabled) { BackgroundInventoryManager.log.InfoFormat("Inventorying of Node {0} partially completed in {1}ms. NeedsInventory updated to '{2}'", task.NodeID, stopwatch.ElapsedMilliseconds, text2); } } else if (BackgroundInventoryManager.log.IsInfoEnabled) { BackgroundInventoryManager.log.InfoFormat("Inventorying of Node {0} failed. Elapsed time {1}ms.", task.NodeID, stopwatch.ElapsedMilliseconds); } stopwatch.Stop(); }
// Token: 0x06000244 RID: 580 RVA: 0x0000FD58 File Offset: 0x0000DF58 private InventoryPollersResult DoMemoryInventory(SnmpSettings nodeSettings, SnmpInventorySettings inventorySettings, SnmpCredentials credentials) { return(new MemorySnmpInventory().DoInventory(this.globals, nodeSettings, inventorySettings, credentials) as InventoryPollersResult); }