Dell Chassis Detailed Discovery

Dell.Chassis.OOB.ComponentsDiscovery (Discovery)

Dell Chassis detailed discovery will discover chassis components that are a part of Dell chassis. Configure RunAs Accounts for the profile "Dell CMC Login Account" and associate it with Dell Chassis Management Controller (CMC) Objects.

Knowledge Base article:

Summary

Dell Chassis detailed discovery will discover chassis components that are a part of Dell chassis. Configure RunAs Accounts for the profile "Dell CMC Login Account" and associate it with Dell Chassis Management Controller (CMC) Objects.

Element properties:

TargetDell.ModularChassis.CMC
EnabledTrue
Frequency86400
RemotableFalse

Object Discovery Details:

Discovered Classes and their attribuets:
Discovered relationships and their attribuets:

Member Modules:

ID Module Type TypeId RunAs 
DS DataSource Dell.Operations.CMC.TemplateMethod.ChassisStorageDSMT Default

Source Code:

<Discovery ID="Dell.Chassis.OOB.ComponentsDiscovery" Enabled="true" Target="DAD!Dell.ModularChassis.CMC" ConfirmDelivery="true" Remotable="true" Priority="Normal">
<Category>Discovery</Category>
<DiscoveryTypes>
<DiscoveryClass TypeID="DAD!Dell.Chassis.Storage">
<Property TypeID="System!System.Entity" PropertyID="DisplayName"/>
<Property TypeID="DAD!Dell.Chassis.Storage" PropertyID="ID"/>
<Property TypeID="DAD!Dell.Chassis.Storage" PropertyID="RemoteAccessIP"/>
<Property TypeID="DAD!Dell.Chassis.Storage" PropertyID="RemoteSettings"/>
</DiscoveryClass>
<DiscoveryClass TypeID="DAD!Dell.Chassis.Storage.Controller">
<Property TypeID="System!System.Entity" PropertyID="DisplayName"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller" PropertyID="FQDD"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller" PropertyID="CacheMemorySize"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller" PropertyID="FirmwareVersion"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller" PropertyID="Manufacturer"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller" PropertyID="SlotLength"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller" PropertyID="SlotType"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller" PropertyID="DriverVersion"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller" PropertyID="EncryptionCapability"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller" PropertyID="HighAvailabilityMode"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller" PropertyID="SPercSlot"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller" PropertyID="PatrolReadState"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller" PropertyID="ProductName"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller" PropertyID="SecurityStatus"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller" PropertyID="EncryptionMode"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller" PropertyID="CachecadeCapability"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller" PropertyID="SlicedVDCapability"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller" PropertyID="SASAddress"/>
</DiscoveryClass>
<DiscoveryClass TypeID="DAD!Dell.Chassis.Storage.Controller.VirtualDiskGroup">
<Property TypeID="System!System.Entity" PropertyID="DisplayName"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.VirtualDiskGroup" PropertyID="Number"/>
</DiscoveryClass>
<DiscoveryClass TypeID="DAD!Dell.Chassis.Storage.Controller.VirtualDisk">
<Property TypeID="System!System.Entity" PropertyID="DisplayName"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.VirtualDisk" PropertyID="FQDD"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.VirtualDisk" PropertyID="BusProtocol"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.VirtualDisk" PropertyID="CacheCade"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.VirtualDisk" PropertyID="Name"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.VirtualDisk" PropertyID="DiskCachePolicy"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.VirtualDisk" PropertyID="LockStatus"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.VirtualDisk" PropertyID="MediaType"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.VirtualDisk" PropertyID="RAIDLevel"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.VirtualDisk" PropertyID="ReadPolicy"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.VirtualDisk" PropertyID="RemainingRedundancy"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.VirtualDisk" PropertyID="Capacity"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.VirtualDisk" PropertyID="SpanLength"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.VirtualDisk" PropertyID="StripeElementSize"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.VirtualDisk" PropertyID="WritePolicy"/>
</DiscoveryClass>
<DiscoveryClass TypeID="DAD!Dell.Chassis.Storage.Controller.Enclosure.InternalPhysicalDisk">
<Property TypeID="System!System.Entity" PropertyID="DisplayName"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.Enclosure.InternalPhysicalDisk" PropertyID="FQDD"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.Enclosure.InternalPhysicalDisk" PropertyID="Connector"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.Enclosure.InternalPhysicalDisk" PropertyID="Protocol"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.Enclosure.InternalPhysicalDisk" PropertyID="DriveFormFactor"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.Enclosure.InternalPhysicalDisk" PropertyID="HotSpare"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.Enclosure.InternalPhysicalDisk" PropertyID="Manufacturer"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.Enclosure.InternalPhysicalDisk" PropertyID="ManufacturedDay"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.Enclosure.InternalPhysicalDisk" PropertyID="ManufacturedWeek"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.Enclosure.InternalPhysicalDisk" PropertyID="ManufacturedYear"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.Enclosure.InternalPhysicalDisk" PropertyID="MaxCapableSpeed"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.Enclosure.InternalPhysicalDisk" PropertyID="MediaType"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.Enclosure.InternalPhysicalDisk" PropertyID="ProductID"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.Enclosure.InternalPhysicalDisk" PropertyID="PartNumber"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.Enclosure.InternalPhysicalDisk" PropertyID="Version"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.Enclosure.InternalPhysicalDisk" PropertyID="SASAddress"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.Enclosure.InternalPhysicalDisk" PropertyID="SecurityState"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.Enclosure.InternalPhysicalDisk" PropertyID="SerialNumber"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.Enclosure.InternalPhysicalDisk" PropertyID="Capacity"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.Enclosure.InternalPhysicalDisk" PropertyID="SlotNumber"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.Enclosure.InternalPhysicalDisk" PropertyID="SupportedEncryptionTypes"/>
</DiscoveryClass>
<DiscoveryClass TypeID="DAD!Dell.Chassis.Storage.Controller.Enclosure.ExternalPhysicalDisk">
<Property TypeID="System!System.Entity" PropertyID="DisplayName"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.Enclosure.ExternalPhysicalDisk" PropertyID="FQDD"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.Enclosure.ExternalPhysicalDisk" PropertyID="Connector"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.Enclosure.ExternalPhysicalDisk" PropertyID="Protocol"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.Enclosure.ExternalPhysicalDisk" PropertyID="DriveFormFactor"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.Enclosure.ExternalPhysicalDisk" PropertyID="HotSpare"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.Enclosure.ExternalPhysicalDisk" PropertyID="Manufacturer"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.Enclosure.ExternalPhysicalDisk" PropertyID="ManufacturedDay"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.Enclosure.ExternalPhysicalDisk" PropertyID="ManufacturedWeek"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.Enclosure.ExternalPhysicalDisk" PropertyID="ManufacturedYear"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.Enclosure.ExternalPhysicalDisk" PropertyID="MaxCapableSpeed"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.Enclosure.ExternalPhysicalDisk" PropertyID="MediaType"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.Enclosure.ExternalPhysicalDisk" PropertyID="ProductID"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.Enclosure.ExternalPhysicalDisk" PropertyID="PartNumber"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.Enclosure.ExternalPhysicalDisk" PropertyID="Version"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.Enclosure.ExternalPhysicalDisk" PropertyID="SASAddress"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.Enclosure.ExternalPhysicalDisk" PropertyID="SecurityState"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.Enclosure.ExternalPhysicalDisk" PropertyID="SerialNumber"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.Enclosure.ExternalPhysicalDisk" PropertyID="Capacity"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.Enclosure.ExternalPhysicalDisk" PropertyID="SlotNumber"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.Enclosure.ExternalPhysicalDisk" PropertyID="SupportedEncryptionTypes"/>
</DiscoveryClass>
<DiscoveryClass TypeID="DAD!Dell.Chassis.Storage.Controller.Enclosure.ExternalPhysicalDiskGroup">
<Property TypeID="System!System.Entity" PropertyID="DisplayName"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.Enclosure.ExternalPhysicalDiskGroup" PropertyID="Number"/>
</DiscoveryClass>
<DiscoveryClass TypeID="DAD!Dell.Chassis.Storage.Controller.Enclosure">
<Property TypeID="System!System.Entity" PropertyID="DisplayName"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.Enclosure" PropertyID="FQDD"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.Enclosure" PropertyID="BayID"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.Enclosure" PropertyID="Connector"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.Enclosure" PropertyID="ServiceTag"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.Enclosure" PropertyID="AssetTag"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.Enclosure" PropertyID="NumberofSlots"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.Enclosure" PropertyID="FirmwareRevision"/>
</DiscoveryClass>
<DiscoveryClass TypeID="DAD!Dell.Chassis.Storage.Controller.Enclosure.InternalPhysicalDiskGroup">
<Property TypeID="System!System.Entity" PropertyID="DisplayName"/>
<Property TypeID="DAD!Dell.Chassis.Storage.Controller.Enclosure.InternalPhysicalDiskGroup" PropertyID="Number"/>
</DiscoveryClass>
<DiscoveryClass TypeID="DAD!Dell.BladeServer.SharedStorage">
<Property TypeID="DAD!Dell.BladeServer.SharedStorage" PropertyID="ID"/>
<Property TypeID="DAD!Dell.BladeServer.SharedStorage" PropertyID="AssignedBladeFQDD"/>
<Property TypeID="DAD!Dell.BladeServer.SharedStorage" PropertyID="HostManagementServer"/>
</DiscoveryClass>
<DiscoveryClass TypeID="DAD!Dell.Chassis.FanGroup">
<Property TypeID="System!System.Entity" PropertyID="DisplayName"/>
<Property TypeID="DAD!Dell.Chassis.FanGroup" PropertyID="RemoteAccessIP"/>
<Property TypeID="DAD!Dell.Chassis.FanGroup" PropertyID="RemoteSettings"/>
</DiscoveryClass>
<DiscoveryClass TypeID="DAD!Dell.Chassis.Fan">
<Property TypeID="System!System.Entity" PropertyID="DisplayName"/>
<Property TypeID="DAD!Dell.Chassis.Fan" PropertyID="FQDD"/>
<Property TypeID="DAD!Dell.Chassis.Fan" PropertyID="Manufacturer"/>
<Property TypeID="DAD!Dell.Chassis.Fan" PropertyID="Slot"/>
</DiscoveryClass>
<DiscoveryClass TypeID="DAD!Dell.Chassis.PCIeDeviceGroup">
<Property TypeID="DAD!Dell.Chassis.PCIeDeviceGroup" PropertyID="ID"/>
<Property TypeID="DAD!Dell.Chassis.PCIeDeviceGroup" PropertyID="RemoteAccessIP"/>
<Property TypeID="DAD!Dell.Chassis.PCIeDeviceGroup" PropertyID="RemoteSettings"/>
<Property TypeID="System!System.Entity" PropertyID="DisplayName"/>
</DiscoveryClass>
<DiscoveryClass TypeID="DAD!Dell.Chassis.PCIeDevice">
<Property TypeID="DAD!Dell.Chassis.PCIeDevice" PropertyID="FQDD"/>
<Property TypeID="DAD!Dell.Chassis.PCIeDevice" PropertyID="Fabric"/>
<Property TypeID="DAD!Dell.Chassis.PCIeDevice" PropertyID="AssignedSlot"/>
<Property TypeID="DAD!Dell.Chassis.PCIeDevice" PropertyID="AssignedBlade"/>
<Property TypeID="DAD!Dell.Chassis.PCIeDevice" PropertyID="SlotType"/>
<Property TypeID="DAD!Dell.Chassis.PCIeDevice" PropertyID="PCIeSlot"/>
<Property TypeID="DAD!Dell.Chassis.PCIeDevice" PropertyID="Description"/>
<Property TypeID="DAD!Dell.Chassis.PCIeDevice" PropertyID="Databuswidth"/>
<Property TypeID="DAD!Dell.Chassis.PCIeDevice" PropertyID="Manufacturer"/>
</DiscoveryClass>
<DiscoveryClass TypeID="DAD!Dell.Chassis.PowerSupplyGroup">
<Property TypeID="DAD!Dell.Chassis.PowerSupplyGroup" PropertyID="ID"/>
<Property TypeID="DAD!Dell.Chassis.PowerSupplyGroup" PropertyID="RemoteAccessIP"/>
<Property TypeID="DAD!Dell.Chassis.PowerSupplyGroup" PropertyID="RemoteSettings"/>
<Property TypeID="System!System.Entity" PropertyID="DisplayName"/>
</DiscoveryClass>
<DiscoveryClass TypeID="DAD!Dell.Chassis.PowerSupply">
<Property TypeID="DAD!Dell.Chassis.PowerSupply" PropertyID="FQDD"/>
<Property TypeID="DAD!Dell.Chassis.PowerSupply" PropertyID="Capacity"/>
<Property TypeID="DAD!Dell.Chassis.PowerSupply" PropertyID="Manufacturer"/>
<Property TypeID="DAD!Dell.Chassis.PowerSupply" PropertyID="Model"/>
<Property TypeID="DAD!Dell.Chassis.PowerSupply" PropertyID="SerialNumber"/>
<Property TypeID="DAD!Dell.Chassis.PowerSupply" PropertyID="PartNumber"/>
<Property TypeID="DAD!Dell.Chassis.PowerSupply" PropertyID="Slot"/>
<Property TypeID="System!System.Entity" PropertyID="DisplayName"/>
</DiscoveryClass>
<DiscoveryClass TypeID="DAD!Dell.Chassis.CMCGroup">
<Property TypeID="DAD!Dell.Chassis.CMCGroup" PropertyID="ID"/>
<Property TypeID="DAD!Dell.Chassis.CMCGroup" PropertyID="RemoteAccessIP"/>
<Property TypeID="DAD!Dell.Chassis.CMCGroup" PropertyID="RemoteSettings"/>
<Property TypeID="System!System.Entity" PropertyID="DisplayName"/>
</DiscoveryClass>
<DiscoveryClass TypeID="DAD!Dell.Chassis.CMC">
<Property TypeID="DAD!Dell.Chassis.CMC" PropertyID="FQDD"/>
<Property TypeID="DAD!Dell.Chassis.CMC" PropertyID="CMCRole"/>
<Property TypeID="DAD!Dell.Chassis.CMC" PropertyID="Manufacturer"/>
<Property TypeID="DAD!Dell.Chassis.CMC" PropertyID="Model"/>
<Property TypeID="DAD!Dell.Chassis.CMC" PropertyID="SerialNumber"/>
<Property TypeID="DAD!Dell.Chassis.CMC" PropertyID="PartNumber"/>
<Property TypeID="DAD!Dell.Chassis.CMC" PropertyID="FirmwareVersion"/>
<Property TypeID="System!System.Entity" PropertyID="DisplayName"/>
</DiscoveryClass>
<DiscoveryClass TypeID="DAD!Dell.Chassis.IOModuleGroup">
<Property TypeID="DAD!Dell.Chassis.IOModuleGroup" PropertyID="ID"/>
<Property TypeID="DAD!Dell.Chassis.IOModuleGroup" PropertyID="RemoteAccessIP"/>
<Property TypeID="DAD!Dell.Chassis.IOModuleGroup" PropertyID="RemoteSettings"/>
<Property TypeID="System!System.Entity" PropertyID="DisplayName"/>
</DiscoveryClass>
<DiscoveryClass TypeID="DAD!Dell.Chassis.IOModule">
<Property TypeID="DAD!Dell.Chassis.IOModule" PropertyID="FQDD"/>
<Property TypeID="DAD!Dell.Chassis.IOModule" PropertyID="Manufacturer"/>
<Property TypeID="DAD!Dell.Chassis.IOModule" PropertyID="Model"/>
<Property TypeID="DAD!Dell.Chassis.IOModule" PropertyID="SerialNumber"/>
<Property TypeID="DAD!Dell.Chassis.IOModule" PropertyID="PartNumber"/>
<Property TypeID="DAD!Dell.Chassis.IOModule" PropertyID="Slot"/>
<Property TypeID="DAD!Dell.Chassis.IOModule" PropertyID="FabricType"/>
<Property TypeID="DAD!Dell.Chassis.IOModule" PropertyID="IPAddress"/>
<Property TypeID="DAD!Dell.Chassis.IOModule" PropertyID="SubnetMask"/>
<Property TypeID="DAD!Dell.Chassis.IOModule" PropertyID="Gateway"/>
<Property TypeID="DAD!Dell.Chassis.IOModule" PropertyID="LaunchURL"/>
<Property TypeID="System!System.Entity" PropertyID="DisplayName"/>
</DiscoveryClass>
<DiscoveryRelationship TypeID="DAD!DellModularChassis.Contains.Storage"/>
<DiscoveryRelationship TypeID="DAD!Storage.Hosts.ChassisController"/>
<DiscoveryRelationship TypeID="DAD!Controller.Hosts.ChassisVirtualDiskGroup"/>
<DiscoveryRelationship TypeID="DAD!VirtualDiskGroup.Hosts.ChassisVirtualDisk"/>
<DiscoveryRelationship TypeID="DAD!Controller.Hosts.ChassisEnclosure"/>
<DiscoveryRelationship TypeID="DAD!Enclosure.Hosts.ChassisInternalPhysicalDiskGroup"/>
<DiscoveryRelationship TypeID="DAD!Enclosure.Hosts.ChassisExternalPhysicalDiskGroup"/>
<DiscoveryRelationship TypeID="DAD!ExternalPhysicalDiskGroup.Hosts.ChassisExternalPhysicalDisk"/>
<DiscoveryRelationship TypeID="DAD!InternalPhysicalDiskGroup.Hosts.ChassisInternalPhysicalDisk"/>
<DiscoveryRelationship TypeID="DAD!DellModularChassis.Contains.FanGroup"/>
<DiscoveryRelationship TypeID="DAD!DellChassisFanGroup.Contains.Fans"/>
<DiscoveryRelationship TypeID="DAD!DellModularChassis.Contains.ChassisPCIeDeviceGroup"/>
<DiscoveryRelationship TypeID="DAD!ChassisPCIeDeviceGroup.Hosts.ChassisPCIeDevice"/>
<DiscoveryRelationship TypeID="DAD!DellModularChassis.Contains.ChassisPowerSupplyGroup"/>
<DiscoveryRelationship TypeID="DAD!DellModularChassis.Contains.DellCMCGroup"/>
<DiscoveryRelationship TypeID="DAD!ChassisPowerSupplyGroup.Hosts.ChassisPowerSupply"/>
<DiscoveryRelationship TypeID="DAD!DellCMCGroup.Hosts.DellCMC"/>
<DiscoveryRelationship TypeID="DAD!DellModularChassis.Contains.DellIOModuleGroup"/>
<DiscoveryRelationship TypeID="DAD!DellIOModuleGroup.Hosts.DellIOModule"/>
<DiscoveryRelationship TypeID="DAD!ChassisSharedStorage.Contains.ChassisVirtualDisk"/>
</DiscoveryTypes>
<DataSource ID="DS" TypeID="DOL!Dell.Operations.CMC.TemplateMethod.ChassisStorageDSMT">
<IntervalSeconds>86400</IntervalSeconds>
<TimeoutSeconds>600</TimeoutSeconds>
<LogLevel>0</LogLevel>
<LogDirectory>ChassisRemoteAccess_Logs</LogDirectory>
<LogFileName>Dell_ChassisDetailed_Discovery_</LogFileName>
<Port>443</Port>
<Encoding>UTF-8</Encoding>
<SkipCACheck>true</SkipCACheck>
<SkipCNCheck>true</SkipCNCheck>
<SkipRevocationCheck>true</SkipRevocationCheck>
<Authentication>Basic</Authentication>
<TimeOut>300</TimeOut>
<TemplateScriptArguments>$MPElement$ $Target/Id$</TemplateScriptArguments>
<TemplateScriptConfiguration>
'#################################################################################################################################
'**************************************************************************************************
'ProtocolParameters initialization code
'**************************************************************************************************
'Creating the argument dictionary that will be included in the DSMT script
Call protParameterObj.setProtocolName("wsman")
Call racadmParameterObj.setProtocolName("racadm")
If DebugScript = False Then
Call protParameterObj.setProtocolParameterDictionary("IPAddress", "$Target/Property[Type='DAD!Dell.ModularChassis.CMC']/IPAddress$")
Call protParameterObj.setProtocolParameterDictionary("Port", WsManProtocolParametersObj.getDefaultPort() )
Call protParameterObj.setProtocolParameterDictionary("Encoding",WsManProtocolParametersObj.getDefaultEncoding() )
Call protParameterObj.setProtocolParameterDictionary("SkipCACheck",WsManProtocolParametersObj.getDefaultSkipCACheck() )
Call protParameterObj.setProtocolParameterDictionary("SkipCNCheck", WsManProtocolParametersObj.getDefaultSkipCNCheck() )
Call protParameterObj.setProtocolParameterDictionary("SkipRevocationCheck", WsManProtocolParametersObj.getDefaultSkipRevocationCheck() )
Call protParameterObj.setProtocolParameterDictionary("Authentication", WsManProtocolParametersObj.getDefaultAuthentication() )
Call protParameterObj.setProtocolParameterDictionary("Timeout", WsManProtocolParametersObj.getDefaultTimeOut() )
Call protParameterObj.setProtocolParameterDictionary("UserName", "$RunAs[Name='DAD!Dell.CMC.RemoteAccount']/UserName$")
Call protParameterObj.setProtocolParameterDictionary("Password", "$RunAs[Name='DAD!Dell.CMC.RemoteAccount']/Password$")

Call racadmParameterObj.setProtocolParameterDictionary("IPAddress", "$Target/Property[Type='DAD!Dell.ModularChassis.CMC']/IPAddress$")
Call racadmParameterObj.setProtocolParameterDictionary("Port", WsManProtocolParametersObj.getDefaultPort() )
Call racadmParameterObj.setProtocolParameterDictionary("UserName", "$RunAs[Name='DAD!Dell.CMC.RemoteAccount']/UserName$")
Call racadmParameterObj.setProtocolParameterDictionary("Password", "$RunAs[Name='DAD!Dell.CMC.RemoteAccount']/Password$")

Else
Call protParameterObj.setProtocolParameterDictionary("IPAddress", "127.0.0.1")
Call protParameterObj.setProtocolParameterDictionary("Port", "443")
Call protParameterObj.setProtocolParameterDictionary("Encoding", "UTF-8")
Call protParameterObj.setProtocolParameterDictionary("SkipCACheck", "True")
Call protParameterObj.setProtocolParameterDictionary("SkipCNCheck", "True")
Call protParameterObj.setProtocolParameterDictionary("SkipRevocationCheck", "True")
Call protParameterObj.setProtocolParameterDictionary("Timeout", "0")
Call protParameterObj.setProtocolParameterDictionary("UserName", "")
Call protParameterObj.setProtocolParameterDictionary("Password", "")
End If

Function getRemoteSetting()
Dim Port, Encoding, SkipCACheck, SkipCNCheck, SkipRevocationCheck, Authentication, Timeout
If DebugScript = False Then
Port = WsManProtocolParametersObj.getDefaultPort()
Encoding =WsManProtocolParametersObj.getDefaultEncoding()
SkipCACheck = WsManProtocolParametersObj.getDefaultSkipCACheck()
SkipCNCheck = WsManProtocolParametersObj.getDefaultSkipCNCheck()
SkipRevocationCheck = WsManProtocolParametersObj.getDefaultSkipRevocationCheck()
Authentication = WsManProtocolParametersObj.getDefaultAuthentication()
Timeout = WsManProtocolParametersObj.getDefaultTimeOut()
Else
Port = "443"
Encoding = "UTF-8"
SkipCACheck = "True"
SkipCNCheck = "True"
SkipRevocationCheck = "True"
Authentication = "Basic"
Timeout = "300"
End If

getRemoteSetting = Port &amp; ";" &amp; Encoding &amp; ";" &amp; SkipCACheck &amp; ";" &amp; SkipCNCheck &amp; ";" &amp; SkipRevocationCheck &amp; ";" &amp; Authentication &amp; ";" &amp; TimeOut
End Function
'#################################################################################################################################
</TemplateScriptConfiguration>
<ProfileDictionaryScript>
'#################################################################################################################################
'**************************************************************************************************
'ProfileDictionaryCreator code
'**************************************************************************************************
Class ProfileDictionaryCreator
Private profileInfoDict
Private Sub Class_Initialize
Set profileInfoDict = CreateObject("Scripting.Dictionary")
profileInfoDict.CompareMode = vbTextCompare
End Sub
Public Function GetProfileDictionary()
Set GetProfileDictionary = profileInfoDict
End Function
Public Function populateStorageProfileDictionary()
log.MOMDebugLog 1, "Entered PopualteProfileDictionary"
Dim Dell_Server_Storage_Controller_Obj
Set Dell_Server_Storage_Controller_Obj = New ProfileInformation
Dell_Server_Storage_Controller_Obj.setProfileName("Dell.Chassis.Storage.Controller")

Dim Dell_Server_Storage_Controller_FQDD
Set Dell_Server_Storage_Controller_FQDD = New AttributeProperty
Dell_Server_Storage_Controller_FQDD.setProtocol("wsman")
Dell_Server_Storage_Controller_FQDD.setClassName("cimv2/DCIM_ControllerView")
Dell_Server_Storage_Controller_FQDD.setProtocolAttributeName("FQDD")
Dell_Server_Storage_Controller_Obj.setAttributePropertyObject(Dell_Server_Storage_Controller_FQDD)
Dell_Server_Storage_Controller_Obj.setAttributeDictionary("FQDD")

Dim Dell_Server_Storage_Controller_CacheMemorySize
Set Dell_Server_Storage_Controller_CacheMemorySize = New AttributeProperty
Dell_Server_Storage_Controller_CacheMemorySize.setProtocol("wsman")
Dell_Server_Storage_Controller_CacheMemorySize.setClassName("cimv2/DCIM_ControllerView")
Dell_Server_Storage_Controller_CacheMemorySize.setProtocolAttributeName("CacheSizeInMB")
Dell_Server_Storage_Controller_Obj.setAttributePropertyObject(Dell_Server_Storage_Controller_CacheMemorySize)
Dell_Server_Storage_Controller_Obj.setAttributeDictionary("CacheMemorySize")

Dim Dell_Server_Storage_Controller_FirmwareVersion
Set Dell_Server_Storage_Controller_FirmwareVersion = New AttributeProperty
Dell_Server_Storage_Controller_FirmwareVersion.setProtocol("wsman")
Dell_Server_Storage_Controller_FirmwareVersion.setClassName("cimv2/DCIM_ControllerView")
Dell_Server_Storage_Controller_FirmwareVersion.setProtocolAttributeName("ControllerFirmwareVersion")
Dell_Server_Storage_Controller_Obj.setAttributePropertyObject(Dell_Server_Storage_Controller_FirmwareVersion)
Dell_Server_Storage_Controller_Obj.setAttributeDictionary("FirmwareVersion")

Dim Dell_Server_Storage_Controller_Manufacturer
Set Dell_Server_Storage_Controller_Manufacturer = New AttributeProperty
Dell_Server_Storage_Controller_Manufacturer.setProtocol("wsman")
Dell_Server_Storage_Controller_Manufacturer.setClassName("cimv2/DCIM_ControllerView")
Dell_Server_Storage_Controller_Manufacturer.setProtocolAttributeName("DeviceCardManufacturer")
Dell_Server_Storage_Controller_Obj.setAttributePropertyObject(Dell_Server_Storage_Controller_Manufacturer)
Dell_Server_Storage_Controller_Obj.setAttributeDictionary("Manufacturer")


Dim Dell_Server_Storage_Controller_SlotLength
Set Dell_Server_Storage_Controller_SlotLength = New AttributeProperty
Dell_Server_Storage_Controller_SlotLength.setProtocol("wsman")
Dell_Server_Storage_Controller_SlotLength.setClassName("cimv2/DCIM_ControllerView")
Dell_Server_Storage_Controller_SlotLength.setProtocolAttributeName("DeviceCardSlotLength")
Dell_Server_Storage_Controller_SlotLength.setAttributeValueMappingObject()
Dell_Server_Storage_Controller_SlotLength.setAttributeValueMapping "3", "Short"
Dell_Server_Storage_Controller_SlotLength.setAttributeValueMapping "4", "Long"
Dell_Server_Storage_Controller_Obj.setAttributePropertyObject(Dell_Server_Storage_Controller_SlotLength)
Dell_Server_Storage_Controller_Obj.setAttributeDictionary("SlotLength")

Dim Dell_Server_Storage_Controller_SlotType
Set Dell_Server_Storage_Controller_SlotType = New AttributeProperty
Dell_Server_Storage_Controller_SlotType.setProtocol("wsman")
Dell_Server_Storage_Controller_SlotType.setClassName("cimv2/DCIM_ControllerView")
Dell_Server_Storage_Controller_SlotType.setProtocolAttributeName("DeviceCardSlotType")
Dell_Server_Storage_Controller_Obj.setAttributePropertyObject(Dell_Server_Storage_Controller_SlotType)
Dell_Server_Storage_Controller_Obj.setAttributeDictionary("SlotType")

Dim Dell_Server_Storage_Controller_DriverVersion
Set Dell_Server_Storage_Controller_DriverVersion = New AttributeProperty
Dell_Server_Storage_Controller_DriverVersion.setProtocol("wsman")
Dell_Server_Storage_Controller_DriverVersion.setClassName("cimv2/DCIM_ControllerView")
Dell_Server_Storage_Controller_DriverVersion.setProtocolAttributeName("DriverVersion")
Dell_Server_Storage_Controller_Obj.setAttributePropertyObject(Dell_Server_Storage_Controller_DriverVersion)
Dell_Server_Storage_Controller_Obj.setAttributeDictionary("DriverVersion")

Dim Dell_Server_Storage_Controller_EncryptionCapability
Set Dell_Server_Storage_Controller_EncryptionCapability = New AttributeProperty
Dell_Server_Storage_Controller_EncryptionCapability.setProtocol("wsman")
Dell_Server_Storage_Controller_EncryptionCapability.setClassName("cimv2/DCIM_ControllerView")
Dell_Server_Storage_Controller_EncryptionCapability.setProtocolAttributeName("EncryptionCapability")
Dell_Server_Storage_Controller_EncryptionCapability.setAttributeValueMappingObject()
Dell_Server_Storage_Controller_EncryptionCapability.setAttributeValueMapping "0", "None"
Dell_Server_Storage_Controller_EncryptionCapability.setAttributeValueMapping "1", "Local Key Management Capable"
Dell_Server_Storage_Controller_EncryptionCapability.setAttributeValueMapping "2", "Dell Key Management Capable"
Dell_Server_Storage_Controller_EncryptionCapability.setAttributeValueMapping "3", "Local Key Management and Dell Key Management Capable"
Dell_Server_Storage_Controller_Obj.setAttributePropertyObject(Dell_Server_Storage_Controller_EncryptionCapability)
Dell_Server_Storage_Controller_Obj.setAttributeDictionary("EncryptionCapability")

Dim Dell_Server_Storage_Controller_HighAvailabilityMode
Set Dell_Server_Storage_Controller_HighAvailabilityMode = New AttributeProperty
Dell_Server_Storage_Controller_HighAvailabilityMode.setProtocol("wsman")
Dell_Server_Storage_Controller_HighAvailabilityMode.setClassName("cimv2/DCIM_ControllerView")
Dell_Server_Storage_Controller_HighAvailabilityMode.setProtocolAttributeName("HighAvailabilityMode")
Dell_Server_Storage_Controller_Obj.setAttributePropertyObject(Dell_Server_Storage_Controller_HighAvailabilityMode)
Dell_Server_Storage_Controller_Obj.setAttributeDictionary("HighAvailabilityMode")

Dim Dell_Server_Storage_Controller_SPercSlot
Set Dell_Server_Storage_Controller_SPercSlot = New AttributeProperty
Dell_Server_Storage_Controller_SPercSlot.setProtocol("wsman")
Dell_Server_Storage_Controller_SPercSlot.setClassName("cimv2/DCIM_ControllerView")
Dell_Server_Storage_Controller_SPercSlot.setProtocolAttributeName("PCISlot")
Dell_Server_Storage_Controller_Obj.setAttributePropertyObject(Dell_Server_Storage_Controller_SPercSlot)
Dell_Server_Storage_Controller_Obj.setAttributeDictionary("SPercSlot")

Dim Dell_Server_Storage_Controller_PatrolReadState
Set Dell_Server_Storage_Controller_PatrolReadState = New AttributeProperty
Dell_Server_Storage_Controller_PatrolReadState.setProtocol("wsman")
Dell_Server_Storage_Controller_PatrolReadState.setClassName("cimv2/DCIM_ControllerView")
Dell_Server_Storage_Controller_PatrolReadState.setProtocolAttributeName("PatrolReadState")
Dell_Server_Storage_Controller_PatrolReadState.setAttributeValueMappingObject()
Dell_Server_Storage_Controller_PatrolReadState.setAttributeValueMapping "0", "Unknown"
Dell_Server_Storage_Controller_PatrolReadState.setAttributeValueMapping "1", "Stopped"
Dell_Server_Storage_Controller_PatrolReadState.setAttributeValueMapping "2", "Running"
Dell_Server_Storage_Controller_Obj.setAttributePropertyObject(Dell_Server_Storage_Controller_PatrolReadState)
Dell_Server_Storage_Controller_Obj.setAttributeDictionary("PatrolReadState")

Dim Dell_Server_Storage_Controller_ProductName
Set Dell_Server_Storage_Controller_ProductName = New AttributeProperty
Dell_Server_Storage_Controller_ProductName.setProtocol("wsman")
Dell_Server_Storage_Controller_ProductName.setClassName("cimv2/DCIM_ControllerView")
Dell_Server_Storage_Controller_ProductName.setProtocolAttributeName("ProductName")
Dell_Server_Storage_Controller_Obj.setAttributePropertyObject(Dell_Server_Storage_Controller_ProductName)
Dell_Server_Storage_Controller_Obj.setAttributeDictionary("ProductName")

Dim Dell_Server_Storage_Controller_SecurityStatus
Set Dell_Server_Storage_Controller_SecurityStatus = New AttributeProperty
Dell_Server_Storage_Controller_SecurityStatus.setProtocol("wsman")
Dell_Server_Storage_Controller_SecurityStatus.setClassName("cimv2/DCIM_ControllerView")
Dell_Server_Storage_Controller_SecurityStatus.setProtocolAttributeName("SecurityStatus")
Dell_Server_Storage_Controller_SecurityStatus.setAttributeValueMappingObject()
Dell_Server_Storage_Controller_SecurityStatus.setAttributeValueMapping "0", "Unknown"
Dell_Server_Storage_Controller_SecurityStatus.setAttributeValueMapping "1", "Encryption Capable"
Dell_Server_Storage_Controller_SecurityStatus.setAttributeValueMapping "2", "Security Key Assigned"
Dell_Server_Storage_Controller_Obj.setAttributePropertyObject(Dell_Server_Storage_Controller_SecurityStatus)
Dell_Server_Storage_Controller_Obj.setAttributeDictionary("SecurityStatus")

Dim Dell_Server_Storage_Controller_EncryptionMode
Set Dell_Server_Storage_Controller_EncryptionMode = New AttributeProperty
Dell_Server_Storage_Controller_EncryptionMode.setProtocol("wsman")
Dell_Server_Storage_Controller_EncryptionMode.setClassName("cimv2/DCIM_ControllerView")
Dell_Server_Storage_Controller_EncryptionMode.setProtocolAttributeName("EncryptionMode")
Dell_Server_Storage_Controller_EncryptionMode.setAttributeValueMappingObject()
Dell_Server_Storage_Controller_EncryptionMode.setAttributeValueMapping "0", "None"
Dell_Server_Storage_Controller_EncryptionMode.setAttributeValueMapping "1", "Local Key Management"
Dell_Server_Storage_Controller_EncryptionMode.setAttributeValueMapping "2", "Dell Key Management"
Dell_Server_Storage_Controller_EncryptionMode.setAttributeValueMapping "3", "Pending Dell Key Management"
Dell_Server_Storage_Controller_Obj.setAttributePropertyObject(Dell_Server_Storage_Controller_EncryptionMode)
Dell_Server_Storage_Controller_Obj.setAttributeDictionary("EncryptionMode")


Dim Dell_Server_Storage_Controller_CachecadeCapability
Set Dell_Server_Storage_Controller_CachecadeCapability = New AttributeProperty
Dell_Server_Storage_Controller_CachecadeCapability.setProtocol("wsman")
Dell_Server_Storage_Controller_CachecadeCapability.setClassName("cimv2/DCIM_ControllerView")
Dell_Server_Storage_Controller_CachecadeCapability.setProtocolAttributeName("CachecadeCapability")
Dell_Server_Storage_Controller_CachecadeCapability.setAttributeValueMappingObject()
Dell_Server_Storage_Controller_CachecadeCapability.setAttributeValueMapping "0", "Not supported"
Dell_Server_Storage_Controller_CachecadeCapability.setAttributeValueMapping "1", "Supported"
Dell_Server_Storage_Controller_Obj.setAttributePropertyObject(Dell_Server_Storage_Controller_CachecadeCapability)
Dell_Server_Storage_Controller_Obj.setAttributeDictionary("CachecadeCapability")


Dim Dell_Server_Storage_Controller_SlicedVDCapability
Set Dell_Server_Storage_Controller_SlicedVDCapability = New AttributeProperty
Dell_Server_Storage_Controller_SlicedVDCapability.setProtocol("wsman")
Dell_Server_Storage_Controller_SlicedVDCapability.setClassName("cimv2/DCIM_ControllerView")
Dell_Server_Storage_Controller_SlicedVDCapability.setProtocolAttributeName("SlicedVDCapability")
Dell_Server_Storage_Controller_SlicedVDCapability.setAttributeValueMappingObject()
Dell_Server_Storage_Controller_SlicedVDCapability.setAttributeValueMapping "0", "Not supported"
Dell_Server_Storage_Controller_SlicedVDCapability.setAttributeValueMapping "1", "Supported"
Dell_Server_Storage_Controller_Obj.setAttributePropertyObject(Dell_Server_Storage_Controller_SlicedVDCapability)
Dell_Server_Storage_Controller_Obj.setAttributeDictionary("SlicedVDCapability")


