Fujitsu ETERNUS Probe Action Module RAID Group Script
Fujitsu.Storage.ETERNUS.ProbeActionModule.RGScript (ProbeActionModuleType)
Element properties:
Member Modules:
Source Code:
<ProbeActionModuleType ID="Fujitsu.Storage.ETERNUS.ProbeActionModule.RGScript" Accessibility="Public" Batching="false" PassThrough="false">
<Configuration/>
<ModuleImplementation Isolation="Any">
<Composite>
<MemberModules>
<ProbeAction ID="PSScript" TypeID="Windows!Microsoft.Windows.PowerShellPropertyBagTriggerOnlyProbe">
<ScriptName>RGScript.ps1</ScriptName>
<ScriptBody><Script>
write-eventLog -LogName ETERNUS -Message "RG DS" -Source Cs -id 205
$api = new-object -comObject 'MOM.ScriptAPI'
Add-PSSnapin Get-RGList
$rgs = Get-RGList
$rgCount = $rgs.Length
for($i = 0; $i -lt $rgCount; $i++)
{
$bag = $api.CreatePropertyBag()
$bag.AddValue('RGName',$rgs[$i].ObjectName)
if($rgs[$i].State.Equals('Exposed') -or $rgs[$i].State.Equals('Exposed (Fast)') -or $rgs[$i].State.Equals('Partially Exposed (Fast)'))
{
$bag.AddValue('Result','Warning')
}
elseif($rgs[$i].State.Equals("Partially Exposed") -or $rgs[$i].State.Equals("No Disk Path") -or $rgs[$i].State.Equals("Broken") -or $rgs[$i].State.Equals("Broken (Fast)") -or $rgs[$i].State.Equals("SED Locked"))
{
$bag.AddValue('Result','Error')
}
else
{
$bag.AddValue('Result','Normal')
}
$bag.AddValue('State',$rgs[$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>