HPEnterpriseStorageStoreEverTapeDrivesMP.hpHttpMgDeviceRemovedTrap_Notification (DataSourceModuleType)

Element properties:

TypeDataSourceModuleType
IsolationAny
AccessibilityInternal
RunAsDefault
OutputTypeSystem.PropertyBagData

Member Modules:

ID Module Type TypeId RunAs 
HPStoreEverTapeDrives_DeviceRemoved DataSource Microsoft.Windows.WmiEventProvider.EventProvider Default
HPStoreEverTapeDrives_PropertyBagProbe_DeviceRemoved ProbeAction Microsoft.Windows.ScriptPropertyBagProbe Default

Overrideable Parameters:

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

Source Code:

<DataSourceModuleType ID="HPEnterpriseStorageStoreEverTapeDrivesMP.hpHttpMgDeviceRemovedTrap_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="HPStoreEverTapeDrives_DeviceRemoved" TypeID="Windows!Microsoft.Windows.WmiEventProvider.EventProvider">
<NameSpace>root\snmp\localhost</NameSpace>
<Query>SELECT * FROM SNMP_SEMI_MIB_hpHttpMgDeviceRemovedTrap_Notification</Query>
<PollInterval>180</PollInterval>
</DataSource>
<ProbeAction ID="HPStoreEverTapeDrives_PropertyBagProbe_DeviceRemoved" TypeID="Windows!Microsoft.Windows.ScriptPropertyBagProbe">
<ScriptName>StoreEverTapeRemoved.vbs</ScriptName>
<Arguments>"key:CLASS" "$Data/EventData/DataItem/Property[@Name='__CLASS']$" "key:Agent Address" "$Data/EventData/DataItem/Property[@Name='AgentAddress']$" "key:hpHttpMgDevice Index" "$Data/EventData/DataItem/Property[@Name='hpHttpMgDeviceIndex']$" "key:hpHttpMgDevice SysObjID" "$Data/EventData/DataItem/Property[@Name='hpHttpMgDeviceSysObjID']$" "key:TIME_CREATED" "$Data/EventData/DataItem/Property[@Name='TIME_CREATED']$"</Arguments>
<ScriptBody><Script>
Dim oAPI
Dim tmpArr1(50)
Dim tmpArr2(25)
Dim tmpArr3(25)
Dim intT1, intT2, intT3, strT1, intT4, strT2
Dim intT5, intT6


Const TapeLibrary = "1.3.6.1.4.1.11.10.2.1.3"
Const TapeLibrary_C7200 = "1.3.6.1.4.1.11.10.2.1.3.1"
Const TapeLibrary_C7200iSCSI = "1.3.6.1.4.1.11.10.2.1.3.2"
Const TapeLibrary_ESL9198 = "1.3.6.1.4.1.11.10.2.1.3.3"
Const TapeLibrary_ESL9322 = "1.3.6.1.4.1.11.10.2.1.3.4"
Const TapeLibrary_ESL9595 = "1.3.6.1.4.1.11.10.2.1.3.5"
Const TapeLibrary_ESL9326 = "1.3.6.1.4.1.11.10.2.1.3.6"
Const TapeLibrary_MSL5026 = "1.3.6.1.4.1.11.10.2.1.3.7"
Const TapeLibrary_MSL5030 = "1.3.6.1.4.1.11.10.2.1.3.8"
Const TapeLibrary_MSL5052 = "1.3.6.1.4.1.11.10.2.1.3.9"
Const TapeLibrary_MSL5060 = "1.3.6.1.4.1.11.10.2.1.3.10"
Const TapeLibrary_MSL6026 = "1.3.6.1.4.1.11.10.2.1.3.11"
Const TapeLibrary_MSL6030 = "1.3.6.1.4.1.11.10.2.1.3.12"
Const TapeLibrary_MSL6052 = "1.3.6.1.4.1.11.10.2.1.3.13"
Const TapeLibrary_MSL6060 = "1.3.6.1.4.1.11.10.2.1.3.14"
Const TapeLibrary_ESL630 = "1.3.6.1.4.1.11.10.2.1.3.15"
Const TapeLibrary_ESL712 = "1.3.6.1.4.1.11.10.2.1.3.16"
Const TapeLibrary_ESL322 = "1.3.6.1.4.1.11.10.2.1.3.17"
Const TapeLibrary_ESL286 = "1.3.6.1.4.1.11.10.2.1.3.18"
Const TapeLibrary_EML103e = "1.3.6.1.4.1.11.10.2.1.3.19"
Const TapeLibrary_EML245e = "1.3.6.1.4.1.11.10.2.1.3.20"
Const TapeLibrary_VLS6000 = "1.3.6.1.4.1.11.10.2.1.3.21"
Const TapeLibrary_VLSg = "1.3.6.1.4.1.11.10.2.1.3.22"
'New Tape Models support in v1.8
Const TapeLibrary_MSLG3 = "1.3.6.1.4.1.11.10.2.1.3.25"
'New Tape Model support - 2013
Const TapeLibrary_ESLG3 = "1.3.6.1.4.1.11.10.2.1.3.28"
Const TapeLibrary_MSL6480 = "1.3.6.1.4.1.11.10.2.1.3.29"
Const TapeLibrary_MSL4048 = "1.3.6.1.4.1.11.10.2.1.3.26"

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 + "\HPEStoreEverTapeLibraries.log"
Set objTextFile = objFSO.OpenTextFile(tempFilePath, 8, True)
objTextFile.WriteLine(strText)
objTextFile.Close
End Function