Dim Dell_Server_Storage_Controller_SASAddress
Set Dell_Server_Storage_Controller_SASAddress = New AttributeProperty
Dell_Server_Storage_Controller_SASAddress.setProtocol("wsman")
Dell_Server_Storage_Controller_SASAddress.setClassName("cimv2/DCIM_ControllerView")
Dell_Server_Storage_Controller_SASAddress.setProtocolAttributeName("SASAddress")
Dell_Server_Storage_Controller_Obj.setAttributePropertyObject(Dell_Server_Storage_Controller_SASAddress)
Dell_Server_Storage_Controller_Obj.setAttributeDictionary("SASAddress")

Dell_Server_Storage_Controller_Obj.populateProfileClassNameList()
profileInfoDict.Add "Dell.Chassis.Storage.Controller",Dell_Server_Storage_Controller_Obj

Dim Dell_Server_Storage_Controller_VirtualDisk_Obj
Set Dell_Server_Storage_Controller_VirtualDisk_Obj = New ProfileInformation
Dell_Server_Storage_Controller_VirtualDisk_Obj.setProfileName("Dell.Chassis.Storage.Controller.VirtualDisk")

'FQDD
Dim Dell_Server_Storage_Controller_VirtualDisk_FQDD
Set Dell_Server_Storage_Controller_VirtualDisk_FQDD = New AttributeProperty

Dell_Server_Storage_Controller_VirtualDisk_FQDD.setProtocol("wsman")
Dell_Server_Storage_Controller_VirtualDisk_FQDD.setClassName("cimv2/DCIM_VirtualDiskView")
Dell_Server_Storage_Controller_VirtualDisk_FQDD.setProtocolAttributeName("FQDD")
Dell_Server_Storage_Controller_VirtualDisk_Obj.setAttributePropertyObject(Dell_Server_Storage_Controller_VirtualDisk_FQDD)
Dell_Server_Storage_Controller_VirtualDisk_Obj.setAttributeDictionary("FQDD")

'Bus Protocol
Dim Dell_Server_Storage_Controller_VirtualDisk_BusProtocol
Set Dell_Server_Storage_Controller_VirtualDisk_BusProtocol = New AttributeProperty

Dell_Server_Storage_Controller_VirtualDisk_BusProtocol.setProtocol("wsman")
Dell_Server_Storage_Controller_VirtualDisk_BusProtocol.setClassName("cimv2/DCIM_VirtualDiskView")
Dell_Server_Storage_Controller_VirtualDisk_BusProtocol.setProtocolAttributeName("BusProtocol")
Dell_Server_Storage_Controller_VirtualDisk_BusProtocol.setAttributeValueMappingObject()
Dell_Server_Storage_Controller_VirtualDisk_BusProtocol.setAttributeValueMapping "0", "Unknown"
Dell_Server_Storage_Controller_VirtualDisk_BusProtocol.setAttributeValueMapping "1", "SCSI"
Dell_Server_Storage_Controller_VirtualDisk_BusProtocol.setAttributeValueMapping "2", "PATA"
Dell_Server_Storage_Controller_VirtualDisk_BusProtocol.setAttributeValueMapping "3", "FIBRE"
Dell_Server_Storage_Controller_VirtualDisk_BusProtocol.setAttributeValueMapping "4", "USB"
Dell_Server_Storage_Controller_VirtualDisk_BusProtocol.setAttributeValueMapping "5", "SATA"
Dell_Server_Storage_Controller_VirtualDisk_BusProtocol.setAttributeValueMapping "6", "SAS"

Dell_Server_Storage_Controller_VirtualDisk_Obj.setAttributePropertyObject(Dell_Server_Storage_Controller_VirtualDisk_BusProtocol)
Dell_Server_Storage_Controller_VirtualDisk_Obj.setAttributeDictionary("BusProtocol")

'Cache Code
Dim Dell_Server_Storage_Controller_VirtualDisk_CacheCade
Set Dell_Server_Storage_Controller_VirtualDisk_CacheCade = New AttributeProperty

Dell_Server_Storage_Controller_VirtualDisk_CacheCade.setProtocol("wsman")
Dell_Server_Storage_Controller_VirtualDisk_CacheCade.setClassName("cimv2/DCIM_VirtualDiskView")
Dell_Server_Storage_Controller_VirtualDisk_CacheCade.setProtocolAttributeName("Cachecade")
Dell_Server_Storage_Controller_VirtualDisk_CacheCade.setAttributeValueMappingObject()
Dell_Server_Storage_Controller_VirtualDisk_CacheCade.setAttributeValueMapping "0", "Not a Cachecade Virtual Disk"
Dell_Server_Storage_Controller_VirtualDisk_CacheCade.setAttributeValueMapping "1", "Cachecade virtual disk"

Dell_Server_Storage_Controller_VirtualDisk_Obj.setAttributePropertyObject(Dell_Server_Storage_Controller_VirtualDisk_CacheCade)
Dell_Server_Storage_Controller_VirtualDisk_Obj.setAttributeDictionary("CacheCade")

'Disk Cache Policy
Dim Dell_Server_Storage_Controller_VirtualDisk_DiskCachePolicy
Set Dell_Server_Storage_Controller_VirtualDisk_DiskCachePolicy = New AttributeProperty

Dell_Server_Storage_Controller_VirtualDisk_DiskCachePolicy.setProtocol("wsman")
Dell_Server_Storage_Controller_VirtualDisk_DiskCachePolicy.setClassName("cimv2/DCIM_VirtualDiskView")
Dell_Server_Storage_Controller_VirtualDisk_DiskCachePolicy.setProtocolAttributeName("DiskCachePolicy")
Dell_Server_Storage_Controller_VirtualDisk_DiskCachePolicy.setAttributeValueMappingObject()
Dell_Server_Storage_Controller_VirtualDisk_DiskCachePolicy.setAttributeValueMapping "0", "Unknown"
Dell_Server_Storage_Controller_VirtualDisk_DiskCachePolicy.setAttributeValueMapping "256", "Default"
Dell_Server_Storage_Controller_VirtualDisk_DiskCachePolicy.setAttributeValueMapping "512", "Enabled"
Dell_Server_Storage_Controller_VirtualDisk_DiskCachePolicy.setAttributeValueMapping "1024", "Disabled"

Dell_Server_Storage_Controller_VirtualDisk_Obj.setAttributePropertyObject(Dell_Server_Storage_Controller_VirtualDisk_DiskCachePolicy)
Dell_Server_Storage_Controller_VirtualDisk_Obj.setAttributeDictionary("DiskCachePolicy")

'Lock Status
Dim Dell_Server_Storage_Controller_VirtualDisk_LockStatus
Set Dell_Server_Storage_Controller_VirtualDisk_LockStatus = New AttributeProperty

Dell_Server_Storage_Controller_VirtualDisk_LockStatus.setProtocol("wsman")
Dell_Server_Storage_Controller_VirtualDisk_LockStatus.setClassName("cimv2/DCIM_VirtualDiskView")
Dell_Server_Storage_Controller_VirtualDisk_LockStatus.setProtocolAttributeName("LockStatus")
Dell_Server_Storage_Controller_VirtualDisk_LockStatus.setAttributeValueMappingObject()
Dell_Server_Storage_Controller_VirtualDisk_LockStatus.setAttributeValueMapping "0", "Unlocked"
Dell_Server_Storage_Controller_VirtualDisk_LockStatus.setAttributeValueMapping "1", "Locked"
Dell_Server_Storage_Controller_VirtualDisk_Obj.setAttributePropertyObject(Dell_Server_Storage_Controller_VirtualDisk_LockStatus)
Dell_Server_Storage_Controller_VirtualDisk_Obj.setAttributeDictionary("LockStatus")

'Media Type
Dim Dell_Server_Storage_Controller_VirtualDisk_MediaType
Set Dell_Server_Storage_Controller_VirtualDisk_MediaType = New AttributeProperty

Dell_Server_Storage_Controller_VirtualDisk_MediaType.setProtocol("wsman")
Dell_Server_Storage_Controller_VirtualDisk_MediaType.setClassName("cimv2/DCIM_VirtualDiskView")
Dell_Server_Storage_Controller_VirtualDisk_MediaType.setProtocolAttributeName("MediaType")
Dell_Server_Storage_Controller_VirtualDisk_MediaType.setAttributeValueMappingObject()
Dell_Server_Storage_Controller_VirtualDisk_MediaType.setAttributeValueMapping "0", "Unknown"
Dell_Server_Storage_Controller_VirtualDisk_MediaType.setAttributeValueMapping "1", "Magnetic Drive"
Dell_Server_Storage_Controller_VirtualDisk_MediaType.setAttributeValueMapping "2", "Solid State Drive"
Dell_Server_Storage_Controller_VirtualDisk_Obj.setAttributePropertyObject(Dell_Server_Storage_Controller_VirtualDisk_MediaType)
Dell_Server_Storage_Controller_VirtualDisk_Obj.setAttributeDictionary("MediaType")

'RAID Level
Dim Dell_Server_Storage_Controller_VirtualDisk_RAIDLevel
Set Dell_Server_Storage_Controller_VirtualDisk_RAIDLevel = New AttributeProperty

Dell_Server_Storage_Controller_VirtualDisk_RAIDLevel.setProtocol("wsman")
Dell_Server_Storage_Controller_VirtualDisk_RAIDLevel.setClassName("cimv2/DCIM_VirtualDiskView")
Dell_Server_Storage_Controller_VirtualDisk_RAIDLevel.setProtocolAttributeName("RAIDTypes")
Dell_Server_Storage_Controller_VirtualDisk_RAIDLevel.setAttributeValueMappingObject()
Dell_Server_Storage_Controller_VirtualDisk_RAIDLevel.setAttributeValueMapping "1", "No RAID"
Dell_Server_Storage_Controller_VirtualDisk_RAIDLevel.setAttributeValueMapping "2", "RAID 0"
Dell_Server_Storage_Controller_VirtualDisk_RAIDLevel.setAttributeValueMapping "4", "RAID 1"
Dell_Server_Storage_Controller_VirtualDisk_RAIDLevel.setAttributeValueMapping "64", "RAID 5"
Dell_Server_Storage_Controller_VirtualDisk_RAIDLevel.setAttributeValueMapping "128", "RAID 6"
Dell_Server_Storage_Controller_VirtualDisk_RAIDLevel.setAttributeValueMapping "2048", "RAID 10"
Dell_Server_Storage_Controller_VirtualDisk_RAIDLevel.setAttributeValueMapping "8192", "RAID 50"
Dell_Server_Storage_Controller_VirtualDisk_RAIDLevel.setAttributeValueMapping "16384", "RAID 60"
Dell_Server_Storage_Controller_VirtualDisk_Obj.setAttributePropertyObject(Dell_Server_Storage_Controller_VirtualDisk_RAIDLevel)
Dell_Server_Storage_Controller_VirtualDisk_Obj.setAttributeDictionary("RAIDLevel")

'Read Policy
Dim Dell_Server_Storage_Controller_VirtualDisk_ReadPolicy
Set Dell_Server_Storage_Controller_VirtualDisk_ReadPolicy = New AttributeProperty

Dell_Server_Storage_Controller_VirtualDisk_ReadPolicy.setProtocol("wsman")
Dell_Server_Storage_Controller_VirtualDisk_ReadPolicy.setClassName("cimv2/DCIM_VirtualDiskView")
Dell_Server_Storage_Controller_VirtualDisk_ReadPolicy.setProtocolAttributeName("ReadCachePolicy")
Dell_Server_Storage_Controller_VirtualDisk_ReadPolicy.setAttributeValueMappingObject()
Dell_Server_Storage_Controller_VirtualDisk_ReadPolicy.setAttributeValueMapping "0", "Unknown"
Dell_Server_Storage_Controller_VirtualDisk_ReadPolicy.setAttributeValueMapping "16", "No Read Ahead"
Dell_Server_Storage_Controller_VirtualDisk_ReadPolicy.setAttributeValueMapping "32", "Read Ahead"
Dell_Server_Storage_Controller_VirtualDisk_ReadPolicy.setAttributeValueMapping "64", "Adaptive Read Ahead"

Dell_Server_Storage_Controller_VirtualDisk_Obj.setAttributePropertyObject(Dell_Server_Storage_Controller_VirtualDisk_ReadPolicy)
Dell_Server_Storage_Controller_VirtualDisk_Obj.setAttributeDictionary("ReadPolicy")

'Remaining Redundancy
Dim Dell_Server_Storage_Controller_VirtualDisk_RemainingRedundancy
Set Dell_Server_Storage_Controller_VirtualDisk_RemainingRedundancy = New AttributeProperty

Dell_Server_Storage_Controller_VirtualDisk_RemainingRedundancy.setProtocol("wsman")
Dell_Server_Storage_Controller_VirtualDisk_RemainingRedundancy.setClassName("cimv2/DCIM_VirtualDiskView")
Dell_Server_Storage_Controller_VirtualDisk_RemainingRedundancy.setProtocolAttributeName("RemainingRedundancy")

Dell_Server_Storage_Controller_VirtualDisk_Obj.setAttributePropertyObject(Dell_Server_Storage_Controller_VirtualDisk_RemainingRedundancy)
Dell_Server_Storage_Controller_VirtualDisk_Obj.setAttributeDictionary("RemainingRedundancy")

'Virtual disk Size
Dim Dell_Server_Storage_Controller_VirtualDisk_VirtualDiskSize
Set Dell_Server_Storage_Controller_VirtualDisk_VirtualDiskSize = New AttributeProperty

Dell_Server_Storage_Controller_VirtualDisk_VirtualDiskSize.setProtocol("wsman")
Dell_Server_Storage_Controller_VirtualDisk_VirtualDiskSize.setClassName("cimv2/DCIM_VirtualDiskView")
Dell_Server_Storage_Controller_VirtualDisk_VirtualDiskSize.setProtocolAttributeName("SizeInBytes")

Dell_Server_Storage_Controller_VirtualDisk_Obj.setAttributePropertyObject(Dell_Server_Storage_Controller_VirtualDisk_VirtualDiskSize)
Dell_Server_Storage_Controller_VirtualDisk_Obj.setAttributeDictionary("Capacity")

'VD Display Name
Dim Dell_Server_Storage_Controller_VirtualDisk_DisplayName
Set Dell_Server_Storage_Controller_VirtualDisk_DisplayName = New AttributeProperty

Dell_Server_Storage_Controller_VirtualDisk_DisplayName.setProtocol("wsman")
Dell_Server_Storage_Controller_VirtualDisk_DisplayName.setClassName("cimv2/DCIM_VirtualDiskView")
Dell_Server_Storage_Controller_VirtualDisk_DisplayName.setProtocolAttributeName("Name")

Dell_Server_Storage_Controller_VirtualDisk_Obj.setAttributePropertyObject(Dell_Server_Storage_Controller_VirtualDisk_DisplayName)
Dell_Server_Storage_Controller_VirtualDisk_Obj.setAttributeDictionary("DisplayName")

'Span Depth
Dim Dell_Server_Storage_Controller_VirtualDisk_SpanDepth
Set Dell_Server_Storage_Controller_VirtualDisk_SpanDepth = New AttributeProperty

Dell_Server_Storage_Controller_VirtualDisk_SpanDepth.setProtocol("wsman")
Dell_Server_Storage_Controller_VirtualDisk_SpanDepth.setClassName("cimv2/DCIM_VirtualDiskView")
Dell_Server_Storage_Controller_VirtualDisk_SpanDepth.setProtocolAttributeName("SpanDepth")

Dell_Server_Storage_Controller_VirtualDisk_Obj.setAttributePropertyObject(Dell_Server_Storage_Controller_VirtualDisk_SpanDepth)
Dell_Server_Storage_Controller_VirtualDisk_Obj.setAttributeDictionary("SpanDepth")


'Span Length
Dim Dell_Server_Storage_Controller_VirtualDisk_SpanLength
Set Dell_Server_Storage_Controller_VirtualDisk_SpanLength = New AttributeProperty

Dell_Server_Storage_Controller_VirtualDisk_SpanLength.setProtocol("wsman")
Dell_Server_Storage_Controller_VirtualDisk_SpanLength.setClassName("cimv2/DCIM_VirtualDiskView")
Dell_Server_Storage_Controller_VirtualDisk_SpanLength.setProtocolAttributeName("SpanLength")

Dell_Server_Storage_Controller_VirtualDisk_Obj.setAttributePropertyObject(Dell_Server_Storage_Controller_VirtualDisk_SpanLength)
Dell_Server_Storage_Controller_VirtualDisk_Obj.setAttributeDictionary("SpanLength")

'StripeSize
Dim Dell_Server_Storage_Controller_StripeSize
Set Dell_Server_Storage_Controller_StripeSize = New AttributeProperty

Dell_Server_Storage_Controller_StripeSize.setProtocol("wsman")
Dell_Server_Storage_Controller_StripeSize.setClassName("cimv2/DCIM_VirtualDiskView")
Dell_Server_Storage_Controller_StripeSize.setProtocolAttributeName("StripeSize")
Dell_Server_Storage_Controller_StripeSize.setAttributeValueMappingObject()
Dell_Server_Storage_Controller_StripeSize.setAttributeValueMapping "0", "Default"
Dell_Server_Storage_Controller_StripeSize.setAttributeValueMapping "1", "512B"
Dell_Server_Storage_Controller_StripeSize.setAttributeValueMapping "2", "1KB"
Dell_Server_Storage_Controller_StripeSize.setAttributeValueMapping "4", "2KB"
Dell_Server_Storage_Controller_StripeSize.setAttributeValueMapping "8", "4KB"
Dell_Server_Storage_Controller_StripeSize.setAttributeValueMapping "16", "8KB"
Dell_Server_Storage_Controller_StripeSize.setAttributeValueMapping "32", "16KB"
Dell_Server_Storage_Controller_StripeSize.setAttributeValueMapping "64", "32KB"
Dell_Server_Storage_Controller_StripeSize.setAttributeValueMapping "128", "64KB"
Dell_Server_Storage_Controller_StripeSize.setAttributeValueMapping "256", "128KB"
Dell_Server_Storage_Controller_StripeSize.setAttributeValueMapping "512", "256KB"
Dell_Server_Storage_Controller_StripeSize.setAttributeValueMapping "1024", "512KB"
Dell_Server_Storage_Controller_StripeSize.setAttributeValueMapping "2048", "1MB"
Dell_Server_Storage_Controller_StripeSize.setAttributeValueMapping "4096", "2MB"
Dell_Server_Storage_Controller_StripeSize.setAttributeValueMapping "8192", "5MB"
Dell_Server_Storage_Controller_StripeSize.setAttributeValueMapping "16384", "8MB"
Dell_Server_Storage_Controller_StripeSize.setAttributeValueMapping "32768", "16MB"
Dell_Server_Storage_Controller_VirtualDisk_Obj.setAttributePropertyObject(Dell_Server_Storage_Controller_StripeSize)
Dell_Server_Storage_Controller_VirtualDisk_Obj.setAttributeDictionary("StripeElementSize")


'Write Policy
Dim Dell_Server_Storage_Controller_VirtualDisk_WritePolicy
Set Dell_Server_Storage_Controller_VirtualDisk_WritePolicy = New AttributeProperty

Dell_Server_Storage_Controller_VirtualDisk_WritePolicy.setProtocol("wsman")
Dell_Server_Storage_Controller_VirtualDisk_WritePolicy.setClassName("cimv2/DCIM_VirtualDiskView")
Dell_Server_Storage_Controller_VirtualDisk_WritePolicy.setProtocolAttributeName("WriteCachePolicy")
Dell_Server_Storage_Controller_VirtualDisk_WritePolicy.setAttributeValueMappingObject()
Dell_Server_Storage_Controller_VirtualDisk_WritePolicy.setAttributeValueMapping "0","Unknown"
Dell_Server_Storage_Controller_VirtualDisk_WritePolicy.setAttributeValueMapping "1","Write Through"
Dell_Server_Storage_Controller_VirtualDisk_WritePolicy.setAttributeValueMapping "2","Write Back"
Dell_Server_Storage_Controller_VirtualDisk_WritePolicy.setAttributeValueMapping "4","Write Back Force"

Dell_Server_Storage_Controller_VirtualDisk_Obj.setAttributePropertyObject(Dell_Server_Storage_Controller_VirtualDisk_WritePolicy)
Dell_Server_Storage_Controller_VirtualDisk_Obj.setAttributeDictionary("WritePolicy")

'Virtual - Physical Disk IDs
Dim Dell_Server_Storage_Controller_VirtualDisk_PhysicalDiskIDs
Set Dell_Server_Storage_Controller_VirtualDisk_PhysicalDiskIDs = New AttributeProperty
Dell_Server_Storage_Controller_VirtualDisk_PhysicalDiskIDs.setProtocol("wsman")
Dell_Server_Storage_Controller_VirtualDisk_PhysicalDiskIDs.setClassName("cimv2/DCIM_VirtualDiskView")
Dell_Server_Storage_Controller_VirtualDisk_PhysicalDiskIDs.setProtocolAttributeName("PhysicalDiskIDs")

Dell_Server_Storage_Controller_VirtualDisk_Obj.setAttributePropertyObject(Dell_Server_Storage_Controller_VirtualDisk_PhysicalDiskIDs)
Dell_Server_Storage_Controller_VirtualDisk_Obj.setAttributeDictionary("PhysicalDiskIDs")


Dell_Server_Storage_Controller_VirtualDisk_Obj.populateProfileClassNameList()
profileInfoDict.Add "Dell.Chassis.Storage.Controller.VirtualDisk",Dell_Server_Storage_Controller_VirtualDisk_Obj


Dim Dell_Server_Storage_Controller_PhysicalDisk_Obj
Set Dell_Server_Storage_Controller_PhysicalDisk_Obj = New ProfileInformation
Dell_Server_Storage_Controller_PhysicalDisk_Obj.setProfileName("Dell.Chassis.Storage.Controller.PhysicalDisk")


'FQDD
Dim Dell_Server_Storage_Controller_PhysicalDisk_FQDD
Set Dell_Server_Storage_Controller_PhysicalDisk_FQDD = New AttributeProperty

Dell_Server_Storage_Controller_PhysicalDisk_FQDD.setProtocol("wsman")
Dell_Server_Storage_Controller_PhysicalDisk_FQDD.setClassName("cimv2/DCIM_PhysicalDiskView")
Dell_Server_Storage_Controller_PhysicalDisk_FQDD.setProtocolAttributeName("FQDD")
Dell_Server_Storage_Controller_PhysicalDisk_Obj.setAttributePropertyObject(Dell_Server_Storage_Controller_PhysicalDisk_FQDD)
Dell_Server_Storage_Controller_PhysicalDisk_Obj.setAttributeDictionary("FQDD")


'Connector
Dim Dell_Server_Storage_Controller_PhysicalDisk_Connector
Set Dell_Server_Storage_Controller_PhysicalDisk_Connector = New AttributeProperty

Dell_Server_Storage_Controller_PhysicalDisk_Connector.setProtocol("wsman")
Dell_Server_Storage_Controller_PhysicalDisk_Connector.setClassName("cimv2/DCIM_PhysicalDiskView")
Dell_Server_Storage_Controller_PhysicalDisk_Connector.setProtocolAttributeName("Connector")
Dell_Server_Storage_Controller_PhysicalDisk_Obj.setAttributePropertyObject(Dell_Server_Storage_Controller_PhysicalDisk_Connector)
Dell_Server_Storage_Controller_PhysicalDisk_Obj.setAttributeDictionary("Connector")


'Protocol
Dim Dell_Server_Storage_Controller_PhysicalDisk_Protocol
Set Dell_Server_Storage_Controller_PhysicalDisk_Protocol = New AttributeProperty

Dell_Server_Storage_Controller_PhysicalDisk_Protocol.setProtocol("wsman")
Dell_Server_Storage_Controller_PhysicalDisk_Protocol.setClassName("cimv2/DCIM_PhysicalDiskView")
Dell_Server_Storage_Controller_PhysicalDisk_Protocol.setProtocolAttributeName("BusProtocol")
Dell_Server_Storage_Controller_PhysicalDisk_Protocol.setAttributeValueMappingObject()
Dell_Server_Storage_Controller_PhysicalDisk_Protocol.setAttributeValueMapping "0", "Unknown"
Dell_Server_Storage_Controller_PhysicalDisk_Protocol.setAttributeValueMapping "1", "SCSI"
Dell_Server_Storage_Controller_PhysicalDisk_Protocol.setAttributeValueMapping "2", "PATA"
Dell_Server_Storage_Controller_PhysicalDisk_Protocol.setAttributeValueMapping "3", "FIBRE"
Dell_Server_Storage_Controller_PhysicalDisk_Protocol.setAttributeValueMapping "4", "USB"
Dell_Server_Storage_Controller_PhysicalDisk_Protocol.setAttributeValueMapping "5", "SATA"
Dell_Server_Storage_Controller_PhysicalDisk_Protocol.setAttributeValueMapping "6", "SAS"
Dell_Server_Storage_Controller_PhysicalDisk_Obj.setAttributePropertyObject(Dell_Server_Storage_Controller_PhysicalDisk_Protocol)
Dell_Server_Storage_Controller_PhysicalDisk_Obj.setAttributeDictionary("Protocol")


'DriveFormFactor
Dim Dell_Server_Storage_Controller_PhysicalDisk_DriveFormFactor
Set Dell_Server_Storage_Controller_PhysicalDisk_DriveFormFactor = New AttributeProperty

Dell_Server_Storage_Controller_PhysicalDisk_DriveFormFactor.setProtocol("wsman")
Dell_Server_Storage_Controller_PhysicalDisk_DriveFormFactor.setClassName("cimv2/DCIM_PhysicalDiskView")
Dell_Server_Storage_Controller_PhysicalDisk_DriveFormFactor.setProtocolAttributeName("DriveFormFactor")
Dell_Server_Storage_Controller_PhysicalDisk_DriveFormFactor.setAttributeValueMappingObject()
Dell_Server_Storage_Controller_PhysicalDisk_DriveFormFactor.setAttributeValueMapping "0", "Unknown"
Dell_Server_Storage_Controller_PhysicalDisk_DriveFormFactor.setAttributeValueMapping "1", "1.8 inch"
Dell_Server_Storage_Controller_PhysicalDisk_DriveFormFactor.setAttributeValueMapping "2", "2.5 inch"
Dell_Server_Storage_Controller_PhysicalDisk_DriveFormFactor.setAttributeValueMapping "3", "3.5 inch"

Dell_Server_Storage_Controller_PhysicalDisk_Obj.setAttributePropertyObject(Dell_Server_Storage_Controller_PhysicalDisk_DriveFormFactor)
Dell_Server_Storage_Controller_PhysicalDisk_Obj.setAttributeDictionary("DriveFormFactor")


'HotSpare
Dim Dell_Server_Storage_Controller_PhysicalDisk_HotSpare
Set Dell_Server_Storage_Controller_PhysicalDisk_HotSpare = New AttributeProperty

Dell_Server_Storage_Controller_PhysicalDisk_HotSpare.setProtocol("wsman")
Dell_Server_Storage_Controller_PhysicalDisk_HotSpare.setClassName("cimv2/DCIM_PhysicalDiskView")
Dell_Server_Storage_Controller_PhysicalDisk_HotSpare.setProtocolAttributeName("HotSpareStatus")
Dell_Server_Storage_Controller_PhysicalDisk_HotSpare.setAttributeValueMappingObject()
Dell_Server_Storage_Controller_PhysicalDisk_HotSpare.setAttributeValueMapping "0", "No"
Dell_Server_Storage_Controller_PhysicalDisk_HotSpare.setAttributeValueMapping "1", "Dedicated"
Dell_Server_Storage_Controller_PhysicalDisk_HotSpare.setAttributeValueMapping "2", "Global"
Dell_Server_Storage_Controller_PhysicalDisk_Obj.setAttributePropertyObject(Dell_Server_Storage_Controller_PhysicalDisk_HotSpare)
Dell_Server_Storage_Controller_PhysicalDisk_Obj.setAttributeDictionary("HotSpare")


'Manufacturer
Dim Dell_Server_Storage_Controller_PhysicalDisk_Manufacturer
Set Dell_Server_Storage_Controller_PhysicalDisk_Manufacturer = New AttributeProperty

Dell_Server_Storage_Controller_PhysicalDisk_Manufacturer.setProtocol("wsman")
Dell_Server_Storage_Controller_PhysicalDisk_Manufacturer.setClassName("cimv2/DCIM_PhysicalDiskView")
Dell_Server_Storage_Controller_PhysicalDisk_Manufacturer.setProtocolAttributeName("Manufacturer")
Dell_Server_Storage_Controller_PhysicalDisk_Obj.setAttributePropertyObject(Dell_Server_Storage_Controller_PhysicalDisk_Manufacturer)
Dell_Server_Storage_Controller_PhysicalDisk_Obj.setAttributeDictionary("Manufacturer")


'ManufacturedDay
Dim Dell_Server_Storage_Controller_PhysicalDisk_ManufacturedDay
Set Dell_Server_Storage_Controller_PhysicalDisk_ManufacturedDay = New AttributeProperty

Dell_Server_Storage_Controller_PhysicalDisk_ManufacturedDay.setProtocol("wsman")
Dell_Server_Storage_Controller_PhysicalDisk_ManufacturedDay.setClassName("cimv2/DCIM_PhysicalDiskView")
Dell_Server_Storage_Controller_PhysicalDisk_ManufacturedDay.setProtocolAttributeName("ManufacturingDay")
Dell_Server_Storage_Controller_PhysicalDisk_Obj.setAttributePropertyObject(Dell_Server_Storage_Controller_PhysicalDisk_ManufacturedDay)
Dell_Server_Storage_Controller_PhysicalDisk_Obj.setAttributeDictionary("ManufacturedDay")


'ManufacturedWeek
Dim Dell_Server_Storage_Controller_PhysicalDisk_ManufacturedWeek
Set Dell_Server_Storage_Controller_PhysicalDisk_ManufacturedWeek = New AttributeProperty

Dell_Server_Storage_Controller_PhysicalDisk_ManufacturedWeek.setProtocol("wsman")
Dell_Server_Storage_Controller_PhysicalDisk_ManufacturedWeek.setClassName("cimv2/DCIM_PhysicalDiskView")
Dell_Server_Storage_Controller_PhysicalDisk_ManufacturedWeek.setProtocolAttributeName("ManufacturingWeek")
Dell_Server_Storage_Controller_PhysicalDisk_Obj.setAttributePropertyObject(Dell_Server_Storage_Controller_PhysicalDisk_ManufacturedWeek)
Dell_Server_Storage_Controller_PhysicalDisk_Obj.setAttributeDictionary("ManufacturedWeek")


'ManufacturedYear
Dim Dell_Server_Storage_Controller_PhysicalDisk_ManufacturedYear
Set Dell_Server_Storage_Controller_PhysicalDisk_ManufacturedYear = New AttributeProperty

Dell_Server_Storage_Controller_PhysicalDisk_ManufacturedYear.setProtocol("wsman")
Dell_Server_Storage_Controller_PhysicalDisk_ManufacturedYear.setClassName("cimv2/DCIM_PhysicalDiskView")
Dell_Server_Storage_Controller_PhysicalDisk_ManufacturedYear.setProtocolAttributeName("ManufacturingYear")
Dell_Server_Storage_Controller_PhysicalDisk_Obj.setAttributePropertyObject(Dell_Server_Storage_Controller_PhysicalDisk_ManufacturedYear)
Dell_Server_Storage_Controller_PhysicalDisk_Obj.setAttributeDictionary("ManufacturedYear")


'MaxCapableSpeed
Dim Dell_Server_Storage_Controller_PhysicalDisk_MaxCapableSpeed
Set Dell_Server_Storage_Controller_PhysicalDisk_MaxCapableSpeed = New AttributeProperty

Dell_Server_Storage_Controller_PhysicalDisk_MaxCapableSpeed.setProtocol("wsman")
Dell_Server_Storage_Controller_PhysicalDisk_MaxCapableSpeed.setClassName("cimv2/DCIM_PhysicalDiskView")
Dell_Server_Storage_Controller_PhysicalDisk_MaxCapableSpeed.setProtocolAttributeName("MaxCapableSpeed")
Dell_Server_Storage_Controller_PhysicalDisk_MaxCapableSpeed.setAttributeValueMappingObject()
Dell_Server_Storage_Controller_PhysicalDisk_MaxCapableSpeed.setAttributeValueMapping "0", "Unknown"
Dell_Server_Storage_Controller_PhysicalDisk_MaxCapableSpeed.setAttributeValueMapping "1", "1.5 GB/s"
Dell_Server_Storage_Controller_PhysicalDisk_MaxCapableSpeed.setAttributeValueMapping "2", "3 GB/s"
Dell_Server_Storage_Controller_PhysicalDisk_MaxCapableSpeed.setAttributeValueMapping "3", "6 GB/s"
Dell_Server_Storage_Controller_PhysicalDisk_Obj.setAttributePropertyObject(Dell_Server_Storage_Controller_PhysicalDisk_MaxCapableSpeed)
Dell_Server_Storage_Controller_PhysicalDisk_Obj.setAttributeDictionary("MaxCapableSpeed")


'MediaType
Dim Dell_Server_Storage_Controller_PhysicalDisk_MediaType
Set Dell_Server_Storage_Controller_PhysicalDisk_MediaType = New AttributeProperty

Dell_Server_Storage_Controller_PhysicalDisk_MediaType.setProtocol("wsman")
Dell_Server_Storage_Controller_PhysicalDisk_MediaType.setClassName("cimv2/DCIM_PhysicalDiskView")
Dell_Server_Storage_Controller_PhysicalDisk_MediaType.setProtocolAttributeName("MediaType")
Dell_Server_Storage_Controller_PhysicalDisk_MediaType.setAttributeValueMappingObject()
Dell_Server_Storage_Controller_PhysicalDisk_MediaType.setAttributeValueMapping "0", "Hard Disk Drive"
Dell_Server_Storage_Controller_PhysicalDisk_MediaType.setAttributeValueMapping "1", "Solid State Drive"
Dell_Server_Storage_Controller_PhysicalDisk_Obj.setAttributePropertyObject(Dell_Server_Storage_Controller_PhysicalDisk_MediaType)
Dell_Server_Storage_Controller_PhysicalDisk_Obj.setAttributeDictionary("MediaType")


'ProductID
Dim Dell_Server_Storage_Controller_PhysicalDisk_ProductID
Set Dell_Server_Storage_Controller_PhysicalDisk_ProductID = New AttributeProperty

Dell_Server_Storage_Controller_PhysicalDisk_ProductID.setProtocol("wsman")
Dell_Server_Storage_Controller_PhysicalDisk_ProductID.setClassName("cimv2/DCIM_PhysicalDiskView")
Dell_Server_Storage_Controller_PhysicalDisk_ProductID.setProtocolAttributeName("Model")
Dell_Server_Storage_Controller_PhysicalDisk_Obj.setAttributePropertyObject(Dell_Server_Storage_Controller_PhysicalDisk_ProductID)
Dell_Server_Storage_Controller_PhysicalDisk_Obj.setAttributeDictionary("ProductID")


'PartNumber
Dim Dell_Server_Storage_Controller_PhysicalDisk_PartNumber
Set Dell_Server_Storage_Controller_PhysicalDisk_PartNumber = New AttributeProperty

Dell_Server_Storage_Controller_PhysicalDisk_PartNumber.setProtocol("wsman")
Dell_Server_Storage_Controller_PhysicalDisk_PartNumber.setClassName("cimv2/DCIM_PhysicalDiskView")
Dell_Server_Storage_Controller_PhysicalDisk_PartNumber.setProtocolAttributeName("PPID")
Dell_Server_Storage_Controller_PhysicalDisk_Obj.setAttributePropertyObject(Dell_Server_Storage_Controller_PhysicalDisk_PartNumber)
Dell_Server_Storage_Controller_PhysicalDisk_Obj.setAttributeDictionary("PartNumber")


'Version
Dim Dell_Server_Storage_Controller_PhysicalDisk_Version
Set Dell_Server_Storage_Controller_PhysicalDisk_Version = New AttributeProperty

Dell_Server_Storage_Controller_PhysicalDisk_Version.setProtocol("wsman")
Dell_Server_Storage_Controller_PhysicalDisk_Version.setClassName("cimv2/DCIM_PhysicalDiskView")
Dell_Server_Storage_Controller_PhysicalDisk_Version.setProtocolAttributeName("Revision")
Dell_Server_Storage_Controller_PhysicalDisk_Obj.setAttributePropertyObject(Dell_Server_Storage_Controller_PhysicalDisk_Version)
Dell_Server_Storage_Controller_PhysicalDisk_Obj.setAttributeDictionary("Version")


'SASAddress
Dim Dell_Server_Storage_Controller_PhysicalDisk_SASAddress
Set Dell_Server_Storage_Controller_PhysicalDisk_SASAddress = New AttributeProperty

Dell_Server_Storage_Controller_PhysicalDisk_SASAddress.setProtocol("wsman")
Dell_Server_Storage_Controller_PhysicalDisk_SASAddress.setClassName("cimv2/DCIM_PhysicalDiskView")
Dell_Server_Storage_Controller_PhysicalDisk_SASAddress.setProtocolAttributeName("SASAddress")
Dell_Server_Storage_Controller_PhysicalDisk_Obj.setAttributePropertyObject(Dell_Server_Storage_Controller_PhysicalDisk_SASAddress)
Dell_Server_Storage_Controller_PhysicalDisk_Obj.setAttributeDictionary("SASAddress")


'SecurityState
Dim Dell_Server_Storage_Controller_PhysicalDisk_SecurityState
Set Dell_Server_Storage_Controller_PhysicalDisk_SecurityState = New AttributeProperty

Dell_Server_Storage_Controller_PhysicalDisk_SecurityState.setProtocol("wsman")
Dell_Server_Storage_Controller_PhysicalDisk_SecurityState.setClassName("cimv2/DCIM_PhysicalDiskView")
Dell_Server_Storage_Controller_PhysicalDisk_SecurityState.setProtocolAttributeName("SecurityState")
Dell_Server_Storage_Controller_PhysicalDisk_SecurityState.setAttributeValueMappingObject()
Dell_Server_Storage_Controller_PhysicalDisk_SecurityState.setAttributeValueMapping "0", "Unknown"
Dell_Server_Storage_Controller_PhysicalDisk_SecurityState.setAttributeValueMapping "1", "Secured"
Dell_Server_Storage_Controller_PhysicalDisk_SecurityState.setAttributeValueMapping "2", "Locked"
Dell_Server_Storage_Controller_PhysicalDisk_SecurityState.setAttributeValueMapping "3", "Foreign"

