HPEnterpriseStorageLeftHandMP.LHNCluster_Notification (DataSourceModuleType)

Element properties:

TypeDataSourceModuleType
IsolationAny
AccessibilityInternal
RunAsDefault
OutputTypeSystem.Event.Data

Member Modules:

ID Module Type TypeId RunAs 
LeftHandCluster DataSource Microsoft.Windows.WmiEventProvider.EventProvider Default
LeftHandClusterPropertyBagProbe ProbeAction Microsoft.Windows.ScriptPropertyBagProbe Default
ClusterEveMapper ConditionDetection System.Event.GenericDataMapper Default

Overrideable Parameters:

IDParameterTypeSelector
IntervalSecondsint$Config/IntervalSeconds$
SyncTimestring$Config/SyncTime$

Source Code:

<DataSourceModuleType ID="HPEnterpriseStorageLeftHandMP.LHNCluster_Notification" Accessibility="Internal" Batching="false">
<Configuration>
<xsd:element minOccurs="1" name="IntervalSeconds" type="xsd:integer"/>
<xsd:element minOccurs="1" name="SyncTime" type="xsd:string"/>
</Configuration>
<OverrideableParameters>
<OverrideableParameter ID="IntervalSeconds" Selector="$Config/IntervalSeconds$" ParameterType="int"/>
<OverrideableParameter ID="SyncTime" Selector="$Config/SyncTime$" ParameterType="string"/>
</OverrideableParameters>
<ModuleImplementation Isolation="Any">
<Composite>
<MemberModules>
<DataSource ID="LeftHandCluster" TypeID="WindowsLibrary!Microsoft.Windows.WmiEventProvider.EventProvider">
<NameSpace>root\snmp\localhost</NameSpace>
<Query>SELECT * FROM SNMP_LEFTHAND_NETWORKS_NSM_NOTIFICATION_MIB_lhnNsmNotificationCluster_Notification</Query>
<PollInterval>60</PollInterval>
</DataSource>
<ProbeAction ID="LeftHandClusterPropertyBagProbe" TypeID="WindowsLibrary!Microsoft.Windows.ScriptPropertyBagProbe">
<ScriptName>LeftHandCluster.vbs</ScriptName>
<Arguments>"key:CLASS" "$Data[Default='null']/EventData/DataItem/Property[@Name='__CLASS']$" "key:AgentAddress" "$Data[Default='null']/EventData/DataItem/Property[@Name='AgentAddress']$" "key:Identification" "$Data[Default='null']/EventData/DataItem/Property[@Name='Identification']$" "key:lhnCluster" "$Data[Default='null']/EventData/DataItem/Property[@Name='lhnCluster']$" "key:lhnEventID" "$Data[Default='null']/EventData/DataItem/Property[@Name='lhnEventID']$" "key:lhnHostname" "$Data[Default='null']/EventData/DataItem/Property[@Name='lhnHostname']$" "key:lhnMac" "$Data[Default='null']/EventData/DataItem/Property[@Name='lhnMac']$" "key:lhnManagementGroup" "$Data[Default='null']/EventData/DataItem/Property[@Name='lhnManagementGroup']$" "key:lhnManagementGroupSerialNumber" "$Data[Default='null']/EventData/DataItem/Property[@Name='lhnManagementGroupSerialNumber']$" "key:lhnManagementGroupVersion" "$Data[Default='null']/EventData/DataItem/Property[@Name='lhnManagementGroupVersion']$" "key:lhnMessage" "$Data[Default='null']/EventData/DataItem/Property[@Name='lhnMessage']$" "key:lhnMessageTime" "$Data[Default='null']/EventData/DataItem/Property[@Name='lhnMessageTime']$" "key:lhnModelName" "$Data[Default='null']/EventData/DataItem/Property[@Name='lhnModelName']$" "key:lhnPrimaryIP" "$Data[Default='null']/EventData/DataItem/Property[@Name='lhnPrimaryIP']$" "key:lhnProductID" "$Data[Default='null']/EventData/DataItem/Property[@Name='lhnProductID']$" "key:lhnProductName" "$Data[Default='null']/EventData/DataItem/Property[@Name='lhnProductName']$" "key:lhnSerialNumber" "$Data[Default='null']/EventData/DataItem/Property[@Name='lhnSerialNumber']$" "key:lhnSeverity" "$Data[Default='null']/EventData/DataItem/Property[@Name='lhnSeverity']$" "key:lhnSoftwareVersion" "$Data[Default='null']/EventData/DataItem/Property[@Name='lhnSoftwareVersion']$" "key:lhnUtilization" "$Data[Default='null']/EventData/DataItem/Property[@Name='lhnUtilization']$" "key:lhnVipState" "$Data[Default='null']/EventData/DataItem/Property[@Name='lhnVipState']$" "key:lhnUtilizationState" "$Data[Default='null']/EventData/DataItem/Property[@Name='lhnUtilizationState']$" "key:TIME_CREATED" "$Data[Default='null']/EventData/DataItem/Property[@Name='TIME_CREATED']$"</Arguments>
<ScriptBody><Script>
Dim oAPI
Dim tmpArr1(60)
Dim tmpArr2(30)
Dim tmpArr3(30)
Dim intT1, intT2, intT3, strT1, intT4, strT2
Dim intT5, intT6, ConfigFile


