Fujitsu ETERNUS Probe Action Module RAID Group Disk Script

Fujitsu.Storage.ETERNUS.ProbeActionModule.RGDiskScript (ProbeActionModuleType)

Element properties:

TypeProbeActionModuleType
IsolationAny
AccessibilityPublic
RunAsDefault
OutputTypeSystem.PropertyBagData

Member Modules:

ID Module Type TypeId RunAs 
PSScript ProbeAction Microsoft.Windows.PowerShellPropertyBagTriggerOnlyProbe Default

Source Code:

<ProbeActionModuleType ID="Fujitsu.Storage.ETERNUS.ProbeActionModule.RGDiskScript" Accessibility="Public" Batching="false" PassThrough="false">
<Configuration/>
<ModuleImplementation Isolation="Any">
<Composite>
<MemberModules>
<ProbeAction ID="PSScript" TypeID="Windows!Microsoft.Windows.PowerShellPropertyBagTriggerOnlyProbe">
<ScriptName>RGDiskScript.ps1</ScriptName>
<ScriptBody><Script>

write-eventLog -LogName ETERNUS -Message "RGDisk DS" -Source Cs -id 207

$api = new-object -comObject 'MOM.ScriptAPI'
Add-PSSnapIn Get-DiskList
$disks = Get-DiskList
$diskCount = $disks.Length
Add-PSSnapIn Get-RGDiskPerformList
$disksPerf = Get-RGDiskPerformList
$diskPerfCount = $disksPerf.Length

for($i = 0; $i -lt $diskCount; $i++)
{

$bag = $api.CreatePropertyBag()
$bag.AddValue('DiskName',$disks[$i].ObjectName)
for($j = 0; $j -lt $diskPerfCount; $j++)
{
if($disksPerf[$j].DiskName.Equals($disks[$i].ObjectName))
{
$bag.AddValue('Used Ratio(%)',$disksPerf[$j].UsedRatio)
}
}
if($disks[$i].State.Equals("Redundant Copy"))
{
$bag.AddValue('Result','Warning')
}
elseif($disks[$i].State.Equals("Broken") -or $disks[$i].State.Equals("Not Supported") -or $disks[$i].State.Equals("Failed Usable") -or $disks[$i].State.Equals("Not Exist"))
{
$bag.AddValue('Result','Error')
}
else
{
$bag.AddValue('Result','Normal')
}
$bag.AddValue('State',$disks[$i].State)
$bag

}
</Script></ScriptBody>
<TimeoutSeconds>90</TimeoutSeconds>
</ProbeAction>
</MemberModules>
<Composition>
<Node ID="PSScript"/>
</Composition>
</Composite>
</ModuleImplementation>
<OutputType>System!System.PropertyBagData</OutputType>
<TriggerOnly>true</TriggerOnly>
</ProbeActionModuleType>