Dell_Server_Storage_Controller_PhysicalDisk_Obj.setAttributePropertyObject(Dell_Server_Storage_Controller_PhysicalDisk_SecurityState)
Dell_Server_Storage_Controller_PhysicalDisk_Obj.setAttributeDictionary("SecurityState")


'SerialNumber
Dim Dell_Server_Storage_Controller_PhysicalDisk_SerialNumber
Set Dell_Server_Storage_Controller_PhysicalDisk_SerialNumber = New AttributeProperty

Dell_Server_Storage_Controller_PhysicalDisk_SerialNumber.setProtocol("wsman")
Dell_Server_Storage_Controller_PhysicalDisk_SerialNumber.setClassName("cimv2/DCIM_PhysicalDiskView")
Dell_Server_Storage_Controller_PhysicalDisk_SerialNumber.setProtocolAttributeName("SerialNumber")
Dell_Server_Storage_Controller_PhysicalDisk_Obj.setAttributePropertyObject(Dell_Server_Storage_Controller_PhysicalDisk_SerialNumber)
Dell_Server_Storage_Controller_PhysicalDisk_Obj.setAttributeDictionary("SerialNumber")


'Capacity
Dim Dell_Server_Storage_Controller_PhysicalDisk_Capacity
Set Dell_Server_Storage_Controller_PhysicalDisk_Capacity = New AttributeProperty

Dell_Server_Storage_Controller_PhysicalDisk_Capacity.setProtocol("wsman")
Dell_Server_Storage_Controller_PhysicalDisk_Capacity.setClassName("cimv2/DCIM_PhysicalDiskView")
Dell_Server_Storage_Controller_PhysicalDisk_Capacity.setProtocolAttributeName("SizeInBytes")
Dell_Server_Storage_Controller_PhysicalDisk_Obj.setAttributePropertyObject(Dell_Server_Storage_Controller_PhysicalDisk_Capacity)
Dell_Server_Storage_Controller_PhysicalDisk_Obj.setAttributeDictionary("Capacity")


'SlotNumber
Dim Dell_Server_Storage_Controller_PhysicalDisk_SlotNumber
Set Dell_Server_Storage_Controller_PhysicalDisk_SlotNumber = New AttributeProperty

Dell_Server_Storage_Controller_PhysicalDisk_SlotNumber.setProtocol("wsman")
Dell_Server_Storage_Controller_PhysicalDisk_SlotNumber.setClassName("cimv2/DCIM_PhysicalDiskView")
Dell_Server_Storage_Controller_PhysicalDisk_SlotNumber.setProtocolAttributeName("Slot")
Dell_Server_Storage_Controller_PhysicalDisk_Obj.setAttributePropertyObject(Dell_Server_Storage_Controller_PhysicalDisk_SlotNumber)
Dell_Server_Storage_Controller_PhysicalDisk_Obj.setAttributeDictionary("SlotNumber")


'SupportedEncryptionTypes
Dim Dell_Server_Storage_Controller_PhysicalDisk_SupportedEncryptionTypes
Set Dell_Server_Storage_Controller_PhysicalDisk_SupportedEncryptionTypes = New AttributeProperty

Dell_Server_Storage_Controller_PhysicalDisk_SupportedEncryptionTypes.setProtocol("wsman")
Dell_Server_Storage_Controller_PhysicalDisk_SupportedEncryptionTypes.setClassName("cimv2/DCIM_PhysicalDiskView")
Dell_Server_Storage_Controller_PhysicalDisk_SupportedEncryptionTypes.setProtocolAttributeName("SupportedEncryptionTypes")
Dell_Server_Storage_Controller_PhysicalDisk_Obj.setAttributePropertyObject(Dell_Server_Storage_Controller_PhysicalDisk_SupportedEncryptionTypes)
Dell_Server_Storage_Controller_PhysicalDisk_Obj.setAttributeDictionary("SupportedEncryptionTypes")
Dell_Server_Storage_Controller_PhysicalDisk_Obj.populateProfileClassNameList()
profileInfoDict.Add "Dell.Chassis.Storage.Controller.PhysicalDisk",Dell_Server_Storage_Controller_PhysicalDisk_Obj

Dim Dell_Chassis_Storage_Enclosure_Obj
Set Dell_Chassis_Storage_Enclosure_Obj = New ProfileInformation
Dell_Chassis_Storage_Enclosure_Obj.setProfileName("Dell.Chassis.Storage.Controller.Enclosure")

Dim Dell_Chassis_Storage_Enclosure_FQDD
Set Dell_Chassis_Storage_Enclosure_FQDD = New AttributeProperty
Dell_Chassis_Storage_Enclosure_FQDD.setProtocol("wsman")
Dell_Chassis_Storage_Enclosure_FQDD.setClassName("cimv2/DCIM_EnclosureView")
Dell_Chassis_Storage_Enclosure_FQDD.setProtocolAttributeName("FQDD")
Dell_Chassis_Storage_Enclosure_Obj.setAttributePropertyObject(Dell_Chassis_Storage_Enclosure_FQDD)
Dell_Chassis_Storage_Enclosure_Obj.setAttributeDictionary("FQDD")

Dim Dell_Chassis_Storage_Controller_Enclosure_DisplayName
Set Dell_Chassis_Storage_Controller_Enclosure_DisplayName = New AttributeProperty
Dell_Chassis_Storage_Controller_Enclosure_DisplayName.setProtocol("wsman")
Dell_Chassis_Storage_Controller_Enclosure_DisplayName.setClassName("cimv2/DCIM_EnclosureView")
Dell_Chassis_Storage_Controller_Enclosure_DisplayName.setProtocolAttributeName("ProductName")
Dell_Chassis_Storage_Enclosure_Obj.setAttributePropertyObject(Dell_Chassis_Storage_Controller_Enclosure_DisplayName)
Dell_Chassis_Storage_Enclosure_Obj.setAttributeDictionary("DisplayName")

Dim Dell_Chassis_Storage_Enclosure_BayID
Set Dell_Chassis_Storage_Enclosure_BayID = New AttributeProperty
Dell_Chassis_Storage_Enclosure_BayID.setProtocol("wsman")
Dell_Chassis_Storage_Enclosure_BayID.setClassName("cimv2/DCIM_EnclosureView")
Dell_Chassis_Storage_Enclosure_BayID.setProtocolAttributeName("WiredOrder")
Dell_Chassis_Storage_Enclosure_Obj.setAttributePropertyObject(Dell_Chassis_Storage_Enclosure_BayID)
Dell_Chassis_Storage_Enclosure_Obj.setAttributeDictionary("BayID")

Dim Dell_Chassis_Storage_Enclosure_Connector
Set Dell_Chassis_Storage_Enclosure_Connector = New AttributeProperty
Dell_Chassis_Storage_Enclosure_Connector.setProtocol("wsman")
Dell_Chassis_Storage_Enclosure_Connector.setClassName("cimv2/DCIM_EnclosureView")
Dell_Chassis_Storage_Enclosure_Connector.setProtocolAttributeName("Connector")
Dell_Chassis_Storage_Enclosure_Obj.setAttributePropertyObject(Dell_Chassis_Storage_Enclosure_Connector)
Dell_Chassis_Storage_Enclosure_Obj.setAttributeDictionary("Connector")

Dim Dell_Chassis_Storage_Enclosure_ServiceTag
Set Dell_Chassis_Storage_Enclosure_ServiceTag = New AttributeProperty
Dell_Chassis_Storage_Enclosure_ServiceTag.setProtocol("wsman")
Dell_Chassis_Storage_Enclosure_ServiceTag.setClassName("cimv2/DCIM_EnclosureView")
Dell_Chassis_Storage_Enclosure_ServiceTag.setProtocolAttributeName("ServiceTag")
Dell_Chassis_Storage_Enclosure_Obj.setAttributePropertyObject(Dell_Chassis_Storage_Enclosure_ServiceTag)
Dell_Chassis_Storage_Enclosure_Obj.setAttributeDictionary("ServiceTag")

Dim Dell_Chassis_Storage_Enclosure_AssetTag
Set Dell_Chassis_Storage_Enclosure_AssetTag = New AttributeProperty
Dell_Chassis_Storage_Enclosure_AssetTag.setProtocol("wsman")
Dell_Chassis_Storage_Enclosure_AssetTag.setClassName("cimv2/DCIM_EnclosureView")
Dell_Chassis_Storage_Enclosure_AssetTag.setProtocolAttributeName("AssetTag")
Dell_Chassis_Storage_Enclosure_Obj.setAttributePropertyObject(Dell_Chassis_Storage_Enclosure_AssetTag)
Dell_Chassis_Storage_Enclosure_Obj.setAttributeDictionary("AssetTag")


Dim Dell_Chassis_Storage_Enclosure_NumberofSlots
Set Dell_Chassis_Storage_Enclosure_NumberofSlots = New AttributeProperty
Dell_Chassis_Storage_Enclosure_NumberofSlots.setProtocol("wsman")
Dell_Chassis_Storage_Enclosure_NumberofSlots.setClassName("cimv2/DCIM_EnclosureView")
Dell_Chassis_Storage_Enclosure_NumberofSlots.setProtocolAttributeName("SlotCount")
Dell_Chassis_Storage_Enclosure_Obj.setAttributePropertyObject(Dell_Chassis_Storage_Enclosure_NumberofSlots)
Dell_Chassis_Storage_Enclosure_Obj.setAttributeDictionary("NumberofSlots")


Dim Dell_Chassis_Storage_Enclosure_FirmwareRevision
Set Dell_Chassis_Storage_Enclosure_FirmwareRevision = New AttributeProperty
Dell_Chassis_Storage_Enclosure_FirmwareRevision.setProtocol("wsman")
Dell_Chassis_Storage_Enclosure_FirmwareRevision.setClassName("cimv2/DCIM_EnclosureView")
Dell_Chassis_Storage_Enclosure_FirmwareRevision.setProtocolAttributeName("Version")
Dell_Chassis_Storage_Enclosure_Obj.setAttributePropertyObject(Dell_Chassis_Storage_Enclosure_FirmwareRevision)
Dell_Chassis_Storage_Enclosure_Obj.setAttributeDictionary("FirmwareRevision")

Dell_Chassis_Storage_Enclosure_Obj.populateProfileClassNameList()
profileInfoDict.Add "Dell.Chassis.Storage.Controller.Enclosure",Dell_Chassis_Storage_Enclosure_Obj


'Blade Server View
Dim Dell_Chassis_Storage_BladeServer_Obj
Set Dell_Chassis_Storage_BladeServer_Obj = New ProfileInformation
Dell_Chassis_Storage_BladeServer_Obj.setProfileName("Dell.Chassis.BladeServer")

'Blade Server FQDD
Dim Dell_Chassis_BladeServer_FQDD
Set Dell_Chassis_BladeServer_FQDD = New AttributeProperty

Dell_Chassis_BladeServer_FQDD.setProtocol("wsman")
Dell_Chassis_BladeServer_FQDD.setClassName("cimv2/DCIM_BladeServerView")
Dell_Chassis_BladeServer_FQDD.setProtocolAttributeName("FQDD")
Dell_Chassis_Storage_BladeServer_Obj.setAttributePropertyObject(Dell_Chassis_BladeServer_FQDD)
Dell_Chassis_Storage_BladeServer_Obj.setAttributeDictionary("FQDD")

'Blade Server ServiceTag
Dim Dell_Chassis_BladeServer_ServiceTag
Set Dell_Chassis_BladeServer_ServiceTag = New AttributeProperty

Dell_Chassis_BladeServer_ServiceTag.setProtocol("wsman")
Dell_Chassis_BladeServer_ServiceTag.setClassName("cimv2/DCIM_BladeServerView")
Dell_Chassis_BladeServer_ServiceTag.setProtocolAttributeName("ServiceTag")
Dell_Chassis_Storage_BladeServer_Obj.setAttributePropertyObject(Dell_Chassis_BladeServer_ServiceTag)
Dell_Chassis_Storage_BladeServer_Obj.setAttributeDictionary("ServiceTag")



Dell_Chassis_Storage_BladeServer_Obj.populateProfileClassNameList()
profileInfoDict.Add "Dell.Chassis.BladeServer",Dell_Chassis_Storage_BladeServer_Obj

'RAID VA View
Dim Dell_Chassis_Storage_RAIDVA_Obj
Set Dell_Chassis_Storage_RAIDVA_Obj = New ProfileInformation
Dell_Chassis_Storage_RAIDVA_Obj.setProfileName("Dell.Chassis.RAIDVAView")


'RAID VA FQDD
Dim Dell_Chassis_Storage_Controller_RAIDVA_FQDD
Set Dell_Chassis_Storage_Controller_RAIDVA_FQDD = New AttributeProperty

Dell_Chassis_Storage_Controller_RAIDVA_FQDD.setProtocol("wsman")
Dell_Chassis_Storage_Controller_RAIDVA_FQDD.setClassName("cimv2/DCIM_RAIDVAView")
Dell_Chassis_Storage_Controller_RAIDVA_FQDD.setProtocolAttributeName("FQDD")
Dell_Chassis_Storage_RAIDVA_Obj.setAttributePropertyObject(Dell_Chassis_Storage_Controller_RAIDVA_FQDD)
Dell_Chassis_Storage_RAIDVA_Obj.setAttributeDictionary("FQDD")

'RAID VA AssignedBladeFQDD
Dim Dell_Chassis_Storage_Controller_RAIDVA_AssignedBladeFQDD
Set Dell_Chassis_Storage_Controller_RAIDVA_AssignedBladeFQDD = New AttributeProperty

Dell_Chassis_Storage_Controller_RAIDVA_AssignedBladeFQDD.setProtocol("wsman")
Dell_Chassis_Storage_Controller_RAIDVA_AssignedBladeFQDD.setClassName("cimv2/DCIM_RAIDVAView")
Dell_Chassis_Storage_Controller_RAIDVA_AssignedBladeFQDD.setProtocolAttributeName("AssignedBladeFQDD")
Dell_Chassis_Storage_RAIDVA_Obj.setAttributePropertyObject(Dell_Chassis_Storage_Controller_RAIDVA_AssignedBladeFQDD)
Dell_Chassis_Storage_RAIDVA_Obj.setAttributeDictionary("AssignedBladeFQDD")


'RAID VA VirtualDiskIDs
Dim Dell_Chassis_Storage_Controller_RAIDVA_VirtualDiskIDs
Set Dell_Chassis_Storage_Controller_RAIDVA_VirtualDiskIDs = New AttributeProperty

Dell_Chassis_Storage_Controller_RAIDVA_VirtualDiskIDs.setProtocol("wsman")
Dell_Chassis_Storage_Controller_RAIDVA_VirtualDiskIDs.setClassName("cimv2/DCIM_RAIDVAView")
Dell_Chassis_Storage_Controller_RAIDVA_VirtualDiskIDs.setProtocolAttributeName("VirtualDiskIDs")
Dell_Chassis_Storage_RAIDVA_Obj.setAttributePropertyObject(Dell_Chassis_Storage_Controller_RAIDVA_VirtualDiskIDs)
Dell_Chassis_Storage_RAIDVA_Obj.setAttributeDictionary("VirtualDiskIDs")


'RAID VA CurrentAssignState
Dim Dell_Chassis_Storage_Controller_RAIDVA_CurrentAssignState
Set Dell_Chassis_Storage_Controller_RAIDVA_CurrentAssignState = New AttributeProperty

Dell_Chassis_Storage_Controller_RAIDVA_CurrentAssignState.setProtocol("wsman")
Dell_Chassis_Storage_Controller_RAIDVA_CurrentAssignState.setClassName("cimv2/DCIM_RAIDVAView")
Dell_Chassis_Storage_Controller_RAIDVA_CurrentAssignState.setProtocolAttributeName("CurrentAssignState")
Dell_Chassis_Storage_RAIDVA_Obj.setAttributePropertyObject(Dell_Chassis_Storage_Controller_RAIDVA_CurrentAssignState)
Dell_Chassis_Storage_RAIDVA_Obj.setAttributeDictionary("CurrentAssignState")

Dim Dell_Chassis_Storage_Controller_RAIDVA_VirtualDiskAccessPolicy
Set Dell_Chassis_Storage_Controller_RAIDVA_VirtualDiskAccessPolicy = New AttributeProperty

Dell_Chassis_Storage_Controller_RAIDVA_VirtualDiskAccessPolicy.setProtocol("wsman")
Dell_Chassis_Storage_Controller_RAIDVA_VirtualDiskAccessPolicy.setClassName("cimv2/DCIM_RAIDVAView")
Dell_Chassis_Storage_Controller_RAIDVA_VirtualDiskAccessPolicy.setProtocolAttributeName("VirtualDiskAccessPolicy")
Dell_Chassis_Storage_RAIDVA_Obj.setAttributePropertyObject(Dell_Chassis_Storage_Controller_RAIDVA_VirtualDiskAccessPolicy)
Dell_Chassis_Storage_RAIDVA_Obj.setAttributeDictionary("VirtualDiskAccessPolicy")

Dell_Chassis_Storage_RAIDVA_Obj.populateProfileClassNameList()
profileInfoDict.Add "Dell.Chassis.RAIDVAView",Dell_Chassis_Storage_RAIDVA_Obj

End Function

Public Function populateFanProfileDictionary
Dim Dell_Fan_Obj
Set Dell_Fan_Obj = New ProfileInformation
Dell_Fan_Obj.setProfileName("Dell.Chassis.Fan")
'FQDD
Dim Dell_Fan_FQDD
Set Dell_Fan_FQDD = New AttributeProperty
Dell_Fan_FQDD.setProtocol("wsman")
Dell_Fan_FQDD.setClassName("http://schemas.dell.com/wbem/wscim/1/cim-schema/2/root/dell/Dell_Fan")
Dell_Fan_FQDD.setProtocolAttributeName("DeviceID")
Dell_Fan_Obj.setAttributePropertyObject(Dell_Fan_FQDD)
Dell_Fan_Obj.setAttributeDictionary("FQDD")

'Displayname
Dim Dell_Fan_DisplayName
Set Dell_Fan_DisplayName = New AttributeProperty
Dell_Fan_DisplayName.setProtocol("wsman")
Dell_Fan_DisplayName.setClassName("http://schemas.dell.com/wbem/wscim/1/cim-schema/2/root/dell/Dell_Fan")
Dell_Fan_DisplayName.setProtocolAttributeName("ElementName")
Dell_Fan_Obj.setAttributePropertyObject(Dell_Fan_DisplayName)
Dell_Fan_Obj.setAttributeDictionary("DisplayName")

'ClassId
Dim Dell_Fan_ClassId
Set Dell_Fan_ClassId = New AttributeProperty
Dell_Fan_ClassId.setProtocol("wsman")
Dell_Fan_ClassId.setClassName("http://schemas.dell.com/wbem/wscim/1/cim-schema/2/root/dell/Dell_Fan")
Dell_Fan_ClassId.setProtocolAttributeName("ClassId")
Dell_Fan_Obj.setAttributePropertyObject(Dell_Fan_ClassId)
Dell_Fan_Obj.setAttributeDictionary("ClassId")

Dell_Fan_Obj.populateProfileClassNameList()
profileInfoDict.Add "Dell.Chassis.Fan",Dell_Fan_Obj

Dim Dell_FanPackage_Obj
Set Dell_FanPackage_Obj = New ProfileInformation
Dell_FanPackage_Obj.setProfileName("Dell.FanPackage")

'Manufacturer
Dim Dell_Fan_Manufacturer
Set Dell_Fan_Manufacturer = New AttributeProperty
Dell_Fan_Manufacturer.setProtocol("wsman")
Dell_Fan_Manufacturer.setClassName("http://schemas.dell.com/wbem/wscim/1/cim-schema/2/root/dell/Dell_FanPackage")
Dell_Fan_Manufacturer.setProtocolAttributeName("Manufacturer")
Dell_FanPackage_Obj.setAttributePropertyObject(Dell_Fan_Manufacturer)
Dell_FanPackage_Obj.setAttributeDictionary("Manufacturer")

'ClassId
Dim Dell_Fan_Package_ClassId
Set Dell_Fan_Package_ClassId = New AttributeProperty
Dell_Fan_Package_ClassId.setProtocol("wsman")
Dell_Fan_Package_ClassId.setClassName("http://schemas.dell.com/wbem/wscim/1/cim-schema/2/root/dell/Dell_FanPackage")
Dell_Fan_Package_ClassId.setProtocolAttributeName("ClassId")
Dell_FanPackage_Obj.setAttributePropertyObject(Dell_Fan_Package_ClassId)
Dell_FanPackage_Obj.setAttributeDictionary("ClassId")

Dell_FanPackage_Obj.populateProfileClassNameList()
profileInfoDict.Add "Dell.FanPackage",Dell_FanPackage_Obj

Dim Dell_FanSlot_Obj
Set Dell_FanSlot_Obj = New ProfileInformation
Dell_FanSlot_Obj.setProfileName("Dell.FanSlot")

'Slot
Dim Dell_Fan_Slot
Set Dell_Fan_Slot = New AttributeProperty
Dell_Fan_Slot.setProtocol("wsman")
Dell_Fan_Slot.setClassName("http://schemas.dell.com/wbem/wscim/1/cim-schema/2/root/dell/Dell_FanSlot")
Dell_Fan_Slot.setProtocolAttributeName("Number")
Dell_FanSlot_Obj.setAttributePropertyObject(Dell_Fan_Slot)
Dell_FanSlot_Obj.setAttributeDictionary("Slot")

'ClassId
Dim Dell_Fan_Slot_ClassId
Set Dell_Fan_Slot_ClassId = New AttributeProperty
Dell_Fan_Slot_ClassId.setProtocol("wsman")
Dell_Fan_Slot_ClassId.setClassName("http://schemas.dell.com/wbem/wscim/1/cim-schema/2/root/dell/Dell_FanSlot")
Dell_Fan_Slot_ClassId.setProtocolAttributeName("ClassId")
Dell_FanSlot_Obj.setAttributePropertyObject(Dell_Fan_Slot_ClassId)
Dell_FanSlot_Obj.setAttributeDictionary("ClassId")

Dell_FanSlot_Obj.populateProfileClassNameList()
profileInfoDict.Add "Dell.FanSlot", Dell_FanSlot_Obj

End Function

Public Function pcieDeviceProfileDictionary
'PCIeDevice Chassis Slot Profile Object
Dim Dell_Chassis_Storage_PCIeDevice_PCISlot_Obj
Set Dell_Chassis_Storage_PCIeDevice_PCISlot_Obj = New ProfileInformation
Dell_Chassis_Storage_PCIeDevice_PCISlot_Obj.setProfileName("Dell.Chassis.PCIeDevice.PCISlot")

Dim Dell_Chassis_Storage_PCIeDevice_FQDD
Set Dell_Chassis_Storage_PCIeDevice_FQDD = New AttributeProperty
Dell_Chassis_Storage_PCIeDevice_FQDD.setProtocol("wsman")
Dell_Chassis_Storage_PCIeDevice_FQDD.setClassName("cimv2/DCIM_ChassisPCISlot")
Dell_Chassis_Storage_PCIeDevice_FQDD.setProtocolAttributeName("FQDD")
Dell_Chassis_Storage_PCIeDevice_PCISlot_Obj.setAttributePropertyObject(Dell_Chassis_Storage_PCIeDevice_FQDD)
Dell_Chassis_Storage_PCIeDevice_PCISlot_Obj.setAttributeDictionary("FQDD")

Dim Dell_Chassis_Storage_PCIeDevice_Fabric
Set Dell_Chassis_Storage_PCIeDevice_Fabric = New AttributeProperty
Dell_Chassis_Storage_PCIeDevice_Fabric.setProtocol("wsman")
Dell_Chassis_Storage_PCIeDevice_Fabric.setClassName("cimv2/DCIM_ChassisPCISlot")
Dell_Chassis_Storage_PCIeDevice_Fabric.setProtocolAttributeName("Fabric")
Dell_Chassis_Storage_PCIeDevice_PCISlot_Obj.setAttributePropertyObject(Dell_Chassis_Storage_PCIeDevice_Fabric)
Dell_Chassis_Storage_PCIeDevice_PCISlot_Obj.setAttributeDictionary("Fabric")

Dim Dell_Chassis_Storage_PCIeDevice_SlotType
Set Dell_Chassis_Storage_PCIeDevice_SlotType = New AttributeProperty
Dell_Chassis_Storage_PCIeDevice_SlotType.setProtocol("wsman")
Dell_Chassis_Storage_PCIeDevice_SlotType.setClassName("cimv2/DCIM_ChassisPCISlot")
Dell_Chassis_Storage_PCIeDevice_SlotType.setProtocolAttributeName("Height")
Dell_Chassis_Storage_PCIeDevice_SlotType.setAttributeValueMappingObject()
Dell_Chassis_Storage_PCIeDevice_SlotType.setAttributeValueMapping "2", "Full Height"
Dell_Chassis_Storage_PCIeDevice_SlotType.setAttributeValueMapping "3", "Low Profile"
Dell_Chassis_Storage_PCIeDevice_PCISlot_Obj.setAttributePropertyObject(Dell_Chassis_Storage_PCIeDevice_SlotType)
Dell_Chassis_Storage_PCIeDevice_PCISlot_Obj.setAttributeDictionary("SlotType")


Dim Dell_Chassis_Storage_PCIeDevice_PCIeSlot
Set Dell_Chassis_Storage_PCIeDevice_PCIeSlot = New AttributeProperty
Dell_Chassis_Storage_PCIeDevice_PCIeSlot.setProtocol("wsman")
Dell_Chassis_Storage_PCIeDevice_PCIeSlot.setClassName("cimv2/DCIM_ChassisPCISlot")
Dell_Chassis_Storage_PCIeDevice_PCIeSlot.setProtocolAttributeName("NumberDescription")
Dell_Chassis_Storage_PCIeDevice_PCISlot_Obj.setAttributePropertyObject(Dell_Chassis_Storage_PCIeDevice_PCIeSlot)
Dell_Chassis_Storage_PCIeDevice_PCISlot_Obj.setAttributeDictionary("PCIeSlot")

Dim Dell_Chassis_Storage_PCIeDevice_PCIeDeviceFQDD
Set Dell_Chassis_Storage_PCIeDevice_PCIeDeviceFQDD = New AttributeProperty
Dell_Chassis_Storage_PCIeDevice_PCIeDeviceFQDD.setProtocol("wsman")
Dell_Chassis_Storage_PCIeDevice_PCIeDeviceFQDD.setClassName("cimv2/DCIM_ChassisPCISlot")
Dell_Chassis_Storage_PCIeDevice_PCIeDeviceFQDD.setProtocolAttributeName("DeviceFQDD")
Dell_Chassis_Storage_PCIeDevice_PCISlot_Obj.setAttributePropertyObject(Dell_Chassis_Storage_PCIeDevice_PCIeDeviceFQDD)
Dell_Chassis_Storage_PCIeDevice_PCISlot_Obj.setAttributeDictionary("DeviceFQDD")


Dell_Chassis_Storage_PCIeDevice_PCISlot_Obj.populateProfileClassNameList()
profileInfoDict.Add "Dell.Chassis.PCIeDevice.PCISlot",Dell_Chassis_Storage_PCIeDevice_PCISlot_Obj

'PCI Device Chassis Device Object
Dim Dell_Chassis_Storage_PCIeDevice_PCIDevice_Obj
Set Dell_Chassis_Storage_PCIeDevice_PCIDevice_Obj = New ProfileInformation
Dell_Chassis_Storage_PCIeDevice_PCIDevice_Obj.setProfileName("Dell.Chassis.PCIeDevice.PCIDeviceView")

Dim Dell_Chassis_Storage_PCIeDeviceFQDD
Set Dell_Chassis_Storage_PCIeDeviceFQDD = New AttributeProperty
Dell_Chassis_Storage_PCIeDeviceFQDD.setProtocol("wsman")
Dell_Chassis_Storage_PCIeDeviceFQDD.setClassName("cimv2/DCIM_ChassisPCIDeviceView")
Dell_Chassis_Storage_PCIeDeviceFQDD.setProtocolAttributeName("FQDD")
Dell_Chassis_Storage_PCIeDevice_PCIDevice_Obj.setAttributePropertyObject(Dell_Chassis_Storage_PCIeDeviceFQDD)
Dell_Chassis_Storage_PCIeDevice_PCIDevice_Obj.setAttributeDictionary("FQDD")


Dim Dell_Chassis_Storage_PCIeDevice_AssignedBladeSlotFQDD
Set Dell_Chassis_Storage_PCIeDevice_AssignedBladeSlotFQDD = New AttributeProperty
Dell_Chassis_Storage_PCIeDevice_AssignedBladeSlotFQDD.setProtocol("wsman")
Dell_Chassis_Storage_PCIeDevice_AssignedBladeSlotFQDD.setClassName("cimv2/DCIM_ChassisPCIDeviceView")
Dell_Chassis_Storage_PCIeDevice_AssignedBladeSlotFQDD.setProtocolAttributeName("AssignedBladeSlotFQDD")
Dell_Chassis_Storage_PCIeDevice_PCIDevice_Obj.setAttributePropertyObject(Dell_Chassis_Storage_PCIeDevice_AssignedBladeSlotFQDD)
Dell_Chassis_Storage_PCIeDevice_PCIDevice_Obj.setAttributeDictionary("AssignedSlot")

Dim Dell_Chassis_Storage_PCIeDevice_AssignedBlade
Set Dell_Chassis_Storage_PCIeDevice_AssignedBlade = New AttributeProperty
Dell_Chassis_Storage_PCIeDevice_AssignedBlade.setProtocol("wsman")
Dell_Chassis_Storage_PCIeDevice_AssignedBlade.setClassName("cimv2/DCIM_ChassisPCIDeviceView")
Dell_Chassis_Storage_PCIeDevice_AssignedBlade.setProtocolAttributeName("AssignedBladeFQDD")
Dell_Chassis_Storage_PCIeDevice_PCIDevice_Obj.setAttributePropertyObject(Dell_Chassis_Storage_PCIeDevice_AssignedBlade)
Dell_Chassis_Storage_PCIeDevice_PCIDevice_Obj.setAttributeDictionary("AssignedBlade")

Dim Dell_Chassis_Storage_PCIeDevice_Description
Set Dell_Chassis_Storage_PCIeDevice_Description = New AttributeProperty
Dell_Chassis_Storage_PCIeDevice_Description.setProtocol("wsman")
Dell_Chassis_Storage_PCIeDevice_Description.setClassName("cimv2/DCIM_ChassisPCIDeviceView")
Dell_Chassis_Storage_PCIeDevice_Description.setProtocolAttributeName("Description")
Dell_Chassis_Storage_PCIeDevice_PCIDevice_Obj.setAttributePropertyObject(Dell_Chassis_Storage_PCIeDevice_Description)
Dell_Chassis_Storage_PCIeDevice_PCIDevice_Obj.setAttributeDictionary("Description")

Dim Dell_Chassis_Storage_PCIeDevice_Databuswidth
Set Dell_Chassis_Storage_PCIeDevice_Databuswidth = New AttributeProperty
Dell_Chassis_Storage_PCIeDevice_Databuswidth.setProtocol("wsman")
Dell_Chassis_Storage_PCIeDevice_Databuswidth.setClassName("cimv2/DCIM_ChassisPCIDeviceView")
Dell_Chassis_Storage_PCIeDevice_Databuswidth.setProtocolAttributeName("DataBusWidth")
Dell_Chassis_Storage_PCIeDevice_Databuswidth.setAttributeValueMappingObject()
Dell_Chassis_Storage_PCIeDevice_Databuswidth.setAttributeValueMapping "0001", "Other"
Dell_Chassis_Storage_PCIeDevice_Databuswidth.setAttributeValueMapping "0002", "Unknown"
Dell_Chassis_Storage_PCIeDevice_Databuswidth.setAttributeValueMapping "0003", "8 bit"
Dell_Chassis_Storage_PCIeDevice_Databuswidth.setAttributeValueMapping "0004", "16 bit"
Dell_Chassis_Storage_PCIeDevice_Databuswidth.setAttributeValueMapping "0005", "32 bit"
Dell_Chassis_Storage_PCIeDevice_Databuswidth.setAttributeValueMapping "0006", "64 bit"
Dell_Chassis_Storage_PCIeDevice_Databuswidth.setAttributeValueMapping "0007", "128 bit"
Dell_Chassis_Storage_PCIeDevice_Databuswidth.setAttributeValueMapping "0008", "1x or x1"
Dell_Chassis_Storage_PCIeDevice_Databuswidth.setAttributeValueMapping "0009", "2x or x2"
Dell_Chassis_Storage_PCIeDevice_Databuswidth.setAttributeValueMapping "000A", "4x or x4"
Dell_Chassis_Storage_PCIeDevice_Databuswidth.setAttributeValueMapping "000B", "8x or x8"
Dell_Chassis_Storage_PCIeDevice_Databuswidth.setAttributeValueMapping "000C", "12x or x12"
Dell_Chassis_Storage_PCIeDevice_Databuswidth.setAttributeValueMapping "000D", "16x or x16"
Dell_Chassis_Storage_PCIeDevice_Databuswidth.setAttributeValueMapping "000E", "32x or x32"
Dell_Chassis_Storage_PCIeDevice_PCIDevice_Obj.setAttributePropertyObject(Dell_Chassis_Storage_PCIeDevice_Databuswidth)
Dell_Chassis_Storage_PCIeDevice_PCIDevice_Obj.setAttributeDictionary("Databuswidth")

Dim Dell_Chassis_Storage_PCIeDevice_Manufacturer
Set Dell_Chassis_Storage_PCIeDevice_Manufacturer = New AttributeProperty
Dell_Chassis_Storage_PCIeDevice_Manufacturer.setProtocol("wsman")
Dell_Chassis_Storage_PCIeDevice_Manufacturer.setClassName("cimv2/DCIM_ChassisPCIDeviceView")
Dell_Chassis_Storage_PCIeDevice_Manufacturer.setProtocolAttributeName("Manufacturer")
Dell_Chassis_Storage_PCIeDevice_PCIDevice_Obj.setAttributePropertyObject(Dell_Chassis_Storage_PCIeDevice_Manufacturer)
Dell_Chassis_Storage_PCIeDevice_PCIDevice_Obj.setAttributeDictionary("Manufacturer")

Dell_Chassis_Storage_PCIeDevice_PCIDevice_Obj.populateProfileClassNameList()
profileInfoDict.Add "Dell.Chassis.PCIeDevice.PCIDeviceView",Dell_Chassis_Storage_PCIeDevice_PCIDevice_Obj

End Function

Public Function powersupplyProfileDictionay

'Chassis Power Supply Dell_PowerSupply profile object
Dim Dell_Chassis_PowerSupply_Dell_PowerSupply_Obj
Set Dell_Chassis_PowerSupply_Dell_PowerSupply_Obj = New ProfileInformation
Dell_Chassis_PowerSupply_Dell_PowerSupply_Obj.setProfileName("Dell.Chassis.PowerSupply.Dell_PowerSupply")

Dim Dell_Chassis_Storage_PowerSupply_FQDD
Set Dell_Chassis_Storage_PowerSupply_FQDD = New AttributeProperty
Dell_Chassis_Storage_PowerSupply_FQDD.setProtocol("wsman")
Dell_Chassis_Storage_PowerSupply_FQDD.setClassName("http://schemas.dell.com/wbem/wscim/1/cim-schema/2/root/dell/Dell_PowerSupply")
Dell_Chassis_Storage_PowerSupply_FQDD.setProtocolAttributeName("DeviceID")
Dell_Chassis_PowerSupply_Dell_PowerSupply_Obj.setAttributePropertyObject(Dell_Chassis_Storage_PowerSupply_FQDD)
Dell_Chassis_PowerSupply_Dell_PowerSupply_Obj.setAttributeDictionary("FQDD")

Dim Dell_Chassis_Storage_PowerSupply_PSClassID
Set Dell_Chassis_Storage_PowerSupply_PSClassID = New AttributeProperty
Dell_Chassis_Storage_PowerSupply_PSClassID.setProtocol("wsman")
Dell_Chassis_Storage_PowerSupply_PSClassID.setClassName("http://schemas.dell.com/wbem/wscim/1/cim-schema/2/root/dell/Dell_PowerSupply")
Dell_Chassis_Storage_PowerSupply_PSClassID.setProtocolAttributeName("ClassId")
Dell_Chassis_PowerSupply_Dell_PowerSupply_Obj.setAttributePropertyObject(Dell_Chassis_Storage_PowerSupply_PSClassID)
Dell_Chassis_PowerSupply_Dell_PowerSupply_Obj.setAttributeDictionary("ClassId")


Dim Dell_Chassis_Storage_PowerSupply_Capacity
Set Dell_Chassis_Storage_PowerSupply_Capacity = New AttributeProperty
Dell_Chassis_Storage_PowerSupply_Capacity.setProtocol("wsman")
Dell_Chassis_Storage_PowerSupply_Capacity.setClassName("http://schemas.dell.com/wbem/wscim/1/cim-schema/2/root/dell/Dell_PowerSupply")
Dell_Chassis_Storage_PowerSupply_Capacity.setProtocolAttributeName("TotalOutputPower")
Dell_Chassis_PowerSupply_Dell_PowerSupply_Obj.setAttributePropertyObject(Dell_Chassis_Storage_PowerSupply_Capacity)
Dell_Chassis_PowerSupply_Dell_PowerSupply_Obj.setAttributeDictionary("Capacity")

Dell_Chassis_PowerSupply_Dell_PowerSupply_Obj.populateProfileClassNameList()
profileInfoDict.Add "Dell.Chassis.PowerSupply.Dell_PowerSupply",Dell_Chassis_PowerSupply_Dell_PowerSupply_Obj

'Chassis Power SUpply Dell_PSPackage profile objct

Dim Dell_Chassis_PowerSupply_Dell_PSPackage_Obj
Set Dell_Chassis_PowerSupply_Dell_PSPackage_Obj = New ProfileInformation
Dell_Chassis_PowerSupply_Dell_PSPackage_Obj.setProfileName("Dell.Chassis.PowerSupply.Dell_PSPackage")



