HPE OneView Proliant Server Discovery Data Source

HewlettPackard.Oneview.Server.HPProliantServer.Discovery.DS (DataSourceModuleType)

Element properties:

TypeDataSourceModuleType
IsolationAny
AccessibilityInternal
RunAsDefault
OutputTypeSystem.Discovery.Data

Member Modules:

ID Module Type TypeId RunAs 
DS DataSource System.CommandExecuterDiscoveryDataSource Default

Overrideable Parameters:

IDParameterTypeSelector
Intervalint$Config/Interval$

Source Code:

<DataSourceModuleType ID="HewlettPackard.Oneview.Server.HPProliantServer.Discovery.DS" Accessibility="Internal" Batching="false">
<Configuration>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="Interval" type="xsd:integer"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="SyncTime" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="SessionID" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="HostAddress" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="DomainID" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="DomainName" type="xsd:string"/>
</Configuration>
<OverrideableParameters>
<OverrideableParameter Selector="$Config/Interval$" ParameterType="int" ID="Interval"/>
</OverrideableParameters>
<ModuleImplementation Isolation="Any">
<Composite>
<MemberModules>
<DataSource ID="DS" TypeID="System!System.CommandExecuterDiscoveryDataSource">
<IntervalSeconds>$Config/Interval$</IntervalSeconds>
<ApplicationName>%windir%\System32\WindowsPowerShell\v1.0\PowerShell.exe</ApplicationName>
<WorkingDirectory/>
<CommandLine>"&amp; '$file/Hewlett-PackardOneViewServersDiscovery.ps1$' '$MPElement$' '$Target/Id$' $Config/SessionID$ $Config/HostAddress$ $Config/DomainID$ $Config/DomainName$"</CommandLine>
<TimeoutSeconds>1200</TimeoutSeconds>
<RequireOutput>true</RequireOutput>
<Files>
<File>
<Name>Hewlett-PackardOneViewServersDiscovery.ps1</Name>
<Contents><Script>

#-------------------------------------------------------------------
# &lt;company&gt;Hewlett-Packard&lt;/company&gt;
# &lt;copyright&gt;Copyright (c) Hewlett Packard Enterprise Company 2015-2016&lt;/copyright&gt;
# &lt;summary&gt;
# Discover HPE OneView Proliant Servers
# &lt;/summary&gt;
#-------------------------------------------------------------------
function LoadSnapIn
{
add-pssnapin "HPOneView.ManagedDevicesCmdLets"
}

