コード例 #1
0
        /// <summary>
        /// Get Devices from CSV
        /// </summary>
        private static void GetDevices()
        {
            // Load In CSV File
            CsvReader csv = new CsvReader(new StreamReader(m_deviceFileName), true);

            while (csv.ReadNextRecord())
            {
                // Show Info
                log.Info("Discovering " + csv[CSV_ADDRESS] + "...");

                // Connect to F5 Device via iControl
                m_interfaces.initialize(csv[CSV_ADDRESS], csv[CSV_F5USER], csv[CSV_F5PASSWORD]);
                if (m_interfaces.initialized)
                {
                    // Set active partition to "Common"
                    m_interfaces.ManagementPartition.set_active_partition("Common");

                    // Create New Device
                    f5Device dev = new f5Device(SCOM_Functions.m_managementGroup, csv[CSV_ADDRESS], csv[CSV_COMMUNITY], Convert.ToInt32(csv[CSV_PORT]), csv[CSV_F5USER], csv[CSV_F5PASSWORD]);
                    if (m_discoveryType == "snapshot")
                    {
                        AddDeviceToSnapshotDiscoveryData(dev);
                    }
                    {
                        AddDeviceToIncrementalDiscoveryData(dev);
                    }
                }
                else
                {
                    log.Error("Couldn't connect iControl to " + csv[CSV_ADDRESS].ToString());
                }
            }
            // Clear CSV File
            csv.Dispose();
        }
コード例 #2
0
        /// <summary>
        /// Get Basic Device Info
        /// </summary>
        private static void GetDevices()
        {
            // Get All Devices from SCOM
            ManagementPackClass mpc_Devices = SCOM.GetManagementPackClass("AP.F5.Device");
            IObjectReader <EnterpriseManagementObject> DeviceReader;

            //List<Guid> DevicesGuidList;
            DeviceReader = SCOM.m_managementGroup.EntityObjects.GetObjectReader <EnterpriseManagementObject>(mpc_Devices, ObjectQueryOptions.Default);

            // Load In CSV File
            CsvReader csv = new CsvReader(new StreamReader(m_deviceFileName), true);

            while (csv.ReadNextRecord())
            {
                f5Device newDevice = new f5Device(csv[CSV_ADDRESS], csv[CSV_COMMUNITY], Convert.ToInt32(csv[CSV_PORT]), csv[CSV_F5USER], csv[CSV_F5PASSWORD]);

                // Loop Through SCOM Objects
                foreach (EnterpriseManagementObject scom_dev in DeviceReader)
                {
                    if (scom_dev.DisplayName.ToLower() == newDevice.SystemNodeName.ToLower())
                    {
                        newDevice.SCOM_DeviceObject = scom_dev;
                        break;
                    }
                }

                // Check and Make Sure there's a corresponding SCOM Object
                if (newDevice.SCOM_DeviceObject != null)
                {
                    // Add Device to DeviceList
                    DeviceList.Add(newDevice);
                }
                else
                {
                    log.Warn("Could not Find " + newDevice.SystemNodeName + " in SCOM, skipping this device!");
                }
            }
            // Dispose of CSV File
            csv.Dispose();
        }
コード例 #3
0
        /// <summary>
        /// Add Device To Incremental Discovery Data
        /// </summary>
        /// <param name="dev"></param>
        private static void AddDeviceToIncrementalDiscoveryData(f5Device dev)
        {
            // Add Device to Discovery Data
            incrementalDiscoveryData.Add(dev.SCOM_Object_Device);

            // Add Failover State and Relationship to Discovery Data
            incrementalDiscoveryData.Add(dev.SCOM_Object_FailoverState);

            // Add Memory and Relationship to Discovery Data
            incrementalDiscoveryData.Add(dev.SCOM_Object_Memory);

            // Add Fans and Relationships to Discovery Data
            if (dev.Fans.Count > 0)
            {
                // Add FansGroup and Relationship
                incrementalDiscoveryData.Add(dev.SCOM_Object_FanGroup);
                foreach (Fan f in dev.Fans)
                {
                    // Add Fan and Relationship
                    incrementalDiscoveryData.Add(f.SCOM_Object_Fan);
                }
            }

            // Add PowerSupplies and Relationships to Discovery Data
            if (dev.PowerSupplies.Count > 0)
            {
                // Add PowerSuppliesGroup and Relationship
                incrementalDiscoveryData.Add(dev.SCOM_Object_PowerSupplyGroup);
                foreach (PowerSupply p in dev.PowerSupplies)
                {
                    // Add PowerSupply and Relationship
                    incrementalDiscoveryData.Add(p.SCOM_Object_PowerSupply);
                }
            }

            // Add Processors
            if (dev.Processors.Count > 0)
            {
                // Add ProcessorsGroup and Relationship
                incrementalDiscoveryData.Add(dev.SCOM_Object_ProcessorGroup);
                foreach (Processor p in dev.Processors)
                {
                    // Add Processor and Relationship
                    incrementalDiscoveryData.Add(p.SCOM_Object_Processor);
                }
            }

            // Add Temperature Sensors
            if (dev.TempSensors.Count > 0)
            {
                // Add Temp Sensors Group and Relationship
                incrementalDiscoveryData.Add(dev.SCOM_Object_TempSensorsGroup);
                // Add Temperature Sensors
                foreach (TempSensor t in dev.TempSensors)
                {
                    incrementalDiscoveryData.Add(t.SCOM_Object_TempSensor);
                }
            }

            // Add Disk Partitions and Relationships to Discovery Data
            if (dev.DiskPartitions.Count > 0)
            {
                // Add Disk partitions Group to Discovery Data
                incrementalDiscoveryData.Add(dev.SCOM_Object_DiskPartitionGroup);
                // Add Disk Partitions
                foreach (DiskPartition disk in dev.DiskPartitions)
                {
                    incrementalDiscoveryData.Add(disk.SCOM_Object_DiskPartition);
                }
            }
        }