Dim Dell_Chassis_Storage_PowerSupply_Name
Set Dell_Chassis_Storage_PowerSupply_Name = New AttributeProperty
Dell_Chassis_Storage_PowerSupply_Name.setProtocol("wsman")
Dell_Chassis_Storage_PowerSupply_Name.setClassName("http://schemas.dell.com/wbem/wscim/1/cim-schema/2/root/dell/Dell_PSPackage")
Dell_Chassis_Storage_PowerSupply_Name.setProtocolAttributeName("Name")
Dell_Chassis_PowerSupply_Dell_PSPackage_Obj.setAttributePropertyObject(Dell_Chassis_Storage_PowerSupply_Name)
Dell_Chassis_PowerSupply_Dell_PSPackage_Obj.setAttributeDictionary("Name")

Dim Dell_Chassis_Storage_PowerSupply_PackClassID
Set Dell_Chassis_Storage_PowerSupply_PackClassID = New AttributeProperty
Dell_Chassis_Storage_PowerSupply_PackClassID.setProtocol("wsman")
Dell_Chassis_Storage_PowerSupply_PackClassID.setClassName("http://schemas.dell.com/wbem/wscim/1/cim-schema/2/root/dell/Dell_PSPackage")
Dell_Chassis_Storage_PowerSupply_PackClassID.setProtocolAttributeName("ClassId")
Dell_Chassis_PowerSupply_Dell_PSPackage_Obj.setAttributePropertyObject(Dell_Chassis_Storage_PowerSupply_PackClassID)
Dell_Chassis_PowerSupply_Dell_PSPackage_Obj.setAttributeDictionary("ClassId")

Dim Dell_Chassis_Storage_PowerSupply_Manufacturer
Set Dell_Chassis_Storage_PowerSupply_Manufacturer = New AttributeProperty
Dell_Chassis_Storage_PowerSupply_Manufacturer.setProtocol("wsman")
Dell_Chassis_Storage_PowerSupply_Manufacturer.setClassName("http://schemas.dell.com/wbem/wscim/1/cim-schema/2/root/dell/Dell_PSPackage")
Dell_Chassis_Storage_PowerSupply_Manufacturer.setProtocolAttributeName("Manufacturer")
Dell_Chassis_PowerSupply_Dell_PSPackage_Obj.setAttributePropertyObject(Dell_Chassis_Storage_PowerSupply_Manufacturer)
Dell_Chassis_PowerSupply_Dell_PSPackage_Obj.setAttributeDictionary("Manufacturer")

Dim Dell_Chassis_Storage_PowerSupply_Model
Set Dell_Chassis_Storage_PowerSupply_Model = New AttributeProperty
Dell_Chassis_Storage_PowerSupply_Model.setProtocol("wsman")
Dell_Chassis_Storage_PowerSupply_Model.setClassName("http://schemas.dell.com/wbem/wscim/1/cim-schema/2/root/dell/Dell_PSPackage")
Dell_Chassis_Storage_PowerSupply_Model.setProtocolAttributeName("Model")
Dell_Chassis_PowerSupply_Dell_PSPackage_Obj.setAttributePropertyObject(Dell_Chassis_Storage_PowerSupply_Model)
Dell_Chassis_PowerSupply_Dell_PSPackage_Obj.setAttributeDictionary("Model")

Dim Dell_Chassis_Storage_PowerSupply_SerialNumber
Set Dell_Chassis_Storage_PowerSupply_SerialNumber = New AttributeProperty
Dell_Chassis_Storage_PowerSupply_SerialNumber.setProtocol("wsman")
Dell_Chassis_Storage_PowerSupply_SerialNumber.setClassName("http://schemas.dell.com/wbem/wscim/1/cim-schema/2/root/dell/Dell_PSPackage")
Dell_Chassis_Storage_PowerSupply_SerialNumber.setProtocolAttributeName("SerialNumber")
Dell_Chassis_PowerSupply_Dell_PSPackage_Obj.setAttributePropertyObject(Dell_Chassis_Storage_PowerSupply_SerialNumber)
Dell_Chassis_PowerSupply_Dell_PSPackage_Obj.setAttributeDictionary("SerialNumber")

Dim Dell_Chassis_Storage_PowerSupply_PartNumber
Set Dell_Chassis_Storage_PowerSupply_PartNumber = New AttributeProperty
Dell_Chassis_Storage_PowerSupply_PartNumber.setProtocol("wsman")
Dell_Chassis_Storage_PowerSupply_PartNumber.setClassName("http://schemas.dell.com/wbem/wscim/1/cim-schema/2/root/dell/Dell_PSPackage")
Dell_Chassis_Storage_PowerSupply_PartNumber.setProtocolAttributeName("PartNumber")
Dell_Chassis_PowerSupply_Dell_PSPackage_Obj.setAttributePropertyObject(Dell_Chassis_Storage_PowerSupply_PartNumber)
Dell_Chassis_PowerSupply_Dell_PSPackage_Obj.setAttributeDictionary("PartNumber")

Dell_Chassis_PowerSupply_Dell_PSPackage_Obj.populateProfileClassNameList()
profileInfoDict.Add "Dell.Chassis.PowerSupply.Dell_PSPackage",Dell_Chassis_PowerSupply_Dell_PSPackage_Obj

'Chassis Power Supply Slot
Dim Dell_Chassis_PowerSupply_PowerSupplySlot_Obj
Set Dell_Chassis_PowerSupply_PowerSupplySlot_Obj = New ProfileInformation
Dell_Chassis_PowerSupply_PowerSupplySlot_Obj.setProfileName("Dell.Chassis.PowerSupply.Dell_PSSlot")

Dim Dell_Chassis_Storage_PowerSupply_PSSlot
Set Dell_Chassis_Storage_PowerSupply_PSSlot = New AttributeProperty
Dell_Chassis_Storage_PowerSupply_PSSlot.setProtocol("wsman")
Dell_Chassis_Storage_PowerSupply_PSSlot.setClassName("http://schemas.dell.com/wbem/wscim/1/cim-schema/2/root/dell/Dell_PSSlot")
Dell_Chassis_Storage_PowerSupply_PSSlot.setProtocolAttributeName("Number")
Dell_Chassis_PowerSupply_PowerSupplySlot_Obj.setAttributePropertyObject(Dell_Chassis_Storage_PowerSupply_PSSlot)
Dell_Chassis_PowerSupply_PowerSupplySlot_Obj.setAttributeDictionary("Slot")

Dim Dell_Chassis_Storage_PowerSupply_SlotClassID
Set Dell_Chassis_Storage_PowerSupply_SlotClassID = New AttributeProperty
Dell_Chassis_Storage_PowerSupply_SlotClassID.setProtocol("wsman")
Dell_Chassis_Storage_PowerSupply_SlotClassID.setClassName("http://schemas.dell.com/wbem/wscim/1/cim-schema/2/root/dell/Dell_PSSlot")
Dell_Chassis_Storage_PowerSupply_SlotClassID.setProtocolAttributeName("ClassId")
Dell_Chassis_PowerSupply_PowerSupplySlot_Obj.setAttributePropertyObject(Dell_Chassis_Storage_PowerSupply_SlotClassID)
Dell_Chassis_PowerSupply_PowerSupplySlot_Obj.setAttributeDictionary("ClassId")

Dell_Chassis_PowerSupply_PowerSupplySlot_Obj.populateProfileClassNameList()
profileInfoDict.Add "Dell.Chassis.PowerSupply.Dell_PSSlot",Dell_Chassis_PowerSupply_PowerSupplySlot_Obj

End Function

Public Function cmcProfileDictionary
Dim Dell_Chassis_cmc_racadm_getmodinfo_Obj
Set Dell_Chassis_cmc_racadm_getmodinfo_Obj = New ProfileInformation
Dell_Chassis_cmc_racadm_getmodinfo_Obj.setProfileName("Dell.Chassis.cmc.racadm.getmodinfo")

Dim Dell_Chassis_cmc_racadm_powerstatus
Set Dell_Chassis_cmc_racadm_powerstatus = New AttributeProperty
Dell_Chassis_cmc_racadm_powerstatus.setProtocol("racadm")
Dell_Chassis_cmc_racadm_powerstatus.setClassName("getmodinfo")
Dell_Chassis_cmc_racadm_powerstatus.setProtocolAttributeName("&lt;pwrState&gt;")
Dell_Chassis_cmc_racadm_powerstatus.setSearchKey("cmc")
Dell_Chassis_cmc_racadm_getmodinfo_Obj.setAttributePropertyObject(Dell_Chassis_cmc_racadm_powerstatus)
Dell_Chassis_cmc_racadm_getmodinfo_Obj.setAttributeDictionary("powerstatus")

Dim Dell_Chassis_cmc_racadm_module
Set Dell_Chassis_cmc_racadm_module = New AttributeProperty
Dell_Chassis_cmc_racadm_module.setProtocol("racadm")
Dell_Chassis_cmc_racadm_module.setClassName("getmodinfo")
Dell_Chassis_cmc_racadm_module.setProtocolAttributeName("&lt;module&gt;")
Dell_Chassis_cmc_racadm_module.setSearchKey("cmc")
Dell_Chassis_cmc_racadm_getmodinfo_Obj.setAttributePropertyObject(Dell_Chassis_cmc_racadm_module)
Dell_Chassis_cmc_racadm_getmodinfo_Obj.setAttributeDictionary("module")


Dell_Chassis_cmc_racadm_getmodinfo_Obj.populateProfileClassNameList()
profileInfoDict.Add "Dell.Chassis.cmc.racadm.getmodinfo",Dell_Chassis_cmc_racadm_getmodinfo_Obj

Dim Dell_Chassis_cmc_racadm_getversion_Obj
Set Dell_Chassis_cmc_racadm_getversion_Obj = New ProfileInformation
Dell_Chassis_cmc_racadm_getversion_Obj.setProfileName("Dell.Chassis.cmc.racadm.getversion")

Dim Dell_Chassis_cmc_racadm_FirmwareVersion_CMC
Set Dell_Chassis_cmc_racadm_FirmwareVersion_CMC = New AttributeProperty
Dell_Chassis_cmc_racadm_FirmwareVersion_CMC.setProtocol("racadm")
Dell_Chassis_cmc_racadm_FirmwareVersion_CMC.setClassName("getversion")
Dell_Chassis_cmc_racadm_FirmwareVersion_CMC.setProtocolAttributeName("&lt;CMC&gt;")
Dell_Chassis_cmc_racadm_FirmwareVersion_CMC.setSearchKey("cmc")
Dell_Chassis_cmc_racadm_getversion_Obj.setAttributePropertyObject(Dell_Chassis_cmc_racadm_FirmwareVersion_CMC)
Dell_Chassis_cmc_racadm_getversion_Obj.setAttributeDictionary("CMC")

Dim Dell_Chassis_cmc_racadm_FirmwareVersion_CMCVersion
Set Dell_Chassis_cmc_racadm_FirmwareVersion_CMCVersion = New AttributeProperty
Dell_Chassis_cmc_racadm_FirmwareVersion_CMCVersion.setProtocol("racadm")
Dell_Chassis_cmc_racadm_FirmwareVersion_CMCVersion.setClassName("getversion")
Dell_Chassis_cmc_racadm_FirmwareVersion_CMCVersion.setProtocolAttributeName("&lt;CMC Version&gt;")
Dell_Chassis_cmc_racadm_FirmwareVersion_CMCVersion.setSearchKey("cmc")
Dell_Chassis_cmc_racadm_getversion_Obj.setAttributePropertyObject(Dell_Chassis_cmc_racadm_FirmwareVersion_CMCVersion)
Dell_Chassis_cmc_racadm_getversion_Obj.setAttributeDictionary("FirmwareVersion")

Dell_Chassis_cmc_racadm_getversion_Obj.populateProfileClassNameList()
profileInfoDict.Add "Dell.Chassis.cmc.racadm.getversion",Dell_Chassis_cmc_racadm_getversion_Obj


Dim Dell_Chassis_cmc_wsman_Obj
Set Dell_Chassis_cmc_wsman_Obj = New ProfileInformation
Dell_Chassis_cmc_wsman_Obj.setProfileName("Dell.Chassis.cmc.wsman")

Dim Dell_Chassis_cmc_wsman_Manufacturer
Set Dell_Chassis_cmc_wsman_Manufacturer = New AttributeProperty
Dell_Chassis_cmc_wsman_Manufacturer.setProtocol("wsman")
Dell_Chassis_cmc_wsman_Manufacturer.setClassName("http://schemas.dell.com/wbem/wscim/1/cim-schema/2/root/dell/Dell_ChMgrPackage")
Dell_Chassis_cmc_wsman_Manufacturer.setProtocolAttributeName("Manufacturer")
Dell_Chassis_cmc_wsman_Obj.setAttributePropertyObject(Dell_Chassis_cmc_wsman_Manufacturer)
Dell_Chassis_cmc_wsman_Obj.setAttributeDictionary("Manufacturer")

Dim Dell_Chassis_cmc_wsman_Model
Set Dell_Chassis_cmc_wsman_Model = New AttributeProperty
Dell_Chassis_cmc_wsman_Model.setProtocol("wsman")
Dell_Chassis_cmc_wsman_Model.setClassName("http://schemas.dell.com/wbem/wscim/1/cim-schema/2/root/dell/Dell_ChMgrPackage")
Dell_Chassis_cmc_wsman_Model.setProtocolAttributeName("Model")
Dell_Chassis_cmc_wsman_Obj.setAttributePropertyObject(Dell_Chassis_cmc_wsman_Model)
Dell_Chassis_cmc_wsman_Obj.setAttributeDictionary("Model")

Dim Dell_Chassis_cmc_wsman_SerialNumber
Set Dell_Chassis_cmc_wsman_SerialNumber = New AttributeProperty
Dell_Chassis_cmc_wsman_SerialNumber.setProtocol("wsman")
Dell_Chassis_cmc_wsman_SerialNumber.setClassName("http://schemas.dell.com/wbem/wscim/1/cim-schema/2/root/dell/Dell_ChMgrPackage")
Dell_Chassis_cmc_wsman_SerialNumber.setProtocolAttributeName("SerialNumber")
Dell_Chassis_cmc_wsman_Obj.setAttributePropertyObject(Dell_Chassis_cmc_wsman_SerialNumber)
Dell_Chassis_cmc_wsman_Obj.setAttributeDictionary("SerialNumber")

Dim Dell_Chassis_cmc_wsman_PartNumber
Set Dell_Chassis_cmc_wsman_PartNumber = New AttributeProperty
Dell_Chassis_cmc_wsman_PartNumber.setProtocol("wsman")
Dell_Chassis_cmc_wsman_PartNumber.setClassName("http://schemas.dell.com/wbem/wscim/1/cim-schema/2/root/dell/Dell_ChMgrPackage")
Dell_Chassis_cmc_wsman_PartNumber.setProtocolAttributeName("PartNumber")
Dell_Chassis_cmc_wsman_Obj.setAttributePropertyObject(Dell_Chassis_cmc_wsman_PartNumber)
Dell_Chassis_cmc_wsman_Obj.setAttributeDictionary("PartNumber")

Dell_Chassis_cmc_wsman_Obj.populateProfileClassNameList()
profileInfoDict.Add "Dell.Chassis.cmc.wsman",Dell_Chassis_cmc_wsman_Obj

End Function

Public Function cmcWsmanProfileDictionary
Dim CMC_Wsman_Obj
Set CMC_Wsman_Obj = New ProfileInformation
CMC_Wsman_Obj.setProfileName("Dell.Chassis.cmc.wsman")

Dim CMC_Manufacturer
Set CMC_Manufacturer = New AttributeProperty
CMC_Manufacturer.setProtocol("wsman")
CMC_Manufacturer.setClassName("http://schemas.dell.com/wbem/wscim/1/cim-schema/2/root/dell/Dell_ChMgrPackage")
CMC_Manufacturer.setProtocolAttributeName("Manufacturer")
CMC_Wsman_Obj.setAttributePropertyObject(CMC_Manufacturer)
CMC_Wsman_Obj.setAttributeDictionary("Manufacturer")

Dim CMC_Model
Set CMC_Model = New AttributeProperty
CMC_Model.setProtocol("wsman")
CMC_Model.setClassName("http://schemas.dell.com/wbem/wscim/1/cim-schema/2/root/dell/DCIM_ModularChassisView")
CMC_Model.setProtocolAttributeName("Model")
CMC_Wsman_Obj.setAttributePropertyObject(CMC_Model)
CMC_Wsman_Obj.setAttributeDictionary("Model")

Dim CMC_SerialNumber
Set CMC_SerialNumber = New AttributeProperty
CMC_SerialNumber.setProtocol("wsman")
CMC_SerialNumber.setClassName("http://schemas.dell.com/wbem/wscim/1/cim-schema/2/root/dell/Dell_ChMgrPackage")
CMC_SerialNumber.setProtocolAttributeName("SerialNumber")
CMC_Wsman_Obj.setAttributePropertyObject(CMC_SerialNumber)
CMC_Wsman_Obj.setAttributeDictionary("SerialNumber")

Dim CMC_PartNumber
Set CMC_PartNumber = New AttributeProperty
CMC_PartNumber.setProtocol("wsman")
CMC_PartNumber.setClassName("http://schemas.dell.com/wbem/wscim/1/cim-schema/2/root/dell/Dell_ChMgrPackage")
CMC_PartNumber.setProtocolAttributeName("PartNumber")
CMC_Wsman_Obj.setAttributePropertyObject(CMC_PartNumber)
CMC_Wsman_Obj.setAttributeDictionary("PartNumber")

Dim CMC_Wsman_FirmwareVersion
Set CMC_Wsman_FirmwareVersion = New AttributeProperty
CMC_Wsman_FirmwareVersion.setProtocol("wsman")
CMC_Wsman_FirmwareVersion.setClassName("cimv2/DCIM_ModularChassisView")
CMC_Wsman_FirmwareVersion.setProtocolAttributeName("MgmtControllerFirmwareVersion")
CMC_Wsman_Obj.setAttributePropertyObject(CMC_Wsman_FirmwareVersion)
CMC_Wsman_Obj.setAttributeDictionary("FirmwareVersion")

CMC_Wsman_Obj.populateProfileClassNameList()
profileInfoDict.Add "Dell.Chassis.cmc.wsman",CMC_Wsman_Obj

End Function

Public Function ioModuleProfileDictionay
'IO Module compoonent--Dell_PassThroughModule--Ws-Man
Dim Dell_Chassis_IOModule_wsman_Obj
Set Dell_Chassis_IOModule_wsman_Obj = New ProfileInformation
Dell_Chassis_IOModule_wsman_Obj.setProfileName("Dell.Chassis.IOModule.wsman.dell_passthroughmodule")

Dim Dell_Chassis_IOModule_wsman_FQDD
Set Dell_Chassis_IOModule_wsman_FQDD = New AttributeProperty
Dell_Chassis_IOModule_wsman_FQDD.setProtocol("wsman")
Dell_Chassis_IOModule_wsman_FQDD.setClassName("http://schemas.dell.com/wbem/wscim/1/cim-schema/2/root/dell/Dell_PassThroughModule")
Dell_Chassis_IOModule_wsman_FQDD.setProtocolAttributeName("DeviceID")
Dell_Chassis_IOModule_wsman_Obj.setAttributePropertyObject(Dell_Chassis_IOModule_wsman_FQDD)
Dell_Chassis_IOModule_wsman_Obj.setAttributeDictionary("FQDD")


Dim Dell_Chassis_IOModule_wsman_Slot
Set Dell_Chassis_IOModule_wsman_Slot = New AttributeProperty
Dell_Chassis_IOModule_wsman_Slot.setProtocol("wsman")
Dell_Chassis_IOModule_wsman_Slot.setClassName("http://schemas.dell.com/wbem/wscim/1/cim-schema/2/root/dell/Dell_PassThroughModule")
Dell_Chassis_IOModule_wsman_Slot.setProtocolAttributeName("Name")
Dell_Chassis_IOModule_wsman_Obj.setAttributePropertyObject(Dell_Chassis_IOModule_wsman_Slot)
Dell_Chassis_IOModule_wsman_Obj.setAttributeDictionary("Slot")


Dim Dell_Chassis_IOModule_wsman_FabricType
Set Dell_Chassis_IOModule_wsman_FabricType = New AttributeProperty
Dell_Chassis_IOModule_wsman_FabricType.setProtocol("wsman")
Dell_Chassis_IOModule_wsman_FabricType.setClassName("http://schemas.dell.com/wbem/wscim/1/cim-schema/2/root/dell/Dell_PassThroughModule")
Dell_Chassis_IOModule_wsman_FabricType.setProtocolAttributeName("LinkTechnologies")
Dell_Chassis_IOModule_wsman_Obj.setAttributePropertyObject(Dell_Chassis_IOModule_wsman_FabricType)
Dell_Chassis_IOModule_wsman_Obj.setAttributeDictionary("FabricType")

Dim Dell_Chassis_IOModule_wsman_passthrough_classID
Set Dell_Chassis_IOModule_wsman_passthrough_classID = New AttributeProperty
Dell_Chassis_IOModule_wsman_passthrough_classID.setProtocol("wsman")
Dell_Chassis_IOModule_wsman_passthrough_classID.setClassName("http://schemas.dell.com/wbem/wscim/1/cim-schema/2/root/dell/Dell_PassThroughModule")
Dell_Chassis_IOModule_wsman_passthrough_classID.setProtocolAttributeName("ClassId")
Dell_Chassis_IOModule_wsman_Obj.setAttributePropertyObject(Dell_Chassis_IOModule_wsman_passthrough_classID)
Dell_Chassis_IOModule_wsman_Obj.setAttributeDictionary("classID")

Dell_Chassis_IOModule_wsman_Obj.populateProfileClassNameList()
profileInfoDict.Add "Dell.Chassis.IOModule.wsman.dell_passthroughmodule",Dell_Chassis_IOModule_wsman_Obj

'IOmodule- wsman- dell_iompackage
Dim Dell_Chassis_IOModule_wsman_iom_Obj
Set Dell_Chassis_IOModule_wsman_iom_Obj = New ProfileInformation
Dell_Chassis_IOModule_wsman_iom_Obj.setProfileName("Dell.Chassis.IOModule.wsman.dell_iompackage")

Dim Dell_Chassis_IOModule_wsman_Manufacturer
Set Dell_Chassis_IOModule_wsman_Manufacturer = New AttributeProperty
Dell_Chassis_IOModule_wsman_Manufacturer.setProtocol("wsman")
Dell_Chassis_IOModule_wsman_Manufacturer.setClassName("http://schemas.dell.com/wbem/wscim/1/cim-schema/2/root/dell/Dell_IOMPackage")
Dell_Chassis_IOModule_wsman_Manufacturer.setProtocolAttributeName("Manufacturer")
Dell_Chassis_IOModule_wsman_iom_Obj.setAttributePropertyObject(Dell_Chassis_IOModule_wsman_Manufacturer)
Dell_Chassis_IOModule_wsman_iom_Obj.setAttributeDictionary("Manufacturer")

Dim Dell_Chassis_IOModule_wsman_Model
Set Dell_Chassis_IOModule_wsman_Model = New AttributeProperty
Dell_Chassis_IOModule_wsman_Model.setProtocol("wsman")
Dell_Chassis_IOModule_wsman_Model.setClassName("http://schemas.dell.com/wbem/wscim/1/cim-schema/2/root/dell/Dell_IOMPackage")
Dell_Chassis_IOModule_wsman_Model.setProtocolAttributeName("Model")
Dell_Chassis_IOModule_wsman_iom_Obj.setAttributePropertyObject(Dell_Chassis_IOModule_wsman_Model)
Dell_Chassis_IOModule_wsman_iom_Obj.setAttributeDictionary("Model")

Dim Dell_Chassis_IOModule_wsman_SerialNumber
Set Dell_Chassis_IOModule_wsman_SerialNumber = New AttributeProperty
Dell_Chassis_IOModule_wsman_SerialNumber.setProtocol("wsman")
Dell_Chassis_IOModule_wsman_SerialNumber.setClassName("http://schemas.dell.com/wbem/wscim/1/cim-schema/2/root/dell/Dell_IOMPackage")
Dell_Chassis_IOModule_wsman_SerialNumber.setProtocolAttributeName("SerialNumber")
Dell_Chassis_IOModule_wsman_iom_Obj.setAttributePropertyObject(Dell_Chassis_IOModule_wsman_SerialNumber)
Dell_Chassis_IOModule_wsman_iom_Obj.setAttributeDictionary("SerialNumber")

Dim Dell_Chassis_IOModule_wsman_PartNumber
Set Dell_Chassis_IOModule_wsman_PartNumber = New AttributeProperty
Dell_Chassis_IOModule_wsman_PartNumber.setProtocol("wsman")
Dell_Chassis_IOModule_wsman_PartNumber.setClassName("http://schemas.dell.com/wbem/wscim/1/cim-schema/2/root/dell/Dell_IOMPackage")
Dell_Chassis_IOModule_wsman_PartNumber.setProtocolAttributeName("PartNumber")
Dell_Chassis_IOModule_wsman_iom_Obj.setAttributePropertyObject(Dell_Chassis_IOModule_wsman_PartNumber)
Dell_Chassis_IOModule_wsman_iom_Obj.setAttributeDictionary("PartNumber")

Dim Dell_Chassis_IOModule_wsman_iom_Name
Set Dell_Chassis_IOModule_wsman_iom_Name = New AttributeProperty
Dell_Chassis_IOModule_wsman_iom_Name.setProtocol("wsman")
Dell_Chassis_IOModule_wsman_iom_Name.setClassName("http://schemas.dell.com/wbem/wscim/1/cim-schema/2/root/dell/Dell_IOMPackage")
Dell_Chassis_IOModule_wsman_iom_Name.setProtocolAttributeName("Name")
Dell_Chassis_IOModule_wsman_iom_Obj.setAttributePropertyObject(Dell_Chassis_IOModule_wsman_iom_Name)
Dell_Chassis_IOModule_wsman_iom_Obj.setAttributeDictionary("Name")


Dim Dell_Chassis_IOModule_wsman_iompack_classid
Set Dell_Chassis_IOModule_wsman_iompack_classid = New AttributeProperty
Dell_Chassis_IOModule_wsman_iompack_classid.setProtocol("wsman")
Dell_Chassis_IOModule_wsman_iompack_classid.setClassName("http://schemas.dell.com/wbem/wscim/1/cim-schema/2/root/dell/Dell_IOMPackage")
Dell_Chassis_IOModule_wsman_iompack_classid.setProtocolAttributeName("ClassId")
Dell_Chassis_IOModule_wsman_iom_Obj.setAttributePropertyObject(Dell_Chassis_IOModule_wsman_iompack_classid)
Dell_Chassis_IOModule_wsman_iom_Obj.setAttributeDictionary("classID")

Dim CMC_IOModule_IPAddress
Set CMC_IOModule_IPAddress = New AttributeProperty
CMC_IOModule_IPAddress.setProtocol("wsman")
CMC_IOModule_IPAddress.setClassName("http://schemas.dell.com/wbem/wscim/1/cim-schema/2/root/dell/Dell_IOMPackage")
CMC_IOModule_IPAddress.setProtocolAttributeName("IPv4Address")
Dell_Chassis_IOModule_wsman_iom_Obj.setAttributePropertyObject(CMC_IOModule_IPAddress)
Dell_Chassis_IOModule_wsman_iom_Obj.setAttributeDictionary("IPAddress")

Dell_Chassis_IOModule_wsman_iom_Obj.populateProfileClassNameList()
profileInfoDict.Add "Dell.Chassis.IOModule.wsman.dell_iompackage",Dell_Chassis_IOModule_wsman_iom_Obj



'IOModule-getioinfo-racadm
Dim Dell_Chassis_IOModule_racadm_ioinfo_Obj
Set Dell_Chassis_IOModule_racadm_ioinfo_Obj = New ProfileInformation
Dell_Chassis_IOModule_racadm_ioinfo_Obj.setProfileName("Dell.Chassis.IOModule.racadm.getioinfo")

Dim Dell_Chassis_IOModule_ioinfo_Name
Set Dell_Chassis_IOModule_ioinfo_Name = New AttributeProperty
Dell_Chassis_IOModule_ioinfo_Name.setProtocol("racadm")
Dell_Chassis_IOModule_ioinfo_Name.setClassName("getioinfo")
Dell_Chassis_IOModule_ioinfo_Name.setProtocolAttributeName("switchline")
Dell_Chassis_IOModule_ioinfo_Name.setSearchKey("switch")
Dell_Chassis_IOModule_racadm_ioinfo_Obj.setAttributePropertyObject(Dell_Chassis_IOModule_ioinfo_Name)
Dell_Chassis_IOModule_racadm_ioinfo_Obj.setAttributeDictionary("switchline")

Dim Dell_Chassis_IOModule_SubnetMask
Set Dell_Chassis_IOModule_SubnetMask = New AttributeProperty
Dell_Chassis_IOModule_SubnetMask.setProtocol("racadm")
Dell_Chassis_IOModule_SubnetMask.setClassName("getioinfo")
Dell_Chassis_IOModule_SubnetMask.setProtocolAttributeName("subnet mask")
Dell_Chassis_IOModule_SubnetMask.setSearchKey("switch")
Dell_Chassis_IOModule_racadm_ioinfo_Obj.setAttributePropertyObject(Dell_Chassis_IOModule_SubnetMask)
Dell_Chassis_IOModule_racadm_ioinfo_Obj.setAttributeDictionary("SubnetMask")

Dim Dell_Chassis_IOModule_Gateway
Set Dell_Chassis_IOModule_Gateway = New AttributeProperty
Dell_Chassis_IOModule_Gateway.setProtocol("racadm")
Dell_Chassis_IOModule_Gateway.setClassName("getioinfo")
Dell_Chassis_IOModule_Gateway.setProtocolAttributeName("gateway")
Dell_Chassis_IOModule_Gateway.setSearchKey("switch")
Dell_Chassis_IOModule_racadm_ioinfo_Obj.setAttributePropertyObject(Dell_Chassis_IOModule_Gateway)
Dell_Chassis_IOModule_racadm_ioinfo_Obj.setAttributeDictionary("Gateway")

Dell_Chassis_IOModule_racadm_ioinfo_Obj.populateProfileClassNameList()
profileInfoDict.Add "Dell.Chassis.IOModule.racadm.getioinfo",Dell_Chassis_IOModule_racadm_ioinfo_Obj

End Function

Public Function ioModuleWsmanProfileDictionary
'IO Module compoonent--Dell_PassThroughModule--Ws-Man
Dim CMC_IOModule_Obj
Set CMC_IOModule_Obj = New ProfileInformation
CMC_IOModule_Obj.setProfileName("Dell.Chassis.IOModule.wsman.dell_passthroughmodule")

Dim CMC_IOModule_FQDD
Set CMC_IOModule_FQDD = New AttributeProperty
CMC_IOModule_FQDD.setProtocol("wsman")
CMC_IOModule_FQDD.setClassName("http://schemas.dell.com/wbem/wscim/1/cim-schema/2/root/dell/Dell_PassThroughModule")
CMC_IOModule_FQDD.setProtocolAttributeName("DeviceID")
CMC_IOModule_Obj.setAttributePropertyObject(CMC_IOModule_FQDD)
CMC_IOModule_Obj.setAttributeDictionary("FQDD")


Dim CMC_IOModule_Slot
Set CMC_IOModule_Slot = New AttributeProperty
CMC_IOModule_Slot.setProtocol("wsman")
CMC_IOModule_Slot.setClassName("http://schemas.dell.com/wbem/wscim/1/cim-schema/2/root/dell/Dell_PassThroughModule")
CMC_IOModule_Slot.setProtocolAttributeName("Name")
CMC_IOModule_Obj.setAttributePropertyObject(CMC_IOModule_Slot)
CMC_IOModule_Obj.setAttributeDictionary("Slot")


Dim CMC_IOModule_FabricType
Set CMC_IOModule_FabricType = New AttributeProperty
CMC_IOModule_FabricType.setProtocol("wsman")
CMC_IOModule_FabricType.setClassName("http://schemas.dell.com/wbem/wscim/1/cim-schema/2/root/dell/Dell_PassThroughModule")
CMC_IOModule_FabricType.setProtocolAttributeName("LinkTechnologies")
CMC_IOModule_Obj.setAttributePropertyObject(CMC_IOModule_FabricType)
CMC_IOModule_Obj.setAttributeDictionary("FabricType")

Dim CMC_IOModule_Passthrough_ClassId
Set CMC_IOModule_Passthrough_ClassId = New AttributeProperty
CMC_IOModule_Passthrough_ClassId.setProtocol("wsman")
CMC_IOModule_Passthrough_ClassId.setClassName("http://schemas.dell.com/wbem/wscim/1/cim-schema/2/root/dell/Dell_PassThroughModule")
CMC_IOModule_Passthrough_ClassId.setProtocolAttributeName("ClassId")
CMC_IOModule_Obj.setAttributePropertyObject(CMC_IOModule_Passthrough_ClassId)
CMC_IOModule_Obj.setAttributeDictionary("classID")

CMC_IOModule_Obj.populateProfileClassNameList()
profileInfoDict.Add "Dell.Chassis.IOModule.wsman.dell_passthroughmodule",CMC_IOModule_Obj

'IOmodule- wsman- dell_iompackage
Dim CMC_IOModule_IOMPackage_Obj
Set CMC_IOModule_IOMPackage_Obj = New ProfileInformation
CMC_IOModule_IOMPackage_Obj.setProfileName("Dell.Chassis.IOModule.wsman.dell_iompackage")

Dim CMC_IOModule_Manufacturer
Set CMC_IOModule_Manufacturer = New AttributeProperty
CMC_IOModule_Manufacturer.setProtocol("wsman")
CMC_IOModule_Manufacturer.setClassName("http://schemas.dell.com/wbem/wscim/1/cim-schema/2/root/dell/Dell_IOMPackage")
CMC_IOModule_Manufacturer.setProtocolAttributeName("Manufacturer")
CMC_IOModule_IOMPackage_Obj.setAttributePropertyObject(CMC_IOModule_Manufacturer)
CMC_IOModule_IOMPackage_Obj.setAttributeDictionary("Manufacturer")

Dim CMC_IOModule_Model
Set CMC_IOModule_Model = New AttributeProperty
CMC_IOModule_Model.setProtocol("wsman")
CMC_IOModule_Model.setClassName("http://schemas.dell.com/wbem/wscim/1/cim-schema/2/root/dell/Dell_IOMPackage")
CMC_IOModule_Model.setProtocolAttributeName("Model")
CMC_IOModule_IOMPackage_Obj.setAttributePropertyObject(CMC_IOModule_Model)
CMC_IOModule_IOMPackage_Obj.setAttributeDictionary("Model")

Dim CMC_IOModule_SerialNumber
Set CMC_IOModule_SerialNumber = New AttributeProperty
CMC_IOModule_SerialNumber.setProtocol("wsman")
CMC_IOModule_SerialNumber.setClassName("http://schemas.dell.com/wbem/wscim/1/cim-schema/2/root/dell/Dell_IOMPackage")
CMC_IOModule_SerialNumber.setProtocolAttributeName("SerialNumber")
CMC_IOModule_IOMPackage_Obj.setAttributePropertyObject(CMC_IOModule_SerialNumber)
CMC_IOModule_IOMPackage_Obj.setAttributeDictionary("SerialNumber")

Dim CMC_IOModule_Partnumber
Set CMC_IOModule_Partnumber = New AttributeProperty
CMC_IOModule_Partnumber.setProtocol("wsman")
CMC_IOModule_Partnumber.setClassName("http://schemas.dell.com/wbem/wscim/1/cim-schema/2/root/dell/Dell_IOMPackage")
CMC_IOModule_Partnumber.setProtocolAttributeName("PartNumber")
CMC_IOModule_IOMPackage_Obj.setAttributePropertyObject(CMC_IOModule_Partnumber)
CMC_IOModule_IOMPackage_Obj.setAttributeDictionary("PartNumber")

Dim CMC_IOMPackage_Name
Set CMC_IOMPackage_Name = New AttributeProperty
CMC_IOMPackage_Name.setProtocol("wsman")
CMC_IOMPackage_Name.setClassName("http://schemas.dell.com/wbem/wscim/1/cim-schema/2/root/dell/Dell_IOMPackage")
CMC_IOMPackage_Name.setProtocolAttributeName("Name")
CMC_IOModule_IOMPackage_Obj.setAttributePropertyObject(CMC_IOMPackage_Name)
CMC_IOModule_IOMPackage_Obj.setAttributeDictionary("Name")


Dim CMC_IOMPackage_ClassId
Set CMC_IOMPackage_ClassId = New AttributeProperty
CMC_IOMPackage_ClassId.setProtocol("wsman")
CMC_IOMPackage_ClassId.setClassName("http://schemas.dell.com/wbem/wscim/1/cim-schema/2/root/dell/Dell_IOMPackage")
CMC_IOMPackage_ClassId.setProtocolAttributeName("ClassId")
CMC_IOModule_IOMPackage_Obj.setAttributePropertyObject(CMC_IOMPackage_ClassId)
CMC_IOModule_IOMPackage_Obj.setAttributeDictionary("classID")

Dim CMC_IOModule_IPAddress
Set CMC_IOModule_IPAddress = New AttributeProperty
CMC_IOModule_IPAddress.setProtocol("wsman")
CMC_IOModule_IPAddress.setClassName("http://schemas.dell.com/wbem/wscim/1/cim-schema/2/root/dell/Dell_IOMPackage")
CMC_IOModule_IPAddress.setProtocolAttributeName("IPv4Address")
CMC_IOModule_IOMPackage_Obj.setAttributePropertyObject(CMC_IOModule_IPAddress)
CMC_IOModule_IOMPackage_Obj.setAttributeDictionary("IPAddress")

CMC_IOModule_IOMPackage_Obj.populateProfileClassNameList()
profileInfoDict.Add "Dell.Chassis.IOModule.wsman.dell_iompackage",CMC_IOModule_IOMPackage_Obj
End Function

Public Function destroyCOMObjects()
profileInfoDict.RemoveAll
set profileInfoDict = Nothing
End Function

