/// <summary> /// Default Constructor /// </summary> /// <param name="FullName">FullName of Virtual Center</param> /// <param name="Info">AboutInfo</param> public VirtualCenterSeed(string FullName) { // Get Key Property (MoRef) m_Key = FullName; // Create Virtual Center Management Pack Class ManagementPackClass mpc_VirtualCenterSeed = SCOM.GetManagementPackClass("AP.VMware.VirtualCenter.Seed"); // Create New Object SCOM_Object = new CreatableEnterpriseManagementObject(SCOM.m_managementGroup, mpc_VirtualCenterSeed); // Create Root Entity Class & Key Property ManagementPackClass mpc_Entity = SCOM.GetManagementPackClass("System.Entity"); ManagementPackProperty mpp_EntityDisplayName = mpc_Entity.PropertyCollection["DisplayName"]; SCOM_Object[mpp_EntityDisplayName].Value = FullName; // Create Properties of VirtualCenter // FullName ManagementPackProperty mpp_FullName = mpc_VirtualCenterSeed.PropertyCollection["FullName"]; SCOM_Object[mpp_FullName].Value = FullName; // ShortName ManagementPackProperty mpp_ShortName = mpc_VirtualCenterSeed.PropertyCollection["ShortName"]; SCOM_Object[mpp_ShortName].Value = FullName.Split('.')[0]; // IPAddress IPHostEntry he = Dns.GetHostEntry(FullName); ManagementPackProperty mpp_IPAddress = mpc_VirtualCenterSeed.PropertyCollection["IPAddress"]; SCOM_Object[mpp_IPAddress].Value = he.AddressList[0].ToString(); }
/// <summary> /// Default Constructor /// </summary> /// <param name="dg"></param> /// <param name="FullName"></param> /// <param name="Description"></param> /// <param name="Port"></param> /// <param name="MonitorRule"></param> public PoolMember(SyncFailoverGroup dg, string PartitionName, string PoolFullName, string FullName, string Description, string Port, string MonitorRule) { // Get ShortName string ShortName = FullName.Substring(FullName.LastIndexOf("/") + 1); // Get Partition string Partition = FullName.Substring(1, FullName.LastIndexOf("/") - 1); // Create Pool Management Pack Class ManagementPackClass mpc_PoolMember = SCOM.GetManagementPackClass("AP.F5.LTM.PoolMember"); // Create New NetworkInterface Object SCOM_Object = new CreatableEnterpriseManagementObject(SCOM.m_managementGroup, mpc_PoolMember); // Create Root Entity Class & Key Property ManagementPackClass mpc_Entity = SCOM.GetManagementPackClass("System.Entity"); ManagementPackProperty mpp_EntityDisplayName = mpc_Entity.PropertyCollection["DisplayName"]; SCOM_Object[mpp_EntityDisplayName].Value = ShortName; // Create SyncFailoverGroup Management Pack Class & Key Property ManagementPackClass mpc_SyncFailoverGroup = SCOM.GetManagementPackClass("AP.F5.LTM.SyncFailoverGroup"); ManagementPackProperty mpp_SyncFailoverGroupKey = mpc_SyncFailoverGroup.PropertyCollection["Key"]; SCOM_Object[mpp_SyncFailoverGroupKey].Value = dg.Key; // Create Partition Management Pack Class & Key Property ManagementPackClass mpc_Partition = SCOM.GetManagementPackClass("AP.F5.LTM.Partition"); ManagementPackProperty mpp_PartitionName = mpc_Partition.PropertyCollection["Name"]; SCOM_Object[mpp_PartitionName].Value = PartitionName; // Create Pool Management Pack Class ManagementPackClass mpc_Pool = SCOM.GetManagementPackClass("AP.F5.LTM.Pool"); ManagementPackProperty mpp_PoolKey = mpc_Pool.PropertyCollection["FullName"]; SCOM_Object[mpp_PoolKey].Value = PoolFullName; // Create PoolMember Management Pack Class & Properties ManagementPackProperty mpp_PoolMemberFullName = mpc_PoolMember.PropertyCollection["FullName"]; SCOM_Object[mpp_PoolMemberFullName].Value = FullName; ManagementPackProperty mpp_PoolMemberName = mpc_PoolMember.PropertyCollection["Name"]; SCOM_Object[mpp_PoolMemberName].Value = ShortName; ManagementPackProperty mpp_PoolMemberPartition = mpc_PoolMember.PropertyCollection["Partition"]; SCOM_Object[mpp_PoolMemberPartition].Value = Partition; ManagementPackProperty mpp_PoolMemberPort = mpc_PoolMember.PropertyCollection["Port"]; SCOM_Object[mpp_PoolMemberPort].Value = Port; ManagementPackProperty mpp_PoolMemberDescription = mpc_PoolMember.PropertyCollection["Description"]; SCOM_Object[mpp_PoolMemberDescription].Value = Description; ManagementPackProperty mpp_PoolMemberMonitorRule = mpc_PoolMember.PropertyCollection["MonitorRule"]; SCOM_Object[mpp_PoolMemberMonitorRule].Value = MonitorRule; ManagementPackProperty mpp_PoolMemberPoolName = mpc_PoolMember.PropertyCollection["PoolName"]; SCOM_Object[mpp_PoolMemberPoolName].Value = PoolFullName; }
/// <summary> /// Default Constructor /// </summary> /// <param name="SyncFailoverGroupKey"></param> /// <param name="PartitionName"></param> public Partition(string SyncFailoverGroupKey, string PartitionName) { // Create Partition Management Pack Class ManagementPackClass mpc_Partition = SCOM.GetManagementPackClass("AP.F5.LTM.Partition"); // Create New NetworkInterface Object SCOM_Object = new CreatableEnterpriseManagementObject(SCOM.m_managementGroup, mpc_Partition); // Create Root Entity Class & Key Property ManagementPackClass mpc_Entity = SCOM.GetManagementPackClass("System.Entity"); ManagementPackProperty mpp_EntityDisplayName = mpc_Entity.PropertyCollection["DisplayName"]; SCOM_Object[mpp_EntityDisplayName].Value = PartitionName; // Create SyncFailoverGroup Management Pack Class & Key Property ManagementPackClass mpc_SyncFailoverGroup = SCOM.GetManagementPackClass("AP.F5.LTM.SyncFailoverGroup"); ManagementPackProperty mpp_SyncFailoverGroupKey = mpc_SyncFailoverGroup.PropertyCollection["Key"]; SCOM_Object[mpp_SyncFailoverGroupKey].Value = SyncFailoverGroupKey; // Create Properties of Partition ManagementPackProperty mpp_PartitionName = mpc_Partition.PropertyCollection["Name"]; SCOM_Object[mpp_PartitionName].Value = PartitionName; }
/// <summary> /// Get Processors /// </summary> private void GetProcessors() { // Get var processors = SNMP.WalkSNMP(SNMP.sysMultiHostCpuIndex, Address, Port, Community); if (processors.Count > 0) { // Create Device Management Pack Class ManagementPackClass mpc_Device = SCOM_Functions.GetManagementPackClass("AP.F5.Device"); // Create Root Entity Class & Display Name Prop ManagementPackClass mpc_Entity = SCOM_Functions.GetManagementPackClass("System.Entity"); ManagementPackProperty mpp_EntityDisplayName = mpc_Entity.PropertyCollection["DisplayName"]; // Parent Device Key Property (IP Address) ManagementPackProperty mpp_DeviceKey = mpc_Device.PropertyCollection["DeviceName"]; // Create Processors Group Object ManagementPackClass mpc_DeviceProcessorsGroup = SCOM_Functions.GetManagementPackClass("AP.F5.Device.ProcessorsGroup"); SCOM_Object_ProcessorGroup = new CreatableEnterpriseManagementObject(m_managementGroup, mpc_DeviceProcessorsGroup); SCOM_Object_ProcessorGroup[mpp_DeviceKey].Value = SystemNodeName; // Set Key of Device ManagementPackProperty mpp_DeviceProcessorsGroupName = mpc_DeviceProcessorsGroup.PropertyCollection["Name"]; SCOM_Object_ProcessorGroup[mpp_DeviceProcessorsGroupName].Value = "Processors"; // Create Management Pack Class Objects for Processor and Needed Properties ManagementPackClass mpc_Processor = SCOM_Functions.GetManagementPackClass(className: "AP.F5.Device.Processor"); ManagementPackProperty mpp_ProcessorIndex = mpc_Processor.PropertyCollection["Index"]; ManagementPackProperty mpp_ProcessorName = mpc_Processor.PropertyCollection["Name"]; // Set Processor-Group Relationship ManagementPackRelationship mpr_ProcessorsGroup = SCOM_Functions.GetManagementPackRelationship("AP.F5.Device.ProcessorsGroup.HostsProcessors"); for (int i = 0; i < processors.Count; i++) { Processor newProcessor = new Processor(); string index = "." + processors[i].Id.ToString(); index = index.Replace(SNMP.sysMultiHostCpuIndex, ""); // Create SCOM Fan Object newProcessor.SCOM_Object_Processor = new CreatableEnterpriseManagementObject(SCOM_Functions.m_managementGroup, mpc_Processor); // Set Key of Device newProcessor.SCOM_Object_Processor[mpp_DeviceKey].Value = SystemNodeName; // Set Key of Fans Group newProcessor.SCOM_Object_Processor[mpp_DeviceProcessorsGroupName].Value = "Processors"; //Set Logical Entity Display Name newProcessor.SCOM_Object_Processor[mpp_EntityDisplayName].Value = "CPU-" + i.ToString(); // Set Fan Properties newProcessor.SCOM_Object_Processor[mpp_ProcessorIndex].Value = index; newProcessor.SCOM_Object_Processor[mpp_ProcessorName].Value = "CPU-" + i.ToString(); Processors.Add(newProcessor); } } }
/// <summary> /// Get DiskPartitions /// </summary> private void GetDiskPartitions() { // Get var diskPartitions = SNMP.WalkSNMP(SNMP.sysHostDiskPartition, Address, Port, Community); if (diskPartitions.Count > 0) { // Create Device Management Pack Class ManagementPackClass mpc_Device = SCOM_Functions.GetManagementPackClass("AP.F5.Device"); // Create Root Entity Class & Display Name Prop ManagementPackClass mpc_Entity = SCOM_Functions.GetManagementPackClass("System.Entity"); ManagementPackProperty mpp_EntityDisplayName = mpc_Entity.PropertyCollection["DisplayName"]; // Parent Device Key Property (IP Address) ManagementPackProperty mpp_DeviceKey = mpc_Device.PropertyCollection["DeviceName"]; // Create DiskPartitions Group Object ManagementPackClass mpc_DiskPartitionGroup = SCOM_Functions.GetManagementPackClass("AP.F5.Device.DiskPartitionsGroup"); SCOM_Object_DiskPartitionGroup = new CreatableEnterpriseManagementObject(m_managementGroup, mpc_DiskPartitionGroup); SCOM_Object_DiskPartitionGroup[mpp_DeviceKey].Value = SystemNodeName; // Set Key of Device ManagementPackProperty mpp_DiskPartitionGroupName = mpc_DiskPartitionGroup.PropertyCollection["Name"]; SCOM_Object_DiskPartitionGroup[mpp_DiskPartitionGroupName].Value = "Disks"; // Create Management Pack Class Objects for DiskPartition and Needed Properties ManagementPackClass mpc_DiskPartition = SCOM_Functions.GetManagementPackClass(className: "AP.F5.Device.DiskPartition"); ManagementPackProperty mpp_DiskPartitionIndex = mpc_DiskPartition.PropertyCollection["Index"]; ManagementPackProperty mpp_DiskPartitionMountpoint = mpc_DiskPartition.PropertyCollection["Mountpoint"]; // Set DiskPartition-Group Relationship ManagementPackRelationship mpr_DiskPartitionsGroup = SCOM_Functions.GetManagementPackRelationship("AP.F5.Device.DiskPartitionsGroup.HostsDiskPartitions"); for (int i = 0; i < diskPartitions.Count; i++) { DiskPartition newDiskPartition = new DiskPartition(); string index = "." + diskPartitions[i].Id.ToString(); index = index.Replace(SNMP.sysHostDiskPartition, ""); // Create SCOM Fan Object newDiskPartition.SCOM_Object_DiskPartition = new CreatableEnterpriseManagementObject(SCOM_Functions.m_managementGroup, mpc_DiskPartition); // Set Key of Device newDiskPartition.SCOM_Object_DiskPartition[mpp_DeviceKey].Value = SystemNodeName; // Set Key of DiskPartitions Group newDiskPartition.SCOM_Object_DiskPartition[mpp_DiskPartitionGroupName].Value = "Disks"; //Set Logical Entity Display Name newDiskPartition.SCOM_Object_DiskPartition[mpp_EntityDisplayName].Value = diskPartitions[i].Data.ToString(); // Set Fan Properties newDiskPartition.SCOM_Object_DiskPartition[mpp_DiskPartitionIndex].Value = index; newDiskPartition.SCOM_Object_DiskPartition[mpp_DiskPartitionMountpoint].Value = diskPartitions[i].Data.ToString(); DiskPartitions.Add(newDiskPartition); } } }
/// <summary> /// Get Fans /// </summary> private void GetFans() { // Get Count of Fans int fanCount = Convert.ToInt32(SNMP.GetSNMP(SNMP.sysChassisFanNumber, Address, Port, Community)[0].Data.ToString()); // If There Are Fans Then Create FanGroup and Relationship if (fanCount > 0) { // Create Device Group Management Pack Class ManagementPackClass mpc_Device = SCOM_Functions.GetManagementPackClass("AP.F5.Device"); // Create Root Entity Class & Display Name Prop ManagementPackClass mpc_Entity = SCOM_Functions.GetManagementPackClass("System.Entity"); ManagementPackProperty mpp_EntityDisplayName = mpc_Entity.PropertyCollection["DisplayName"]; // Parent Device Key Property (IP Address) ManagementPackProperty mpp_DeviceKey = mpc_Device.PropertyCollection["DeviceName"]; // Create FanGroup Object ManagementPackClass mpc_DeviceFanGroup = SCOM_Functions.GetManagementPackClass("AP.F5.Device.FansGroup"); SCOM_Object_FanGroup = new CreatableEnterpriseManagementObject(m_managementGroup, mpc_DeviceFanGroup); SCOM_Object_FanGroup[mpp_DeviceKey].Value = SystemNodeName; // Set Key of Device ManagementPackProperty mpp_DeviceFansGroupName = mpc_DeviceFanGroup.PropertyCollection["Name"]; SCOM_Object_FanGroup[mpp_DeviceFansGroupName].Value = "Fans"; // Create Management Pack Class Objects for Fan and Needed Properties ManagementPackClass mpc_Fan = SCOM_Functions.GetManagementPackClass(className: "AP.F5.Device.Fan"); ManagementPackProperty mpp_FanIndex = mpc_Fan.PropertyCollection["Index"]; ManagementPackProperty mpp_FanName = mpc_Fan.PropertyCollection["Name"]; // Set Fan-Group Relationship ManagementPackRelationship mpr_FanGroup = SCOM_Functions.GetManagementPackRelationship("AP.F5.Device.FansGroup.HostsFans"); // Create Fans for (int i = 1; i <= fanCount; i++) { Fan newfan = new Fan(); // Create SCOM Fan Object newfan.SCOM_Object_Fan = new CreatableEnterpriseManagementObject(SCOM_Functions.m_managementGroup, mpc_Fan); // Set Key of Device newfan.SCOM_Object_Fan[mpp_DeviceKey].Value = SystemNodeName; // Set Key of Fans Group newfan.SCOM_Object_Fan[mpp_DeviceFansGroupName].Value = "Fans"; //Set Logical Entity Display Name newfan.SCOM_Object_Fan[mpp_EntityDisplayName].Value = "Fan-" + i.ToString(); // Set Fan Properties newfan.SCOM_Object_Fan[mpp_FanIndex].Value = Convert.ToInt32(SNMP.GetSNMP(SNMP.sysChassisFanIndex + i.ToString(), Address, Port, Community)[0].Data.ToString());; newfan.SCOM_Object_Fan[mpp_FanName].Value = "Fan-" + i.ToString(); Fans.Add(newfan); } } }
/// <summary> /// Get Power Supplies /// </summary> private void GetPowerSupplies() { // Get Count of PowerSupplies int powerSupplyCount = Convert.ToInt16(SNMP.GetSNMP(SNMP.sysChassisPowerSupplyNumber, Address, Port, Community)[0].Data.ToString()); // If There are Fans Then Continue if (powerSupplyCount > 0) { // Create Device Group Management Pack Class ManagementPackClass mpc_Device = SCOM_Functions.GetManagementPackClass("AP.F5.Device"); // Create Root Entity Class & Display Name Prop ManagementPackClass mpc_Entity = SCOM_Functions.GetManagementPackClass("System.Entity"); ManagementPackProperty mpp_EntityDisplayName = mpc_Entity.PropertyCollection["DisplayName"]; // Parent Device Key Property (IP Address) ManagementPackProperty mpp_DeviceKey = mpc_Device.PropertyCollection["DeviceName"]; // Create PowerSuppliesGroup Object ManagementPackClass mpc_DevicePowerSupplyGroup = SCOM_Functions.GetManagementPackClass("AP.F5.Device.PowerSuppliesGroup"); SCOM_Object_PowerSupplyGroup = new CreatableEnterpriseManagementObject(m_managementGroup, mpc_DevicePowerSupplyGroup); SCOM_Object_PowerSupplyGroup[mpp_DeviceKey].Value = SystemNodeName; // Set Key of Device ManagementPackProperty mpp_DevicePowerSuppliesGroupName = mpc_DevicePowerSupplyGroup.PropertyCollection["Name"]; SCOM_Object_PowerSupplyGroup[mpp_DevicePowerSuppliesGroupName].Value = "PSUs"; // Create Management Pack Class Objects for PowerSupply and Needed Properties ManagementPackClass mpc_PowerSupply = SCOM_Functions.GetManagementPackClass(className: "AP.F5.Device.PowerSupply"); ManagementPackProperty mpp_PowerSupplyIndex = mpc_PowerSupply.PropertyCollection["Index"]; ManagementPackProperty mpp_PowerSupplyName = mpc_PowerSupply.PropertyCollection["Name"]; // Set PowerSupply-Group Relationship ManagementPackRelationship mpr_PowerSuppliesGroup = SCOM_Functions.GetManagementPackRelationship("AP.F5.Device.PowerSuppliesGroup.HostsPowerSupplies"); for (int i = 1; i <= powerSupplyCount; i++) { PowerSupply newpsu = new PowerSupply(); // Create SCOM Object newpsu.SCOM_Object_PowerSupply = new CreatableEnterpriseManagementObject(SCOM_Functions.m_managementGroup, mpc_PowerSupply); // Set Key of Device newpsu.SCOM_Object_PowerSupply[mpp_DeviceKey].Value = SystemNodeName; // Set Key of Fans Group newpsu.SCOM_Object_PowerSupply[mpp_DevicePowerSuppliesGroupName].Value = "PSUs"; //Set Logical Entity Display Name newpsu.SCOM_Object_PowerSupply[mpp_EntityDisplayName].Value = "PSU-" + i.ToString(); // Set Fan Properties newpsu.SCOM_Object_PowerSupply[mpp_PowerSupplyIndex].Value = Convert.ToInt32(SNMP.GetSNMP(SNMP.sysChassisPowerSupplyIndex + i.ToString(), Address, Port, Community)[0].Data.ToString()); newpsu.SCOM_Object_PowerSupply[mpp_PowerSupplyName].Value = "PSU-" + i.ToString(); PowerSupplies.Add(newpsu); } } }
/// <summary> /// Get Temp Sensor /// </summary> private void GetTempSensors() { // Get Count of Temperature Sensors int TempSensorCount = Convert.ToInt16(SNMP.GetSNMP(SNMP.sysChassisTempNumber, Address, Port, Community)[0].Data.ToString()); // If we have Temperature Sensors if (TempSensorCount > 0) { // Create Device Group Management Pack Class ManagementPackClass mpc_Device = SCOM_Functions.GetManagementPackClass("AP.F5.Device"); // Create Root Entity Class & Display Name Prop ManagementPackClass mpc_Entity = SCOM_Functions.GetManagementPackClass("System.Entity"); ManagementPackProperty mpp_EntityDisplayName = mpc_Entity.PropertyCollection["DisplayName"]; // Parent Device Key Property (IP Address) ManagementPackProperty mpp_DeviceKey = mpc_Device.PropertyCollection["DeviceName"]; // Create FanGroup Object ManagementPackClass mpc_DeviceTempSensorsGroup = SCOM_Functions.GetManagementPackClass("AP.F5.Device.TempSensorsGroup"); SCOM_Object_TempSensorsGroup = new CreatableEnterpriseManagementObject(m_managementGroup, mpc_DeviceTempSensorsGroup); SCOM_Object_TempSensorsGroup[mpp_DeviceKey].Value = SystemNodeName; // Set Key of Device ManagementPackProperty mpp_DeviceTempSensorsGroupName = mpc_DeviceTempSensorsGroup.PropertyCollection["Name"]; SCOM_Object_TempSensorsGroup[mpp_DeviceTempSensorsGroupName].Value = "Temp. Sensors"; // Create Management Pack Class Objects for TempSensor and Needed Properties ManagementPackClass mpc_TempSensor = SCOM_Functions.GetManagementPackClass(className: "AP.F5.Device.TempSensor"); ManagementPackProperty mpp_TempSensorIndex = mpc_TempSensor.PropertyCollection["Index"]; ManagementPackProperty mpp_TempSensorName = mpc_TempSensor.PropertyCollection["Name"]; // Set Fan-Group Relationship ManagementPackRelationship mpr_TempSensorsGroup = SCOM_Functions.GetManagementPackRelationship("AP.F5.Device.TempSensorsGroup.HostsTempSensors"); // Create Temp Sensors for (int i = 1; i <= TempSensorCount; i++) { TempSensor newTempSensor = new TempSensor(); // Create SCOM TempSensor Object newTempSensor.SCOM_Object_TempSensor = new CreatableEnterpriseManagementObject(SCOM_Functions.m_managementGroup, mpc_TempSensor); // Set Key of Device newTempSensor.SCOM_Object_TempSensor[mpp_DeviceKey].Value = SystemNodeName; // Set Key of Fans Group newTempSensor.SCOM_Object_TempSensor[mpp_DeviceTempSensorsGroupName].Value = "Temp. Sensors"; //Set Logical Entity Display Name newTempSensor.SCOM_Object_TempSensor[mpp_EntityDisplayName].Value = "TempSensor-" + i.ToString(); // Set Fan Properties newTempSensor.SCOM_Object_TempSensor[mpp_TempSensorIndex].Value = Convert.ToInt32(SNMP.GetSNMP(SNMP.sysChassisTempIndex + i.ToString(), Address, Port, Community)[0].Data.ToString()); newTempSensor.SCOM_Object_TempSensor[mpp_TempSensorName].Value = "TempSensor-" + i.ToString(); TempSensors.Add(newTempSensor); } } }
/// <summary> /// Create SCOM Object /// </summary> public void CreateDeviceGroupScomObject() { // Create Root Entity Class & Display Name Prop ManagementPackClass mpc_Entity = SCOM.GetManagementPackClass("System.Entity"); ManagementPackProperty mpp_EntityDisplayName = mpc_Entity.PropertyCollection["DisplayName"]; // Create Correct Group Management Pack Class ManagementPackClass mpc_DeviceGroup; if (Type == "Sync-Failover") { mpc_DeviceGroup = SCOM.GetManagementPackClass("AP.F5.LTM.SyncFailoverGroup"); } else { mpc_DeviceGroup = SCOM.GetManagementPackClass("AP.F5.LTM.SyncOnlyGroup"); } // Create Sync-Failover Group Object SCOM_Object = new CreatableEnterpriseManagementObject(SCOM.m_managementGroup, mpc_DeviceGroup); // Display Name of Parent (KEY Property) SCOM_Object[mpp_EntityDisplayName].Value = Name; // Set Properties of Device Group // Name (Key Property) ManagementPackProperty mpp_Name = mpc_DeviceGroup.PropertyCollection["Name"]; SCOM_Object[mpp_Name].Value = Name; // Key ManagementPackProperty mpp_Key = mpc_DeviceGroup.PropertyCollection["Key"]; SCOM_Object[mpp_Key].Value = Key; // Standalone ManagementPackProperty mpp_Standalone = mpc_DeviceGroup.PropertyCollection["Standalone"]; SCOM_Object[mpp_Standalone].Value = Standalone; // Devices ManagementPackProperty mpp_Devices = mpc_DeviceGroup.PropertyCollection["Devices"]; SCOM_Object[mpp_Devices].Value = Devices; // Monitor Address ManagementPackProperty mpp_MonitorAddress = mpc_DeviceGroup.PropertyCollection["Addresses"]; SCOM_Object[mpp_MonitorAddress].Value = Addresses; // Monitor Port ManagementPackProperty mpp_MonitorPort = mpc_DeviceGroup.PropertyCollection["Ports"]; SCOM_Object[mpp_MonitorPort].Value = Ports; // Monitor Community ManagementPackProperty mpp_MonitorCommunity = mpc_DeviceGroup.PropertyCollection["Communities"]; SCOM_Object[mpp_MonitorCommunity].Value = Communities; }
/// <summary> /// Initializes a new instance of the <see cref="EnclosureConnector" /> class. /// </summary> public EnclosureConnector() { this.EnclosureClass = MGroup.Instance.GetManagementPackClass(EntityTypeConst.Enclosure.MainName); this.EnclosureKey = this.EnclosureClass.PropertyCollection["UnionId"]; this.MontioringConnector = MGroup.Instance.GetConnector(MGroup.Instance.EnclosureConnectorGuid); if (!this.MontioringConnector.Initialized) { this.MontioringConnector.Initialize(); } }
/// <summary> /// Default Constructor /// </summary> /// <param name="FullName"></param> /// <param name="Description"></param> /// <param name="MonitorRule"></param> /// <param name="TotalMembers"></param> /// <param name="ActiveMembers"></param> public Pool(SyncFailoverGroup dg, string PartitionName, string FullName, string ShortName, string Description, string MonitorRule, long TotalMembers, long ActiveMembers) { // Set Partition string Partition = FullName.Substring(1, FullName.LastIndexOf("/") - 1); // Create Pool Management Pack Class ManagementPackClass mpc_Pool = SCOM.GetManagementPackClass("AP.F5.LTM.Pool"); // Create New NetworkInterface Object SCOM_Object = new CreatableEnterpriseManagementObject(SCOM.m_managementGroup, mpc_Pool); // Create Root Entity Class & Key Property ManagementPackClass mpc_Entity = SCOM.GetManagementPackClass("System.Entity"); ManagementPackProperty mpp_EntityDisplayName = mpc_Entity.PropertyCollection["DisplayName"]; SCOM_Object[mpp_EntityDisplayName].Value = ShortName; // Create SyncFailoverGroup Management Pack Class & Key Property ManagementPackClass mpc_SyncFailoverGroup = SCOM.GetManagementPackClass("AP.F5.LTM.SyncFailoverGroup"); ManagementPackProperty mpp_SyncFailoverGroupKey = mpc_SyncFailoverGroup.PropertyCollection["Key"]; SCOM_Object[mpp_SyncFailoverGroupKey].Value = dg.Key; // Create Partition Management Pack Class & Key Property ManagementPackClass mpc_Partition = SCOM.GetManagementPackClass("AP.F5.LTM.Partition"); ManagementPackProperty mpp_PartitionName = mpc_Partition.PropertyCollection["Name"]; SCOM_Object[mpp_PartitionName].Value = PartitionName; // Create Properties of Pool ManagementPackProperty mpp_PoolFullName = mpc_Pool.PropertyCollection["FullName"]; SCOM_Object[mpp_PoolFullName].Value = FullName; ManagementPackProperty mpp_PoolName = mpc_Pool.PropertyCollection["Name"]; SCOM_Object[mpp_PoolName].Value = ShortName; ManagementPackProperty mpp_PoolPartition = mpc_Pool.PropertyCollection["Partition"]; SCOM_Object[mpp_PoolPartition].Value = Partition; ManagementPackProperty mpp_PoolTotalMembers = mpc_Pool.PropertyCollection["TotalMembers"]; SCOM_Object[mpp_PoolTotalMembers].Value = TotalMembers; ManagementPackProperty mpp_PoolActiveMembers = mpc_Pool.PropertyCollection["ActiveMembers"]; SCOM_Object[mpp_PoolActiveMembers].Value = ActiveMembers; ManagementPackProperty mpp_PoolDescription = mpc_Pool.PropertyCollection["Description"]; SCOM_Object[mpp_PoolDescription].Value = Description; ManagementPackProperty mpp_PoolMonitorRule = mpc_Pool.PropertyCollection["MonitorRule"]; SCOM_Object[mpp_PoolMonitorRule].Value = MonitorRule; }
/// <summary> /// Default Constructor /// </summary> /// <param name="dg"></param> /// <param name="FullName"></param> /// <param name="Description"></param> /// <param name="CertFileName"></param> public ProfileServerSSL(SyncFailoverGroup dg, string PartitionName, string FullName, string Description, string CertFileNames) { // Get ShortName string ShortName = FullName.Substring(FullName.LastIndexOf("/") + 1); // Get Partition string Partition = FullName.Substring(1, FullName.LastIndexOf("/") - 1); // Create Profile Management Pack Class ManagementPackClass mpc_Profile = SCOM.GetManagementPackClass("AP.F5.LTM.ProfileServerSSL"); // Create New NetworkInterface Object SCOM_Object = new CreatableEnterpriseManagementObject(SCOM.m_managementGroup, mpc_Profile); // Create Root Entity Class & Key Property ManagementPackClass mpc_Entity = SCOM.GetManagementPackClass("System.Entity"); ManagementPackProperty mpp_EntityDisplayName = mpc_Entity.PropertyCollection["DisplayName"]; SCOM_Object[mpp_EntityDisplayName].Value = ShortName; // Create SyncFailoverGroup Management Pack Class & Key Property ManagementPackClass mpc_SyncFailoverGroup = SCOM.GetManagementPackClass("AP.F5.LTM.SyncFailoverGroup"); ManagementPackProperty mpp_SyncFailoverGroupKey = mpc_SyncFailoverGroup.PropertyCollection["Key"]; SCOM_Object[mpp_SyncFailoverGroupKey].Value = dg.Key; // Create Partition Management Pack Class & Key Property ManagementPackClass mpc_Partition = SCOM.GetManagementPackClass("AP.F5.LTM.Partition"); ManagementPackProperty mpp_PartitionName = mpc_Partition.PropertyCollection["Name"]; SCOM_Object[mpp_PartitionName].Value = PartitionName; // Now We Can Create Profile Properties ManagementPackProperty mpp_ProfileName = mpc_Profile.PropertyCollection["Name"]; SCOM_Object[mpp_ProfileName].Value = ShortName; ManagementPackProperty mpp_ProfileFullName = mpc_Profile.PropertyCollection["FullName"]; SCOM_Object[mpp_ProfileFullName].Value = FullName; ManagementPackProperty mpp_ProfilePartition = mpc_Profile.PropertyCollection["Partition"]; SCOM_Object[mpp_ProfilePartition].Value = Partition; ManagementPackProperty mpp_ProfileDeviceGroup = mpc_Profile.PropertyCollection["DeviceGroup"]; SCOM_Object[mpp_ProfileDeviceGroup].Value = dg.Name; ManagementPackProperty mpp_ProfileDescription = mpc_Profile.PropertyCollection["Description"]; SCOM_Object[mpp_ProfileDescription].Value = Description; ManagementPackProperty mpp_ProfileCertFileName = mpc_Profile.PropertyCollection["CertFileNames"]; SCOM_Object[mpp_ProfileCertFileName].Value = CertFileNames; }
private void TestGettingIncidentsByEnumCriteria() { EnterpriseManagementGroup emg = new EnterpriseManagementGroup(txtServerName.Text); ManagementPack mpIncidentLibrary = Helper.GetManagementPackByName("System.WorkItem.Incident.Library", emg); ManagementPackClass mpcIncident = Helper.GetClassByName("System.WorkItem.Incident", emg); ManagementPackProperty mppClassification = Helper.GetManagementPackClassPropertyByName("System.WorkItem.Incident", "Classification", emg); ManagementPackTypeProjection mptpIncident = Helper.GetTypeProjectionByName("System.WorkItem.Incident.View.ProjectionType", emg); ManagementPackEnumeration mpeClassificationEnterpriseApp = Helper.GetEnumerationByName("IncidentClassificationEnum.EnterpriseApplications", emg); string strCriteria = Helper.SearchObjectByEnumerationCriteriaXml(mpeClassificationEnterpriseApp, mpcIncident, mppClassification); IObjectProjectionReader <EnterpriseManagementObject> reader = Helper.GetBufferedObjectProjectionReader(strCriteria, 40, mptpIncident, emg); MessageBox.Show(reader.Count.ToString()); }
public Node(string SyncFailoverGroupKey, string PartitionName, string NodeFullName, string NodeShortName, string Address, string Description, string MonitorRules) { // Set Partition string Partition = NodeFullName.Substring(1, NodeFullName.LastIndexOf("/") - 1); // Create Node Management Pack Class ManagementPackClass mpc_Node = SCOM.GetManagementPackClass("AP.F5.LTM.Node"); // Create New NetworkInterface Object SCOM_Object = new CreatableEnterpriseManagementObject(SCOM.m_managementGroup, mpc_Node); // Create Root Entity Class & Key Property ManagementPackClass mpc_Entity = SCOM.GetManagementPackClass("System.Entity"); ManagementPackProperty mpp_EntityDisplayName = mpc_Entity.PropertyCollection["DisplayName"]; SCOM_Object[mpp_EntityDisplayName].Value = NodeShortName; // Create SyncFailoverGroup Management Pack Class & Key Property ManagementPackClass mpc_SyncFailoverGroup = SCOM.GetManagementPackClass("AP.F5.LTM.SyncFailoverGroup"); ManagementPackProperty mpp_SyncFailoverGroupKey = mpc_SyncFailoverGroup.PropertyCollection["Key"]; SCOM_Object[mpp_SyncFailoverGroupKey].Value = SyncFailoverGroupKey; // Create Partition Management Pack Class & Key Property ManagementPackClass mpc_Partition = SCOM.GetManagementPackClass("AP.F5.LTM.Partition"); ManagementPackProperty mpp_PartitionName = mpc_Partition.PropertyCollection["Name"]; SCOM_Object[mpp_PartitionName].Value = PartitionName; // Set Node Properties // Create our Virtual Server Properties ManagementPackProperty mpp_Name = mpc_Node.PropertyCollection["Name"]; SCOM_Object[mpp_Name].Value = NodeShortName; ManagementPackProperty mpp_FullName = mpc_Node.PropertyCollection["FullName"]; SCOM_Object[mpp_FullName].Value = NodeFullName; ManagementPackProperty mpp_Description = mpc_Node.PropertyCollection["Description"]; SCOM_Object[mpp_Description].Value = Description; ManagementPackProperty mpp_Address = mpc_Node.PropertyCollection["Address"]; SCOM_Object[mpp_Address].Value = Address; ManagementPackProperty mpp_Partition = mpc_Node.PropertyCollection["Partition"]; SCOM_Object[mpp_Partition].Value = Partition; ManagementPackProperty mpp_MonitorRule = mpc_Node.PropertyCollection["MonitorRules"]; SCOM_Object[mpp_MonitorRule].Value = MonitorRules; }
private static bool IsBrowsableProperty(ManagementPackProperty mpProperty) { if (mpProperty.Id == IDs.FullyQualifiedDomainNameClassProperties.FullyQualifiedDomainNamePropertyId) // parent key { return(false); } if (mpProperty.Id == IDs.FullyQualifiedDomainNameClassProperties.TargetIndexPropertyId) // parent key { return(false); } if (mpProperty.Id == IDs.TestBaseClassProperties.TestIdPropertyId) // key { return(false); } return(true); }
/// <summary> /// Initializes a new instance of the <see cref="ApplianceConnector"/> class. /// </summary> public ApplianceConnector() { this.ApplianceClass = MGroup.Instance.GetManagementPackClass(ApplianceConst.MainName); this.EnclosureCollectionClass = MGroup.Instance.GetManagementPackClass(ApplianceConst.EnclosureCollection); this.ServerCollectionClass = MGroup.Instance.GetManagementPackClass(ApplianceConst.ServerCollection); this.EventCollectionClass = MGroup.Instance.GetManagementPackClass(ApplianceConst.EventCollection); this.PerformanceCollectionClass = MGroup.Instance.GetManagementPackClass(ApplianceConst.PerformanceCollection); this.FusionDirectorCollectionClass = MGroup.Instance.GetManagementPackClass(ApplianceConst.FusionDirectorCollection); this.ApplianceKey = this.ApplianceClass.PropertyCollection["HostName"]; this.MontioringConnector = MGroup.Instance.GetConnector(MGroup.Instance.ApplianceConnectorGuid); if (!this.MontioringConnector.Initialized) { this.MontioringConnector.Initialize(); } }
/// <summary> /// Create Memory SCOM Object and Relationship Object /// </summary> private void CreateMemoryScomObjects() { // Create Device Group Management Pack Class ManagementPackClass mpc_Device = SCOM_Functions.GetManagementPackClass("AP.F5.Device"); // Parent Device Key Property (IP Address) ManagementPackProperty mpp_DeviceKey = mpc_Device.PropertyCollection["DeviceName"]; // Create FailoverState Object ManagementPackClass mpc_DeviceMemory = SCOM_Functions.GetManagementPackClass("AP.F5.Device.Memory"); SCOM_Object_Memory = new CreatableEnterpriseManagementObject(m_managementGroup, mpc_DeviceMemory); SCOM_Object_Memory[mpp_DeviceKey].Value = SystemNodeName; // Set Key of Device ManagementPackProperty mpp_DeviceMemoryName = mpc_DeviceMemory.PropertyCollection["Name"]; SCOM_Object_Memory[mpp_DeviceMemoryName].Value = "Memory"; }
public static object GetSCOMClassInstancePropertyValue(MonitoringObject classInstance, string properyName) { var allClasses = classInstance.GetClasses(); ManagementPackProperty myProperty = null; foreach (var objectClass in allClasses) { if (objectClass.TryGetProperty(properyName, out myProperty)) { break; } } if (myProperty == null) { throw new KeyNotFoundException("Cannot find class property."); } return(classInstance[myProperty].Value); }
private static string PropertyCategoryName(ManagementPackProperty mpProperty) { if (mpProperty.Id == IDs.TestBaseClassProperties.TemplateReferencePropertyId) { return("Template Settings"); } else if (mpProperty.ParentElement.Id == SystemId.EntityClassId) { return("Generic"); } else if (mpProperty.ParentElement.Id == IDs.TestBaseClassId) { return("Common Monitoring Settings"); } else { return("Test Specific Parameters"); } }
/// <summary> /// Default Constructor /// </summary> /// <param name="dg">Hosting Device Group</param> /// <param name="Name">name of Traffic Group</param> public void CreateScomObject() { // Create Traffic Group Management Pack Class ManagementPackClass mpc_Trafficgroup = SCOM.GetManagementPackClass("AP.F5.LTM.TrafficGroup"); // Create Traffic Group Object SCOM_Object = new CreatableEnterpriseManagementObject(SCOM.m_managementGroup, mpc_Trafficgroup); // Create Root Entity Class & Display Name Prop ManagementPackClass mpc_Entity = SCOM.GetManagementPackClass("System.Entity"); ManagementPackProperty mpp_EntityDisplayName = mpc_Entity.PropertyCollection["DisplayName"]; SCOM_Object[mpp_EntityDisplayName].Value = Name; // Add in Key Property of Hosting DeviceGroup ManagementPackClass mpc_DeviceGroup = SCOM.GetManagementPackClass("AP.F5.LTM.SyncFailoverGroup"); ManagementPackProperty mpp_SyncFailoverGroupKey = mpc_DeviceGroup.PropertyCollection["Key"]; // Set parent Cluster Property SCOM_Object[mpp_SyncFailoverGroupKey].Value = DeviceGroup.Key; // Key (Key Property) ManagementPackProperty mpp_TrafficGroupKey = mpc_Trafficgroup.PropertyCollection["Key"]; SCOM_Object[mpp_TrafficGroupKey].Value = Key; // Name ManagementPackProperty mpp_TrafficGroupName = mpc_Trafficgroup.PropertyCollection["Name"]; SCOM_Object[mpp_TrafficGroupName].Value = Name; // FullName ManagementPackProperty mpp_TrafficGroupFullName = mpc_Trafficgroup.PropertyCollection["FullName"]; SCOM_Object[mpp_TrafficGroupFullName].Value = FullName; // Devices ManagementPackProperty mpp_TrafficGroupDevices = mpc_Trafficgroup.PropertyCollection["Devices"]; SCOM_Object[mpp_TrafficGroupDevices].Value = Devices; // DeviceGroup ManagementPackProperty mpp_TrafficGroupDeviceGroup = mpc_Trafficgroup.PropertyCollection["DeviceGroup"]; SCOM_Object[mpp_TrafficGroupDeviceGroup].Value = DeviceGroup.Name; }
private static Attribute[] GetAttibuteList(ManagementPackProperty mpProperty, Type editorType = null) { List <Attribute> result = new List <Attribute> { new BrowsableAttribute(IsBrowsableProperty(mpProperty)), new CategoryAttribute(PropertyCategoryName(mpProperty)), new DescriptionAttribute(mpProperty.Description) }; if (editorType != null) { result.Add(new EditorAttribute(editorType, typeof(System.Drawing.Design.UITypeEditor))); } if (mpProperty.SystemType == typeof(Enum)) { result.Add(new EditorAttribute(typeof(SCOMEnumEditor), typeof(UITypeEditor))); //result.Add(new TypeConverterAttribute(typeof(SCOMEnumConverter))); } return(result.ToArray()); }
private static string ConstructUpdateCriteria(string strMPAlias, ManagementPackClass mpc, ManagementPackProperty mpp) { StringBuilder sb = new StringBuilder(); sb.Append("<UpdateInstance>"); sb.Append("<Criteria>"); sb.Append("<Expression>"); sb.Append("<SimpleExpression>"); sb.Append("<ValueExpression>"); sb.Append(String.Format("<Property State=\"Pre\">$Context/Property[Type='{0}!{1}']/{2}$</Property>", strMPAlias, mpc.Name, mpp.Name)); sb.Append("</ValueExpression>"); sb.Append("<Operator>NotEqual</Operator>"); sb.Append("<ValueExpression>"); sb.Append(String.Format("<Property State=\"Post\">$Context/Property[Type='{0}!{1}']/{2}$</Property>", strMPAlias, mpc.Name, mpp.Name)); sb.Append("</ValueExpression>"); sb.Append("</SimpleExpression>"); sb.Append("</Expression>"); sb.Append("</Criteria>"); sb.Append("</UpdateInstance>"); return(sb.ToString()); }
private static void CreateQueue(ManagementPackClass mpc, ManagementPackEnumeration mpe, string strMPAlias, ManagementPackProperty mpp, ref ManagementPack mp, EnterpriseManagementGroup emg) { string strQueueDisplayName = String.Format("{0}: {1}", mpc.DisplayName, mpe.DisplayName); string strCriteria = ConstructCriteria(strMPAlias, mpc, mpp, mpe); Helper.CreateQueue(strQueueDisplayName, Helper.MakeMPElementSafeName(strQueueDisplayName), strCriteria, mpc, ref mp, emg); }
private static string ConstructCriteria(string strMPAlias, ManagementPackClass mpc, ManagementPackProperty mppp, ManagementPackEnumeration mpe) { StringBuilder sb = new StringBuilder(); sb.Append("<Expression>"); sb.Append("<SimpleExpression>"); sb.Append("<ValueExpression>"); sb.Append(String.Format("<Property>$Context/Property[Type='{0}!{1}']/{2}$</Property>", strMPAlias, mpc.Name, mppp.Name)); //sb.Append(String.Format("<Property>$Context/Property[Type='{0}']/{1}$</Property>", mpc.Id.ToString(), mppp.Id.ToString())); sb.Append("</ValueExpression>"); sb.Append("<Operator>Equal</Operator>"); sb.Append("<ValueExpression>"); sb.Append(String.Format("<Value>{{{0}}}</Value>", mpe.Id.ToString())); sb.Append("</ValueExpression>"); sb.Append("</SimpleExpression>"); sb.Append("</Expression>"); return(sb.ToString()); }
/// <summary> /// Create Scom Object /// </summary> private void CreateDeviceScomObject() { // Create Root Entity Class & Display Name Prop ManagementPackClass mpc_Entity = SCOM_Functions.GetManagementPackClass("System.Entity"); ManagementPackProperty mpp_EntityDisplayName = mpc_Entity.PropertyCollection["DisplayName"]; // Create Device Group Management Pack Class ManagementPackClass mpc_Device = SCOM_Functions.GetManagementPackClass("AP.F5.Device"); // Create New Device Group Object SCOM_Object_Device = new CreatableEnterpriseManagementObject(m_managementGroup, mpc_Device); // Display Name of Parent (KEY Property) SCOM_Object_Device[mpp_EntityDisplayName].Value = SystemNodeName; // Set Properties of Device // IPAddress ManagementPackProperty mpp_DeviceAddress = mpc_Device.PropertyCollection["IPAddress"]; SCOM_Object_Device[mpp_DeviceAddress].Value = Address; // Name (Key Property) ManagementPackProperty mpp_DeviceName = mpc_Device.PropertyCollection["DeviceName"]; SCOM_Object_Device[mpp_DeviceName].Value = SystemNodeName; // Type ManagementPackProperty mpp_DeviceType = mpc_Device.PropertyCollection["Type"]; SCOM_Object_Device[mpp_DeviceType].Value = Type; // Port ManagementPackProperty mpp_DevicePort = mpc_Device.PropertyCollection["Port"]; SCOM_Object_Device[mpp_DevicePort].Value = Port; // Community ManagementPackProperty mpp_DeviceCommunity = mpc_Device.PropertyCollection["Community"]; SCOM_Object_Device[mpp_DeviceCommunity].Value = Community; // SystemOID ManagementPackProperty mpp_DeviceSystemOID = mpc_Device.PropertyCollection["SystemOID"]; SCOM_Object_Device[mpp_DeviceSystemOID].Value = SystemOID; // Location ManagementPackProperty mpp_DeviceLocation = mpc_Device.PropertyCollection["Location"]; SCOM_Object_Device[mpp_DeviceLocation].Value = Location; // Contact ManagementPackProperty mpp_DeviceContact = mpc_Device.PropertyCollection["Contact"]; SCOM_Object_Device[mpp_DeviceContact].Value = Contact; // Model ManagementPackProperty mpp_DeviceModel = mpc_Device.PropertyCollection["Model"]; SCOM_Object_Device[mpp_DeviceModel].Value = Model; // Vendor ManagementPackProperty mpp_DeviceVendor = mpc_Device.PropertyCollection["Vendor"]; SCOM_Object_Device[mpp_DeviceVendor].Value = "F5 Networks, Inc."; // Version ManagementPackProperty mpp_DeviceVersion = mpc_Device.PropertyCollection["Version"]; SCOM_Object_Device[mpp_DeviceVersion].Value = SoftwareVersion; // Build ManagementPackProperty mpp_DeviceBuild = mpc_Device.PropertyCollection["Build"]; SCOM_Object_Device[mpp_DeviceBuild].Value = SoftwareBuild; // HotFix ManagementPackProperty mpp_DeviceHotFix = mpc_Device.PropertyCollection["HotFix"]; SCOM_Object_Device[mpp_DeviceHotFix].Value = SoftwareHotFix; // SerialNumber ManagementPackProperty mpp_DeviceSerialNumber = mpc_Device.PropertyCollection["SerialNumber"]; SCOM_Object_Device[mpp_DeviceSerialNumber].Value = SerialNumber; // Standalone ManagementPackProperty mpp_DeviceStandalone = mpc_Device.PropertyCollection["Standalone"]; SCOM_Object_Device[mpp_DeviceStandalone].Value = Standalone; }
public EnterpriseManagementSimpleObject this[ManagementPackProperty managementPackProperty] => BaseObject[managementPackProperty];
public EnterpriseManagementSimpleObject this[ManagementPackProperty managementPackProperty] => MonitoringObject[managementPackProperty];
private static void CreateUpdateNotificationRule(ManagementPackClass mpc, string strMPAlias, ManagementPackProperty mpp, ref ManagementPack mp, EnterpriseManagementObject emoUser, ManagementPackObjectTemplate mpot, EnterpriseManagementGroup emg) { string strRuleDisplayName = String.Format("{0}: Update: {1}", mpc.DisplayName, mpp.DisplayName); string strCriteria = ConstructUpdateCriteria(strMPAlias, mpc, mpp); Helper.CreateNotificationRule(strRuleDisplayName, Helper.MakeMPElementSafeName(strRuleDisplayName), strCriteria, emoUser, mpc, mpot, ref mp, emg); }
private void btnCreate_Click(object sender, EventArgs e) { EnterpriseManagementGroup emg = new EnterpriseManagementGroup(txtManagementServer.Text); ManagementPackEnumeration mpeSRAreaBase = Helper.GetEnumerationByName("ServiceRequestAreaEnum", emg); ManagementPackEnumeration mpeCRAreaBase = Helper.GetEnumerationByName("ChangeAreaEnum", emg); ManagementPackEnumeration mpeProblemAreaBase = Helper.GetEnumerationByName("ProblemClassificationEnum", emg); ManagementPackEnumeration mpeIncidentAreaBase = Helper.GetEnumerationByName("IncidentClassificationEnum", emg); IList <ManagementPackEnumeration> listSRAreaEnums = emg.EntityTypes.GetChildEnumerations(mpeSRAreaBase.Id, TraversalDepth.Recursive); IList <ManagementPackEnumeration> listCRAreaEnums = emg.EntityTypes.GetChildEnumerations(mpeCRAreaBase.Id, TraversalDepth.Recursive); IList <ManagementPackEnumeration> listProblemAreaEnums = emg.EntityTypes.GetChildEnumerations(mpeProblemAreaBase.Id, TraversalDepth.Recursive); IList <ManagementPackEnumeration> listIncidentAreaEnums = emg.EntityTypes.GetChildEnumerations(mpeIncidentAreaBase.Id, TraversalDepth.Recursive); ManagementPackClass mpcServiceRequest = Helper.GetClassByName("System.WorkItem.ServiceRequest", emg); ManagementPackClass mpcChangeRequest = Helper.GetClassByName("System.WorkItem.ChangeRequest", emg); ManagementPackClass mpcProblem = Helper.GetClassByName("System.WorkItem.Problem", emg); ManagementPackClass mpcIncident = Helper.GetClassByName("System.WorkItem.Incident", emg); ManagementPack mpServiceRequest = Helper.GetManagementPackByName("System.WorkItem.ServiceRequest.Library", emg); ManagementPack mpChangeRequest = Helper.GetManagementPackByName("System.WorkItem.ChangeRequest.Library", emg); ManagementPack mpProblem = Helper.GetManagementPackByName("System.WorkItem.Problem.Library", emg); ManagementPack mpIncident = Helper.GetManagementPackByName("System.WorkItem.Incident.Library", emg); ManagementPackReference mprServiceRequest = new ManagementPackReference(mpServiceRequest); ManagementPackReference mprChangeRequest = new ManagementPackReference(mpChangeRequest); ManagementPackReference mprProblem = new ManagementPackReference(mpProblem); ManagementPackReference mprIncident = new ManagementPackReference(mpIncident); ManagementPack mp = Helper.CreateNewManagementPackInMemory("Queues", "1.0.0.0", "Queues", "QUEUES", emg, true); string strMPAliasServiceRequestLibrary = Helper.MakeMPElementSafeName(mpServiceRequest.Name); string strMPAliasChangeRequestLibrary = Helper.MakeMPElementSafeName(mpChangeRequest.Name); string strMPAliasProblemLibrary = Helper.MakeMPElementSafeName(mpProblem.Name); string strMPAliasIncidentLibrary = Helper.MakeMPElementSafeName(mpIncident.Name); mp.References.Add(strMPAliasServiceRequestLibrary, mprServiceRequest); mp.References.Add(strMPAliasChangeRequestLibrary, mprChangeRequest); mp.References.Add(strMPAliasProblemLibrary, mprProblem); mp.References.Add(strMPAliasIncidentLibrary, mprIncident); double dQueuesToCreate = listSRAreaEnums.Count + listCRAreaEnums.Count + listProblemAreaEnums.Count + listIncidentAreaEnums.Count; pbProgress.Show(); pbProgress.Value = 0; double i = 0; foreach (ManagementPackEnumeration mpeSRArea in listSRAreaEnums) { i++; ManagementPackProperty mppArea = Helper.GetManagementPackClassPropertyByName("System.WorkItem.ServiceRequest", "Area", emg); CreateQueue(mpcServiceRequest, mpeSRArea, strMPAliasServiceRequestLibrary, mppArea, ref mp, emg); pbProgress.Value = (int)(i / dQueuesToCreate * 100); } foreach (ManagementPackEnumeration mpeCRArea in listCRAreaEnums) { i++; ManagementPackProperty mppArea = Helper.GetManagementPackClassPropertyByName("System.WorkItem.ChangeRequest", "Area", emg); CreateQueue(mpcChangeRequest, mpeCRArea, strMPAliasChangeRequestLibrary, mppArea, ref mp, emg); pbProgress.Value = (int)(i / dQueuesToCreate * 100); } foreach (ManagementPackEnumeration mpeProblemClassification in listProblemAreaEnums) { i++; ManagementPackProperty mppClassification = Helper.GetManagementPackClassPropertyByName("System.WorkItem.Problem", "Classification", emg); CreateQueue(mpcProblem, mpeProblemClassification, strMPAliasProblemLibrary, mppClassification, ref mp, emg); pbProgress.Value = (int)(i / dQueuesToCreate * 100); } foreach (ManagementPackEnumeration mpeIncidentClassification in listIncidentAreaEnums) { i++; ManagementPackProperty mppClassification = Helper.GetManagementPackClassPropertyByName("System.WorkItem.Incident", "Classification", emg); CreateQueue(mpcIncident, mpeIncidentClassification, strMPAliasIncidentLibrary, mppClassification, ref mp, emg); pbProgress.Value = (int)(i / dQueuesToCreate * 100); } lblStatus.Text = "Importing Manamgeent Pack..."; emg.ManagementPacks.ImportManagementPack(mp); lblStatus.Text = "Importing Manamgeent Pack...DONE!"; }
private void btnCreate_Click(object sender, EventArgs e) { EnterpriseManagementGroup emg = new EnterpriseManagementGroup(txtManagementServer.Text); ManagementPackEnumeration mpeSRAreaBase = Helper.GetEnumerationByName("ServiceRequestAreaEnum", emg); ManagementPackEnumeration mpeCRAreaBase = Helper.GetEnumerationByName("ChangeAreaEnum", emg); ManagementPackEnumeration mpeProblemClassificationBase = Helper.GetEnumerationByName("ProblemClassificationEnum", emg); ManagementPackEnumeration mpeIncidentClassificationBase = Helper.GetEnumerationByName("IncidentClassificationEnum", emg); IList <ManagementPackEnumeration> listSRAreaEnums = emg.EntityTypes.GetChildEnumerations(mpeSRAreaBase.Id, TraversalDepth.Recursive); IList <ManagementPackEnumeration> listCRAreaEnums = emg.EntityTypes.GetChildEnumerations(mpeCRAreaBase.Id, TraversalDepth.Recursive); IList <ManagementPackEnumeration> listProblemAreaEnums = emg.EntityTypes.GetChildEnumerations(mpeProblemClassificationBase.Id, TraversalDepth.Recursive); IList <ManagementPackEnumeration> listIncidentAreaEnums = emg.EntityTypes.GetChildEnumerations(mpeIncidentClassificationBase.Id, TraversalDepth.Recursive); ManagementPackClass mpcServiceRequest = Helper.GetClassByName("System.WorkItem.ServiceRequest", emg); ManagementPackClass mpcChangeRequest = Helper.GetClassByName("System.WorkItem.ChangeRequest", emg); ManagementPackClass mpcProblem = Helper.GetClassByName("System.WorkItem.Problem", emg); ManagementPackClass mpcIncident = Helper.GetClassByName("System.WorkItem.Incident", emg); ManagementPack mpServiceRequest = Helper.GetManagementPackByName("System.WorkItem.ServiceRequest.Library", emg); ManagementPack mpChangeRequest = Helper.GetManagementPackByName("System.WorkItem.ChangeRequest.Library", emg); ManagementPack mpProblem = Helper.GetManagementPackByName("System.WorkItem.Problem.Library", emg); ManagementPack mpIncident = Helper.GetManagementPackByName("System.WorkItem.Incident.Library", emg); ManagementPackReference mprServiceRequest = new ManagementPackReference(mpServiceRequest); ManagementPackReference mprChangeRequest = new ManagementPackReference(mpChangeRequest); ManagementPackReference mprProblem = new ManagementPackReference(mpProblem); ManagementPackReference mprIncident = new ManagementPackReference(mpIncident); ManagementPack mp = Helper.CreateNewManagementPackInMemory("NotificationRules", "1.0.0.0", "NotificationRules", "NOTIFICATION_RULES", emg, true); string strMPAliasServiceRequestLibrary = Helper.MakeMPElementSafeName(mpServiceRequest.Name); string strMPAliasChangeRequestLibrary = Helper.MakeMPElementSafeName(mpChangeRequest.Name); string strMPAliasProblemLibrary = Helper.MakeMPElementSafeName(mpProblem.Name); string strMPAliasIncidentLibrary = Helper.MakeMPElementSafeName(mpIncident.Name); mp.References.Add(strMPAliasServiceRequestLibrary, mprServiceRequest); mp.References.Add(strMPAliasChangeRequestLibrary, mprChangeRequest); mp.References.Add(strMPAliasProblemLibrary, mprProblem); mp.References.Add(strMPAliasIncidentLibrary, mprIncident); ManagementPackObjectTemplate mpotNewIncident = Helper.GetObjectTemplateByName(txtNewIncidentTemplate.Text, emg); ManagementPackObjectTemplate mpotUpdateIncident = Helper.GetObjectTemplateByName(txtUpdateIncidentTemplate.Text, emg); ManagementPackObjectTemplate mpotNewServiceRequest = Helper.GetObjectTemplateByName(txtNewServiceRequestTemplate.Text, emg); ManagementPackObjectTemplate mpotUpdateServiceRequest = Helper.GetObjectTemplateByName(txtUpdateServiceRequestTemplate.Text, emg); ManagementPackObjectTemplate mpotNewChangeRequest = Helper.GetObjectTemplateByName(txtNewChangeRequestTemplate.Text, emg); ManagementPackObjectTemplate mpotUpdateChangeRequest = Helper.GetObjectTemplateByName(txtUpdateChangeRequestTemplate.Text, emg); ManagementPackObjectTemplate mpotNewProblem = Helper.GetObjectTemplateByName(txtNewProblemTemplate.Text, emg); ManagementPackObjectTemplate mpotUpdateProblem = Helper.GetObjectTemplateByName(txtUpdateProblemTemplate.Text, emg); EnterpriseManagementObject emoUser = Helper.GetUserFromEmailAddress(txtEmailAddress.Text, emg); double dRulesToCreate = listSRAreaEnums.Count + listCRAreaEnums.Count + listProblemAreaEnums.Count + listIncidentAreaEnums.Count; pbProgress.Show(); pbProgress.Value = 0; double i = 0; ManagementPackProperty mppSRArea = Helper.GetManagementPackClassPropertyByName("System.WorkItem.ServiceRequest", "Area", emg); ManagementPackProperty mppCRArea = Helper.GetManagementPackClassPropertyByName("System.WorkItem.ChangeRequest", "Area", emg); ManagementPackProperty mppProblemClassification = Helper.GetManagementPackClassPropertyByName("System.WorkItem.Problem", "Classification", emg); ManagementPackProperty mppIncidentClassification = Helper.GetManagementPackClassPropertyByName("System.WorkItem.Incident", "Classification", emg); foreach (ManagementPackEnumeration mpeSRArea in listSRAreaEnums) { i++; CreateAddNotificationRule(mpcServiceRequest, mpeSRArea, strMPAliasServiceRequestLibrary, mppSRArea, ref mp, emoUser, mpotNewServiceRequest, emg); pbProgress.Value = (int)(i / dRulesToCreate * 100); } CreateUpdateNotificationRule(mpcServiceRequest, strMPAliasServiceRequestLibrary, mppSRArea, ref mp, emoUser, mpotUpdateServiceRequest, emg); foreach (ManagementPackEnumeration mpeCRArea in listCRAreaEnums) { i++; CreateAddNotificationRule(mpcChangeRequest, mpeCRArea, strMPAliasChangeRequestLibrary, mppCRArea, ref mp, emoUser, mpotNewChangeRequest, emg); pbProgress.Value = (int)(i / dRulesToCreate * 100); } CreateUpdateNotificationRule(mpcChangeRequest, strMPAliasChangeRequestLibrary, mppCRArea, ref mp, emoUser, mpotUpdateChangeRequest, emg); foreach (ManagementPackEnumeration mpeProblemClassification in listProblemAreaEnums) { i++; CreateAddNotificationRule(mpcProblem, mpeProblemClassification, strMPAliasProblemLibrary, mppProblemClassification, ref mp, emoUser, mpotNewProblem, emg); pbProgress.Value = (int)(i / dRulesToCreate * 100); } CreateUpdateNotificationRule(mpcProblem, strMPAliasProblemLibrary, mppProblemClassification, ref mp, emoUser, mpotUpdateProblem, emg); foreach (ManagementPackEnumeration mpeIncidentClassification in listIncidentAreaEnums) { i++; CreateAddNotificationRule(mpcIncident, mpeIncidentClassification, strMPAliasIncidentLibrary, mppIncidentClassification, ref mp, emoUser, mpotNewIncident, emg); pbProgress.Value = (int)(i / dRulesToCreate * 100); } CreateUpdateNotificationRule(mpcIncident, strMPAliasIncidentLibrary, mppIncidentClassification, ref mp, emoUser, mpotUpdateIncident, emg); emg.ManagementPacks.ImportManagementPack(mp); }