Function GetTrapSeverity(Identification)

' VBScript source code

Const ForReading = 1
Const ForWriting = 2

Dim systemDrive
Dim testFilePath
Dim tempFilePath
Dim programFilesPath
Dim wshShell

Set objShell = CreateObject("Wscript.Shell")



Const PROGRAM_FILES = &amp;H26&amp;
strSystemDrive = objShell.ExpandEnvironmentStrings("%SystemDrive%")
strtestFilePath = strSystemDrive &amp; "\Program Files (x86)\"
Set fso = CreateObject("Scripting.FileSystemObject")

If fso.FileExists(strtestFilePath) Then
win64 = false
test = "32bit"

Else
win64 = true
test = "64bit"

End If

if win64 then
strRegistryKey = "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Hewlett-Packard\HP Storage Management Pack for System Center\InstallPath"
else
strRegistryKey = "HKEY_LOCAL_MACHINE\SOFTWARE\Hewlett-Packard\HP Storage Management Pack for System Center\InstallPath"
end if

Set WSHShell = CreateObject("WScript.Shell")
strInstallDir = WSHShell.RegRead( strRegistryKey )
ConfigFile = strInstallDir + "HPStoreVirtualConfig.txt"



testFilePath = ConfigFile


Set trapFile = fso.OpenTextFile(testFilePath, ForReading, True)


dim lines()
dim linepart
dim oidstring, trapoid
dim TrapSeverity
dim nooflines, j, k, flag
dim paramaterno, varno
dim newline
dim trapstring, intTmp, intTmp2, intTmp3

flag = true
nooflines = 0
while not trapFile.atEndOfStream
redim preserve lines(nooflines)
lines(ubound(lines)) = trapFile.readline
nooflines = nooflines+1
wend

trapFile.Close


trapoid = Identification
TrapSeverity = " "
trapstring = "EventID:" + trapoid

Set RegularExpressionObject = New RegExp

With RegularExpressionObject
.Pattern = trapstring
.IgnoreCase = True
.Global = True
End With


for j = 0 to nooflines-1 step 1

expressionmatch = RegularExpressionObject.Test(trim(lines(j)))

if expressionmatch then
TrapSeverity = TrapSeverity &amp; lines(j+1) &amp; vbnewline
end if

next

intTmp = instr(TrapSeverity,":")

intTmp2 = instr(TrapSeverity,";")

intTmp3 = intTmp2 - intTmp

TrapSeverity = Mid(TrapSeverity,intTmp + 1,intTmp3 - 1)

GetTrapSeverity = TrapSeverity

End Function
Function DebugMsg(TextMsg)
Dim strText
Dim systemDrive
Dim tempFilePath
Dim wshShell
Dim CurrentDateTime
Dim NumArgs
Dim severity
Dim sevDesc

Set objShell = CreateObject("Wscript.Shell")



Const PROGRAM_FILES = &amp;H26&amp;
strSystemDrive = objShell.ExpandEnvironmentStrings("%SystemDrive%")
strtestFilePath = strSystemDrive &amp; "\Program Files (x86)\"
Set fso = CreateObject("Scripting.FileSystemObject")

If fso.FileExists(strtestFilePath) Then
win64 = false
test = "32bit"

Else
win64 = true
test = "64bit"

End If

if win64 then
strRegistryKey = "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Hewlett-Packard\HP Storage Management Pack for System Center\InstallPath"
else
strRegistryKey = "HKEY_LOCAL_MACHINE\SOFTWARE\Hewlett-Packard\HP Storage Management Pack for System Center\InstallPath"
end if

Set WSHShell = CreateObject("WScript.Shell")
strInstallDir = WSHShell.RegRead( strRegistryKey )