End Class
'#################################################################################################################################
</ProfileDictionaryScript>
<ComponentInstanceFactoryScript>
'#################################################################################################################################
'**************************************************************************************************
'Component Instance Classes
'**************************************************************************************************
Class ChassisInstance
Private keyPropertyDictionary
Private oInst
Private Sub Class_Initialize
Set keyPropertyDictionary = CreateObject("Scripting.Dictionary")
keyPropertyDictionary.CompareMode = vbTextCompare
End Sub
Public Function ClearKeyProperties()
keyPropertyDictionary.RemoveAll 'Clear the dictionary
End Function
Public Function SetKeyProperty(ByRef key, ByRef val)
keyPropertyDictionary.Add key, val
End Function
Public Function CreateAndPopulateInstance(ByRef omAPIHelper, ByRef compObject, ByRef displayName)
If Not compObject is Nothing Then

Set oInst=omAPIHelper.CreateClassInstance("$MPElement[Name='DAD!Dell.ModularChassis.CMC']$")
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", principalName)
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.ModularChassis.CMC']/UID$", keyPropertyDictionary.Item("Dell.ModularChassis.CMC/UID"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.ModularChassis.CMC']/RemoteSettings$",getRemoteSetting() )
'call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='System!System.Entity']/DisplayName$", displayName)
omAPIHelper.AddInstanceToDiscoveryData oInst

Set CreateAndPopulateInstance = oInst
End If
End Function
End Class
creatorFactory.Add "Dell.ModularChassis.CMC", new ChassisInstance

Class FanGroupInstance
Private keyPropertyDictionary
Private oInst

Private Sub Class_Initialize
Set keyPropertyDictionary = CreateObject("Scripting.Dictionary")
keyPropertyDictionary.CompareMode = vbTextCompare
End Sub

Public Function ClearKeyProperties()
keyPropertyDictionary.RemoveAll 'Clear the dictionary
End Function

Public Function SetKeyProperty(ByRef key, ByRef val)
keyPropertyDictionary.Add key, val
End Function

Public Function CreateAndPopulateInstance(ByRef omAPIHelper, ByRef compObject, ByRef displayName)
If Not compObject is Nothing Then

Set oInst=omAPIHelper.CreateClassInstance("$MPElement[Name='DAD!Dell.Chassis.FanGroup']$")
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", principalName)
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.FanGroup']/ID$", keyPropertyDictionary.Item("Dell.Chassis.FanGroup/ID"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.FanGroup']/RemoteAccessIP$", protParameterObj.getProtocolParameterValue("IPAddress"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.FanGroup']/RemoteSettings$", getRemoteSetting())
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='System!System.Entity']/DisplayName$", displayName )
omAPIHelper.AddInstanceToDiscoveryData oInst
Set CreateAndPopulateInstance = oInst
End If
End Function
End Class
creatorFactory.Add "Dell.Chassis.FanGroup", new FanGroupInstance

Class FanInstance
Private keyPropertyDictionary
Private oInst
Private Sub Class_Initialize
Set keyPropertyDictionary = CreateObject("Scripting.Dictionary")
keyPropertyDictionary.CompareMode = vbTextCompare
End Sub
Public Function ClearKeyProperties()
keyPropertyDictionary.RemoveAll 'Clear the dictionary
End Function
Public Function SetKeyProperty(ByRef key, ByRef val)
keyPropertyDictionary.Add key, val
End Function
Public Function CreateAndPopulateInstance(ByRef omAPIHelper, ByRef compObject, ByVal displayName, ByVal manufacturer, ByVal slot)
If Not compObject is Nothing Then
Set oInst=omAPIHelper.CreateClassInstance("$MPElement[Name='DAD!Dell.Chassis.Fan']$")
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", principalName)
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.FanGroup']/ID$", keyPropertyDictionary.Item("Dell.Chassis.FanGroup/ID"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Fan']/FQDD$", keyPropertyDictionary.Item("Dell.Chassis.Fan/FQDD"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Fan']/Manufacturer$", manufacturer)
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Fan']/Slot$", slot)
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='System!System.Entity']/DisplayName$", displayName)
omAPIHelper.AddInstanceToDiscoveryData oInst
Set CreateAndPopulateInstance = oInst
End If
End Function
End Class
creatorFactory.Add "Dell.Chassis.Fan", new FanInstance

Class ChassisPCIeDeviceGroup
Private keyPropertyDictionary
Private oInst
Private Sub Class_Initialize
Set keyPropertyDictionary = CreateObject("Scripting.Dictionary")
keyPropertyDictionary.CompareMode = vbTextCompare
End Sub
Public Function ClearKeyProperties()
keyPropertyDictionary.RemoveAll 'Clear the dictionary
End Function
Public Function SetKeyProperty(ByRef key, ByRef val)
keyPropertyDictionary.Add key, val
End Function
Public Function CreateAndPopulateInstance(ByRef omAPIHelper, ByRef compObject, ByRef displayName)
If Not compObject is Nothing Then

Set oInst=omAPIHelper.CreateClassInstance("$MPElement[Name='DAD!Dell.Chassis.PCIeDeviceGroup']$")
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", principalName)
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.PCIeDeviceGroup']/ID$", keyPropertyDictionary.Item("Dell.Chassis.PCIeDeviceGroup/ID"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.PCIeDeviceGroup']/RemoteAccessIP$",protParameterObj.getProtocolParameterValue("IPAddress"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.PCIeDeviceGroup']/RemoteSettings$",getRemoteSetting())
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='System!System.Entity']/DisplayName$", displayName)
omAPIHelper.AddInstanceToDiscoveryData oInst

Set CreateAndPopulateInstance = oInst
End If
End Function
End Class
creatorFactory.Add "Dell.Chassis.PCIeDeviceGroup", new ChassisPCIeDeviceGroup

Class ChassisPCIeDevice
Private keyPropertyDictionary
Private oInst
Private Sub Class_Initialize
Set keyPropertyDictionary = CreateObject("Scripting.Dictionary")
keyPropertyDictionary.CompareMode = vbTextCompare
End Sub
Public Function ClearKeyProperties()
keyPropertyDictionary.RemoveAll 'Clear the dictionary
End Function
Public Function SetKeyProperty(ByRef key, ByRef val)
keyPropertyDictionary.Add key, val
End Function
Public Function CreateAndPopulateInstance(ByRef omAPIHelper, ByRef PCIeDeviceObj, ByRef PCISlotObj, ByRef displayName)
If Not PCIeDeviceObj is Nothing Then
Set oInst=omAPIHelper.CreateClassInstance("$MPElement[Name='DAD!Dell.Chassis.PCIeDevice']$")
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", principalName)
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.PCIeDevice']/FQDD$", keyPropertyDictionary.Item("Dell.Chassis.PCIeDevice/FQDD"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.PCIeDeviceGroup']/ID$", keyPropertyDictionary.Item("Dell.Chassis.PCIeDeviceGroup/ID"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.PCIeDevice']/Fabric$", PCISlotObj.getAttributevalue("Fabric"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.PCIeDevice']/AssignedSlot$", PCIeDeviceObj.getAttributevalue("AssignedSlot"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.PCIeDevice']/AssignedBlade$", PCIeDeviceObj.getAttributevalue("AssignedBlade"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.PCIeDevice']/SlotType$", PCISlotObj.getAttributevalue("SlotType"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.PCIeDevice']/PCIeSlot$", PCISlotObj.getAttributevalue("PCIeSlot"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.PCIeDevice']/Description$", PCIeDeviceObj.getAttributevalue("Description"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.PCIeDevice']/Databuswidth$", PCIeDeviceObj.getAttributevalue("Databuswidth"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.PCIeDevice']/Manufacturer$", PCIeDeviceObj.getAttributevalue("Manufacturer"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='System!System.Entity']/DisplayName$", displayName)
omAPIHelper.AddInstanceToDiscoveryData oInst

Set CreateAndPopulateInstance = oInst
End If
End Function
End Class
creatorFactory.Add "Dell.Chassis.PCIeDevice", new ChassisPCIeDevice

Class ChassisPowerSupplyGroup
Private keyPropertyDictionary
Private oInst
Private Sub Class_Initialize
Set keyPropertyDictionary = CreateObject("Scripting.Dictionary")
keyPropertyDictionary.CompareMode = vbTextCompare
End Sub
Public Function ClearKeyProperties()
keyPropertyDictionary.RemoveAll 'Clear the dictionary
End Function
Public Function SetKeyProperty(ByRef key, ByRef val)
keyPropertyDictionary.Add key, val
End Function
Public Function CreateAndPopulateInstance(ByRef omAPIHelper, ByRef compObject, ByRef displayName)
If Not compObject is Nothing Then

Set oInst=omAPIHelper.CreateClassInstance("$MPElement[Name='DAD!Dell.Chassis.PowerSupplyGroup']$")
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", principalName)
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.PowerSupplyGroup']/ID$", keyPropertyDictionary.Item("Dell.Chassis.PowerSupplyGroup/ID"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.PowerSupplyGroup']/RemoteAccessIP$",protParameterObj.getProtocolParameterValue("IPAddress"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.PowerSupplyGroup']/RemoteSettings$",getRemoteSetting())
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='System!System.Entity']/DisplayName$", displayName)
omAPIHelper.AddInstanceToDiscoveryData oInst

Set CreateAndPopulateInstance = oInst
End If
End Function
End Class
creatorFactory.Add "Dell.Chassis.PowerSupplyGroup", new ChassisPowerSupplyGroup

Class ChassisPowerSupplyDevice
Private keyPropertyDictionary
Private oInst
Private Sub Class_Initialize
Set keyPropertyDictionary = CreateObject("Scripting.Dictionary")
keyPropertyDictionary.CompareMode = vbTextCompare
End Sub
Public Function ClearKeyProperties()
keyPropertyDictionary.RemoveAll 'Clear the dictionary
End Function
Public Function SetKeyProperty(ByRef key, ByRef val)
keyPropertyDictionary.Add key, val
End Function

Public Function CreateAndPopulateInstance(ByRef omAPIHelper, ByVal manufacturer, ByVal slot, ByVal serialnumber, ByVal partnumber, ByVal capacity, ByVal name, ByVal model)
Set oInst=omAPIHelper.CreateClassInstance("$MPElement[Name='DAD!Dell.Chassis.PowerSupply']$")
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", principalName)
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.PowerSupply']/FQDD$", keyPropertyDictionary.Item("Dell.Chassis.PowerSupply/FQDD"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.PowerSupplyGroup']/ID$", keyPropertyDictionary.Item("Dell.Chassis.PowerSupplyGroup/ID"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.PowerSupply']/Capacity$", (capacity/1000) &amp; "W")
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.PowerSupply']/Manufacturer$", manufacturer )
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.PowerSupply']/Model$", model)
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.PowerSupply']/SerialNumber$", serialnumber )
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.PowerSupply']/PartNumber$", partnumber )
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.PowerSupply']/Slot$", slot)
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='System!System.Entity']/DisplayName$", name)
omAPIHelper.AddInstanceToDiscoveryData oInst

Set CreateAndPopulateInstance = oInst
End Function
End Class
creatorFactory.Add "Dell.Chassis.PowerSupply", new ChassisPowerSupplyDevice


Class ChassisIOModuleGroup
Private keyPropertyDictionary
Private oInst
Private Sub Class_Initialize
Set keyPropertyDictionary = CreateObject("Scripting.Dictionary")
keyPropertyDictionary.CompareMode = vbTextCompare
End Sub
Public Function ClearKeyProperties()
keyPropertyDictionary.RemoveAll 'Clear the dictionary
End Function
Public Function SetKeyProperty(ByRef key, ByRef val)
keyPropertyDictionary.Add key, val
End Function
Public Function CreateAndPopulateInstance(ByRef omAPIHelper, ByRef compObject, ByRef displayName)
If Not compObject is Nothing Then

Set oInst=omAPIHelper.CreateClassInstance("$MPElement[Name='DAD!Dell.Chassis.IOModuleGroup']$")
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", principalName)
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.IOModuleGroup']/ID$", keyPropertyDictionary.Item("Dell.Chassis.IOModuleGroup/ID"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.IOModuleGroup']/RemoteAccessIP$",protParameterObj.getProtocolParameterValue("IPAddress"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.IOModuleGroup']/RemoteSettings$",getRemoteSetting())
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='System!System.Entity']/DisplayName$", displayName)
omAPIHelper.AddInstanceToDiscoveryData oInst

Set CreateAndPopulateInstance = oInst
End If
End Function
End Class
creatorFactory.Add "Dell.Chassis.IOModuleGroup", new ChassisIOModuleGroup

Class ChassisIOModule
Private keyPropertyDictionary
Private oInst
Private Sub Class_Initialize
Set keyPropertyDictionary = CreateObject("Scripting.Dictionary")
keyPropertyDictionary.CompareMode = vbTextCompare
End Sub
Public Function ClearKeyProperties()
keyPropertyDictionary.RemoveAll 'Clear the dictionary
End Function
Public Function SetKeyProperty(ByRef key, ByRef val)
keyPropertyDictionary.Add key, val
End Function

Public Function CreateAndPopulateInstance(ByRef omAPIHelper, ByRef iom_packageComp, ByRef iom_passthroughComp, ByRef getniccfgDict)
If Not iom_passthroughComp is Nothing Then
Set oInst=omAPIHelper.CreateClassInstance("$MPElement[Name='DAD!Dell.Chassis.IOModule']$")
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", principalName)
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.IOModuleGroup']/ID$", keyPropertyDictionary.Item("Dell.Chassis.IOModuleGroup/ID"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.IOModule']/FQDD$", keyPropertyDictionary.Item("Dell.Chassis.IOModule/FQDD"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.IOModule']/Manufacturer$", iom_packageComp.getattributevalue("Manufacturer"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.IOModule']/Model$", iom_packageComp.getattributevalue("Model"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.IOModule']/SerialNumber$", iom_packageComp.getattributevalue("SerialNumber"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.IOModule']/PartNumber$", iom_packageComp.getattributevalue("PartNumber"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.IOModule']/Slot$", iom_passthroughComp.getattributevalue("Slot"))

Dim fabricTypeattr, fabricTypevalarr, fabricTypeval, fabricType
Dim tempval
fabricTypeattr = iom_passthroughComp.getAttributevalue("FabricType")
log.MOMDebugLog 1, "fabric type map : " &amp; fabricTypeattr
fabricTypevalarr = Split(fabricTypeattr,",")
For Each fabricTypeval In fabricTypevalarr
Select Case fabricTypeval
Case "2"
tempval = "Ethernet"
Case "3"
tempval = "IB"
Case "4"
tempval = "FC"
Case "5"
tempval = "FDDI"
Case "6"
tempval = "ATM"
Case "9"
tempval = "Infrared"
Case "10"
tempval = "BlueTooth"
Case "11"
tempval = "Wireless LAN"
Case else
tempval = "Unknown"
log.MOMDebugLog 1, "fabric type map is not found, so making it Unknown"
End Select
fabricType = fabricType &amp; "," &amp; tempval
next
fabricType = Replace(fabricType,",","",1,1)
log.MOMDebugLog 1, "fabric type value is" &amp; fabricType

call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.IOModule']/FabricType$",fabricType )
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.IOModule']/IPAddress$", getniccfgDict.Item("IPAddress"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.IOModule']/SubnetMask$", getniccfgDict.Item("SubnetMask"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.IOModule']/Gateway$", getniccfgDict.Item("Gateway"))
If getniccfgDict.Item("IPAddress") &lt;&gt; "Not Available" Then
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.IOModule']/LaunchURL$", "http://" &amp; getniccfgDict.Item("IPAddress") )
Else
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.IOModule']/LaunchURL$", "Not Available" )
End If
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='System!System.Entity']/DisplayName$", iom_packageComp.getattributevalue("Model"))
omAPIHelper.AddInstanceToDiscoveryData oInst
Set CreateAndPopulateInstance = oInst
End If
End Function
End Class

creatorFactory.Add "Dell.Chassis.IOModule", new ChassisIOModule




Class ChassisCMCGroup
Private keyPropertyDictionary
Private oInst
Private Sub Class_Initialize
Set keyPropertyDictionary = CreateObject("Scripting.Dictionary")
keyPropertyDictionary.CompareMode = vbTextCompare
End Sub
Public Function ClearKeyProperties()
keyPropertyDictionary.RemoveAll 'Clear the dictionary
End Function
Public Function SetKeyProperty(ByRef key, ByRef val)
keyPropertyDictionary.Add key, val
End Function
Public Function CreateAndPopulateInstance(ByRef omAPIHelper, ByRef compObject, ByRef displayName)
If Not compObject is Nothing Then

Set oInst=omAPIHelper.CreateClassInstance("$MPElement[Name='DAD!Dell.Chassis.CMCGroup']$")
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", principalName)
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.CMCGroup']/ID$", keyPropertyDictionary.Item("Dell.Chassis.CMCGroup/ID"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.CMCGroup']/RemoteAccessIP$",protParameterObj.getProtocolParameterValue("IPAddress"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.CMCGroup']/RemoteSettings$",getRemoteSetting())
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='System!System.Entity']/DisplayName$", displayName)
omAPIHelper.AddInstanceToDiscoveryData oInst

Set CreateAndPopulateInstance = oInst
End If
End Function
End Class
creatorFactory.Add "Dell.Chassis.CMCGroup", new ChassisCMCGroup

Class ChassisCMC
Private keyPropertyDictionary
Private oInst
Private Sub Class_Initialize
Set keyPropertyDictionary = CreateObject("Scripting.Dictionary")
keyPropertyDictionary.CompareMode = vbTextCompare
End Sub
Public Function ClearKeyProperties()
keyPropertyDictionary.RemoveAll 'Clear the dictionary
End Function
Public Function SetKeyProperty(ByRef key, ByRef val)
keyPropertyDictionary.Add key, val
End Function

Public Function CreateAndPopulateInstance(ByRef omAPIHelper, ByRef cmc_racadm_getmodinfo, ByRef cmc_racadm_getversion, ByRef wsmanattrDict, ByRef racadmPresence)
Set oInst = omAPIHelper.CreateClassInstance("$MPElement[Name='DAD!Dell.Chassis.CMC']$")
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", principalName)
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.CMCGroup']/ID$", keyPropertyDictionary.Item("Dell.Chassis.CMCGroup/ID"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.CMC']/FQDD$", keyPropertyDictionary.Item("Dell.Chassis.CMC/FQDD"))

If strComp(racadmPresence,"Yes") = 0 Then
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.CMC']/CMCRole$", cmc_racadm_getmodinfo.getattributevalue("powerstatus"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.CMC']/FirmwareVersion$", cmc_racadm_getversion.getattributevalue("FirmwareVersion"))
Else
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.CMC']/CMCRole$", MsgRacadmNotPresent)
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.CMC']/FirmwareVersion$", wsmanattrDict.Item("firmwareVersion"))
End If
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.CMC']/Manufacturer$", wsmanattrDict.Item("manufacturer"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.CMC']/Model$",wsmanattrDict.Item("model"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.CMC']/SerialNumber$", wsmanattrDict.Item("serialNumber"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.CMC']/PartNumber$",wsmanattrDict.Item("partNumber"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='System!System.Entity']/DisplayName$", keyPropertyDictionary.Item("Dell.Chassis.CMC/FQDD"))
omAPIHelper.AddInstanceToDiscoveryData oInst
Set CreateAndPopulateInstance = oInst
End Function

End Class

creatorFactory.Add "Dell.Chassis.CMC", new ChassisCMC



Class StorageInstance
Private keyPropertyDictionary
Private oInst
Private Sub Class_Initialize
Set keyPropertyDictionary = CreateObject("Scripting.Dictionary")
keyPropertyDictionary.CompareMode = vbTextCompare
End Sub
Public Function ClearKeyProperties()
keyPropertyDictionary.RemoveAll 'Clear the dictionary
End Function
Public Function SetKeyProperty(ByRef key, ByRef val)
keyPropertyDictionary.Add key, val
End Function
Public Function CreateAndPopulateInstance(ByRef omAPIHelper, ByRef compObject, ByRef displayName)
If Not compObject is Nothing Then

Set oInst=omAPIHelper.CreateClassInstance("$MPElement[Name='DAD!Dell.Chassis.Storage']$")
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", principalName)
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage']/ID$", keyPropertyDictionary.Item("Dell.Chassis.Storage/ID"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage']/RemoteAccessIP$", protParameterObj.getProtocolParameterValue("IPAddress"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage']/RemoteSettings$", getRemoteSetting())

call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='System!System.Entity']/DisplayName$", displayName)
omAPIHelper.AddInstanceToDiscoveryData oInst

Set CreateAndPopulateInstance = oInst
End If
End Function
End Class
creatorFactory.Add "Dell.Chassis.Storage", new StorageInstance



Class ControllerInstance
Private keyPropertyDictionary
Private oInst
Private Sub Class_Initialize
Set keyPropertyDictionary = CreateObject("Scripting.Dictionary")
keyPropertyDictionary.CompareMode = vbTextCompare
End Sub
Public Function ClearKeyProperties()
keyPropertyDictionary.RemoveAll 'Clear the dictionary
End Function
Public Function SetKeyProperty(ByRef key, ByRef val)
keyPropertyDictionary.Add key, val
End Function
Public Function CreateAndPopulateInstance(ByRef omAPIHelper, ByRef compObject, ByRef displayName)
If Not compObject is Nothing Then
Dim memSizeStr
Dim memSizeInt
If compObject.getAttributevalue("CacheMemorySize") &lt;&gt; "Not Available" Then
memSizeInt = CDbl(compObject.getAttributevalue("CacheMemorySize"))
If memSizeInt &lt; 1024 Then
memSizeStr = compObject.getAttributevalue("CacheMemorySize") &amp; " MB"
ElseIf memSizeInt &gt;= 1024 And memSizeInt &lt; 1048576 Then
memSizeInt = memSizeInt / 1024
memSizeInt = round(memSizeInt, 2)
memSizeStr = Cstr(memSizeInt) &amp; " GB"
ElseIf memSizeInt &gt;= 1048576 And memSizeInt &lt; 1073741824 Then
memSizeInt = memSizeInt / 1048576
memSizeInt = round(memSizeInt, 2)
memSizeStr = Cstr(memSizeInt) &amp; " TB"
ElseIf memSizeInt &gt;= 1073741824 And memSizeInt &lt; 1099511627776 Then
memSizeInt = memSizeInt / 1073741824
memSizeInt = round(memSizeInt, 2)
memSizeStr = Cstr(memSizeInt) &amp; " PB"
End If
Else
memSizeStr = "Not Available"
End If
Set oInst=omAPIHelper.CreateClassInstance("$MPElement[Name='DAD!Dell.Chassis.Storage.Controller']$")
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", principalName)
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage']/ID$", keyPropertyDictionary.Item("Dell.Chassis.Storage/ID"))

call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller']/FQDD$", keyPropertyDictionary.Item("Dell.Chassis.Storage.Controller/FQDD"))

call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller']/CacheMemorySize$",memSizeStr)
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller']/FirmwareVersion$",compObject.getAttributevalue("FirmwareVersion"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller']/Manufacturer$",compObject.getAttributevalue("Manufacturer"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller']/SlotLength$",compObject.getAttributevalue("SlotLength"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller']/SlotType$",compObject.getAttributevalue("SlotType"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller']/DriverVersion$",compObject.getAttributevalue("DriverVersion"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller']/EncryptionCapability$",compObject.getAttributevalue("EncryptionCapability"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller']/HighAvailabilityMode$",compObject.getAttributevalue("HighAvailabilityMode"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller']/SPercSlot$",compObject.getAttributevalue("SPercSlot"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller']/PatrolReadState$",compObject.getAttributevalue("PatrolReadState"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller']/ProductName$",compObject.getAttributevalue("ProductName"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller']/SecurityStatus$",compObject.getAttributevalue("SecurityStatus"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller']/EncryptionMode$",compObject.getAttributevalue("EncryptionMode"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller']/CachecadeCapability$",compObject.getAttributevalue("CachecadeCapability"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller']/SlicedVDCapability$",compObject.getAttributevalue("SlicedVDCapability"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller']/SASAddress$",compObject.getAttributevalue("SASAddress"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='System!System.Entity']/DisplayName$", displayName)
omAPIHelper.AddInstanceToDiscoveryData oInst

Set CreateAndPopulateInstance = oInst
End If
End Function
End Class
creatorFactory.Add "Dell.Chassis.Storage.Controller", new ControllerInstance



Class VirtualDiskGroupInstance
Private keyPropertyDictionary
Private oInst
Private Sub Class_Initialize
Set keyPropertyDictionary = CreateObject("Scripting.Dictionary")
keyPropertyDictionary.CompareMode = vbTextCompare
End Sub
Public Function ClearKeyProperties()
keyPropertyDictionary.RemoveAll 'Clear the dictionary
End Function
Public Function SetKeyProperty(ByRef key, ByRef val)
keyPropertyDictionary.Add key, val
End Function
Public Function CreateAndPopulateInstance(ByRef omAPIHelper, ByRef compObject, ByRef displayName)
log.MOMDebugLog 1, "Entered Virtual disk group creation"
If Not compObject is Nothing Then

Set oInst=omAPIHelper.CreateClassInstance("$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.VirtualDiskGroup']$")
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", principalName)
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage']/ID$", keyPropertyDictionary.Item("Dell.Chassis.Storage/ID"))

call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller']/FQDD$", keyPropertyDictionary.Item("Dell.Chassis.Storage.Controller/FQDD"))

call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.VirtualDiskGroup']/Number$", keyPropertyDictionary.Item("Dell.Chassis.Storage.Controller.VirtualDiskGroup/Number"))

call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='System!System.Entity']/DisplayName$", displayName)
omAPIHelper.AddInstanceToDiscoveryData oInst

Set CreateAndPopulateInstance = oInst
End If
End Function
End Class
creatorFactory.Add "Dell.Chassis.Storage.Controller.VirtualDiskGroup", new VirtualDiskGroupInstance



Class VirtualDiskInstance
Private keyPropertyDictionary
Private oInst
Private Sub Class_Initialize
Set keyPropertyDictionary = CreateObject("Scripting.Dictionary")
keyPropertyDictionary.CompareMode = vbTextCompare
End Sub
Public Function ClearKeyProperties()
keyPropertyDictionary.RemoveAll 'Clear the dictionary
End Function
Public Function SetKeyProperty(ByRef key, ByRef val)
keyPropertyDictionary.Add key, val
End Function

Public Function CreateAndPopulateInstance(ByRef omAPIHelper, ByRef compObject, ByRef displayName)
If Not compObject is Nothing Then
log.MOMDebugLog 1, "Entered Virtual disk instance creation"
Dim memSizeStr
Dim memSizeInt
If compObject.getAttributevalue("Capacity") &lt;&gt; "Not Available" Then
memSizeInt = CDbl(compObject.getAttributevalue("Capacity"))
If memSizeInt &lt; 1024 Then
memSizeStr = compObject.getAttributevalue("Capacity") &amp; " Bytes"
ElseIf memSizeInt &gt;= 1024 And memSizeInt &lt; 1048576 Then
memSizeInt = memSizeInt / 1024
memSizeInt = round(memSizeInt, 2)
memSizeStr = Cstr(memSizeInt) &amp; " KB"
ElseIf memSizeInt &gt;= 1048576 And memSizeInt &lt; 1073741824 Then
memSizeInt = memSizeInt / 1048576
memSizeInt = round(memSizeInt, 2)
memSizeStr = Cstr(memSizeInt) &amp; " MB"
ElseIf memSizeInt &gt;= 1073741824 And memSizeInt &lt; 1099511627776 Then
memSizeInt = memSizeInt / 1073741824
memSizeInt = round(memSizeInt, 2)
memSizeStr = Cstr(memSizeInt) &amp; " GB"
ElseIf memSizeInt &gt;= 1099511627776 And memSizeInt &lt; 1125899906842624 Then
memSizeInt = memSizeInt / 1099511627776
memSizeInt = round(memSizeInt, 2)
memSizeStr = Cstr(memSizeInt) &amp; " TB"
ElseIf memSizeInt &gt;= 1125899906842624 Then
memSizeInt = memSizeInt / 1125899906842624
memSizeInt = round(memSizeInt, 2)
memSizeStr = Cstr(memSizeInt) &amp; " PB"
End If
Else
memSizeStr = "Not Available"
End If
Set oInst=omAPIHelper.CreateClassInstance("$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.VirtualDisk']$")
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", principalName)
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage']/ID$", keyPropertyDictionary.Item("Dell.Chassis.Storage/ID"))

call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller']/FQDD$", keyPropertyDictionary.Item("Dell.Chassis.Storage.Controller/FQDD"))

call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.VirtualDiskGroup']/Number$", keyPropertyDictionary.Item("Dell.Chassis.Storage.Controller.VirtualDiskGroup/Number"))

call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.VirtualDisk']/FQDD$", keyPropertyDictionary.Item("Dell.Chassis.Storage.Controller.VirtualDisk/FQDD"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.VirtualDisk']/BusProtocol$",compObject.getAttributevalue("BusProtocol"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.VirtualDisk']/CacheCade$",compObject.getAttributevalue("CacheCade"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.VirtualDisk']/Name$",compObject.getAttributevalue("DisplayName"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.VirtualDisk']/DiskCachePolicy$",compObject.getAttributevalue("DiskCachePolicy"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.VirtualDisk']/LockStatus$",compObject.getAttributevalue("LockStatus"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.VirtualDisk']/MediaType$",compObject.getAttributevalue("MediaType"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.VirtualDisk']/RAIDLevel$",compObject.getAttributevalue("RAIDLevel"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.VirtualDisk']/ReadPolicy$",compObject.getAttributevalue("ReadPolicy"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.VirtualDisk']/RemainingRedundancy$",compObject.getAttributevalue("RemainingRedundancy"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.VirtualDisk']/Capacity$",memSizeStr)
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.VirtualDisk']/SpanDepth$",compObject.getAttributevalue("SpanDepth"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.VirtualDisk']/SpanLength$",compObject.getAttributevalue("SpanLength"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.VirtualDisk']/StripeElementSize$",compObject.getAttributevalue("StripeElementSize"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.VirtualDisk']/WritePolicy$",compObject.getAttributevalue("WritePolicy"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='System!System.Entity']/DisplayName$", displayName)
omAPIHelper.AddInstanceToDiscoveryData oInst

Set CreateAndPopulateInstance = oInst
End If
End Function
End Class
creatorFactory.Add "Dell.Chassis.Storage.Controller.VirtualDisk", new VirtualDiskInstance



Class InternalPhysicalDiskInstance
Private keyPropertyDictionary
Private oInst
Private Sub Class_Initialize
Set keyPropertyDictionary = CreateObject("Scripting.Dictionary")
keyPropertyDictionary.CompareMode = vbTextCompare
End Sub
Public Function ClearKeyProperties()
keyPropertyDictionary.RemoveAll 'Clear the dictionary
End Function
Public Function SetKeyProperty(ByRef key, ByRef val)
keyPropertyDictionary.Add key, val
End Function

Public Function convertSize(ByRef memSizeInt)
Dim memSizeStr

If memSizeInt &lt; 1024 Then
memSizeStr = Cstr(memSizeInt) &amp; " Bytes"
ElseIf memSizeInt &gt;= 1024 And memSizeInt &lt; 1048576 Then
memSizeInt = memSizeInt / 1024
memSizeInt = round(memSizeInt, 2)
memSizeStr = Cstr(memSizeInt) &amp; " KB"
ElseIf memSizeInt &gt;= 1048576 And memSizeInt &lt; 1073741824 Then
memSizeInt = memSizeInt / 1048576
memSizeInt = round(memSizeInt, 2)
memSizeStr = Cstr(memSizeInt) &amp; " MB"
ElseIf memSizeInt &gt;= 1073741824 And memSizeInt &lt; 1099511627776 Then
memSizeInt = memSizeInt / 1073741824
memSizeInt = round(memSizeInt, 2)
memSizeStr = Cstr(memSizeInt) &amp; " GB"
ElseIf memSizeInt &gt;= 1099511627776 And memSizeInt &lt; 1125899906842624 Then
memSizeInt = memSizeInt / 1099511627776
memSizeInt = round(memSizeInt, 2)
memSizeStr = Cstr(memSizeInt) &amp; " TB"
ElseIf memSizeInt &gt;= 1125899906842624 Then
memSizeInt = memSizeInt / 1125899906842624
memSizeInt = round(memSizeInt, 2)
memSizeStr = Cstr(memSizeInt) &amp; " PB"
End If
convertSize = memSizeStr
End Function

Public Function CreateAndPopulateInstance(ByRef omAPIHelper, ByRef compObject, ByRef displayName)
If Not compObject is Nothing Then
log.MOMDebugLog 1, "Entered creation of Internal physical disk creation"
Dim sizeStr
Dim sizeInt

Set oInst=omAPIHelper.CreateClassInstance("$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.Enclosure.InternalPhysicalDisk']$")
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", principalName)
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage']/ID$", keyPropertyDictionary.Item("Dell.Chassis.Storage/ID"))

call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller']/FQDD$", keyPropertyDictionary.Item("Dell.Chassis.Storage.Controller/FQDD"))

call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.Enclosure']/FQDD$", keyPropertyDictionary.Item("Dell.Chassis.Storage.Controller.Enclosure/FQDD"))

call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.Enclosure.InternalPhysicalDiskGroup']/Number$", keyPropertyDictionary.Item("Dell.Chassis.Storage.Controller.Enclosure.InternalPhysicalDiskGroup/Number"))

call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.Enclosure.InternalPhysicalDisk']/FQDD$", keyPropertyDictionary.Item("Dell.Chassis.Storage.Controller.Enclosure.InternalPhysicalDisk/FQDD"))


call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.Enclosure.InternalPhysicalDisk']/Connector$",compObject.getAttributevalue("Connector"))
If compObject.getAttributevalue("Capacity") &lt;&gt; "Not Available" Then
sizeInt = CDbl(compObject.getAttributevalue("Capacity"))
sizeStr = convertSize(sizeInt)
Else
sizeStr = "Not Available"
End If
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.Enclosure.InternalPhysicalDisk']/Protocol$",compObject.getAttributevalue("Protocol"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.Enclosure.InternalPhysicalDisk']/DriveFormFactor$",compObject.getAttributevalue("DriveFormFactor"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.Enclosure.InternalPhysicalDisk']/HotSpare$",compObject.getAttributevalue("HotSpare"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.Enclosure.InternalPhysicalDisk']/Manufacturer$",compObject.getAttributevalue("Manufacturer"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.Enclosure.InternalPhysicalDisk']/ManufacturedDay$",compObject.getAttributevalue("ManufacturedDay"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.Enclosure.InternalPhysicalDisk']/ManufacturedWeek$",compObject.getAttributevalue("ManufacturedWeek"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.Enclosure.InternalPhysicalDisk']/ManufacturedYear$",compObject.getAttributevalue("ManufacturedYear"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.Enclosure.InternalPhysicalDisk']/MaxCapableSpeed$",compObject.getAttributevalue("MaxCapableSpeed"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.Enclosure.InternalPhysicalDisk']/MediaType$",compObject.getAttributevalue("MediaType"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.Enclosure.InternalPhysicalDisk']/ProductID$",compObject.getAttributevalue("ProductID"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.Enclosure.InternalPhysicalDisk']/PartNumber$",compObject.getAttributevalue("PartNumber"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.Enclosure.InternalPhysicalDisk']/Version$",compObject.getAttributevalue("Version"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.Enclosure.InternalPhysicalDisk']/SASAddress$",compObject.getAttributevalue("SASAddress"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.Enclosure.InternalPhysicalDisk']/SecurityState$",compObject.getAttributevalue("SecurityState"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.Enclosure.InternalPhysicalDisk']/SerialNumber$",compObject.getAttributevalue("SerialNumber"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.Enclosure.InternalPhysicalDisk']/Capacity$",sizeStr)
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.Enclosure.InternalPhysicalDisk']/SlotNumber$",compObject.getAttributevalue("SlotNumber"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.Enclosure.InternalPhysicalDisk']/SupportedEncryptionTypes$",compObject.getAttributevalue("SupportedEncryptionTypes"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='System!System.Entity']/DisplayName$", displayName)
omAPIHelper.AddInstanceToDiscoveryData oInst

Set CreateAndPopulateInstance = oInst
End If
End Function
End Class
creatorFactory.Add "Dell.Chassis.Storage.Controller.Enclosure.InternalPhysicalDisk", new InternalPhysicalDiskInstance



Class InternalPhysicalDiskGroupInstance
Private keyPropertyDictionary
Private oInst
Private Sub Class_Initialize
Set keyPropertyDictionary = CreateObject("Scripting.Dictionary")
keyPropertyDictionary.CompareMode = vbTextCompare
End Sub
Public Function ClearKeyProperties()
keyPropertyDictionary.RemoveAll 'Clear the dictionary
End Function
Public Function SetKeyProperty(ByRef key, ByRef val)
keyPropertyDictionary.Add key, val
End Function
Public Function CreateAndPopulateInstance(ByRef omAPIHelper, ByRef compObject, ByRef displayName)
If Not compObject is Nothing Then
log.MOMDebugLog 1, "Entered creation of Internal physical disk group creation"
Set oInst=omAPIHelper.CreateClassInstance("$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.Enclosure.InternalPhysicalDiskGroup']$")
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", principalName)
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage']/ID$", keyPropertyDictionary.Item("Dell.Chassis.Storage/ID"))

call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller']/FQDD$", keyPropertyDictionary.Item("Dell.Chassis.Storage.Controller/FQDD"))

call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.Enclosure']/FQDD$", keyPropertyDictionary.Item("Dell.Chassis.Storage.Controller.Enclosure/FQDD"))

call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.Enclosure.InternalPhysicalDiskGroup']/Number$", keyPropertyDictionary.Item("Dell.Chassis.Storage.Controller.Enclosure.InternalPhysicalDiskGroup/Number"))


call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='System!System.Entity']/DisplayName$", displayName)
omAPIHelper.AddInstanceToDiscoveryData oInst

Set CreateAndPopulateInstance = oInst
End If
End Function
End Class
creatorFactory.Add "Dell.Chassis.Storage.Controller.Enclosure.InternalPhysicalDiskGroup", new InternalPhysicalDiskGroupInstance



Class ExternalPhysicalDiskInstance
Private keyPropertyDictionary
Private oInst
Private Sub Class_Initialize
Set keyPropertyDictionary = CreateObject("Scripting.Dictionary")
keyPropertyDictionary.CompareMode = vbTextCompare
End Sub
Public Function ClearKeyProperties()
keyPropertyDictionary.RemoveAll 'Clear the dictionary
End Function
Public Function SetKeyProperty(ByRef key, ByRef val)
keyPropertyDictionary.Add key, val
End Function