Function HexOIDToAscii(var_hex, format)
Dim k, v
HexOIDToAscii = ""
For k = 1 To Len(var_hex) Step 2
v = CInt("&amp;H" &amp; Mid(var_hex, k, 2))
If ((v&gt;31) And (v&lt;128)) Then
HexOIDToAscii = HexOIDToAscii &amp; (chr(v))
Else
If (format) Then
Select Case v
Case 8
HexOIDToAscii= HexOIDToAscii &amp; vbTab
Case 10
HexOIDToAscii = HexOIDToAscii &amp; vbCrLf
Case 13
Case Else
HexOIDToAscii = HexOIDToAscii &amp; "."
End Select
Else
HexOIDToAscii = HexOIDToAscii &amp; "."
End If
End If
Next
OID = mid(HexOIDToAscii,1,len(HexOIDToAscii))
LeftOID = Left(OID,1)
CheckOID = StrComp(LeftOID,"1")
if(CheckOID = 0) then
HexOIDToAscii = OID
else
HexOIDToAscii = mid(HexOIDToAscii,2,len(HexOIDToAscii))
End if
End Function


Function HexStrToAscii(var_hex, format)
Dim k, v

HexStrToAscii = ""

For k = 1 To Len(var_hex) Step 2

v = CInt("&amp;H" &amp; Mid(var_hex, k, 2))


If ((v&gt;31) And (v&lt;128)) Then
HexStrToAscii = HexStrToAscii &amp; (chr(v))
Else
If (format) Then
Select Case v
Case 8
HexStrToAscii = HexStrToAscii &amp; vbTab
Case 10
HexStrToAscii = HexStrToAscii &amp; vbCrLf
Case 13
Case Else
HexStrToAscii = HexStrToAscii &amp; "."
End Select
Else
HexStrToAscii = HexStrToAscii &amp; "."
End If
End If
Next
End Function



Function GetDeviceType(deviceOid)



GetDeviceType = null

Set oRe = CreateObject("VBScript.RegExp")
oRe.Global = True
oRe.Multiline = True

oRe.Pattern = TapeLibrary

If oRe.Test(deviceOid) Then
GetDeviceType = "TL"

End If
End Function


Function TapeLibType(deviceOid)

TapeLibType = null