function Main
{
Param ([string]$SourceId,[string]$ManagedEntityId,[string]$SessionID,[string]$HostAddress,[string]$DomainID,[string]$DomainName)

$OpsMgr = new-object -ComObject "MOM.ScriptAPI"
$DiscoveryData = $OpsMgr.CreateDiscoveryData(0, $SourceId, $ManagedEntityId)

$Servers = Get-ListOneViewServerHardwares -Address $HostAddress -SessionID $SessionID
if(($Servers -ne $null) -and ($Servers.Count -gt 0))
{
foreach($server in $Servers)
{
$InstanceServer = $DiscoveryData.CreateClassInstance("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServer']$")
$InstanceServer.AddProperty("$MPElement[Name='HOL!HewlettPackard.OneView.ApplianceCredential']/ID$", $DomainID)
$InstanceServer.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServer']/ObjectID$", $server.objectId)
$InstanceServer.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServer']/Name$", $server.name)
$InstanceServer.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServer']/LicensingIntent$", $server.licensingIntent)
$InstanceServer.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServer']/Model$", $server.model)
$InstanceServer.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServer']/Memory$", $server.memoryGB)
$InstanceServer.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServer']/iLOIPAddress$", $server.mpIpAddress)
$InstanceServer.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServer']/iLOIPV6Address$", $server.mpIpv6Address)
$InstanceServer.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServer']/Location$", $server.location)
$InstanceServer.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServer']/iLOModel$", $server.mpModel)
$InstanceServer.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServer']/iLODNSName$", $server.mpDnsName)
$InstanceServer.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServer']/iLOFirmwareVersion$", $server.mpFirmwareVersion)
$InstanceServer.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServer']/PartNumber$", $server.partNumber)
$InstanceServer.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServer']/PowerState$", $server.powerState)
$InstanceServer.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServer']/CPU$", $server.CPU)
$InstanceServer.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServer']/RomVersion$", $server.romVersion)
$InstanceServer.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServer']/SerialNumber$", $server.serialNumber)
$InstanceServer.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServer']/ServerHardwareType$", $server.serverHardwareType)
$InstanceServer.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServer']/AssociatedServerProfile$", $server.serverProfile)
$InstanceServer.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServer']/serverName$", $server.serverName)
$InstanceServer.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServer']/ServerOsName$", $server.serverOsName)
$InstanceServer.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServer']/RemoteSupport$", $server.remoteSupport)
$InstanceServer.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServer']/RemoteSupportLevel$", $server.remoteSupportLevel)
$InstanceServer.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServer']/RSStartDate$", $server.remoteStartDate)
$InstanceServer.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServer']/RSExpirationDate$", $server.remoteExpirationDate )
$InstanceServer.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", $server.Name)
$DiscoveryData.AddInstance($InstanceServer)

#instantiate Server Storage Collection

#Instantiate Server Storage Collection
if(($server.ServerStorageSubComponents -ne $null) -and ($server.ServerStorageSubComponents.Count -gt 0))
{
$InstanceServerStorageColl = $DiscoveryData.CreateClassInstance("$MPElement[Name='HewlettPackard.Oneview.Server.HPServerStorageCollection']$")
$InstanceServerStorageColl.AddProperty("$MPElement[Name='HOL!HewlettPackard.OneView.ApplianceCredential']/ID$",$DomainID)
$InstanceServerStorageColl.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServer']/ObjectID$",$server.objectId)
$InstanceServerStorageColl.AddProperty("$MPElement[Name='HOL!HewlettPackard.OneView.HPHealthCollection']/ResourceName$", "HPE Server Storage Collection - " + $server.name)
$InstanceServerStorageColl.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$","HPE Server Storage Collection - " + $server.name)
$DiscoveryData.AddInstance($InstanceServerStorageColl)


foreach($serverStorage in $server.ServerStorageSubComponents)
{
$InstanceServerStorageComponent = $DiscoveryData.CreateClassInstance("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerStorage']$")
$InstanceServerStorageComponent.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServer']/ObjectID$", $server.objectId)
$InstanceServerStorageComponent.AddProperty("$MPElement[Name='HOL!HewlettPackard.OneView.ApplianceCredential']/ID$", $DomainID)
$InstanceServerStorageComponent.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerStorage']/Name$", $serverStorage.Name)
$InstanceServerStorageComponent.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerStorage']/SerialNumber$", $serverStorage.SerialNumber)
$InstanceServerStorageComponent.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerStorage']/AdapterType$", $serverStorage.AdapterType)
$InstanceServerStorageComponent.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerStorage']/Model$", $serverStorage.Model)
$InstanceServerStorageComponent.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerStorage']/Location$", $serverStorage.Location)
$InstanceServerStorageComponent.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerStorage']/Firmware$", $serverStorage.Firmware)
$InstanceServerStorageComponent.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerStorage']/CacheModuleStatus$", $serverStorage.CacheModuleStatus)
$InstanceServerStorageComponent.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerStorage']/CacheModuleSearialNumber$", $serverStorage.CacheModuleSearialNumber)
$InstanceServerStorageComponent.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerStorage']/CacheModuleMemory$", $serverStorage.CacheModuleMemory)
$InstanceServerStorageComponent.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerStorage']/Encryption$", $serverStorage.Encryption)
$InstanceServerStorageComponent.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerStorage']/EncryptionCspTestPassed$", $serverStorage.EncryptionCspTestPassed)
$InstanceServerStorageComponent.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerStorage']/EncryptionSelfTestPassed$", $serverStorage.EncryptionSelfTestPassed)

$InstanceServerStorageComponent.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", $serverStorage.Name)
$DiscoveryData.AddInstance($InstanceServerStorageComponent)
$OpsMgr.LogScriptEvent("Script",19,0, "ServerStorageSubComponents discovery done")

#Instantiate Logical Drive Collection
if(($serverStorage.LogicalDrivesList -ne $null) -and ($serverStorage.LogicalDrivesList.Count -gt 0))
{
$InstanceLogicalDriveColl = $DiscoveryData.CreateClassInstance("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServer.ServerStorageLogicalDriveCollection']$")
$InstanceLogicalDriveColl.AddProperty("$MPElement[Name='HOL!HewlettPackard.OneView.ApplianceCredential']/ID$",$DomainID)
$InstanceLogicalDriveColl.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServer']/ObjectID$", $server.objectId)
$InstanceLogicalDriveColl.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerStorage']/SerialNumber$", $serverStorage.SerialNumber)
$InstanceLogicalDriveColl.AddProperty("$MPElement[Name='HOL!HewlettPackard.OneView.HPHealthCollection']/ResourceName$", "Server Local Storage Logical Drive Collection - " + $serverStorage.name)
$InstanceLogicalDriveColl.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$","Server Local Storage Logical Drive Collection - " + $serverStorage.name)
$DiscoveryData.AddInstance($InstanceLogicalDriveColl)
#$OpsMgr.LogScriptEvent("Script",23,0, "ServerStorageSubComponents coollll discovery done")

#now instantiate the LogicalDrive class for Storage
foreach($serverStorageLogicalDrive in $serverStorage.LogicalDrivesList)
{
#$OpsMgr.LogScriptEvent("Script",25,0, "ServerStorageSubComponents Logical Drive discovery ")
$InstanceServerStorageComponentLogicalDrive = $DiscoveryData.CreateClassInstance("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerStorage.LogicalDrive']$")
$InstanceServerStorageComponentLogicalDrive.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServer']/ObjectID$", $server.objectId)
$InstanceServerStorageComponentLogicalDrive.AddProperty("$MPElement[Name='HOL!HewlettPackard.OneView.ApplianceCredential']/ID$", $DomainID)
$InstanceServerStorageComponentLogicalDrive.AddProperty("$MPElement[Name='HOL!HewlettPackard.OneView.HPHealthComponent']/Name$", $serverStorageLogicalDrive.Name)
$InstanceServerStorageComponentLogicalDrive.AddProperty("$MPElement[Name='HOL!HewlettPackard.OneView.HPHealthComponent']/ObjectID$", $serverStorageLogicalDrive.uuid)
$InstanceServerStorageComponentLogicalDrive.AddProperty("$MPElement[Name='HOL!HewlettPackard.OneView.HPHealthComponent']/DomainName$", $DomainName)
$InstanceServerStorageComponentLogicalDrive.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerStorage']/SerialNumber$", $serverStorage.SerialNumber)
$InstanceServerStorageComponentLogicalDrive.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerStorage.LogicalDrive']/Name$", $serverStorageLogicalDrive.Name)
$InstanceServerStorageComponentLogicalDrive.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerStorage.LogicalDrive']/VolumeUniqueIdentifier$", $serverStorageLogicalDrive.VolumeUniqueIdentifier)
$InstanceServerStorageComponentLogicalDrive.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerStorage.LogicalDrive']/InterfaceType$", $serverStorageLogicalDrive.InterfaceType)
$InstanceServerStorageComponentLogicalDrive.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerStorage.LogicalDrive']/Encryption$", $serverStorageLogicalDrive.Encryption)
$InstanceServerStorageComponentLogicalDrive.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerStorage.LogicalDrive']/uuid$", $serverStorageLogicalDrive.uuid)
$InstanceServerStorageComponentLogicalDrive.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerStorage.LogicalDrive']/CapacityMiB$", $serverStorageLogicalDrive.CapacityMiB)
$InstanceServerStorageComponentLogicalDrive.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerStorage.LogicalDrive']/FaultTolerance$", $serverStorageLogicalDrive.FaultTolerance)
$InstanceServerStorageComponentLogicalDrive.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$","Logical Drive "+ $serverStorageLogicalDrive.Name)
$DiscoveryData.AddInstance($InstanceServerStorageComponentLogicalDrive)
#$OpsMgr.LogScriptEvent("Script",26,0, "ServerStorageSubComponents Logical Drive discovery done")
}
#Instantiate Logical Drive DataDrive Collection
if(($serverStorageLogicalDrive.LogicalDrivesDataDriveList -ne $null) -and ($serverStorageLogicalDrive.LogicalDrivesDataDriveList.Count -gt 0))
{
$InstanceLogicalDriveDDriveColl = $DiscoveryData.CreateClassInstance("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServer.ServerStorageLogicalDriveDataDriveCollection']$")
$InstanceLogicalDriveDDriveColl.AddProperty("$MPElement[Name='HOL!HewlettPackard.OneView.ApplianceCredential']/ID$",$DomainID)
$InstanceLogicalDriveDDriveColl.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServer']/ObjectID$", $server.objectId)
$InstanceLogicalDriveDDriveColl.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerStorage']/SerialNumber$", $serverStorage.SerialNumber)
$InstanceLogicalDriveDDriveColl.AddProperty("$MPElement[Name='HOL!HewlettPackard.OneView.HPHealthComponent']/ObjectID$", $serverStorageLogicalDrive.VolumeUniqueIdentifier)
$InstanceLogicalDriveDDriveColl.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerStorage.LogicalDrive']/VolumeUniqueIdentifier$", $serverStorageLogicalDrive.VolumeUniqueIdentifier)
$InstanceLogicalDriveDDriveColl.AddProperty("$MPElement[Name='HOL!HewlettPackard.OneView.HPHealthCollection']/ResourceName$", "Server Local Storage Logical Drive DataDrive Collection - " + $serverStorageLogicalDrive.name)
$InstanceLogicalDriveDDriveColl.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$","Server Local Storage Logical Drive DataDrive Collection - " + $serverStorageLogicalDrive.name)
$DiscoveryData.AddInstance($InstanceLogicalDriveDDriveColl)
foreach($serverStorageLogicalDriveDataDrive in $serverStorageLogicalDrive.LogicalDrivesDataDriveList)
{
$InstanceServerStorageComponentLogicalDriveDD = $DiscoveryData.CreateClassInstance("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerStorage.LogicalDrive.DataDrive']$")
$InstanceServerStorageComponentLogicalDriveDD.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServer']/ObjectID$", $server.objectId)
$InstanceServerStorageComponentLogicalDriveDD.AddProperty("$MPElement[Name='HOL!HewlettPackard.OneView.ApplianceCredential']/ID$", $DomainID)
$InstanceServerStorageComponentLogicalDriveDD.AddProperty("$MPElement[Name='HOL!HewlettPackard.OneView.HPHealthComponent']/ObjectID$", $serverStorageLogicalDrive.VolumeUniqueIdentifier)
$InstanceServerStorageComponentLogicalDriveDD.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerStorage']/SerialNumber$", $serverStorage.SerialNumber)
$InstanceServerStorageComponentLogicalDriveDD.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerStorage.LogicalDrive']/VolumeUniqueIdentifier$", $serverStorageLogicalDrive.VolumeUniqueIdentifier)
$InstanceServerStorageComponentLogicalDriveDD.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerStorage.LogicalDrive.DataDrive']/Model$", $serverStorageLogicalDriveDataDrive.Model)
$InstanceServerStorageComponentLogicalDriveDD.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerStorage.LogicalDrive.DataDrive']/Name$", $serverStorageLogicalDriveDataDrive.Name)
$InstanceServerStorageComponentLogicalDriveDD.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerStorage.LogicalDrive.DataDrive']/Location$", $serverStorageLogicalDriveDataDrive.Location)
$InstanceServerStorageComponentLogicalDriveDD.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerStorage.LogicalDrive.DataDrive']/SerialNumber$", $serverStorageLogicalDriveDataDrive.SerialNumber)
$InstanceServerStorageComponentLogicalDriveDD.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerStorage.LogicalDrive.DataDrive']/LocationFormat$", $serverStorageLogicalDriveDataDrive.LocationFormat)
$InstanceServerStorageComponentLogicalDriveDD.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerStorage.LogicalDrive.DataDrive']/RotationalSpeedRpm$", $serverStorageLogicalDriveDataDrive.RotationalSpeedRpm)
$InstanceServerStorageComponentLogicalDriveDD.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerStorage.LogicalDrive.DataDrive']/FirmwareVersion$", $serverStorageLogicalDriveDataDrive.FirmwareVersion)
$InstanceServerStorageComponentLogicalDriveDD.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerStorage.LogicalDrive.DataDrive']/uuid$", $serverStorageLogicalDriveDataDrive.uuid)
$InstanceServerStorageComponentLogicalDriveDD.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$","Logical Drive "+ $serverStorageLogicalDriveDataDrive.Name)
$DiscoveryData.AddInstance($InstanceServerStorageComponentLogicalDriveDD)
#$OpsMgr.LogScriptEvent("Script",67,0, "ServerStorageSubComponents Logical Drive DDROVE discovery done")
}
}
}
#now instantiate the PhysicalDrive class for Storage
if(($serverStorage.PhysicalDriveList -ne $null) -and ($serverStorage.PhysicalDriveList.Count -gt 0))
{
#Instantiate Physical Drive Collection
$InstancePhysicalDriveColl = $DiscoveryData.CreateClassInstance("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServer.ServerStoragePhysicalDriveCollection']$")
$InstancePhysicalDriveColl.AddProperty("$MPElement[Name='HOL!HewlettPackard.OneView.ApplianceCredential']/ID$",$DomainID)
$InstancePhysicalDriveColl.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServer']/ObjectID$", $server.objectId)
$InstancePhysicalDriveColl.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerStorage']/SerialNumber$", $serverStorage.SerialNumber)
$InstancePhysicalDriveColl.AddProperty("$MPElement[Name='HOL!HewlettPackard.OneView.HPHealthCollection']/ResourceName$", "Server Local Storage Physical Drive Collection - " + $serverStorage.name)
$InstancePhysicalDriveColl.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$","Server Local Storage Physical Drive Collection - " + $serverStorage.name)
$DiscoveryData.AddInstance($InstancePhysicalDriveColl)
#$OpsMgr.LogScriptEvent("Script",24,0, "ServerStorageSubComponents physical coollll discovery done")

foreach($serverStoragePhysicalDrive in $serverStorage.PhysicalDriveList)
{
#$OpsMgr.LogScriptEvent("Script",44,0, "ServerStorageSubComponents Physical Drive discovery ")
$InstanceServerStorageComponentPhysicalDrive = $DiscoveryData.CreateClassInstance("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerStorage.PhysicalDrive']$")
$InstanceServerStorageComponentPhysicalDrive.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServer']/ObjectID$", $server.objectId)
$InstanceServerStorageComponentPhysicalDrive.AddProperty("$MPElement[Name='HOL!HewlettPackard.OneView.ApplianceCredential']/ID$", $DomainID)
$InstanceServerStorageComponentPhysicalDrive.AddProperty("$MPElement[Name='HOL!HewlettPackard.OneView.HPHealthComponent']/Name$", $serverStoragePhysicalDrive.Name)
$InstanceServerStorageComponentPhysicalDrive.AddProperty("$MPElement[Name='HOL!HewlettPackard.OneView.HPHealthComponent']/ObjectID$", $serverStoragePhysicalDrive.uuid)
$InstanceServerStorageComponentPhysicalDrive.AddProperty("$MPElement[Name='HOL!HewlettPackard.OneView.HPHealthComponent']/DomainName$", $DomainName)
$InstanceServerStorageComponentPhysicalDrive.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerStorage']/SerialNumber$", $serverStorage.SerialNumber)
$InstanceServerStorageComponentPhysicalDrive.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerStorage.PhysicalDrive']/Name$", $serverStoragePhysicalDrive.Name)
$InstanceServerStorageComponentPhysicalDrive.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerStorage.PhysicalDrive']/Model$", $serverStoragePhysicalDrive.Model)
$InstanceServerStorageComponentPhysicalDrive.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerStorage.PhysicalDrive']/CapacityMiB$", $serverStoragePhysicalDrive.CapacityMiB)
$InstanceServerStorageComponentPhysicalDrive.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerStorage.PhysicalDrive']/SerialNumber$", $serverStoragePhysicalDrive.SerialNumber)
$InstanceServerStorageComponentPhysicalDrive.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerStorage.PhysicalDrive']/uuid$", $serverStoragePhysicalDrive.uuid)
$InstanceServerStorageComponentPhysicalDrive.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerStorage.PhysicalDrive']/LocationFormat$", $serverStoragePhysicalDrive.LocationFormat)
$InstanceServerStorageComponentPhysicalDrive.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerStorage.PhysicalDrive']/RotationalSpeedRpm$", $serverStoragePhysicalDrive.RotationalSpeedRpm)
$InstanceServerStorageComponentPhysicalDrive.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerStorage.PhysicalDrive']/FirmwareVersion$", $serverStoragePhysicalDrive.FirmwareVersion)
$InstanceServerStorageComponentPhysicalDrive.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerStorage.PhysicalDrive']/MediaType$", $serverStoragePhysicalDrive.MediaType)
$InstanceServerStorageComponentPhysicalDrive.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerStorage.PhysicalDrive']/Location$", $serverStoragePhysicalDrive.Location)
$InstanceServerStorageComponentPhysicalDrive.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$","Physical Drive "+ $serverStoragePhysicalDrive.Name)
$DiscoveryData.AddInstance($InstanceServerStorageComponentPhysicalDrive)
#$OpsMgr.LogScriptEvent("Script",45,0, "ServerStorageSubComponents Physical Drive discovery done")
}
}
}
}
# end of server storage subcomponent
#Instantiate Server Memory Collection
if(($server.ServerMemorySubComponents -ne $null) -and ($server.ServerMemorySubComponents.Count -gt 0))
{
$InstanceServerMemoryColl = $DiscoveryData.CreateClassInstance("$MPElement[Name='HewlettPackard.Oneview.Server.HPServerMemoryCollection']$")
$InstanceServerMemoryColl.AddProperty("$MPElement[Name='HOL!HewlettPackard.OneView.ApplianceCredential']/ID$",$DomainID)
$InstanceServerMemoryColl.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServer']/ObjectID$",$server.objectId)
$InstanceServerMemoryColl.AddProperty("$MPElement[Name='HOL!HewlettPackard.OneView.HPHealthCollection']/ResourceName$", "HPE Server Memory Collection - " + $server.name)
$InstanceServerMemoryColl.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$","HPE Server Memory Collection - " + $server.name)
$DiscoveryData.AddInstance($InstanceServerMemoryColl)

foreach($serverMemory in $server.ServerMemorySubComponents)
{
#$OpsMgr.LogScriptEvent("Script",38,0, "ServerMemorySubComponents discovery $serverMemory.TotalMemory " + $serverMemory.TotalMemory)
$InstanceServerMemoryComponent = $DiscoveryData.CreateClassInstance("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerMemory']$")
$InstanceServerMemoryComponent.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServer']/ObjectID$", $server.objectId)
$InstanceServerMemoryComponent.AddProperty("$MPElement[Name='HOL!HewlettPackard.OneView.ApplianceCredential']/ID$", $DomainID)
$InstanceServerMemoryComponent.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerMemory']/Name$", $serverMemory.Name)
$InstanceServerMemoryComponent.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerMemory']/uuid$", $serverMemory.uuid)
$InstanceServerMemoryComponent.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerMemory']/OperatingFrequency$", $serverMemory.OperatingFrequency)
$InstanceServerMemoryComponent.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerMemory']/TotalMemory$", $serverMemory.TotalMemory)
$InstanceServerMemoryComponent.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerMemory']/OperatingVoltage$", $serverMemory.OperatingVoltage)
$InstanceServerMemoryComponent.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerMemory']/AmpModeActive$", $serverMemory.AmpModeActive)
$InstanceServerMemoryComponent.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerMemory']/AmpModeStatus$", $serverMemory.AmpModeStatus)
$InstanceServerMemoryComponent.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", $serverMemory.Name)
$DiscoveryData.AddInstance($InstanceServerMemoryComponent)
#$OpsMgr.LogScriptEvent("Script",36,0, "InstanceServerMemoryComponent discovery done")

#now for each data present in the list , instantiate the PhysicalMemory class just under the Server in diagram view.
# so the Processor will target Server.
if(($serverMemory._data -ne $null) -and ($serverMemory._data.Count -gt 0))
{
foreach( $serverPhysicalMemory in $serverMemory._data)
{
#$OpsMgr.LogScriptEvent("Script",39,0, "$serverPhysicalMemory discovery ")
$InstanceServerPhysicalMemoryComponent = $DiscoveryData.CreateClassInstance("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerPhysicalMemory']$")
$InstanceServerPhysicalMemoryComponent.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServer']/ObjectID$", $server.objectId)
$InstanceServerPhysicalMemoryComponent.AddProperty("$MPElement[Name='HOL!HewlettPackard.OneView.ApplianceCredential']/ID$", $DomainID)
$InstanceServerPhysicalMemoryComponent.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerMemory']/uuid$", $serverMemory.uuid)
$InstanceServerPhysicalMemoryComponent.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerPhysicalMemory']/Name$", $serverPhysicalMemory.Name)
$InstanceServerPhysicalMemoryComponent.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerPhysicalMemory']/uuid$", $serverPhysicalMemory.uuid)
$InstanceServerPhysicalMemoryComponent.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerPhysicalMemory']/HPEMemory$", $serverPhysicalMemory.HPEMemory)
$InstanceServerPhysicalMemoryComponent.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerPhysicalMemory']/Manufacturer$", "HPE")
$InstanceServerPhysicalMemoryComponent.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerPhysicalMemory']/ID$", $serverPhysicalMemory.ID)
$InstanceServerPhysicalMemoryComponent.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerPhysicalMemory']/Frequency$", $serverPhysicalMemory.Frequency)
$InstanceServerPhysicalMemoryComponent.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerPhysicalMemory']/Minimumvoltage$", $serverPhysicalMemory.Minimumvoltage)
$InstanceServerPhysicalMemoryComponent.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerPhysicalMemory']/Ranks$", $serverPhysicalMemory.Ranks)
$InstanceServerPhysicalMemoryComponent.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerPhysicalMemory']/Technology$", $serverPhysicalMemory.Technology)
$InstanceServerPhysicalMemoryComponent.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerPhysicalMemory']/Devicetype$", $serverPhysicalMemory.Devicetype)
$InstanceServerPhysicalMemoryComponent.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerPhysicalMemory']/Errorcorrection$", $serverPhysicalMemory.Errorcorrection)
$InstanceServerPhysicalMemoryComponent.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerPhysicalMemory']/Datawidthbits$", $serverPhysicalMemory.Datawidthbits)
$InstanceServerPhysicalMemoryComponent.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerPhysicalMemory']/Buswidthbits$", $serverPhysicalMemory.Buswidthbits)
$InstanceServerPhysicalMemoryComponent.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerPhysicalMemory']/Channel$", $serverPhysicalMemory.Channel)
$InstanceServerPhysicalMemoryComponent.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerPhysicalMemory']/MemoryController$", $serverPhysicalMemory.MemoryController)
$InstanceServerPhysicalMemoryComponent.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerPhysicalMemory']/Slot$", $serverPhysicalMemory.Slot)
$InstanceServerPhysicalMemoryComponent.AddProperty("$MPElement[Name='HewlettPackard.Oneview.Server.HPProliantServerPhysicalMemory']/State$", $serverPhysicalMemory.State)
$InstanceServerPhysicalMemoryComponent.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", $serverPhysicalMemory.Name)
$DiscoveryData.AddInstance($InstanceServerPhysicalMemoryComponent)
#$OpsMgr.LogScriptEvent("Script",41,0, "InstanceServerPhysicalMemoryComponent discovery done")
}
}
}
}
}
}
$OpsMgr.Return($DiscoveryData)
}
if ($args.Length -eq 6)
{
LoadSnapIn
Main $args[0] $args[1] $args[2] $args[3] $args[4] $args[5]
}


</Script></Contents>
</File>
</Files>
</DataSource>
</MemberModules>
<Composition>
<Node ID="DS"/>
</Composition>
</Composite>
</ModuleImplementation>
<OutputType>System!System.Discovery.Data</OutputType>
</DataSourceModuleType>