Public Function convertSize(ByRef memSizeInt)
Dim memSizeStr

If memSizeInt &lt; 1024 Then
memSizeStr = Cstr(memSizeInt) &amp; " Bytes"
ElseIf memSizeInt &gt;= 1024 And memSizeInt &lt; 1048576 Then
memSizeInt = memSizeInt / 1024
memSizeInt = round(memSizeInt, 2)
memSizeStr = Cstr(memSizeInt) &amp; " KB"
ElseIf memSizeInt &gt;= 1048576 And memSizeInt &lt; 1073741824 Then
memSizeInt = memSizeInt / 1048576
memSizeInt = round(memSizeInt, 2)
memSizeStr = Cstr(memSizeInt) &amp; " MB"
ElseIf memSizeInt &gt;= 1073741824 And memSizeInt &lt; 1099511627776 Then
memSizeInt = memSizeInt / 1073741824
memSizeInt = round(memSizeInt, 2)
memSizeStr = Cstr(memSizeInt) &amp; " GB"
ElseIf memSizeInt &gt;= 1099511627776 And memSizeInt &lt; 1125899906842624 Then
memSizeInt = memSizeInt / 1099511627776
memSizeInt = round(memSizeInt, 2)
memSizeStr = Cstr(memSizeInt) &amp; " TB"
ElseIf memSizeInt &gt;= 1125899906842624 Then
memSizeInt = memSizeInt / 1125899906842624
memSizeInt = round(memSizeInt, 2)
memSizeStr = Cstr(memSizeInt) &amp; " PB"
End If
convertSize = memSizeStr
End Function

Public Function CreateAndPopulateInstance(ByRef omAPIHelper, ByRef compObject, ByRef displayName)
If Not compObject is Nothing Then
log.MOMDebugLog 1, "Entered creation of External physical disk creation"
Dim sizeStr
Dim sizeInt

Set oInst=omAPIHelper.CreateClassInstance("$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.Enclosure.ExternalPhysicalDisk']$")
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", principalName)
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage']/ID$", keyPropertyDictionary.Item("Dell.Chassis.Storage/ID"))

call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller']/FQDD$", keyPropertyDictionary.Item("Dell.Chassis.Storage.Controller/FQDD"))

call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.Enclosure']/FQDD$", keyPropertyDictionary.Item("Dell.Chassis.Storage.Controller.Enclosure/FQDD"))

call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.Enclosure.ExternalPhysicalDiskGroup']/Number$", keyPropertyDictionary.Item("Dell.Chassis.Storage.Controller.Enclosure.ExternalPhysicalDiskGroup/Number"))

call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.Enclosure.ExternalPhysicalDisk']/FQDD$", keyPropertyDictionary.Item("Dell.Chassis.Storage.Controller.Enclosure.ExternalPhysicalDisk/FQDD"))

If compObject.getAttributevalue("Capacity") &lt;&gt; "Not Available" Then
sizeInt = CDbl(compObject.getAttributevalue("Capacity"))
sizeStr = convertSize(sizeInt)
Else
sizeStr = "Not Available"
End If
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.Enclosure.ExternalPhysicalDisk']/Connector$",compObject.getAttributevalue("Connector"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.Enclosure.ExternalPhysicalDisk']/Protocol$",compObject.getAttributevalue("Protocol"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.Enclosure.ExternalPhysicalDisk']/DriveFormFactor$",compObject.getAttributevalue("DriveFormFactor"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.Enclosure.ExternalPhysicalDisk']/HotSpare$",compObject.getAttributevalue("HotSpare"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.Enclosure.ExternalPhysicalDisk']/Manufacturer$",compObject.getAttributevalue("Manufacturer"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.Enclosure.ExternalPhysicalDisk']/ManufacturedDay$",compObject.getAttributevalue("ManufacturedDay"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.Enclosure.ExternalPhysicalDisk']/ManufacturedWeek$",compObject.getAttributevalue("ManufacturedWeek"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.Enclosure.ExternalPhysicalDisk']/ManufacturedYear$",compObject.getAttributevalue("ManufacturedYear"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.Enclosure.ExternalPhysicalDisk']/MaxCapableSpeed$",compObject.getAttributevalue("MaxCapableSpeed"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.Enclosure.ExternalPhysicalDisk']/MediaType$",compObject.getAttributevalue("MediaType"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.Enclosure.ExternalPhysicalDisk']/ProductID$",compObject.getAttributevalue("ProductID"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.Enclosure.ExternalPhysicalDisk']/PartNumber$",compObject.getAttributevalue("PartNumber"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.Enclosure.ExternalPhysicalDisk']/Version$",compObject.getAttributevalue("Version"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.Enclosure.ExternalPhysicalDisk']/SASAddress$",compObject.getAttributevalue("SASAddress"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.Enclosure.ExternalPhysicalDisk']/SecurityState$",compObject.getAttributevalue("SecurityState"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.Enclosure.ExternalPhysicalDisk']/SerialNumber$",compObject.getAttributevalue("SerialNumber"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.Enclosure.ExternalPhysicalDisk']/Capacity$",sizeStr)
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.Enclosure.ExternalPhysicalDisk']/SlotNumber$",compObject.getAttributevalue("SlotNumber"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.Enclosure.ExternalPhysicalDisk']/SupportedEncryptionTypes$",compObject.getAttributevalue("SupportedEncryptionTypes"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='System!System.Entity']/DisplayName$", displayName)
omAPIHelper.AddInstanceToDiscoveryData oInst

Set CreateAndPopulateInstance = oInst
End If
End Function
End Class
creatorFactory.Add "Dell.Chassis.Storage.Controller.Enclosure.ExternalPhysicalDisk", new ExternalPhysicalDiskInstance


Class ExternalPhysicalDiskGroupInstance
Private keyPropertyDictionary
Private oInst
Private Sub Class_Initialize
Set keyPropertyDictionary = CreateObject("Scripting.Dictionary")
keyPropertyDictionary.CompareMode = vbTextCompare
End Sub
Public Function ClearKeyProperties()
keyPropertyDictionary.RemoveAll 'Clear the dictionary
End Function
Public Function SetKeyProperty(ByRef key, ByRef val)
keyPropertyDictionary.Add key, val
End Function
Public Function CreateAndPopulateInstance(ByRef omAPIHelper, ByRef compObject, ByRef displayName)
If Not compObject is Nothing Then
log.MOMDebugLog 1, "Entered creation of External physical disk group creation"
Set oInst=omAPIHelper.CreateClassInstance("$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.Enclosure.ExternalPhysicalDiskGroup']$")
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", principalName)
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage']/ID$", keyPropertyDictionary.Item("Dell.Chassis.Storage/ID"))

call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller']/FQDD$", keyPropertyDictionary.Item("Dell.Chassis.Storage.Controller/FQDD"))

call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.Enclosure']/FQDD$", keyPropertyDictionary.Item("Dell.Chassis.Storage.Controller.Enclosure/FQDD"))

call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.Enclosure.ExternalPhysicalDiskGroup']/Number$", keyPropertyDictionary.Item("Dell.Chassis.Storage.Controller.Enclosure.ExternalPhysicalDiskGroup/Number"))


call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='System!System.Entity']/DisplayName$", displayName)
omAPIHelper.AddInstanceToDiscoveryData oInst

Set CreateAndPopulateInstance = oInst
End If
End Function
End Class
creatorFactory.Add "Dell.Chassis.Storage.Controller.Enclosure.ExternalPhysicalDiskGroup", new ExternalPhysicalDiskGroupInstance

Class EnclosureInstance
Private keyPropertyDictionary
Private oInst
Private Sub Class_Initialize
Set keyPropertyDictionary = CreateObject("Scripting.Dictionary")
keyPropertyDictionary.CompareMode = vbTextCompare
End Sub
Public Function ClearKeyProperties()
keyPropertyDictionary.RemoveAll 'Clear the dictionary
End Function
Public Function SetKeyProperty(ByRef key, ByRef val)
keyPropertyDictionary.Add key, val
End Function
Public Function CreateAndPopulateInstance(ByRef omAPIHelper, ByRef compObject, ByRef displayName)
If Not compObject is Nothing Then
log.MOMDebugLog 1, "Entered creation of Enclosure"
Set oInst=omAPIHelper.CreateClassInstance("$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.Enclosure']$")
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", principalName)
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage']/ID$", keyPropertyDictionary.Item("Dell.Chassis.Storage/ID"))

call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller']/FQDD$", keyPropertyDictionary.Item("Dell.Chassis.Storage.Controller/FQDD"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.Enclosure']/FQDD$", keyPropertyDictionary.Item("Dell.Chassis.Storage.Controller.Enclosure/FQDD"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.Enclosure']/BayID$",compObject.getAttributevalue("BayID"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.Enclosure']/Connector$",compObject.getAttributevalue("Connector"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.Enclosure']/ServiceTag$",compObject.getAttributevalue("ServiceTag"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.Enclosure']/AssetTag$",compObject.getAttributevalue("AssetTag"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.Enclosure']/NumberofSlots$",compObject.getAttributevalue("NumberofSlots"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.Enclosure']/FirmwareRevision$",compObject.getAttributevalue("FirmwareRevision"))
call omAPIHelper.oInstAddProperty(oInst, "$MPElement[Name='System!System.Entity']/DisplayName$", displayName)
omAPIHelper.AddInstanceToDiscoveryData oInst

Set CreateAndPopulateInstance = oInst
End If
End Function
End Class
creatorFactory.Add "Dell.Chassis.Storage.Controller.Enclosure", new EnclosureInstance

'#################################################################################################################################
</ComponentInstanceFactoryScript>
<ChassisComponentDiscoveryScript>
'#################################################################################################################################
'**************************************************************************************************
'We will list all the possible components of chassis(M100e, VRTx, Stomp) and a dicctionary is created with key as component names and values as Yes/No
'where Yes means there is no need to verify MN for the support WS-MAN profile otherwise do verify. In that way we will populate the dictionary and send
'the dictionary to profile dictionary creation, there if dictionary value is No then that particular components are not populated in profile. The main
'will again go through dictionary value in population of component instances.
Dim compDict
Set compDict = CreateObject("Scripting.Dictionary")
compDict.CompareMode = vbTextCompare
'Filling default values
compDict.Add "Fan", "No"
compDict.Add "PowerSupply", "No"
compDict.Add "Storage", "No"
compDict.Add "CMC", "No"
compDict.Add "PCIeDevice", "No"
compDict.Add "IOModule", "No"
'Traverse through the dictionary and verify a call with MN if dictionary value is No by default
Dim compDictKeys, Key, value
compDictKeys = compDict.Keys
For Each Key in compDictKeys
log.MOMDebugLog 1, "Key value is---" &amp; Key
If (StrComp(compDict.Item(Key),"No") = 0) Then
value = verifyCallWithMN(Key)
compDict.Item(Key) = value
else
log.MOMDebugLog 1, "No need to verify for this key" &amp; Key
End If
Next

'Now the component dictionary value will decide whether profile need to be populated or not.
Dim profileDictCreatorObj,racadmObject,racadmPresence
Set profileDictCreatorObj = New ProfileDictionaryCreator
Set racadmObject = New racadmDictionaryCreator
racadmPresence = racadmObject.IsRacadmPresent

compDictKeys = compDict.Keys
For Each Key in compDictKeys
log.MOMDebugLog 1, "Key value is" &amp; Key
If (StrComp(compDict.Item(Key),"Yes") = 0 ) Then
If (StrComp(Key,"Storage") = 0) Then
log.MOMDebugLog 1, "Populating Storage profile dictionary"
profileDictCreatorObj.populateStorageProfileDictionary
End If

If (StrComp(Key,"Fan") = 0) Then
log.MOMDebugLog 1, "Populating Fan profile dictionary"
profileDictCreatorObj.populateFanProfileDictionary
End If

If (StrComp(Key,"PCIeDevice") = 0) Then
log.MOMDebugLog 1, "Populating PCIe Device profile dictionary"
profileDictCreatorObj.pcieDeviceProfileDictionary
End If

If (StrComp(Key,"PowerSupply") = 0) Then
log.MOMDebugLog 1, "Populating Power Supply profile dictionary"
profileDictCreatorObj.powersupplyProfileDictionay
End If

If (StrComp(Key,"IOModule") = 0) Then
log.MOMDebugLog 1, "Populating IO Module profile dictionary"
If racadmPresence = "Yes" Then
profileDictCreatorObj.ioModuleProfileDictionay
Else
profileDictCreatorObj.ioModuleWsmanProfileDictionary
End If
End If

If (StrComp(Key,"CMC") = 0) Then
log.MOMDebugLog 1, "Populating CMC profile dictionary"
If racadmPresence = "Yes" Then
profileDictCreatorObj.cmcProfileDictionary
Else
profileDictCreatorObj.cmcWsmanProfileDictionary
End If
End If
End If
Next
'Now we got the profile dictionaries created for all possible components.
Dim profileInfoDict, profile
Set profileInfoDict = profileDictCreatorObj.GetProfileDictionary()
Dim profDictReader
Set profDictReader = New ProfileDictionaryReader
profDictReader.setListofProtocolAndClassNames(profileInfoDict)
Dim protoList
protoList = profDictReader.getProtocolList()
Dim classList, racadmCmdList
classList = profDictReader.getClassNameList()
racadmCmdList = profDictReader.getracadmCmdList()
Dim protFactoryObj
Set protFactoryObj = New ProtocolFactory

'Traverse through the protocol list and depending up the protocol pass the protocol parameter object
'In case of wsman a DLL object is returned
Dim protocol, cls, cmd
Dim wsmanInvDataParser, compObjectList, wsmanHelperOject, wsmanInventoryProfileHandle, i
Dim racadmcompObjList
Dim wsmanPresence
racadmPresence = "No"
wsmanPresence = "No"
Set wsmanHelperOject = Nothing
Set wsmanInvDataParser = Nothing
Set compObjectList = Nothing
set wsmanInventoryProfileHandle=CreateObject("Scripting.Dictionary")
wsmanInventoryProfileHandle.CompareMode = vbTextCompare
Dim racadmDataParserObj, racadmcompObjectList, racadmInventoryProfileHandle
For Each protocol in protoList
If (StrComp(protocol,"wsman") = 0) Then
Set wsmanHelperOject = protFactoryObj.getProtocolHelperObject(protocol, protParameterObj)
wsmanHelperOject.ProfileNameArrayObj=classList
Set wsmanInventoryProfileHandle = wsmanHelperOject.GetProfileDictionary()
If IsNull(wsmanInventoryProfileHandle) Then
log.MOMDebugLog 1, "Dell Device Helper returned null value. No wsman inventory will be found for this device"
else
log.MOMDebugLog 1, "Dell Device helper successfully retrieved all profile from device"
wsmanPresence = "Yes"
End If
End If

If (StrComp(protocol,"racadm") = 0) Then
racadmObject.setUserName(racadmParameterObj.getProtocolParameterValue("UserName"))
racadmObject.setPassword(racadmParameterObj.getProtocolParameterValue("Password"))
racadmObject.setPort(racadmParameterObj.getProtocolParameterValue("Port"))
racadmObject.setIPAddress(racadmParameterObj.getProtocolParameterValue("IPAddress"))
racadmObject.setCmdList(racadmCmdList)
racadmPresence = racadmObject.populateracadmDictionary
log.MOMDebugLog 1, "racadm presence returned is --" &amp; racadmPresence
End If
Next

Dim chassisCompModellerObj, oChassisInst

Set chassisCompModellerObj = New ChassisComponentModeller
Dim m_momApiHelper
Set m_momApiHelper = New MOMAPIHelper
Call m_momApiHelper.CreateDiscoveryData(SourceId, ManagedEntityId)
Dim oInst

if (StrComp(racadmPresence,"No") = 0) And (StrComp(wsmanPresence,"No") = 0) Then
log.MOMDebugLog 1, "Creating Empty Discovery data"
Set oInst = m_momApiHelper.CreateClassInstance("$MPElement[Name='DellOperationsCommon!Dell.Discovery.Sink']$")
call m_momApiHelper.oInstAddProperty(oInst, "$MPElement[Name='System!System.Entity']/DisplayName$", "Dell Discovery Sink")
call m_momApiHelper.oInstAddProperty(oInst, "$MPElement[Name='DellOperationsCommon!Dell.Discovery.Sink']/Name$", principalName)
m_momApiHelper.AddInstanceToDiscoveryData oInst
log.MOMDebugLog 1, "submitting empty discovery data"
Call m_momApiHelper.SubmitDiscoveryData()
m_momApiHelper.destroyCOMObjects()
set m_momApiHelper = Nothing
log.MOMDebugLog 1, "Exiting the process because both racadmPresence and wsmanPresence status are NO"
Wscript.Quit
End If

call chassisCompModellerObj.setMomApiHelper(m_momApiHelper)
call chassisCompModellerObj.setChassisUID("$Target/Property[Type='DAD!Dell.ModularChassis.CMC']/UID$")
chassisCompModellerObj.chassisComponentCreation
Set oChassisInst = chassisCompModellerObj.getChassisInstance()
'Go through the component dictionary and populate the respective chassis components
Dim InventoryPresence
InventoryPresence = "No"
'variables which are created by wsman and used in racadm and also vice versa
Dim cmcWsman_ChMgrPckg
For Each Key in compDictKeys
log.MOMDebugLog 1, "component to be discovered is---" &amp; Key
If(StrComp(wsmanPresence,"Yes") = 0) Then
Set wsmanInvDataParser = New InventoryDataParser
wsmanInvDataParser.setComponentInventoryProfileHandle(wsmanInventoryProfileHandle)
wsmanInvDataParser.populateComponentObjects(profileInfoDict)
compObjectList = wsmanInvDataParser.getComponentObjects()
'populating storage and its heirarchy
If ((StrComp(Key,"Storage")=0) And StrComp(compDict.Item(Key),"Yes") =0) Then
InventoryPresence = "Yes"
log.MOMDebugLog 1, "Creating Storage heirarchy of Chassis"
'Creating Storage heirarchy of Chassis
Dim stoContList, stoEnclList, stoVirtDiskList, stoPhyDiskList, compObjListFilter
Dim oStoInst, oServStoRelationship
Set compObjListFilter = New ComponentObjectListFilter
stoContList = compObjListFilter.fetchRequestedComponentObjectList(compObjectList, "Dell.Chassis.Storage.Controller")
compObjListFilter.destroyCOMObjects()
set compObjListFilter = Nothing
Set compObjListFilter = New ComponentObjectListFilter
stoEnclList = compObjListFilter.fetchRequestedComponentObjectList(compObjectList, "Dell.Chassis.Storage.Controller.Enclosure")
compObjListFilter.destroyCOMObjects()
set compObjListFilter = Nothing
Set compObjListFilter = New ComponentObjectListFilter
stoVirtDiskList = compObjListFilter.fetchRequestedComponentObjectList(compObjectList, "Dell.Chassis.Storage.Controller.VirtualDisk")
compObjListFilter.destroyCOMObjects()
set compObjListFilter = Nothing
Set compObjListFilter = New ComponentObjectListFilter
stoPhyDiskList = compObjListFilter.fetchRequestedComponentObjectList(compObjectList, "Dell.Chassis.Storage.Controller.PhysicalDisk")
compObjListFilter.destroyCOMObjects()
set compObjListFilter = Nothing
call chassisCompModellerObj.performStorageComponentModelling(stoContList, stoEnclList, stoPhyDiskList, stoVirtDiskList)
Set oStoInst = chassisCompModellerObj.getStorageInstance()
Set oServStoRelationship = m_momApiHelper.CreateRelationshipInstance("$MPElement[Name='DAD!DellModularChassis.Contains.Storage']$", oChassisInst, oStoInst)
m_momApiHelper.AddInstanceToDiscoveryData oServStoRelationship
'Creating relationship between VD's and their assigned server blades
Dim baldeServerList,raidVAViewList
Set compObjListFilter = New ComponentObjectListFilter
baldeServerList = compObjListFilter.fetchRequestedComponentObjectList(compObjectList, "Dell.Chassis.BladeServer")
compObjListFilter.destroyCOMObjects()
set compObjListFilter = Nothing
Set compObjListFilter = New ComponentObjectListFilter
raidVAViewList = compObjListFilter.fetchRequestedComponentObjectList(compObjectList, "Dell.Chassis.RAIDVAView")
compObjListFilter.destroyCOMObjects()
set compObjListFilter = Nothing
call chassisCompModellerObj.performBladeServerInst(baldeServerList,raidVAViewList,stoContList)
End If
'populating Fan component
If ( (StrComp(Key,"Fan")=0) And (StrComp(compDict.Item(Key),"Yes") = 0) ) Then
InventoryPresence = "Yes"
log.MOMDebugLog 1, "Creating Fan inventory of chassis"
Dim fanGroupInst,chassisFanGroupRelationship
call chassisCompModellerObj.performChassisFanModelling(compObjectList)
Set fanGroupInst = chassisCompModellerObj.getFanGroupInstance()
Set chassisFanGroupRelationship = m_momApiHelper.CreateRelationshipInstance("$MPElement[Name='DAD!DellModularChassis.Contains.FanGroup']$", oChassisInst, fanGroupInst)
m_momApiHelper.AddInstanceToDiscoveryData chassisFanGroupRelationship
End If
'populating power supply inventory
If ((StrComp(Key,"PowerSupply")=0) And StrComp(compDict.Item(Key),"Yes") = 0) Then
InventoryPresence = "Yes"
log.MOMDebugLog 1, "Creating Power Supply inventory of chassis"
Dim Chassis_PSPack, Chassis_PowerSupply, Chassis_PSSlot
Dim oPowerSupplyGroupInst, oChassisPowerSupplyRelationship
Set compObjListFilter = New ComponentObjectListFilter
Chassis_PSPack = compObjListFilter.fetchRequestedComponentObjectList(compObjectList, "Dell.Chassis.PowerSupply.Dell_PSPackage")
compObjListFilter.destroyCOMObjects()
set compObjListFilter = Nothing
Set compObjListFilter = New ComponentObjectListFilter
Chassis_PowerSupply = compObjListFilter.fetchRequestedComponentObjectList(compObjectList, "Dell.Chassis.PowerSupply.Dell_PowerSupply")
compObjListFilter.destroyCOMObjects()
set compObjListFilter = Nothing
Set compObjListFilter = New ComponentObjectListFilter
Chassis_PSSlot = compObjListFilter.fetchRequestedComponentObjectList(compObjectList, "Dell.Chassis.PowerSupply.Dell_PSSlot")
compObjListFilter.destroyCOMObjects()
set compObjListFilter = Nothing
call chassisCompModellerObj.performChassisPowerSupplyModelling(Chassis_PowerSupply, Chassis_PSPack, Chassis_PSSlot)
Set oPowerSupplyGroupInst = chassisCompModellerObj.getChassisPowerSupplyGroupInstance()
Set oChassisPowerSupplyRelationship = m_momApiHelper.CreateRelationshipInstance("$MPElement[Name='DAD!DellModularChassis.Contains.ChassisPowerSupplyGroup']$", oChassisInst, oPowerSupplyGroupInst)
m_momApiHelper.AddInstanceToDiscoveryData oChassisPowerSupplyRelationship
End If
'populatinf PCIeDevice inventory
If ((StrComp(Key,"PCIeDevice")=0) And StrComp(compDict.Item(Key),"Yes") = 0) Then
InventoryPresence = "Yes"
log.MOMDebugLog 1, "Creating PCIe Device Inventory"
Dim PCIeDevice_PCISlotList, PCIeDevice_DeviceViewList
Dim oPCIeGroupInst, oChassisPCIeRelationship
Set compObjListFilter = New ComponentObjectListFilter
PCIeDevice_DeviceViewList = compObjListFilter.fetchRequestedComponentObjectList(compObjectList, "Dell.Chassis.PCIeDevice.PCIDeviceView")
compObjListFilter.destroyCOMObjects()
set compObjListFilter = Nothing
Set compObjListFilter = New ComponentObjectListFilter
PCIeDevice_PCISlotList = compObjListFilter.fetchRequestedComponentObjectList(compObjectList, "Dell.Chassis.PCIeDevice.PCISlot")
compObjListFilter.destroyCOMObjects()
set compObjListFilter = Nothing
call chassisCompModellerObj.performChassisPCIeDeviceModelling(PCIeDevice_DeviceViewList, PCIeDevice_PCISlotList)
Set oPCIeGroupInst = chassisCompModellerObj.getChassisPCIeGroupInstance()
Set oChassisPCIeRelationship = m_momApiHelper.CreateRelationshipInstance("$MPElement[Name='DAD!DellModularChassis.Contains.ChassisPCIeDeviceGroup']$", oChassisInst, oPCIeGroupInst)
m_momApiHelper.AddInstanceToDiscoveryData oChassisPCIeRelationship
End If

If ( (StrComp(Key,"IOModule")=0) And (StrComp(compDict.Item(Key),"Yes")=0) ) Then
Dim iomodule_dell_passthroughList, iomodule_dell_iompackageList, iomodule_getioinfoList
Dim oIOModuleGroupInst, oChassisIoModuleRelationship
Set compObjListFilter = New ComponentObjectListFilter
iomodule_dell_passthroughList = compObjListFilter.fetchRequestedComponentObjectList(compObjectList, "Dell.Chassis.IOModule.wsman.dell_passthroughmodule")
compObjListFilter.destroyCOMObjects()
set compObjListFilter = Nothing
Set compObjListFilter = New ComponentObjectListFilter
iomodule_dell_iompackageList = compObjListFilter.fetchRequestedComponentObjectList(compObjectList, "Dell.Chassis.IOModule.wsman.dell_iompackage")
compObjListFilter.destroyCOMObjects()
set compObjListFilter = Nothing
If(StrComp(racadmPresence,"Yes") = 0) Then
Set compObjListFilter = New ComponentObjectListFilter
iomodule_getioinfoList = compObjListFilter.fetchRequestedComponentObjectList(racadmcompObjList, "Dell.Chassis.IOModule.racadm.getioinfo")
compObjListFilter.destroyCOMObjects()
set compObjListFilter = Nothing
End If
call chassisCompModellerObj.performChassisIOmoduleModelling(iomodule_dell_passthroughList, iomodule_dell_iompackageList, iomodule_getioinfoList, racadmPresence)
Set oIOModuleGroupInst = chassisCompModellerObj.getChassisIOModuleGroupInstance()
Set oChassisIoModuleRelationship = m_momApiHelper.CreateRelationshipInstance("$MPElement[Name='DAD!DellModularChassis.Contains.DellIOModuleGroup']$", oChassisInst, oIOModuleGroupInst)
m_momApiHelper.AddInstanceToDiscoveryData oChassisIoModuleRelationship
End If

End If
'racadm
If(StrComp(racadmPresence,"Yes") = 0) Then
Set racadmDataParserObj = New racadmDataParser
racadmDataParserObj.setRacadmDictionary(racadmObject.getracadmDictionary)
racadmDataParserObj.populateracadmComponentObjects(profileInfoDict)
racadmcompObjList = racadmDataParserObj.getComponentObjects()
If ( (StrComp(Key,"CMC")=0) And (StrComp(compDict.Item(Key),"Yes")=0) ) Then
If(StrComp(wsmanPresence, "Yes") = 0) Then
'used for creation of cmc component
Set compObjListFilter = New ComponentObjectListFilter
cmcWsman_ChMgrPckg = compObjListFilter.fetchRequestedComponentObjectList(compObjectList, "Dell.Chassis.cmc.wsman")
compObjListFilter.destroyCOMObjects()
set compObjListFilter = Nothing
End If
InventoryPresence = "Yes"
log.MOMDebugLog 1, "Creating CMC component Inventory"
Dim cmcRacadm_getmodinfo, cmcRacadm_getversion, oCMCeGroupInst, oChassisCMCRelationship
Set compObjListFilter = New ComponentObjectListFilter
cmcRacadm_getmodinfo = compObjListFilter.fetchRequestedComponentObjectList(racadmcompObjList, "Dell.Chassis.cmc.racadm.getmodinfo")
compObjListFilter.destroyCOMObjects()
set compObjListFilter = Nothing
Set compObjListFilter = New ComponentObjectListFilter
cmcRacadm_getversion = compObjListFilter.fetchRequestedComponentObjectList(racadmcompObjList, "Dell.Chassis.cmc.racadm.getversion")
compObjListFilter.destroyCOMObjects()
set compObjListFilter = Nothing
call chassisCompModellerObj.performChassisCMCModelling(cmcWsman_ChMgrPckg, cmcRacadm_getmodinfo, cmcRacadm_getversion, wsmanPresence, racadmPresence)
Set oCMCeGroupInst = chassisCompModellerObj.getChassisCMCGroupInstance()
Set oChassisCMCRelationship = m_momApiHelper.CreateRelationshipInstance("$MPElement[Name='DAD!DellModularChassis.Contains.DellCMCGroup']$", oChassisInst, oCMCeGroupInst)
m_momApiHelper.AddInstanceToDiscoveryData oChassisCMCRelationship
End If
Else
If ( (StrComp(Key,"CMC")=0) And (StrComp(compDict.Item(Key),"Yes")=0) ) Then
If(StrComp(wsmanPresence, "Yes") = 0) Then
'used for creation of cmc component
Set compObjListFilter = New ComponentObjectListFilter
cmcWsman_ChMgrPckg = compObjListFilter.fetchRequestedComponentObjectList(compObjectList, "Dell.Chassis.cmc.wsman")
compObjListFilter.destroyCOMObjects()
set compObjListFilter = Nothing
End If
InventoryPresence = "Yes"
log.MOMDebugLog 1, "Creating CMC component Inventory"
call chassisCompModellerObj.performChassisCMCModelling(cmcWsman_ChMgrPckg, cmcRacadm_getmodinfo, cmcRacadm_getversion, wsmanPresence, racadmPresence)
Set oCMCeGroupInst = chassisCompModellerObj.getChassisCMCGroupInstance()
Set oChassisCMCRelationship = m_momApiHelper.CreateRelationshipInstance("$MPElement[Name='DAD!DellModularChassis.Contains.DellCMCGroup']$", oChassisInst, oCMCeGroupInst)
m_momApiHelper.AddInstanceToDiscoveryData oChassisCMCRelationship
End If
End If
next
'Clearing all dictionaried that created and populated
profileDictCreatorObj.destroyCOMObjects()
Set profileDictCreatorObj = Nothing
profDictReader.destroyCOMObjects()
set profDictReader = Nothing
protFactoryObj.destroyCOMObjects()
Set protFactoryObj = Nothing

If Not wsmanInventoryProfileHandle Is Nothing Then
wsmanInventoryProfileHandle.RemoveAll
Set wsmanInventoryProfileHandle = Nothing
End IF

If Not wsmanInvDataParser Is Nothing Then
wsmanInvDataParser.destroyCOMObjects()
Set wsmanInvDataParser = Nothing
End If

If Not wsmanHelperOject Is Nothing Then
wsmanHelperOject.ClearProfileDictionary()
set wsmanHelperOject = Nothing
End If

chassisCompModellerObj.destroyCOMObjects()
set chassisCompModellerObj = Nothing



Dim compObj
If TypeName(compObjectList) &lt;&gt; "Nothing" Then
For Each compObj In compObjectList
If Not compObj Is Nothing Then
compObj.destroyCOMObjects()
set compObj = Nothing
End If
Next
End If

If (StrComp(InventoryPresence,"No") = 0) Then
log.MOMDebugLog 1, "Creating Empty Discovery data"
Set oInst = m_momApiHelper.CreateClassInstance("$MPElement[Name='DellOperationsCommon!Dell.Discovery.Sink']$")
call m_momApiHelper.oInstAddProperty(oInst, "$MPElement[Name='System!System.Entity']/DisplayName$", "Dell Discovery Sink")
call m_momApiHelper.oInstAddProperty(oInst, "$MPElement[Name='DellOperationsCommon!Dell.Discovery.Sink']/Name$", principalName)
m_momApiHelper.AddInstanceToDiscoveryData oInst
log.MOMDebugLog 1, "submitting empty discovery data"
else
log.MOMDebugLog 1, "Submitting chassis components discovery data...."
End If
Call m_momApiHelper.SubmitDiscoveryData()
m_momApiHelper.destroyCOMObjects()
set m_momApiHelper = Nothing


Function verifyCallWithMN(ByVal component)
If ( StrComp(component,"Storage") = 0) Then
Dim StoragePreCheckerObj
Set StoragePreCheckerObj = New StoragePreChecker
call StoragePreCheckerObj.setProtocol("wsman")
call StoragePreCheckerObj.setProtocolParameterObject(protParameterObj)
call StoragePreCheckerObj.setProfileClasses("cimv2/DCIM_ControllerView")
call StoragePreCheckerObj.setComponentInventoryProfileHandle(StoragePreCheckerObj.fetchStorageControllerInfoFromDevice())
verifyCallWithMN = StoragePreCheckerObj.IsStorageAvailable()
End If
If (StrComp(component,"PCIeDevice") = 0) Then
Dim PCIeDevicePreCheckerObj
Set PCIeDevicePreCheckerObj = New PCIeDevicePreChecker
call PCIeDevicePreCheckerObj.setProtocol("wsman")
call PCIeDevicePreCheckerObj.setProtocolParameterObject(protParameterObj)
call PCIeDevicePreCheckerObj.setProfileClasses("cimv2/DCIM_ChassisPCIDeviceView")
call PCIeDevicePreCheckerObj.setComponentInventoryProfileHandle(PCIeDevicePreCheckerObj.fetchStorageControllerInfoFromDevice())
verifyCallWithMN = PCIeDevicePreCheckerObj.IsPCIeDeviceAvailable()
End If

If (StrComp(component,"IOModule") = 0) Then
Dim IOModulePreCheckerObj
Set IOModulePreCheckerObj = New IOModulePreChecker
call IOModulePreCheckerObj.setProtocol("wsman")
call IOModulePreCheckerObj.setProtocolParameterObject(protParameterObj)
call IOModulePreCheckerObj.setProfileClasses("http://schemas.dell.com/wbem/wscim/1/cim-schema/2/root/dell/Dell_PassThroughModule")
call IOModulePreCheckerObj.setComponentInventoryProfileHandle(IOModulePreCheckerObj.fetchStorageControllerInfoFromDevice())
verifyCallWithMN = IOModulePreCheckerObj.IsIOModuleAvailable()
End If

If (StrComp(component,"Fan") = 0) Then
Dim FanDevicePreCheckerObj
Set FanDevicePreCheckerObj = New FanDevicePreChecker
call FanDevicePreCheckerObj.setProtocol("wsman")
call FanDevicePreCheckerObj.setProtocolParameterObject(protParameterObj)
call FanDevicePreCheckerObj.setProfileClasses("http://schemas.dell.com/wbem/wscim/1/cim-schema/2/root/dell/Dell_Fan")
call FanDevicePreCheckerObj.setComponentInventoryProfileHandle(FanDevicePreCheckerObj.fetchStorageControllerInfoFromDevice())
verifyCallWithMN = FanDevicePreCheckerObj.IsFanDeviceAvailable()
End If

If ( StrComp(component,"PowerSupply") = 0) Then
Dim PowerSupplyPreCheckerObj
Set PowerSupplyPreCheckerObj = New PowerSupplyPreChecker
call PowerSupplyPreCheckerObj.setProtocol("wsman")
call PowerSupplyPreCheckerObj.setProtocolParameterObject(protParameterObj)
call PowerSupplyPreCheckerObj.setProfileClasses("http://schemas.dell.com/wbem/wscim/1/cim-schema/2/root/dell/Dell_PowerSupply")
call PowerSupplyPreCheckerObj.setComponentInventoryProfileHandle(PowerSupplyPreCheckerObj.fetchStorageControllerInfoFromDevice())
verifyCallWithMN = PowerSupplyPreCheckerObj.IsPowerSupplyAvailable()
End If

If ( StrComp(component,"CMC") = 0) Then
Dim CMCPreCheckerObj
Set CMCPreCheckerObj = New CMCPreChecker
call CMCPreCheckerObj.setProtocol("wsman")
call CMCPreCheckerObj.setProtocolParameterObject(protParameterObj)
call CMCPreCheckerObj.setProfileClasses("cimv2/DCIM_ModularChassisView")
call CMCPreCheckerObj.setComponentInventoryProfileHandle(CMCPreCheckerObj.fetchStorageControllerInfoFromDevice())
verifyCallWithMN = CMCPreCheckerObj.IsCMCAvailable()
End If

End Function


Class racadmDictionaryCreator
Private m_Username
Private m_Password
Private m_IPAddress
Private m_Port
Private m_cmdlist
Private m_racadmDictionary
Private strRacadmFileOutput
Private ForReading

Private Sub Class_Initialize
Set m_racadmDictionary = CreateObject("Scripting.Dictionary")
m_racadmDictionary.CompareMode = vbTextCompare
ForReading = 1
End Sub

Public Function setUserName(ByRef userName)
m_UserName = userName
End Function

Public Function setPassword(ByRef Password)
m_Password = Password
End Function

Public Function setPort(ByRef Port)
m_Port = Port
End Function

Public Function setIPAddress(ByRef IPAddress)
m_IPAddress = IPAddress
End Function

Public Function setCmdList(ByRef cmdList)
m_cmdlist = cmdList
End Function

Public Function getracadmDictionary
Set getracadmDictionary = m_racadmDictionary
End Function


Private Function AddCommandDictionary(ByRef Key, ByRef Val)
m_racadmDictionary.Add Key, Val
End Function

Private Function bFileExists(ByRef filespec1)
'On Error Resume Next
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
bFileExists = (fso.FileExists(filespec1))
Set fso = Nothing
End Function

Private Function VerifyInstallPath(ByRef path)
On Error Resume Next
Dim installPath

installPath = path &amp; "\racadm.exe"
If (bFileExists(installPath)) Then
VerifyInstallPath = True
else
VerifyInstallPath = False
End If
End Function

Private Function GetPathFromRegistry(ByVal strRacadmKey, ByRef installPath)
On Error Resume Next
Dim oShell, pathFromRegistry, newInstallPath

pathFromRegistry = ""
Set oShell = CreateObject ("WScript.Shell")
pathFromRegistry = oShell.RegRead(strRacadmKey)