'strText = "DebugMsg: " + TextMsg
CurrentDate = Now
strText = "DebugMsg: " &amp; FormatDateTime(CurrentDate, 0) &amp; ":" &amp; TextMsg
'strText = test &amp; ":" &amp; strInstallDir
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("Shell.Application")
set wshshell = CreateObject("WScript.Shell")

systemDrive = wshshell.ExpandEnvironmentStrings("%SystemDrive%")
tempFilePath = strInstallDir + "\HPEStoreVirtual.log"
Set objTextFile = objFSO.OpenTextFile(tempFilePath, 8, True)
objTextFile.WriteLine(strText)
objTextFile.Close
End Function

Const EVENT_TYPE_ERROR = 1
Const EVENT_TYPE_WARNING = 2
Const EVENT_TYPE_INFORMATION = 4

Set oAPI = CreateObject("MOM.ScriptAPI")
Set oBag = oAPI.CreatePropertyBag()
Set oArgs = WScript.Arguments

intT1 = oArgs.Count
intT1 = intT1 - 1

For intT2 = 0 To intT1
tmpArr1(intT2) = oArgs(intT2)
Next

intT2 = 0
intT4 = 0

For intT3 = 0 To intT1

strT1 = tmpArr1(intT3)
strT2 = tmpArr1(intT3 + 1)
If(Instr(strT1,"key:")) Then
intT5 = Instr(strT1,"key:")
strT = Mid(strT1,intT5 + 4)
tmpArr2(intT2) = strT

intT2 = intT2 + 1
If(Instr(strT2,"key:")) Then
tmpArr3(intT4) = ""
Else
tmpArr3(intT4) = strT2
End If
intT4 = intT4 + 1
End If

Next
intT1 = Ubound(tmpArr2)

For i = 0 To oArgs.Count
if oArgs(i) = "key:lhnMessage" then
j = i
j = j + 1
desc = oArgs(j)

exit for
end if

Next

Call oBag.AddValue("Event", desc)

For intT2 = 0 to intT1
If(tmpArr2(intT2) = "") Then
t = 0
ElseIf(Trim(tmpArr3(intT2)) &lt;&gt; "" And tmpArr3(intT2) &lt;&gt; "null" And Not IsNull(tmpArr3(intT2))) Then
desc = desc &amp; vbLf &amp; tmpArr2(intT2) &amp; ": " &amp; tmpArr3(intT2)
Call oBag.AddValue(tmpArr2(intT2), tmpArr3(intT2))
End If
Next


For i = 0 To oArgs.Count
if oArgs(i) = "key:lhnEventID" then
j = i
j = j + 1
sev = oArgs(j)

exit for
end if

Next
sev = GetTrapSeverity(sev)

severity = EVENT_TYPE_WARNING
If sev = "Critical" Then
severity = EVENT_TYPE_ERROR
ElseIf sev = "Warning" Then
severity = EVENT_TYPE_WARNING
ElseIf sev = "Informational" Then
severity = EVENT_TYPE_INFORMATION
End If

DebugMsg(desc)
if(severity = EVENT_TYPE_WARNING) then
Call oAPI.LogScriptEvent("", 103, severity, desc)
end if

if(severity = EVENT_TYPE_ERROR) then
Call oAPI.LogScriptEvent("", 103, severity, desc)
end if

Call oBag.AddValue("EventLevel", severity)


Call oAPI.AddItem(oBag)
set oBag = nothing
Call oAPI.ReturnItems()


</Script></ScriptBody>
<TimeoutSeconds>60</TimeoutSeconds>
</ProbeAction>
<ConditionDetection ID="ClusterEveMapper" TypeID="SystemLibrary!System.Event.GenericDataMapper">
<EventOriginId>$Target/Id$</EventOriginId>
<PublisherId>$MPElement$</PublisherId>
<PublisherName>HPE StoreVirtual</PublisherName>
<Channel>Operation Manager</Channel>
<LoggingComputer>$Target/Property[Type="HPEnterpriseStorageLeftHandMP.SNMPTrap"]/Name$</LoggingComputer>
<EventNumber>52000</EventNumber>
<EventCategory>0</EventCategory>
<EventLevel>$Data/Property[@Name='EventLevel']$</EventLevel>
<UserName>Administrator</UserName>
<Description>An event was generated.</Description>
<Params/>
</ConditionDetection>
</MemberModules>
<Composition>
<Node ID="ClusterEveMapper">
<Node ID="LeftHandClusterPropertyBagProbe">
<Node ID="LeftHandCluster"/>
</Node>
</Node>
</Composition>
</Composite>
</ModuleImplementation>
<OutputType>SystemLibrary!System.Event.Data</OutputType>
</DataSourceModuleType>