Select Case deviceOid
Case TapeLibrary_C7200 TapeLibType = "TLC7200"
Case TapeLibrary_C7200iSCSI TapeLibType = "TLC7200iSCSI"
Case TapeLibrary_ESL9198 TapeLibType = "TLESL9198"
Case TapeLibrary_ESL9322 TapeLibType = "TLESL9322"
Case TapeLibrary_ESL9595 TapeLibType = "TLESL9595"
Case TapeLibrary_ESL9326 TapeLibType = "TLESL9326"
Case TapeLibrary_MSL5026 TapeLibType = "TLMSL5026"
Case TapeLibrary_MSL5030 TapeLibType = "TLMSL5030"
Case TapeLibrary_MSL5030 TapeLibType = "TLMSL5030"
Case TapeLibrary_MSL5052 TapeLibType = "TLMSL5052"
Case TapeLibrary_MSL5060 TapeLibType = "TLMSL5060"
Case TapeLibrary_MSL6026 TapeLibType = "TLMSL6026"
Case TapeLibrary_MSL6030 TapeLibType = "TLMSL6030"
Case TapeLibrary_MSL6052 TapeLibType = "TLMSL6052"
Case TapeLibrary_MSL6060 TapeLibType = "TLMSL6060"
Case TapeLibrary_ESL630 TapeLibType = "TLESL630"
Case TapeLibrary_ESL712 TapeLibType = "TLESL712"
Case TapeLibrary_ESL322 TapeLibType = "TLESL322"
Case TapeLibrary_ESL286 TapeLibType = "TLESL286"
Case TapeLibrary_EML103e TapeLibType = "TLEML103e"
Case TapeLibrary_EML245e TapeLibType = "TLEML245e"
Case TapeLibrary_VLS6000 TapeLibType = "TLVLS6000"
Case TapeLibrary_VLSg TapeLibType = "TLVLSg"
Case TapeLibrary_MSLG3 TapeLibType = "TLMSLG3"
Case TapeLibrary_ESLG3 TapeLibType = "TLESLG3"
Case TapeLibrary_MSL6480 TapeLibType = "TLMSL6480"
Case TapeLibrary_MSL4048 TapeLibType = "TLMSL4048"

End Select




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
'DebugMsg("Begin")
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)
flag = 0

For intT2 = 0 to intT1
if(tmpArr2(intT2) = "") then
t = 0
else
if(tmpArr2(intT2) = "hpHttpMgDevice SysObjID") then
strV = HexOIDToAscii(tmpArr3(intT2),true)

DeviceCategory = GetDeviceType(strV)
If DeviceCategory = "TL" Then
DeviceType = TapeLibType(strV)
' Call oAPI.LogScriptEvent("", 104, 0, DeviceType)
flag = 1
exit for
end if
end if
end if
Next
Call oBag.AddValue("EventSource", DeviceType)
if(flag) then
For intT2 = 0 to intT1
if(tmpArr2(intT2) = "") then
t = 0
else
if(instr(tmpArr2(intT2),"hpHttpMg")) then
str = tmpArr2(intT2)
strV = tmpArr3(intT2)
intT5 = Instr(str,"hpHttpMg")
tmpArr2(intT2) = Mid(str, intT5 + 8)
if(tmpArr2(intT2) = "Device SysObjID") then
tmpArr3(intT2) = HexOIDToAscii(strV,true)
elseif(tmpArr2(intT2) = "Device Index") then
tmpArr3(intT2) = strV
else
tmpArr3(intT2)= HexStrToAscii(strV,true)
end if
end if
desc = desc &amp; vbLf &amp; tmpArr2(intT2) &amp; ": " &amp; tmpArr3(intT2)
Call oBag.AddValue(tmpArr2(intT2), tmpArr3(intT2))
end if
Next

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

Call oBag.AddValue("EventLevel", severity)

DebugMsg("Begin:" &amp; "EventSource:" &amp; DeviceType &amp; ";Description:" &amp; desc &amp; ";EventLevel:" &amp; severity &amp; ";END")

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

end if



</Script></ScriptBody>
<TimeoutSeconds>60</TimeoutSeconds>
</ProbeAction>
</MemberModules>
<Composition>
<Node ID="HPStoreEverTapeDrives_PropertyBagProbe_DeviceRemoved">
<Node ID="HPStoreEverTapeDrives_DeviceRemoved"/>
</Node>
</Composition>
</Composite>
</ModuleImplementation>
<OutputType>System!System.PropertyBagData</OutputType>
</DataSourceModuleType>