'Appending 5 to the path since the RACADM executable was placed under the RAC5 directory from OM 6.1
newInstallPath = pathFromRegistry &amp; "5"
If pathFromRegistry &lt;&gt; "" Then
If (VerifyInstallPath(pathFromRegistry) = True) Then
installPath = pathFromRegistry
GetPathFromRegistry = True
ElseIf (VerifyInstallPath(newInstallPath) = True) Then
installPath = newInstallPath
GetPathFromRegistry = True
Else
GetPathFromRegistry = False
End If
Else
GetPathFromRegistry = False
If Err &lt;&gt; 0 Then
Wscript.Echo "RACADM Registry is empty for Key :" &amp; strRacadmKey
Err.Clear
End If
End If
Set oShell = Nothing
End Function

Private Function GetRACADMInstallPath(ByVal RACADM32RegistryKey, ByVal RACADM64RegistryKey, ByRef o_sPath)
On Error Resume Next

Dim installPath
installPath = ""
If (GetPathFromRegistry (RACADM32RegistryKey, installPath) = True) Then
o_sPath = installPath
GetRACADMInstallPath = True
log.MOMDebugLog 1, "Got RACADM path from RACADM 32 bit Registry Key entry : " &amp; installPath

ElseIf (GetPathFromRegistry (RACADM64RegistryKey, installPath) = True) Then
o_sPath = installPath
GetRACADMInstallPath = True
log.MOMDebugLog 1, "Got RACADM path from RACADM 64 bit Registry Key entry : " &amp; installPath

Else
GetRACADMInstallPath = False
log.MOMDebugLog 1, "Unable to get RACADM path for Registry Entries"

End If

If Err &lt;&gt; 0 Then
GetRACADMInstallPath = Err.Number
Err.Clear
End If

On Error Goto 0
End Function

Private Function GetRACADMPath(ByRef o_sPath)
On Error Resume Next

'Registry Entry for 32 and 64 bit OMSA RACADM Path
Const RACADM_REG_INSTALL_PATH = "HKEY_LOCAL_MACHINE\SOFTWARE\Dell Computer Corporation\OpenManage\Remote Access Card Managed Node\PATH"
Const RACADM64_REG_INTALL_PATH = "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432node\Dell Computer Corporation\OpenManage\Remote Access Card Managed Node\PATH"
'Registry Entry for 32 and 64 bit DRAC Tools RACADM Path
Const REM_RACADM_REG_INTALL_PATH = "HKEY_LOCAL_MACHINE\SOFTWARE\Dell Computer Corporation\OpenManage\Remote Access Card Management Station\Path"
Const REM_RACADM64_REG_INTALL_PATH = "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Dell Computer Corporation\OpenManage\Remote Access Card Management Station\Path"

'Default Location having RACADM executable for OMSA and Drac Tools
Const DEF_RACADM_PATH = "C:\Program Files\Dell\SysMgt\rac5"

Dim installerPath
installerPath = ""

If (GetRACADMInstallPath (RACADM_REG_INSTALL_PATH, RACADM64_REG_INTALL_PATH, installerPath) = True) Then
o_sPath = installerPath
log.MOMDebugLog 1, "Got RACADM path from OMSA"

ElseIf (GetRACADMInstallPath (REM_RACADM_REG_INTALL_PATH, REM_RACADM64_REG_INTALL_PATH, installerPath) = True) Then
o_sPath = installerPath
log.MOMDebugLog 1, "Got RACADM path from DRAC TOOLS"

ElseIf (VerifyInstallPath(DEF_RACADM_PATH) = True) Then
o_sPath = DEF_RACADM_PATH
log.MOMDebugLog 1, "Got RACADM path using the Default RACADM path : " &amp; DEF_RACADM_PATH

Else
log.MOMDebugLog 1, "Did Not Get RACADM Path from either OMSA or DRAC Tools"

End If

If Err &lt;&gt; 0 Then
GetRACADMPath = Err.Number
Err.Clear
End If
End Function
'*****************************************************************
'DelFile
'Routine to delete the OMSA Report file
'*****************************************************************
Function DelFile(ByVal filespec2)
On Error Resume Next
Dim fso, oFile
If bFileExists(filespec2) Then
Set fso = CreateObject("Scripting.FileSystemObject")
fso.DeleteFile filespec2, True
Set fso = Nothing
End If
If Err &lt;&gt; 0 Then
DelFile = Err.Number
Err.Clear
End If
On Error Goto 0
End Function

Private Function ExecuteQuery(ByRef cmd, ByRef module)
dim wsShell : Set wsShell = Createobject("WScript.Shell")
dim wshSysEnv : Set wshSysEnv = wsShell.Environment
dim tFolder : tFolder = wshSysEnv("TEMP")
dim wshPrcEnv : Set wshPrcEnv = wsShell.Environment("Process")
tFolder = Replace(tFolder, "%SystemRoot%", wshPrcEnv("SYSTEMROOT"), 1, -1, vbTextCompare)
Dim TypeLib, NewGUID, fileGuid, strCommand, oShell, rc, racadmPath, timeout, RunRemoteCmd
Set TypeLib = CreateObject("Scriptlet.TypeLib")
NewGUID = TypeLib.Guid
fileGuid= (left(NewGUID, len(NewGUID)-2))
GetRACADMPath racadmPath
strRacadmFileOutput = tFolder &amp; "\Dell_ChassisDetailed_" &amp; fileGuid &amp; ".txt"
If (StrComp(module, "Not Applicable") = 0) Then
strCommand = "cmd /C " &amp; chr(34) &amp; racadmPath &amp; "\" &amp; "racadm.exe" &amp; Chr(34) &amp; " -r " &amp; m_IPAddress &amp; ":" &amp; m_Port &amp; " -u " &amp; m_Username &amp; " -p " &amp; m_Password &amp; " " &amp; cmd &amp; " &gt; " &amp; strRacadmFileOutput
else
strCommand = "cmd /C " &amp; chr(34) &amp; racadmPath &amp; "\" &amp; "racadm.exe" &amp; Chr(34) &amp; " -r " &amp; m_IPAddress &amp; ":" &amp; m_Port &amp; " -u " &amp; m_Username &amp; " -p " &amp; m_Password &amp; " " &amp; cmd &amp; " " &amp; " -m " &amp; " " &amp; module &amp; " &gt; " &amp; strRacadmFileOutput
End If
Set oShell = CreateObject ("WScript.Shell")
rc = oShell.run (strCommand,0,true)
WScript.Sleep(1000)
if(rc = 0) Then
log.MOMDebugLog 1, "racadm for command--" &amp; cmd &amp; " is successful"
ExecuteQuery = "Successful"
else
log.MOMDebugLog 1, "RunRemoteCMD error: " &amp; cmd
DelFile(strRacadmFileOutput)
ExecuteQuery = "NotSuccessful"
End If
End Function

'*****************************************************************
'RemoveWhiteSpaces
'Routine to
'*****************************************************************
Function RemoveWhiteSpace(ByVal strText)
Dim RegEx
Set RegEx = New RegExp
RegEx.Pattern = "\s\s+"
'RegEx.MultistrLine = True
RegEx.Global = True
strText = RegEx.Replace(strText,"#")
RemoveWhiteSpace = strText
End Function

'*****************************************************************
'Removes whitespaces from the String(strLine) and then excecute regular
'expression to get headers list
'*****************************************************************
Function GetHeadersList(ByVal strLine, ByRef listOfHeaders)
Dim regExHeader
Set regExHeader = New RegExp
regExHeader.Pattern = "&lt;(\w*\s*){1,}&gt;"
regExHeader.IgnoreCase = vbTrue
regExHeader.Global = vbTrue
strLine = Trim(strLine)
strLine = RemoveWhiteSpace(strLine)
Set listOfHeaders = regExHeader.Execute(strLine)
GetHeadersList = strLine
End Function

Public Function populateracadmDictionary
Dim cmd, errcode
Dim i,j
Dim TempDict, TempKeys
Dim field
Dim objLogFSO1, oFile, strLine, LineItems, item, header, listOfHeaders
Dim getmodinfoPresence, getversionPresence, getioinfoPresence, getniccfgPresence
getmodinfoPresence = "No"
getversionPresence = "No"
getioinfoPresence = "No"
getniccfgPresence = "No"
log.MOMDebugLog 1, "Creating racadm profile dictionary--"
For Each cmd in m_cmdlist
log.MOMDebugLog 1, "command is--" &amp; cmd
If (StrComp(cmd, "getmodinfo") = 0) Then
If(StrComp(ExecuteQuery(cmd, "Not Applicable"),"Successful") = 0) Then
If Not bFileExists(strRacadmFileOutput) Then
log.MOMDebugLog 1, "strRacadmFileOutput does not exist - " &amp; strRacadmFileOutput
Else
Set objLogFSO1 = CreateObject("Scripting.FileSystemObject")
Set oFile = objLogFSO1.OpenTextFile(strRacadmFileOutput, ForReading, False)
Do While Not oFile.AtEndOfStream
strLine = Trim(oFile.ReadLine)
If Instr(Lcase(strLine),"error") Then
log.MOMDebugLog 1, " ERROR: Error in RemoteRacadm Output " &amp; strLine
Err.Clear
ElseIf Instr(LCase(strLine),Lcase("ERROR: Unable to")) Then
log.MOMDebugLog 1, " ERROR: LOGIN IP/PORT/CREDENTIAL issue: " &amp; strLine
ElseIf Instr(LCase(strLine),"&lt;") Then
strLine = GetHeadersList(strLine,listOfHeaders)
Set TempDict = CreateObject("Scripting.Dictionary")
TempDict.CompareMode = vbTextCompare
For Each header In listOfHeaders
TempDict.Add header.Value, "NA"
Next
TempKeys = TempDict.Keys
j = TempDict.Count
Dim getmodInstanceObj
Set getmodInstanceObj = New racadmCmdInstancesCreator
Do While Not oFile.AtEndOfStream
strLine = oFile.Readline
If ( (IsEmpty(strLine) &lt;&gt; True ) And (strLine &lt;&gt; "") ) Then
strLine = Trim(strLine)
strLine = RemoveWhiteSpace(strLine)
LineItems = split(strLine,"#")
field = Lcase(LineItems(0))
If Instr(field,"cmc") Then
getmodinfoPresence = "Yes"
Dim getmodInstanceCMCAttributes
Set getmodInstanceCMCAttributes = New racadmCmdInstanceAttributeCreator
log.MOMDebugLog 1, "getmodinfo Key value pairs are"
For i = 0 to (j-1)
log.MOMDebugLog 1, "Key:" &amp; TempKeys(i) &amp; "Value:" &amp; LineItems(i)
Call getmodInstanceCMCAttributes.AddAttributeDictionary(TempKeys(i), LineItems(i))
Next
Call getmodInstanceObj.AddInstanceDictionary(field, getmodInstanceCMCAttributes)
End If
End If
Loop
End If
Loop
oFile.close
'Clean up the CLI Output : Delete %WINTEMP% \ %Guid1% .txt
errcode = DelFile(strRacadmFileOutput)
If errcode &lt;&gt; 0 Then
log.MOMDebugLog 1, " WARNING:! - DelFile error " &amp; strRacadmFileOutput
End If
End If
If( StrComp(getmodinfoPresence,"Yes") = 0) Then
log.MOMDebugLog 1, "racadm dictionary is populated with key as---" &amp; cmd
Call AddCommandDictionary(cmd,getmodInstanceObj)
End If
End If
End If

If (StrComp(cmd, "getversion") = 0) Then
If(StrComp(ExecuteQuery(cmd, "Not Applicable"),"Successful") = 0) Then
If Not bFileExists(strRacadmFileOutput) Then
log.MOMDebugLog 1, "strRacadmFileOutput does not exist - " &amp; strRacadmFileOutput
Else
Set objLogFSO1 = CreateObject("Scripting.FileSystemObject")
Set oFile = objLogFSO1.OpenTextFile(strRacadmFileOutput, ForReading, False)
Do While Not oFile.AtEndOfStream
strLine = Trim(oFile.ReadLine)
If Instr(Lcase(strLine),"error") Then
log.MOMDebugLog 1, " ERROR: Error in RemoteRacadm Output " &amp; strLine
Err.Clear
ElseIf Instr(LCase(strLine),Lcase("ERROR: Unable to")) Then
log.MOMDebugLog 1, " ERROR: LOGIN IP/PORT/CREDENTIAL issue: " &amp; strLine
ElseIf Instr(LCase(strLine),"&lt;cmc") Then
strLine = GetHeadersList(strLine,listOfHeaders)
Set TempDict = CreateObject("Scripting.Dictionary")
TempDict.CompareMode = vbTextCompare
For Each header in listOfHeaders
TempDict.Add header.value, "NA"
Next
TempKeys = TempDict.Keys
j = TempDict.Count
Dim getversionInstanceObj
Set getversionInstanceObj = New racadmCmdInstancesCreator
Do While Not oFile.AtEndOfStream
strLine = oFile.Readline
If ( (IsEmpty(strLine) &lt;&gt; True ) And (strLine &lt;&gt; "")) Then
strLine = Trim(strLine)
strLine = RemoveWhiteSpace(strLine)
LineItems = split(strLine,"#")
field = Lcase(LineItems(0))
If Instr(field,"cmc") Then
getversionPresence = "Yes"
Dim getversionInstanceCMCAttributes
Set getversionInstanceCMCAttributes = New racadmCmdInstanceAttributeCreator
For i = 0 to (j-1)
log.MOMDebugLog 1, "Key is" &amp; TempKeys(i) &amp; "Value is:" &amp; LineItems(i)
Call getversionInstanceCMCAttributes.AddAttributeDictionary(TempKeys(i), LineItems(i))
Next
Call getversionInstanceObj.AddInstanceDictionary(field, getversionInstanceCMCAttributes)
End If
End If
Loop
End If
Loop

oFile.close
'Clean up the CLI Output : Delete %WINTEMP% \ %Guid1% .txt
errcode = DelFile(strRacadmFileOutput)
If errcode &lt;&gt; 0 Then
log.MOMDebugLog 1, " WARNING:! - DelFile error " &amp; strRacadmFileOutput
End If

End If
If (StrComp(getversionPresence, "Yes") = 0) Then
log.MOMDebugLog 1, "racadm dictionary is populated with key as---" &amp; cmd
Call AddCommandDictionary(cmd,getversionInstanceObj)
End If
End If
End If

If (StrComp(cmd,"getioinfo") = 0) Then
Dim switchline
If(StrComp(ExecuteQuery(cmd, "Not Applicable"),"Successful") = 0) Then
If Not bFileExists(strRacadmFileOutput) Then
log.MOMDebugLog 1, "strRacadmFileOutput does not exist - " &amp; strRacadmFileOutput
Else
Set objLogFSO1 = CreateObject("Scripting.FileSystemObject")
Set oFile = objLogFSO1.OpenTextFile(strRacadmFileOutput, ForReading, False)
Set TempDict = CreateObject("Scripting.Dictionary")
TempDict.CompareMode = vbTextCompare
TempDict.Add "switchLine", " "
Dim getioinfoInstanceObj
Set getioinfoInstanceObj = New racadmCmdInstancesCreator
Do While Not oFile.AtEndOfStream
strLine = Trim(oFile.ReadLine)
If ( (IsEmpty(strLine) &lt;&gt; True ) And (strLine &lt;&gt; "") ) Then
If Instr(Lcase(strLine),"error") Then
log.MOMDebugLog 1, " ERROR: Error in RemoteRacadm Output " &amp; strLine
Err.Clear
ElseIf Instr(LCase(strLine),Lcase("ERROR: Unable to")) Then
log.MOMDebugLog 1, " ERROR: LOGIN IP/PORT/CREDENTIAL issue: " &amp; strLine
Else
strLine = RemoveWhiteSpace(strLine)
LineItems = split(strLine,"#")
field = Lcase(LineItems(0))
Log.MOMDebugLog 1, "field value is " &amp; field

If(Instr(field,"switch")) Then
Dim getIOInstanceObj
Set getIOInstanceObj = New racadmCmdInstancesCreator
TempKeys = TempDict.Keys
j = TempDict.Count
getioinfoPresence = "Yes"
Dim getioinfoinstanceattrObj
Set getioinfoinstanceattrObj = New racadmCmdInstanceAttributeCreator
switchline = field
For i = 0 to (j-1)
log.MOMDebugLog 1, "Key is" &amp; TempKeys(i) &amp; "Value is:" &amp; strLine
Call getioinfoinstanceattrObj.AddAttributeDictionary(TempKeys(i),switchline)
Next
Call getioinfoInstanceObj.AddInstanceDictionary(field, getioinfoinstanceattrObj)
End If
End If
End If
Loop
oFile.close
'Clean up the CLI Output : Delete %WINTEMP% \ %Guid1% .txt
errcode = DelFile(strRacadmFileOutput)
If errcode &lt;&gt; 0 Then
log.MOMDebugLog 1, " WARNING:! - DelFile error " &amp; strRacadmFileOutput
End If

End If

If (StrComp(getioinfoPresence, "Yes") = 0) Then
log.MOMDebugLog 1, "racadm dictionary is populated with key as---" &amp; cmd
Call AddCommandDictionary(cmd,getioinfoInstanceObj)
'getniccfg is called for each key created by getioinfo command
Dim obj1, m_commandDictionary, cmdDictKeys, m_cmdObjectAttrObj, attrKey, cmdKey, fieldval, tempval
If (m_racadmDictionary.Exists(cmd)) Then
Set obj1 = m_racadmDictionary.Item(cmd)
Set m_commandDictionary = obj1.getcommandDictionary
cmdDictKeys = m_commandDictionary.Keys
For Each cmdKey in cmdDictKeys
If (m_commandDictionary.Exists(cmdKey)) Then
Set m_cmdObjectAttrObj = m_commandDictionary.Item(cmdKey)
End If
log.MOMDebugLog 1, "command key passed is" &amp; cmdKey
If(StrComp(ExecuteQuery("getniccfg",cmdKey),"Successful") = 0) Then
If Not bFileExists(strRacadmFileOutput) Then
log.MOMDebugLog 1, "strRacadmFileOutput does not exist - " &amp; strRacadmFileOutput
Else
Set objLogFSO1 = CreateObject("Scripting.FileSystemObject")
Set oFile = objLogFSO1.OpenTextFile(strRacadmFileOutput, ForReading, False)
Do While Not oFile.AtEndOfStream
strLine = Trim(oFile.ReadLine)
If ( (IsEmpty(strLine) &lt;&gt; True ) And (strLine &lt;&gt; "") ) Then
If Instr(Lcase(strLine),"error") Then
log.MOMDebugLog 1, " ERROR: Error in RemoteRacadm Output " &amp; strLine
Err.Clear
ElseIf Instr(LCase(strLine),Lcase("ERROR: Unable to")) Then
log.MOMDebugLog 1, " ERROR: LOGIN IP/PORT/CREDENTIAL issue: " &amp; strLine
Else
strLine = RemoveWhiteSpace(strLine)
LineItems = split(strLine,"#")
field = Lcase(LineItems(0))
log.MOMDebugLog 1, "sentence is --" &amp; strLine
log.MOMDebugLog 1, "field is " &amp; field

If (StrComp(field, "ip address") = 0) Then
fieldval = LineItems(1)
tempval = split(fieldval," ")
log.MOMDebugLog 1, "Key matched--" &amp; field
Call m_cmdObjectAttrObj.AddAttributeDictionary(field, tempval(1))
End If

If (StrComp(field, "subnet mask") = 0) Then
fieldval = LineItems(1)
tempval = split(fieldval," ")
log.MOMDebugLog 1, "Key matched--" &amp; field
Call m_cmdObjectAttrObj.AddAttributeDictionary(field, tempval(1))
End If
If (StrComp(field, "gateway") = 0) Then
fieldval = LineItems(1)
tempval = split(fieldval," ")
log.MOMDebugLog 1, "Key matched--" &amp; field
Call m_cmdObjectAttrObj.AddAttributeDictionary(field, tempval(1))
End If
End If
End If
Loop
oFile.close
'Clean up the CLI Output : Delete %WINTEMP% \ %Guid1% .txt
errcode = DelFile(strRacadmFileOutput)
If errcode &lt;&gt; 0 Then
log.MOMDebugLog 1, " WARNING:! - DelFile error " &amp; strRacadmFileOutput
End If
End If
End If
Next
End If
End If
End If
End If
Next
If ((StrComp(getmodinfoPresence,"Yes") = 0) And (StrComp(getversionPresence,"Yes") = 0) And (StrComp(getioinfoPresence,"Yes") = 0) ) Then
populateracadmDictionary = "Yes"
else
populateracadmDictionary = "No"
End If
End Function

Public Function IsRacadmPresent()
Dim getPath,returnVal
returnVal = "No"
getPath = ""
GetRACADMPath getPath
If getPath &lt;&gt; "" THEN
returnVal = "Yes"
END If
IsRacadmPresent = returnVal
End Function
End Class


Class StoragePreChecker
Dim m_Protocol, m_ProtParameterObj, m_ProfileClassDict, m_componentInventoryProfileHandle
Dim m_protocolHelperObject, protFactoryObj, m_ProfileClassList, storageInfoObject

Private Sub Class_Initialize
Const ALL_PRODUCT_VERSIONS = ""
m_Protocol = ""
Set m_ProfileClassDict = CreateObject("Scripting.Dictionary")
m_ProfileClassDict.CompareMode = vbTextCompare
End Sub

Public Function setProtocol(ByRef protocol)
m_Protocol = protocol
End Function

Public Function setProtocolParameterObject(ByRef ProtParameterObj)
Set m_ProtParameterObj = ProtParameterObj
End Function

Public Function setComponentInventoryProfileHandle(ByRef componentInventoryProfileHandleObj)
Set m_componentInventoryProfileHandle = componentInventoryProfileHandleObj
End Function

Public Function setProfileClasses(ByRef profClass)
Dim message
If (m_ProfileClassDict.Exists(profClass)) Then
message = "Profile Class exist"
Else
m_ProfileClassDict.Add profClass, "NA"
message = "Profile Class does not exist"
End If
End Function

Public Function IsStorageAvailable()
Dim attributeName, attributeValue, profileClass,returnVal, manufacturer
Dim profileInstance, profileInstanceList
returnVal = "No"
log.MOMDebugLog 1, "Verifiying Chassis Storage Inventory."
If m_componentInventoryProfileHandle Is Nothing Then
log.MOMDebugLog 1, "Dell deivice helper is not succeded in verification of Chassis Storage Inventory."
Else
For Each profileClass in m_ProfileClassList
log.MOMDebugLog 1, "profileClass:" &amp; profileClass
Set profileInstanceList = m_componentInventoryProfileHandle.Item(profileClass)
For Each profileInstance In profileInstanceList
attributeName = "DeviceCardManufacturer"
attributeValue = profileInstance.getProfileAttributeValue(attributeName)
log.MOMDebugLog 1, "attributeName:" &amp; attributeName &amp; ", attributeValue:" &amp; attributeValue

manufacturer = Trim(Lcase(attributeValue))
If instr(manufacturer, "dell ") = 1 OR manufacturer = "dell" OR manufacturer = "" Then

'For OEM Ready chassis manufacturer is blank in this case, in SCOM console it should display like "Not Available"
If manufacturer = "" OR IsNull(manufacturer) Then
attributeValue = "Not Available"
End If
log.MOMDebugLog 1, "Storage Controller Manufacturer found to be" &amp; attributeValue
log.MOMDebugLog 1, "Dell deivice helper has completed for Chassis Storage Inventory"
returnVal = "Yes"
Else
log.MOMDebugLog 1, "Not discovering as Manufacturer name is " &amp; manufacturer
End If

Next
Next

End If
IsStorageAvailable = returnVal
End Function

Public Function fetchStorageControllerInfoFromDevice()
Set protFactoryObj = New ProtocolFactory
Set m_protocolHelperObject = protFactoryObj.getProtocolHelperObject(m_Protocol, m_ProtParameterObj)
m_ProfileClassList = m_ProfileClassDict.Keys
m_protocolHelperObject.ProfileNameArrayObj = m_ProfileClassList
Set storageInfoObject = m_protocolHelperObject.GetProfileDictionary()
log.MOMDebugLog 1, "Received the Profile Dictionary from DellDeviceHelper."
Set fetchStorageControllerInfoFromDevice = storageInfoObject
End Function
End Class

Class PCIeDevicePreChecker

Dim m_Protocol, m_ProtParameterObj, m_ProfileClassDict, m_componentInventoryProfileHandle
Dim m_protocolHelperObject, protFactoryObj, m_ProfileClassList, storageInfoObject

Private Sub Class_Initialize
Const ALL_PRODUCT_VERSIONS = ""
m_Protocol = ""
Set m_ProfileClassDict = CreateObject("Scripting.Dictionary")
m_ProfileClassDict.CompareMode = vbTextCompare
End Sub

Public Function setProtocol(ByRef protocol)
m_Protocol = protocol
End Function

Public Function setProtocolParameterObject(ByRef ProtParameterObj)
Set m_ProtParameterObj = ProtParameterObj
End Function

Public Function setComponentInventoryProfileHandle(ByRef componentInventoryProfileHandleObj)
Set m_componentInventoryProfileHandle = componentInventoryProfileHandleObj
End Function

Public Function setProfileClasses(ByRef profClass)
Dim message
If (m_ProfileClassDict.Exists(profClass)) Then
message = "Profile Class exist"
Else
m_ProfileClassDict.Add profClass, "NA"
message = "Profile Class does not exist"
End If
End Function

Public Function IsPCIeDeviceAvailable()
Dim returnVal, profileClass
Dim profileInstance, profileInstanceList
returnVal = "No"
log.MOMDebugLog 1, "Verifying PCIe Device Inventory"
If m_componentInventoryProfileHandle Is Nothing Then
log.MOMDebugLog 1, "Dell deivice helper is not succeded in verification of PCIe Device Inventory"
Else
For Each profileClass in m_ProfileClassList
log.MOMDebugLog 1, "profileClass:" &amp; profileClass
Set profileInstanceList = m_componentInventoryProfileHandle.Item(profileClass)
For Each profileInstance In profileInstanceList
log.MOMDebugLog 1, "Dell deivice helper had successfuly verified PCIe Device Inventory"
returnVal = "Yes"
Exit For
Next
Next
End If
IsPCIeDeviceAvailable = returnVal
End Function

Public Function fetchStorageControllerInfoFromDevice()
Set protFactoryObj = New ProtocolFactory
Set m_protocolHelperObject = protFactoryObj.getProtocolHelperObject(m_Protocol, m_ProtParameterObj)
m_ProfileClassList = m_ProfileClassDict.Keys
m_protocolHelperObject.ProfileNameArrayObj = m_ProfileClassList
Set storageInfoObject = m_protocolHelperObject.GetProfileDictionary()
log.MOMDebugLog 1, "Received the Profile Dictionary from DellDeviceHelper DLL."
Set fetchStorageControllerInfoFromDevice = storageInfoObject
End Function
End Class

Class FanDevicePreChecker

Dim m_Protocol, m_ProtParameterObj, m_ProfileClassDict, m_componentInventoryProfileHandle
Dim m_protocolHelperObject, protFactoryObj, m_ProfileClassList, storageInfoObject

Private Sub Class_Initialize
Const ALL_PRODUCT_VERSIONS = ""
m_Protocol = ""
Set m_ProfileClassDict = CreateObject("Scripting.Dictionary")
m_ProfileClassDict.CompareMode = vbTextCompare
End Sub

Public Function setProtocol(ByRef protocol)
m_Protocol = protocol
End Function

Public Function setProtocolParameterObject(ByRef ProtParameterObj)
Set m_ProtParameterObj = ProtParameterObj
End Function

Public Function setComponentInventoryProfileHandle(ByRef componentInventoryProfileHandleObj)
Set m_componentInventoryProfileHandle = componentInventoryProfileHandleObj
End Function

Public Function setProfileClasses(ByRef profClass)
Dim message
If (m_ProfileClassDict.Exists(profClass)) Then
message = "Profile Class exist"
Else
m_ProfileClassDict.Add profClass, "NA"
message = "Profile Class does not exist"
End If
End Function

Public Function IsFanDeviceAvailable()
Dim returnVal
log.MOMDebugLog 1, "Verifying Fan Device Inventory"
If m_componentInventoryProfileHandle Is Nothing Then
log.MOMDebugLog 1, "Dell Device helper is not succeded in verification of Fan Device Inventory"
returnVal = "No"
Else
log.MOMDebugLog 1, "Dell Device helper had DLL succefully verified Fan Device Inventory"
returnVal = "Yes"
End If
IsFanDeviceAvailable = returnVal
End Function

Public Function fetchStorageControllerInfoFromDevice()
Set protFactoryObj = New ProtocolFactory
Set m_protocolHelperObject = protFactoryObj.getProtocolHelperObject(m_Protocol, m_ProtParameterObj)
m_ProfileClassList = m_ProfileClassDict.Keys
m_protocolHelperObject.ProfileNameArrayObj = m_ProfileClassList
Set storageInfoObject = m_protocolHelperObject.GetProfileDictionary()
log.MOMDebugLog 1, "Received the Profile Dictionary from DellDeviceHelper DLL."
Set fetchStorageControllerInfoFromDevice = storageInfoObject
End Function
End Class

Class IOModulePreChecker

Dim m_Protocol, m_ProtParameterObj, m_ProfileClassDict, m_componentInventoryProfileHandle
Dim m_protocolHelperObject, protFactoryObj, m_ProfileClassList, storageInfoObject

Private Sub Class_Initialize
Const ALL_PRODUCT_VERSIONS = ""
m_Protocol = ""
Set m_ProfileClassDict = CreateObject("Scripting.Dictionary")
m_ProfileClassDict.CompareMode = vbTextCompare
End Sub

Public Function setProtocol(ByRef protocol)
m_Protocol = protocol
End Function

Public Function setProtocolParameterObject(ByRef ProtParameterObj)
Set m_ProtParameterObj = ProtParameterObj
End Function

Public Function setComponentInventoryProfileHandle(ByRef componentInventoryProfileHandleObj)
Set m_componentInventoryProfileHandle = componentInventoryProfileHandleObj
End Function

Public Function setProfileClasses(ByRef profClass)
Dim message
If (m_ProfileClassDict.Exists(profClass)) Then
message = "Profile Class exist"
Else
m_ProfileClassDict.Add profClass, "NA"
message = "Profile Class does not exist"
End If
End Function

Public Function IsIOModuleAvailable()
Dim returnVal
log.MOMDebugLog 1, "Verifying IO Module"
If m_componentInventoryProfileHandle Is Nothing Then
log.MOMDebugLog 1, "Dell Device Helper is not succeded in verification of IO Module"
returnVal = "No"
Else
log.MOMDebugLog 1, "Dell Device Helper had successfully verified IO Module"
returnVal = "Yes"
End If
IsIOModuleAvailable = returnVal
End Function

Public Function fetchStorageControllerInfoFromDevice()
Set protFactoryObj = New ProtocolFactory
Set m_protocolHelperObject = protFactoryObj.getProtocolHelperObject(m_Protocol, m_ProtParameterObj)
m_ProfileClassList = m_ProfileClassDict.Keys
m_protocolHelperObject.ProfileNameArrayObj = m_ProfileClassList
Set storageInfoObject = m_protocolHelperObject.GetProfileDictionary()
log.MOMDebugLog 1, "Received the Profile Dictionary from DellDeviceHelper DLL."
Set fetchStorageControllerInfoFromDevice = storageInfoObject
End Function
End Class

Class PowerSupplyPreChecker

Dim m_Protocol, m_ProtParameterObj, m_ProfileClassDict, m_componentInventoryProfileHandle
Dim m_protocolHelperObject, protFactoryObj, m_ProfileClassList, storageInfoObject

Private Sub Class_Initialize
Const ALL_PRODUCT_VERSIONS = ""
m_Protocol = ""
Set m_ProfileClassDict = CreateObject("Scripting.Dictionary")
m_ProfileClassDict.CompareMode = vbTextCompare
End Sub

Public Function setProtocol(ByRef protocol)
m_Protocol = protocol
End Function

Public Function setProtocolParameterObject(ByRef ProtParameterObj)
Set m_ProtParameterObj = ProtParameterObj
End Function

Public Function setComponentInventoryProfileHandle(ByRef componentInventoryProfileHandleObj)
Set m_componentInventoryProfileHandle = componentInventoryProfileHandleObj
End Function

Public Function setProfileClasses(ByRef profClass)
Dim message
If (m_ProfileClassDict.Exists(profClass)) Then
message = "Profile Class exist"
Else
m_ProfileClassDict.Add profClass, "NA"
message = "Profile Class does not exist"
End If
End Function

Public Function IsPowerSupplyAvailable()
Dim returnVal
log.MOMDebugLog 1, "Verifying Power Supply Module"
If m_componentInventoryProfileHandle Is Nothing Then
log.MOMDebugLog 1, "Dell Device Helper is not succeded in verification of Power Supply Module"
returnVal = "No"
Else
log.MOMDebugLog 1, "Dell Device Helper had successfully verified Power Supply Module"
returnVal = "Yes"
End If
IsPowerSupplyAvailable = returnVal
End Function

Public Function fetchStorageControllerInfoFromDevice()
Set protFactoryObj = New ProtocolFactory
Set m_protocolHelperObject = protFactoryObj.getProtocolHelperObject(m_Protocol, m_ProtParameterObj)
m_ProfileClassList = m_ProfileClassDict.Keys
m_protocolHelperObject.ProfileNameArrayObj = m_ProfileClassList
Set storageInfoObject = m_protocolHelperObject.GetProfileDictionary()
log.MOMDebugLog 1, "Received the Profile Dictionary from DellDeviceHelper DLL."
Set fetchStorageControllerInfoFromDevice = storageInfoObject
End Function
End Class

Class CMCPreChecker

Dim m_Protocol, m_ProtParameterObj, m_ProfileClassDict, m_componentInventoryProfileHandle
Dim m_protocolHelperObject, protFactoryObj, m_ProfileClassList, storageInfoObject

Private Sub Class_Initialize
Const ALL_PRODUCT_VERSIONS = ""
m_Protocol = ""
Set m_ProfileClassDict = CreateObject("Scripting.Dictionary")
m_ProfileClassDict.CompareMode = vbTextCompare
End Sub

Public Function setProtocol(ByRef protocol)
m_Protocol = protocol
End Function

Public Function setProtocolParameterObject(ByRef ProtParameterObj)
Set m_ProtParameterObj = ProtParameterObj
End Function

Public Function setComponentInventoryProfileHandle(ByRef componentInventoryProfileHandleObj)
Set m_componentInventoryProfileHandle = componentInventoryProfileHandleObj
End Function

Public Function setProfileClasses(ByRef profClass)
Dim message
If (m_ProfileClassDict.Exists(profClass)) Then
message = "Profile Class exist"
Else
m_ProfileClassDict.Add profClass, "NA"
message = "Profile Class does not exist"
End If
End Function

Public Function IsCMCAvailable()
Dim returnVal
log.MOMDebugLog 1, "Verifying CMC Module"
If m_componentInventoryProfileHandle Is Nothing Then
log.MOMDebugLog 1, "Dell Device Helper is not succeded in verification of CMC Module"
returnVal = "No"
Else
log.MOMDebugLog 1, "Dell Device Helper had successfully verified CMC Module"
returnVal = "Yes"
End If
IsCMCAvailable = returnVal
End Function

Public Function fetchStorageControllerInfoFromDevice()
Set protFactoryObj = New ProtocolFactory
Set m_protocolHelperObject = protFactoryObj.getProtocolHelperObject(m_Protocol, m_ProtParameterObj)
m_ProfileClassList = m_ProfileClassDict.Keys
m_protocolHelperObject.ProfileNameArrayObj = m_ProfileClassList
Set storageInfoObject = m_protocolHelperObject.GetProfileDictionary()
log.MOMDebugLog 1, "Received the Profile Dictionary from DellDeviceHelper DLL."
Set fetchStorageControllerInfoFromDevice = storageInfoObject
End Function
End Class

'**************************************************************************************************
'Storage Component Modeller code
'**************************************************************************************************
Class ChassisComponentModeller

Private m_enclosurePhysicalDiskMappingDict
Private m_controllerVirtualDiskMappingDict
Private m_momApiHelper
Private m_chassisUIDVal
Private m_oStoInst
Private m_ChassisInstance
Private m_fanGroupInstance
Private m_oPCIeGroupInst
Private m_oPowerSupplyGroupInst
Private m_VirtualDiskDict
Private m_oCMCGroupInst
Private m_oIOModuleGroupInst
Private Sub Class_Initialize
Set m_enclosurePhysicalDiskMappingDict = CreateObject("Scripting.Dictionary")
m_enclosurePhysicalDiskMappingDict.CompareMode = vbTextCompare
Set m_controllerVirtualDiskMappingDict = CreateObject("Scripting.Dictionary")
m_controllerVirtualDiskMappingDict.CompareMode = vbTextCompare
Set m_VirtualDiskDict = CreateObject("Scripting.Dictionary")
m_VirtualDiskDict.CompareMode = vbTextCompare
End Sub

Public Function destroyCOMObjects()
m_enclosurePhysicalDiskMappingDict.RemoveAll
m_controllerVirtualDiskMappingDict.RemoveAll
set m_enclosurePhysicalDiskMappingDict = Nothing
set m_controllerVirtualDiskMappingDict = Nothing
End Function

Public Function setMomApiHelper(ByRef mApiHelpObj)
Set m_momApiHelper = mApiHelpObj
End Function

Public Function getStorageInstance()
Set getStorageInstance = m_oStoInst
End Function

Public Function getChassisInstance()
Set getChassisInstance = m_ChassisInstance
End Function

Public Function getFanGroupInstance()
Set getFanGroupInstance = m_fanGroupInstance
End Function

Public Function setChassisUID(chassisUIDVal)
m_chassisUIDVal = chassisUIDVal
End Function

Public Function getChassisPCIeGroupInstance()
Set getChassisPCIeGroupInstance = m_oPCIeGroupInst
End Function

Public Function getChassisCMCGroupInstance()
Set getChassisCMCGroupInstance = m_oCMCGroupInst
End Function
Public Function getChassisIOModuleGroupInstance()
Set getChassisIOModuleGroupInstance = m_oIOModuleGroupInst
End Function


Public Function getChassisPowerSupplyGroupInstance()
Set getChassisPowerSupplyGroupInstance = m_oPowerSupplyGroupInst
End Function


Public Function performChassisPowerSupplyModelling(Chassis_PowerSupplyList, Chassis_PSPackList, Chassis_PSSlotList )
Dim className, componentInstance
'Create Chassis Power supply Group
className = "Dell.Chassis.PowerSupplyGroup"
Set componentInstance = creatorFactory.Item(className)
call componentInstance.setKeyProperty("Microsoft.Windows.Computer/PrincipalName", principalName)
call componentInstance.setKeyProperty(className &amp; "/" &amp; "ID", m_chassisUIDVal)
Set m_oPowerSupplyGroupInst = componentInstance.CreateAndPopulateInstance(m_momApiHelper, componentInstance, "Power Supply Group")

Dim nameDict, fqddDict, manuDict, slotDict, classId, serialNumberDict, partNumberDict, capacityDict, modelDict
Dim keys, name, fqdd, manufacturer, serialnumber, partnumber, capacity, slot, model, key
className = "Dell.Chassis.PowerSupply"
Set nameDict = CreateObject("Scripting.Dictionary")
Set fqddDict = CreateObject("Scripting.Dictionary")
Set manuDict = CreateObject("Scripting.Dictionary")
Set slotDict = CreateObject("Scripting.Dictionary")
Set modelDict = CreateObject("Scripting.Dictionary")
Set serialNumberDict = CreateObject("Scripting.Dictionary")
Set partNumberDict = CreateObject("Scripting.Dictionary")
Set capacityDict = CreateObject("Scripting.Dictionary")
'create dictionary for different power supply attributes with common classId as key
CreateAttributeDictionaryFromObjList fqddDict, Chassis_PowerSupplyList, "ClassId", "FQDD"
log.MOMDebugLog 1, "fqdd filled"
CreateAttributeDictionaryFromObjList capacityDict, Chassis_PowerSupplyList, "ClassId", "Capacity"
CreateAttributeDictionaryFromObjList manuDict, Chassis_PSPackList, "ClassId", "Manufacturer"
CreateAttributeDictionaryFromObjList modelDict, Chassis_PSPackList, "ClassId", "Model"
CreateAttributeDictionaryFromObjList serialNumberDict, Chassis_PSPackList, "ClassId", "SerialNumber"
CreateAttributeDictionaryFromObjList partNumberDict, Chassis_PSPackList, "ClassId", "PartNumber"
CreateAttributeDictionaryFromObjList nameDict, Chassis_PSPackList, "ClassId", "Name"
CreateAttributeDictionaryFromObjList slotDict, Chassis_PSSlotList, "ClassId", "Slot"
'get the list of keys; these keys are common in all the other Dictionaries
keys = fqddDict.Keys
'since the count of all dictionary is same; traverse with namedict
For i=0 to fqddDict.Count -1
'get the value of ClassId which can be used to index other dictionary
key = keys(i)
name = nameDict.item(key)
fqdd = fqddDict.item(key)
manufacturer = manuDict.item(key)
slot = slotDict.item(key)
serialnumber = serialNumberDict.item(key)
partnumber = partNumberDict.item(key)
capacity = capacityDict.item(key)
model = modelDict.item(key)
'create the Power Supply unit object
Set componentInstance = creatorFactory.Item(className)
call componentInstance.setKeyProperty("Microsoft.Windows.Computer/PrincipalName", principalName)
call componentInstance.setKeyProperty("Dell.Chassis.PowerSupplyGroup" &amp; "/" &amp; "ID", m_chassisUIDVal)
call componentInstance.setKeyProperty("Dell.Chassis.PowerSupply" &amp; "/" &amp; "FQDD", fqdd)
call componentInstance.CreateAndPopulateInstance(m_momApiHelper, manufacturer, slot, serialnumber, partnumber, capacity, name, model)
call componentInstance.ClearKeyProperties()
Next

End Function

Public Function performChassisCMCModelling(ByRef cmc_ChMgrPckgList, ByRef cmc_racadm_getmodinfolist, ByRef cmc_racadm_getversionlist, ByRef wsmanPresence, ByRef racadmPresence)
Dim className, componentInstance, cmc_racadm_getmodinfo, cmc_ChMgrPckg, cmc_racadm_getversion
Dim model, manufacturer, serialNumber, partNumber, firmwareVersion
Dim wsmanattrDict
Set wsmanattrDict = CreateObject("Scripting.Dictionary")
wsmanattrDict.CompareMode = vbTextCompare

log.MOMDebugLog 1, "Creating CMC components"
'Create Chassis CMC group
className = "Dell.Chassis.CMCGroup"
Set componentInstance = creatorFactory.Item(className)
call componentInstance.setKeyProperty("Microsoft.Windows.Computer/PrincipalName", principalName)
call componentInstance.setKeyProperty(className &amp; "/" &amp; "ID", m_chassisUIDVal)
Set m_oCMCGroupInst = componentInstance.CreateAndPopulateInstance(m_momApiHelper, componentInstance, "CMC Group")
className = "Dell.Chassis.CMC"
If(StrComp(racadmPresence,"Yes") = 0) Then
For Each cmc_racadm_getmodinfo in cmc_racadm_getmodinfolist
For Each cmc_racadm_getversion in cmc_racadm_getversionlist
If ( StrComp(Lcase(cmc_racadm_getmodinfo.getattributevalue("module")), Lcase(cmc_racadm_getversion.getattributevalue("CMC"))) = 0) Then
If ( StrComp(Lcase(cmc_racadm_getmodinfo.getattributevalue("powerstatus")), "primary") = 0) Then
If(StrComp(wsmanPresence,"Yes") = 0) Then
For Each cmc_ChMgrPckg in cmc_ChMgrPckgList
model = cmc_ChMgrPckg.getattributevalue("Model")
manufacturer = cmc_ChMgrPckg.getattributevalue("Manufacturer")
serialNumber = cmc_ChMgrPckg.getattributevalue("SerialNumber")
partNumber = cmc_ChMgrPckg.getattributevalue("PartNumber")
Next
End If
wsmanattrDict.Add "model" , model
wsmanattrDict.Add "manufacturer" , manufacturer
wsmanattrDict.Add "serialNumber" , serialNumber
wsmanattrDict.Add "partNumber" , partNumber
Set componentInstance = creatorFactory.Item(className)
call componentInstance.setKeyProperty("Microsoft.Windows.Computer/PrincipalName", principalName)
call componentInstance.setKeyProperty("Dell.Chassis.CMCGroup" &amp; "/" &amp; "ID", m_chassisUIDVal)
call componentInstance.setKeyProperty(className &amp; "/" &amp; "FQDD", cmc_racadm_getmodinfo.getattributevalue("module"))
call componentInstance.CreateAndPopulateInstance(m_momApiHelper, cmc_racadm_getmodinfo, cmc_racadm_getversion, wsmanattrDict, racadmPresence)
call componentInstance.ClearKeyProperties()
wsmanattrDict.RemoveAll
Else
model = "Not Available"
manufacturer = "Not Available"
serialNumber = "Not Available"
partNumber = "Not Available"
wsmanattrDict.Add "model" , model
wsmanattrDict.Add "manufacturer" , manufacturer
wsmanattrDict.Add "serialNumber" , serialNumber
wsmanattrDict.Add "partNumber" , partNumber
Set componentInstance = creatorFactory.Item(className)
call componentInstance.setKeyProperty("Microsoft.Windows.Computer/PrincipalName", principalName)
call componentInstance.setKeyProperty("Dell.Chassis.CMCGroup" &amp; "/" &amp; "ID", m_chassisUIDVal)
call componentInstance.setKeyProperty(className &amp; "/" &amp; "FQDD", cmc_racadm_getmodinfo.getattributevalue("module"))
call componentInstance.CreateAndPopulateInstance(m_momApiHelper, cmc_racadm_getmodinfo, cmc_racadm_getversion, wsmanattrDict, racadmPresence)
call componentInstance.ClearKeyProperties()
wsmanattrDict.RemoveAll
End If
End If
Next
Next
Else
If(StrComp(wsmanPresence,"Yes") = 0) Then
For Each cmc_ChMgrPckg in cmc_ChMgrPckgList
model = cmc_ChMgrPckg.getattributevalue("Model")
manufacturer = cmc_ChMgrPckg.getattributevalue("Manufacturer")
serialNumber = cmc_ChMgrPckg.getattributevalue("SerialNumber")
partNumber = cmc_ChMgrPckg.getattributevalue("PartNumber")
firmwareVersion = cmc_ChMgrPckg.getattributevalue("FirmwareVersion")
Next
End If

wsmanattrDict.Add "model" , model
wsmanattrDict.Add "manufacturer" , manufacturer
wsmanattrDict.Add "serialNumber" , serialNumber
wsmanattrDict.Add "partNumber" , partNumber
wsmanattrDict.Add "powerstatus" , MsgRacadmNotPresent
wsmanattrDict.Add "firmwareversion" , firmwareVersion
Set componentInstance = creatorFactory.Item(className)
call componentInstance.setKeyProperty("Microsoft.Windows.Computer/PrincipalName", principalName)
call componentInstance.setKeyProperty("Dell.Chassis.CMCGroup" &amp; "/" &amp; "ID", m_chassisUIDVal)
call componentInstance.setKeyProperty(className &amp; "/" &amp; "FQDD", "CMC-Primary")
call componentInstance.CreateAndPopulateInstance(m_momApiHelper, cmc_racadm_getmodinfo, cmc_racadm_getversion, wsmanattrDict, racadmPresence)
call componentInstance.ClearKeyProperties()
wsmanattrDict.RemoveAll
End If
End Function


Public Function performChassisIOmoduleModelling(ByRef iomodule_dell_passthroughList, ByRef iomodule_dell_iompackageList, ByRef iomodule_getioinfoList, ByRef racadmPresence)
Dim className, componentInstance
Dim iom_passthroughComp, io_getioinfoComp, iom_packageComp, getniccfgDict
Dim IpAddress, SubnetMask, Gateway
Dim iomoduleNum, switchName
IPAddress = "Not Available"
SubnetMask = "Not Available"
Gateway = "Not Available"
Set getniccfgDict = CreateObject("Scripting.Dictionary")
getniccfgDict.CompareMode = vbTextCompare
'Create Chassis IO Module group
className = "Dell.Chassis.IOModuleGroup"
Set componentInstance = creatorFactory.Item(className)
call componentInstance.setKeyProperty("Microsoft.Windows.Computer/PrincipalName", principalName)
call componentInstance.setKeyProperty(className &amp; "/" &amp; "ID", m_chassisUIDVal)
Set m_oIOModuleGroupInst = componentInstance.CreateAndPopulateInstance(m_momApiHelper, componentInstance, "IO Module Group")
className = "Dell.Chassis.IOModule"
For Each iom_packageComp in iomodule_dell_iompackageList
IPAddress = iom_packageComp.getattributevalue("IPAddress")
For Each iom_passthroughComp in iomodule_dell_passthroughList
If ( StrComp(iom_passthroughComp.getattributevalue("classID"), iom_packageComp.getattributevalue("classID") ) = 0 ) Then
If(StrComp(racadmPresence, "Yes") = 0) Then
iomoduleNum = Mid(iom_passthroughComp.getattributevalue("FQDD"),(Len("iom") + 1) )
switchName = "switch-" &amp; iomoduleNum
For Each io_getioinfoComp in iomodule_getioinfoList
log.MOMDebugLog 1, "component-- " &amp; iom_passthroughComp.getattributevalue("FQDD") &amp; " is trying to match with switch name is---- " &amp; io_getioinfoComp.getattributevalue("switchline")
If ( StrComp(switchName, io_getioinfoComp.getattributevalue("switchline")) = 0) Then
log.MOMDebugLog 1, "component--" &amp; iom_passthroughComp.getattributevalue("FQDD") &amp; "is matched with --" &amp; io_getioinfoComp.getattributevalue("switchline")
SubnetMask = io_getioinfoComp.getattributevalue("SubnetMask")
Gateway = io_getioinfoComp.getattributevalue("Gateway")
End If
Next
Else
SubnetMask = MsgRacadmNotPresent
Gateway = MsgRacadmNotPresent
End If
getniccfgDict.Add "IPAddress", IPAddress
getniccfgDict.Add "SubnetMask", SubnetMask
getniccfgDict.Add "Gateway", Gateway
Set componentInstance = creatorFactory.Item(className)
call componentInstance.setKeyProperty("Microsoft.Windows.Computer/PrincipalName", principalName)
call componentInstance.setKeyProperty("Dell.Chassis.IOModuleGroup" &amp; "/" &amp; "ID", m_chassisUIDVal)
call componentInstance.setKeyProperty(className &amp; "/" &amp; "FQDD", iom_passthroughComp.getattributevalue("FQDD"))
call componentInstance.CreateAndPopulateInstance(m_momApiHelper, iom_packageComp, iom_passthroughComp, getniccfgDict)
call componentInstance.ClearKeyProperties()
getniccfgDict.RemoveAll
End If
Next
Next
End Function



Public Function performChassisPCIeDeviceModelling(ByRef PCIeDeviceList, ByRef PCISlotList)
Dim className, componentInstance
Dim PCIeDeviceObj, PCIeSlotObj
log.MOMDebugLog 1, "Entered common chassis component creation"
'Create Chassis PCIeDeviceGroup
className = "Dell.Chassis.PCIeDeviceGroup"
Set componentInstance = creatorFactory.Item(className)
call componentInstance.setKeyProperty("Microsoft.Windows.Computer/PrincipalName", principalName)
call componentInstance.setKeyProperty(className &amp; "/" &amp; "ID", m_chassisUIDVal)
Set m_oPCIeGroupInst = componentInstance.CreateAndPopulateInstance(m_momApiHelper, componentInstance, "PCIe Device Group")

className = "Dell.Chassis.PCIeDevice"
'Create Chassis PCIe Device Instance
For Each PCIeDeviceObj In PCIeDeviceList
If Not IsNull(PCIeDeviceObj) Then
For Each PCIeSlotObj In PCISlotList
If Not IsNull(PCIeSlotObj) Then
If ( StrComp(PCIeDeviceObj.getAttributevalue("FQDD"), PCIeSlotObj.getAttributevalue("DeviceFQDD")) = 0) Then
'Create Controller Object
log.MOMDebugLog 1, "PCIeDevice with FQDD--" &amp; PCIeDeviceObj.getAttributevalue("FQDD") &amp; " has fabric value as--" &amp; PCIeSlotObj.getattributevalue("Fabric")
Set componentInstance = creatorFactory.Item(className)
call componentInstance.setKeyProperty("Microsoft.Windows.Computer/PrincipalName", principalName)
call componentInstance.setKeyProperty("Dell.Chassis.PCIeDeviceGroup" &amp; "/" &amp; "ID", m_chassisUIDVal)
call componentInstance.setKeyProperty(className &amp; "/" &amp; "FQDD", PCIeDeviceObj.getAttributevalue("FQDD"))
call componentInstance.CreateAndPopulateInstance(m_momApiHelper, PCIeDeviceObj, PCIeSlotObj, PCIeDeviceObj.getAttributevalue("FQDD"))
call componentInstance.ClearKeyProperties()
End If
End If
Next
End If
Next
End Function


Public Function chassisComponentCreation
Dim className, componentInstance
'Create Chassis Component Object
className = "Dell.ModularChassis.CMC"
Set componentInstance = creatorFactory.Item(className)
call componentInstance.setKeyProperty("Microsoft.Windows.Computer/PrincipalName", principalName)
call componentInstance.setKeyProperty(className &amp; "/" &amp; "UID", m_chassisUIDVal)
Set m_ChassisInstance = componentInstance.CreateAndPopulateInstance(m_momApiHelper, componentInstance, "Chassis")
End Function

Public Function performStorageComponentModelling(ByRef contList, enclList, enclPhyDiskList, enclVirtDiskList)
Dim controllerObj, enclObject, intEnclPhysDiskObjList, extEnclPhysDiskObjList, contVirtDiskObjList
Dim className, componentInstance

'Create Storage Component Object
className = "Dell.Chassis.Storage"
Set componentInstance = creatorFactory.Item(className)
call componentInstance.setKeyProperty("Microsoft.Windows.Computer/PrincipalName", principalName)
call componentInstance.setKeyProperty(className &amp; "/" &amp; "ID", m_chassisUIDVal)
Set m_oStoInst = componentInstance.CreateAndPopulateInstance(m_momApiHelper, componentInstance, "Chassis Storage")
'CreateClassInstanceForStorage()

For Each controllerObj In contList
'Create Controller Object
className = controllerObj.getMgmtConsoleClassName()
Set componentInstance = creatorFactory.Item(className)
call componentInstance.setKeyProperty("Microsoft.Windows.Computer/PrincipalName", principalName)
call componentInstance.setKeyProperty("Dell.Chassis.Storage/ID", m_chassisUIDVal)
call componentInstance.setKeyProperty(className &amp; "/" &amp; "FQDD", controllerObj.getAttributevalue("FQDD"))
call componentInstance.CreateAndPopulateInstance(m_momApiHelper, controllerObj, controllerObj.getAttributevalue("FQDD"))
call componentInstance.ClearKeyProperties()
'CreateClassInstanceForStorageController(controllerObj)

call performControllerVirtualDiskMapping(controllerObj.getAttributevalue("FQDD"), enclVirtDiskList)
contVirtDiskObjList = m_controllerVirtualDiskMappingDict.Items
If m_controllerVirtualDiskMappingDict.Count &gt; 0 Then
'Create Virtual Disk Group Object
className = "Dell.Chassis.Storage.Controller.VirtualDiskGroup"
Set componentInstance = creatorFactory.Item(className)
call componentInstance.setKeyProperty("Microsoft.Windows.Computer/PrincipalName", principalName)
call componentInstance.setKeyProperty("Dell.Chassis.Storage/ID", m_chassisUIDVal)
call componentInstance.setKeyProperty("Dell.Chassis.Storage.Controller/FQDD", controllerObj.getAttributevalue("FQDD"))
call componentInstance.setKeyProperty(className &amp; "/" &amp; "Number", controllerObj.getAttributevalue("FQDD"))
call componentInstance.CreateAndPopulateInstance(m_momApiHelper, componentInstance, "Virtual Disk Group")
call componentInstance.ClearKeyProperties()

Dim contVirtDiskObj
For Each contVirtDiskObj In contVirtDiskObjList
'Create Virtual Disk Object
Dim instanceVD
className = contVirtDiskObj.getMgmtConsoleClassName()
Set componentInstance = creatorFactory.Item(className)
call componentInstance.setKeyProperty("Microsoft.Windows.Computer/PrincipalName", principalName)
call componentInstance.setKeyProperty("Dell.Chassis.Storage/ID", m_chassisUIDVal)
call componentInstance.setKeyProperty("Dell.Chassis.Storage.Controller/FQDD", controllerObj.getAttributevalue("FQDD"))
call componentInstance.setKeyProperty("Dell.Chassis.Storage.Controller.VirtualDiskGroup/Number", controllerObj.getAttributevalue("FQDD"))
call componentInstance.setKeyProperty(className &amp; "/" &amp; "FQDD", contVirtDiskObj.getAttributevalue("FQDD"))
Set instanceVD = componentInstance.CreateAndPopulateInstance(m_momApiHelper, contVirtDiskObj, contVirtDiskObj.getAttributevalue("DisplayName"))
m_VirtualDiskDict.Add contVirtDiskObj.getAttributevalue("FQDD"), instanceVD
call componentInstance.ClearKeyProperties()

Next
m_controllerVirtualDiskMappingDict.RemoveAll
End If

For Each enclObject In enclList
If Not IsNull(enclObject) Then
'Create Enclosure Object
className = enclObject.getMgmtConsoleClassName()
Set componentInstance = creatorFactory.Item(className)
call componentInstance.setKeyProperty("Microsoft.Windows.Computer/PrincipalName", principalName)
call componentInstance.setKeyProperty("Dell.Chassis.Storage/ID", m_chassisUIDVal)
call componentInstance.setKeyProperty("Dell.Chassis.Storage.Controller/FQDD", controllerObj.getAttributevalue("FQDD"))
call componentInstance.setKeyProperty(className &amp; "/" &amp; "FQDD", enclObject.getAttributevalue("FQDD"))
call componentInstance.CreateAndPopulateInstance(m_momApiHelper, enclObject, enclObject.getAttributevalue("DisplayName"))
call componentInstance.ClearKeyProperties()

End If

If (InStr(enclObject.getAttributevalue("FQDD"), "Internal") &lt;&gt; 0) Then
call performEnclosurePhysicalDiskMapping(enclObject.getAttributevalue("FQDD"), enclPhyDiskList)
intEnclPhysDiskObjList = m_enclosurePhysicalDiskMappingDict.Items
If m_enclosurePhysicalDiskMappingDict.Count &gt; 0 Then
'Create Internal Physical Disk Group Object
className = "Dell.Chassis.Storage.Controller.Enclosure.InternalPhysicalDiskGroup"
Set componentInstance = creatorFactory.Item(className)
call componentInstance.setKeyProperty("Microsoft.Windows.Computer/PrincipalName", principalName)
call componentInstance.setKeyProperty("Dell.Chassis.Storage/ID", m_chassisUIDVal)
call componentInstance.setKeyProperty("Dell.Chassis.Storage.Controller/FQDD", controllerObj.getAttributevalue("FQDD"))
call componentInstance.setKeyProperty("Dell.Chassis.Storage.Controller.Enclosure/FQDD", enclObject.getAttributevalue("FQDD"))
call componentInstance.setKeyProperty(className &amp; "/" &amp; "Number", enclObject.getAttributevalue("FQDD"))
call componentInstance.CreateAndPopulateInstance(m_momApiHelper, componentInstance, "Enclosure Physical Disk Group")
call componentInstance.ClearKeyProperties()

Dim intEnclPhysDiskObj,physicalDiskInstance
For Each intEnclPhysDiskObj In intEnclPhysDiskObjList
'Create Internal Physical Disk Object
className = "Dell.Chassis.Storage.Controller.Enclosure.InternalPhysicalDisk"

Set componentInstance = creatorFactory.Item(className)
call componentInstance.setKeyProperty("Microsoft.Windows.Computer/PrincipalName", principalName)
call componentInstance.setKeyProperty("Dell.Chassis.Storage/ID", m_chassisUIDVal)
call componentInstance.setKeyProperty("Dell.Chassis.Storage.Controller/FQDD", controllerObj.getAttributevalue("FQDD"))
call componentInstance.setKeyProperty("Dell.Chassis.Storage.Controller.Enclosure/FQDD", enclObject.getAttributevalue("FQDD"))
call componentInstance.setKeyProperty("Dell.Chassis.Storage.Controller.Enclosure.InternalPhysicalDiskGroup/Number", enclObject.getAttributevalue("FQDD"))
call componentInstance.setKeyProperty(className &amp; "/" &amp; "FQDD", intEnclPhysDiskObj.getAttributevalue("FQDD"))
Set physicalDiskInstance = componentInstance.CreateAndPopulateInstance(m_momApiHelper, intEnclPhysDiskObj, intEnclPhysDiskObj.getAttributevalue("FQDD"))
call performVDtoPDAssignment(contVirtDiskObjList,physicalDiskInstance,"$MPElement[Name='DAD!ChassisVirtualDisk.Contains.InternalPhysicalDisk']$",intEnclPhysDiskObj.getAttributevalue("FQDD"))
call componentInstance.ClearKeyProperties()

Next

m_enclosurePhysicalDiskMappingDict.RemoveAll
End If
ElseIf (InStr(enclObject.getAttributevalue("FQDD"), "External") &lt;&gt; 0) Then
call performEnclosurePhysicalDiskMapping(enclObject.getAttributevalue("FQDD"), enclPhyDiskList)
extEnclPhysDiskObjList = m_enclosurePhysicalDiskMappingDict.Items
If m_enclosurePhysicalDiskMappingDict.Count &gt; 0 Then
'Create External Physical Disk Group Object
className = "Dell.Chassis.Storage.Controller.Enclosure.ExternalPhysicalDiskGroup"

Set componentInstance = creatorFactory.Item(className)
call componentInstance.setKeyProperty("Microsoft.Windows.Computer/PrincipalName", principalName)
call componentInstance.setKeyProperty("Dell.Chassis.Storage/ID", m_chassisUIDVal)
call componentInstance.setKeyProperty("Dell.Chassis.Storage.Controller/FQDD", controllerObj.getAttributevalue("FQDD"))
call componentInstance.setKeyProperty("Dell.Chassis.Storage.Controller.Enclosure/FQDD", enclObject.getAttributevalue("FQDD"))
call componentInstance.setKeyProperty(className &amp; "/" &amp; "Number", enclObject.getAttributevalue("FQDD"))
call componentInstance.CreateAndPopulateInstance(m_momApiHelper, componentInstance, "Enclosure Physical Disk Group")
call componentInstance.ClearKeyProperties()

Dim extEnclPhysDiskObj, extPDInstance
For Each extEnclPhysDiskObj In extEnclPhysDiskObjList
'Create External Physical Disk Object
className = "Dell.Chassis.Storage.Controller.Enclosure.ExternalPhysicalDisk"
Set componentInstance = creatorFactory.Item(className)
call componentInstance.setKeyProperty("Microsoft.Windows.Computer/PrincipalName", principalName)
call componentInstance.setKeyProperty("Dell.Chassis.Storage/ID", m_chassisUIDVal)
call componentInstance.setKeyProperty("Dell.Chassis.Storage.Controller/FQDD", controllerObj.getAttributevalue("FQDD"))
call componentInstance.setKeyProperty("Dell.Chassis.Storage.Controller.Enclosure/FQDD", enclObject.getAttributevalue("FQDD"))
call componentInstance.setKeyProperty("Dell.Chassis.Storage.Controller.Enclosure.ExternalPhysicalDiskGroup/Number", enclObject.getAttributevalue("FQDD"))
call componentInstance.setKeyProperty(className &amp; "/" &amp; "FQDD", extEnclPhysDiskObj.getAttributevalue("FQDD"))
Set extPDInstance = componentInstance.CreateAndPopulateInstance(m_momApiHelper, extEnclPhysDiskObj, extEnclPhysDiskObj.getAttributevalue("FQDD"))

call performVDtoPDAssignment(contVirtDiskObjList,extPDInstance,"$MPElement[Name='DAD!ChassisVirtualDisk.Contains.ExternalPhysicalDisk']$",extEnclPhysDiskObj.getAttributevalue("FQDD"))

call componentInstance.ClearKeyProperties()

Next
m_enclosurePhysicalDiskMappingDict.RemoveAll
End If


End If


Next
Next
End Function


Public Function performBladeServerInst(bladeServerList, raidVAList,ByRef contList)
Dim raidVAObj, bladeServerObj
Dim baldeServerFQDD, assignedBladeFQDD,oInst,bladeServiceTag,raidVirtualDiskIDs,controllerFQDD,contObj,vdAccessPolicyArray,vdIDArray,vdAccessPolicy,oVDInst,oVDPDRelationship

For Each bladeServerObj In bladeServerList
baldeServerFQDD = bladeServerObj.getAttributevalue("FQDD")
bladeServiceTag = bladeServerObj.getAttributevalue("ServiceTag")
For Each raidVAObj In raidVAList
assignedBladeFQDD = raidVAObj.getAttributevalue("AssignedBladeFQDD")
raidVirtualDiskIDs = raidVAObj.getAttributevalue("VirtualDiskIDs")
vdAccessPolicy = raidVAObj.getAttributevalue("VirtualDiskAccessPolicy")


If(baldeServerFQDD = assignedBladeFQDD And raidVirtualDiskIDs &lt;&gt; "Not Available" ) Then
vdAccessPolicyArray = Split(vdAccessPolicy,",")
vdIDArray = Split(raidVirtualDiskIDs,",")

For Each contObj In contList
log.MOMDebugLog 1, "Virtual Disk FQDD : " +raidVirtualDiskIDs

If (INSTR(raidVirtualDiskIDs,contObj.getAttributevalue("FQDD")) &lt;&gt; 0) Then
controllerFQDD = contObj.getAttributevalue("FQDD")
log.MOMDebugLog 1, "Controller Virtual Disk FQDD: " &amp; controllerFQDD
End If

Next

Set oInst = m_momApiHelper.CreateClassInstance("$MPElement[Name='DAD!Dell.BladeServer.SharedStorage']$")
call m_momApiHelper.oInstAddProperty(oInst, "$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", principalName)
call m_momApiHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.BladeServer.SharedStorage']/ID$", bladeServiceTag)
call m_momApiHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.BladeServer.SharedStorage']/AssignedBladeFQDD$", baldeServerFQDD)
call m_momApiHelper.oInstAddProperty(oInst, "$MPElement[Name='DAD!Dell.BladeServer.SharedStorage']/HostManagementServer$", principalName)
call m_momApiHelper.oInstAddProperty(oInst, "$MPElement[Name='System!System.Entity']/DisplayName$","Chassis Storage")

m_momApiHelper.AddInstanceToDiscoveryData oInst


For i = LBound(vdAccessPolicyArray) to UBound(vdAccessPolicyArray)
if vdAccessPolicyArray(i) = "2" or vdAccessPolicyArray(i) = "6" then


Set oVDInst = m_momApiHelper.CreateClassInstance("$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.VirtualDisk']$")

call m_momApiHelper.oInstAddProperty(oVDInst,"$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", principalName)
log.MOMDebugLog 1, "Chassis Principal name: " &amp; principalName
call m_momApiHelper.oInstAddProperty(oVDInst,"$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.VirtualDisk']/FQDD$",vdIDArray(i))
log.MOMDebugLog 1, "Chassis Virtual Disk Id: " &amp; vdIDArray(i)
call m_momApiHelper.oInstAddProperty(oVDInst,"$MPElement[Name='DAD!Dell.Chassis.Storage']/ID$",m_chassisUIDVal)
log.MOMDebugLog 1, "Chassis UID : " &amp; m_chassisUIDVal
call m_momApiHelper.oInstAddProperty(oVDInst,"$MPElement[Name='DAD!Dell.Chassis.Storage.Controller']/FQDD$",controllerFQDD)

call m_momApiHelper.oInstAddProperty(oVDInst,"$MPElement[Name='DAD!Dell.Chassis.Storage.Controller.VirtualDiskGroup']/Number$",controllerFQDD)
log.MOMDebugLog 1, "Chassis Controller ID: " &amp; controllerFQDD

m_momApiHelper.AddInstanceToDiscoveryData oInst

Set oVDPDRelationship = m_momApiHelper.CreateRelationshipInstance("$MPElement[Name='DAD!ChassisSharedStorage.Contains.ChassisVirtualDisk']$", oInst, oVDInst)
m_momApiHelper.AddInstanceToDiscoveryData oVDPDRelationship

End if
Next

log.MOMDebugLog 1, "Done Blade Server Discovery data"
END If
Next
Next
End Function



Public Function performVDtoPDAssignment(ByRef contVirtDiskObjList,ByRef pdInstance,ByVal relationShipClassID,ByVal physicalDiskFQDD)
Dim physicalDiskID,vdClassName,instVD,oVDPDRelationship,physicalDiskIDArray,pdID,contVirtDiskObj
For Each contVirtDiskObj In contVirtDiskObjList
'Get Virtual Disk Object
physicalDiskID = contVirtDiskObj.getAttributevalue("PhysicalDiskIDs")
log.MOMDebugLog 1,"PhysicalDisk ID: " &amp;physicalDiskID
physicalDiskIDArray = Split(physicalDiskID,",")
vdClassName = contVirtDiskObj.getAttributevalue("FQDD")

For Each pdID in physicalDiskIDArray
If(physicalDiskFQDD = pdID) Then
Set instVD = m_VirtualDiskDict.Item(vdClassName)
Set oVDPDRelationship = m_momApiHelper.CreateRelationshipInstance(relationShipClassID, instVD, pdInstance)
m_momApiHelper.AddInstanceToDiscoveryData oVDPDRelationship

END If
Next

Next

End Function

Public Function performEnclosurePhysicalDiskMapping(ByRef enclFQDD, ByRef enclPhyDiskList)
Dim message, phyDiskFQDD, phyDiskObject
For Each phyDiskObject in enclPhyDiskList
phyDiskFQDD = phyDiskObject.getAttributevalue("FQDD")
If (InStr(phyDiskFQDD, enclFQDD) &lt;&gt; 0) Then
If (m_enclosurePhysicalDiskMappingDict.Exists(phyDiskFQDD)) Then
message = "Physical Disk with same FQDD exist"
Else
m_enclosurePhysicalDiskMappingDict.Add phyDiskFQDD, phyDiskObject
End If
End If
Next
End Function

Public Function performControllerVirtualDiskMapping(ByRef contFQDD, ByRef virtDiskObjectList)
Dim message, virtDiskFQDD, virtDiskObject
For Each virtDiskObject in virtDiskObjectList
virtDiskFQDD = virtDiskObject.getAttributevalue("FQDD")
If (InStr(virtDiskFQDD, contFQDD) &lt;&gt; 0) Then
If (m_controllerVirtualDiskMappingDict.Exists(virtDiskFQDD)) Then
message = "Virtual Disk with same FQDD exist"
Else
m_controllerVirtualDiskMappingDict.Add virtDiskFQDD, virtDiskObject
End If
End If
Next
End Function
Function CreateAndSubmitEmptyDiscoveryData()
Dim oInst
Call m_momApiHelper.CreateDiscoveryData(SourceId, ManagedEntityId)

End Function

public Function performChassisFanModelling(ByRef compObjectList)
Dim fanList, fanPackageList, fanSlotList
Dim nameDict, fqddDict, manuDict, slotDict, classId
Dim name, fqdd, slot, manufacturer
dim keys, i, key

'get the list of objects from three different wsman classes
fanList = GetObjectList(compObjectList, "Dell.Chassis.Fan")
fanPackageList = GetObjectList(compObjectList, "Dell.FanPackage")
fanSlotList = GetObjectList(compObjectList, "Dell.FanSlot")

'Create Fan Group Object
CreateFanGroupInstance()

If ArrayCount(fanList) &gt; 0 Then
Set nameDict = CreateObject("Scripting.Dictionary")
Set fqddDict = CreateObject("Scripting.Dictionary")
Set manuDict = CreateObject("Scripting.Dictionary")
Set slotDict = CreateObject("Scripting.Dictionary")

'create dictionary for different fan attributes with common classId as key
CreateAttributeDictionaryFromObjList nameDict, fanList, "ClassId", "DisplayName"
CreateAttributeDictionaryFromObjList fqddDict, fanList, "ClassId", "FQDD"
CreateAttributeDictionaryFromObjList manuDict, fanPackageList, "ClassId", "Manufacturer"
CreateAttributeDictionaryFromObjList slotDict, fanSlotList, "ClassId", "Slot"

'get the list of keys; these keys are common in all the other Dictionaries
keys = nameDict.Keys
'since the count of all dictionary is same; traverse with namedict
For i=0 to nameDict.Count -1
'get the value of ClassId which can be used to index other dictionary
key = keys(i)
if(IsEmpty(key) or IsNull(key) or (StrComp(key, "Not Available")=0)) then
log.MOMDebugLog 1, "Key is either empty or null"
else
name = nameDict.item(key)
fqdd = fqddDict.item(key)
manufacturer = manuDict.item(key)
slot = slotDict.item(key)
log.MOMDebugLog 1, "Name:" &amp; name &amp;" and fqdd:" &amp; fqdd
Dim nameArr, fqddArr
nameArr = Split(name, ",")
fqddArr = Split(fqdd, ",")
Dim len, j
len = ubound(nameArr)
log.MOMDebugLog 1, "name array len is :" &amp; len
if len=0 then
CreateFanInstance name, fqdd, manufacturer, slot
else
for j=0 to len
CreateFanInstance nameArr(j), fqddArr(j), manufacturer, slot
log.MOMDebugLog 1, "name(j):" &amp; nameArr(j) &amp; "fqdd(j):" &amp; fqddArr(j)
next
end if
end if
Next
End If
End Function

Function ArrayCount(ByRef array)
Dim index, count
count = 0
For index = 0 To UBound(array)
count = count + 1
Next
ArrayCount = count
End Function

Function GetObjectList(ByRef compObjectList, ByVal className)
Dim objList, compObjListFilter
Set compObjListFilter = New ComponentObjectListFilter
objList = compObjListFilter.fetchRequestedComponentObjectList(compObjectList, className)
compObjListFilter.destroyCOMObjects()
set compObjListFilter = Nothing
log.MOMDebugLog 1, "ArrayCount(objList)=" &amp; ArrayCount(objList)
GetObjectList = objList
End Function

Function CreateFanInstance(ByVal name, ByVal fqdd, ByVal manufacturer, ByVal slot)
'Create Fan Unit Objects
Dim className, componentInstance
className = "Dell.Chassis.Fan"
Set componentInstance = creatorFactory.Item(className)
call componentInstance.setKeyProperty("Microsoft.Windows.Computer/PrincipalName", principalName)
call componentInstance.setKeyProperty("Dell.Chassis.FanGroup/ID", m_chassisUIDVal)
call componentInstance.setKeyProperty(className &amp; "/" &amp; "FQDD", fqdd)
call componentInstance.CreateAndPopulateInstance(m_momApiHelper, componentInstance, name, manufacturer, slot )
call componentInstance.ClearKeyProperties()
End Function

Function CreateFanGroupInstance()
Dim className, componentInstance
className = "Dell.Chassis.FanGroup"
Set componentInstance = creatorFactory.Item(className)
call componentInstance.setKeyProperty("Microsoft.Windows.Computer/PrincipalName", principalName)
call componentInstance.setKeyProperty("Dell.Chassis.FanGroup/ID", m_chassisUIDVal)
Set m_fangroupInstance = componentInstance.CreateAndPopulateInstance(m_momApiHelper, componentInstance, "Fan Group")
call componentInstance.ClearKeyProperties()
End function

Function CreateAttributeDictionaryFromObjList(ByRef dictionary, ByRef objList, ByVal attribute1, ByVal attribute2)
Dim obj, val, key
Set dictionary = CreateObject("Scripting.Dictionary")
For Each obj In objList
key = obj.getAttributevalue(attribute1)
val = obj.getAttributevalue(attribute2)
log.MOMDebugLog 1, "key:" &amp; key &amp; ";val:" &amp; val
if (dictionary.Exists(key)) then
dim tmpVal
tmpVal = dictionary.item(key)
val = val + "," + tmpVal
dictionary.item(key) = val
else
dictionary.Add key, val
end if
Next
End Function

End Class



'#################################################################################################################################
</ChassisComponentDiscoveryScript>
</DataSource>
</Discovery>