EMC Isilon Scripted Discovery Data source
EMC.Isilon.ScriptedDiscoveryDS (DataSourceModuleType)
This data source discovers the EMC Isilon Main classes
Element properties: Member Modules:
Overrideable Parameters:
Source Code: <DataSourceModuleType ID="EMC.Isilon.ScriptedDiscoveryDS" Accessibility="Public" Batching="false">
<Configuration>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="LicenseKey" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="IntervalSeconds" type="xsd:int"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="SNMPAddress" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="DeviceKey" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="ClusterGUID" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="ClusterName" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="NodeName" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="SyncTime" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="TimeoutSeconds" type="xsd:integer"/>
</Configuration>
<OverrideableParameters>
<OverrideableParameter ID="LicenseKey" Selector="$Config/LicenseKey$" ParameterType="string"/>
<OverrideableParameter ID="IntervalSeconds" Selector="$Config/IntervalSeconds$" ParameterType="int"/>
<OverrideableParameter ID="SyncTime" Selector="$Config/SyncTime$" ParameterType="string"/>
<OverrideableParameter ID="TimeoutSeconds" Selector="$Config/TimeoutSeconds$" ParameterType="int"/>
</OverrideableParameters>
<ModuleImplementation Isolation="Any">
<Composite>
<MemberModules>
<DataSource ID="Scheduler" TypeID="System!System.Discovery.Scheduler">
<Scheduler>
<SimpleReccuringSchedule>
<Interval>$Config/IntervalSeconds$</Interval>
<SyncTime>$Config/SyncTime$</SyncTime>
</SimpleReccuringSchedule>
<ExcludeDates/>
</Scheduler>
</DataSource>
<ProbeAction ID="SSHPA" TypeID="MUL!Microsoft.Unix.SSHCommand.ProbeAction">
<Host>$Config/SNMPAddress$</Host>
<Port>22</Port>
<UserName>$RunAs[Name="EMC.Isilon.RunAsProfile"]/UserName$</UserName>
<Password>$RunAs[Name="EMC.Isilon.RunAsProfile"]/Password$</Password>
<Command>isi_nodes -L NodeID: %{id}; isi_hw_status</Command>
<TimeoutSeconds>$Config/TimeoutSeconds$</TimeoutSeconds>
</ProbeAction>
<ProbeAction ID="Script" TypeID="Windows!Microsoft.Windows.ScriptDiscoveryProbe">
<ScriptName>EMC.Isilon.ScriptedDiscovery.vbe</ScriptName>
<Arguments>"$Config/LicenseKey$" "$Config/DeviceKey$" "$Config/NodeName$" "$Config/ClusterGUID$" "$Config/ClusterName$" "$Data///*[local-name()="stdout"]$"</Arguments>
<ScriptBody><Script> 'Option Explicit
'Test discovery using {00000000-0000-0000-0000-000000000000} {00000000-0000-0000-0000-000000000000}
#@~^4wAAAA==jYJKmmV+vJUO!/E#@#@&@#@&;WxkOPGk/1G-+MX}4%+^OA\nxD(f,'~+ZF*@#@&;WU/D~Gkd1W7+DHr(%+1YHls+~x,J2t/R&/k^GUR;V!/O+.HKNnJ@#@&@#@&frh,Wb.Lk@#@&?O,W)MokP',U^DbwORzDL;s+xDd@#@&k0,G)DT/cZGEUO,@!~F,Ptx@#@&,PP d1DrwD 5ErDP F@#@&2 [P&0+0EAAA==^#~@
strLicenseKey = oArgs(0)
strManagementGroupName = "$Target/ManagementGroup/Name$"
Dim oAPI, oDiscoveryData, oInst, strExtractedManagementGroupName
Set oAPI = CreateObject("MOM.ScriptAPI")
Call oAPI.LogScriptEvent(DiscoveryObjectScriptName, DiscoveryObjectEventID, 4 , oArgs(5))
Call oAPI.LogScriptEvent(DiscoveryObjectScriptName, DiscoveryObjectEventID, 4 , strManagementGroupName)
Set oDiscoveryData = oAPI.CreateDiscoveryData(0, "$MPElement$", "$Target/Id$")
If strLicenseKey <> "Unlicensed" Then
temp = Decrypt(strLicenseKey,"Infront.EMC.Isilon")
strExtractedManagementGroupName = Split(temp,";;")(0)
strExtractedManagementGroupName = LCase(strExtractedManagementGroupName)
strManagementGroupName = LCase(strManagementGroupName)
If strExtractedManagementGroupName <> strManagementGroupName Then
strLicenseKey = "Invalid"
End If
If InStr(temp,";;")<> 0 Then
strLicenseEndDate = Split(temp,";;")(1)
End If
Else
strLicenseEndDate = ""
End If
Call oAPI.LogScriptEvent(DiscoveryObjectScriptName, DiscoveryObjectEventID, 4 , "Extracted Management Group Name: " & strExtractedManagementGroupName)
Call oAPI.LogScriptEvent(DiscoveryObjectScriptName, DiscoveryObjectEventID, 4 , "LicenseKey: " & strLicenseKey)
Call oAPI.LogScriptEvent(DiscoveryObjectScriptName, DiscoveryObjectEventID, 4 , "LicenseEndDate: " & strLicenseEndDate)
Set MPLicenseInst = oDiscoveryData.CreateClassInstance("$MPElement[Name='EMC.Isilon.MPLicense']$")
Call MPLicenseInst.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", "EMC Isilon MP")
Call MPLicenseInst.AddProperty("$MPElement[Name='EMC.Isilon.MPLicense']/Product$", "EMC Isilon MP")
Call MPLicenseInst.AddProperty("$MPElement[Name='EMC.Isilon.MPLicense']/LicenseKey$", strLicenseKey)
Call MPLicenseInst.AddProperty("$MPElement[Name='EMC.Isilon.MPLicense']/LicenseEndDate$", strLicenseEndDate)
Call oDiscoveryData.AddInstance(MPLicenseInst)
#@~^PwUAAA==(6PdDDdkmxkn|X~@!@*PEi Vk1nxk+Nr~Cx9PkY.Sr^xd+nnX,@!@*~rqx-C^k[J,P4+U@#@&@#@&P,P,(0,Z9lD+cdDDSb^+ /+AU[fmY#~@*~9mYn`*~K4+U~,PP@#@&@#@&~P,~,P~,nMWm/kGD&x[+XPx~8@#@&,~P,PP,~]btq Nn6~x,F@#@&,~P,P~~,1.])tqUNa,'~8@#@&PP,P,~P,nGhDj;awVH(x9+6,x~F@#@&,P~P~~,P9kkVZKxO.KVVn.&x[+X~{Pq@#@&,PP,P,~P&xWk k$C Nb9CwD+D&U[+XP{Pq@#@&@#@&P~P,~P,PoGMP2C^4PJk n,kU,?aVkD`K)DT/c**~~E'xJ*@#@&,PP,@#@&P,P,P~P~~,P~?s+1Y~/m/+~PMkh`U2^kOvSbx+BPrlJ*`T#*@#@&@#@&PP,~P,PP,~~P,P,P/ldn,JHW9nqGJ@#@&,PP~~,P~P,~,P~,P,PP,/gGNq9P{PP.b:`U2VbY`drU+BPr)E#cq*#@#@&@#@&P,P~~,PP~~,P~P,~;ldPr?+M1KE@#@&P~P,P~~,PP,~P,PP,~~Pk?DrlsH!:8+M~',K.rs`?2sbYcSbU~~r)r#`8#*@#@&@#@&~P,P~~,PP,~P,PP,/C/Pr?nDrnkJ@#@&,~P,P~~,PP~~,P~P,~,PdU+Mk+kP{~KMkh`UwsrD`SbU+BPJ=Eb`8#*@#@&@#@&~,P~P,~P,P~~,PP~/m/nPrKMW[!mDJ@#@&P,~P,P~P,P~~,PP,~P,P/h.GN!mDPxPP.b:c?askD`Jr +~~E=Jb`8b*@#@&,P,PP,P,@#@&,P~P,P~~,PP,~P,PZmdnPrCqMnxE@#@&P~P,~P,P~~,PP~~,P~P,d_!x,'P:Dbh`UwskD`Jr +~,E)r#`8bb@#@&P,P~P~~,@#@&P,~P,P~~,PP~~,P~ZmdPE;tm//b/r@#@&,P~P,P~~,PP,~P,PP,~~/;tm/dkd~{PPDbh`UwsrD`SrU~~J=E*`q*#@#@&P,P,~P,P@#@&,P~~,PP,~P,PP,~~Zm/PEHG8KJ@#@&,~P,P~~,PP~~,P~P,~,PdtWDt+M4KCD9PxP:Drhv?w^rYvSk nSPr)r#cFbb@#@&~P,~P,P~@#@&PP~~,P~P,~,P~,P,Zlk+,EqtAE@#@&P~~,PP,~P,PP,~~P,P,Pdq\$,'~KMr:v?2sbY`Jr +SPrlr#c8#*P@#@&P,~P,P~P@#@&~~,PP,~P,PP,~~P,Zm/nPE/hjE@#@&~P,P~~,PP~~,P~P,~,P~knMWm/kGD,'~KMkhcUwVbO`dkxS~J=J*`q#bESIBAA==^#~@
Set oInst = oDiscoveryData.CreateClassInstance("$MPElement[Name='EMC.Isilon.Processor']$")
Call oInst.AddProperty("$MPElement[Name='NetworkLibrary!System.NetworkManagement.Node']/DeviceKey$", oArgs(1))
Call oInst.AddProperty("$MPElement[Name='NetworkLibrary!System.NetworkManagement.LogicalDevice']/Key$", ProcessorIndex)
Call oInst.AddProperty("$MPElement[Name='NetworkLibrary!System.NetworkManagement.LogicalDevice']/Index$", ProcessorIndex)
Call oInst.AddProperty("$MPElement[Name='NetworkLibrary!System.NetworkManagement.LogicalDevice']/Description$", sProcessor)
Call oInst.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", "EMC Isilon Processor")
Call oDiscoveryData.AddInstance(oInst)
#@~^kQAAAA==~,P~,P,PP,P,~P,P~P,PK.Km+kdWMqx9naP{PhDGmndkW.q [+XPQ~8@#@&@#@&,P~P,~,P~,P,PP,P;C/PEIzHE@#@&PP,~P,PP,~~P,P,P~P~~kI)H,xP:Drhv?wsrD`Jk nBPE=J*`F*#fB8AAA==^#~@
Set oInst = oDiscoveryData.CreateClassInstance("$MPElement[Name='EMC.Isilon.RAM']$")
Call oInst.AddProperty("$MPElement[Name='NetworkLibrary!System.NetworkManagement.Node']/DeviceKey$", oArgs(1))
Call oInst.AddProperty("$MPElement[Name='NetworkLibrary!System.NetworkManagement.LogicalDevice']/Key$", "RAM-" & RAMIndex)
Call oInst.AddProperty("$MPElement[Name='NetworkLibrary!System.NetworkManagement.LogicalDevice']/Index$", "RAM-" & RAMIndex)
Call oInst.AddProperty("$MPElement[Name='NetworkLibrary!System.NetworkManagement.LogicalDevice']/Description$", sRAM)
Call oInst.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", "EMC Isilon RAM")
Call oDiscoveryData.AddInstance(oInst)
#@~^kQAAAA==~,P~,P,PP,P,~P,P~P,P])tqx9n6,'P")\q N6~_~q@#@&~P,~P,P~@#@&PP~~,P~P,~,P~,P,Zlk+,E1jIC:r@#@&~,PP,~P,PP,~~P,P,P~PdHjI)H,xP:Drhv?wsrD`Jk nBPE=J*`F*#RBwAAA==^#~@
Set oInst = oDiscoveryData.CreateClassInstance("$MPElement[Name='EMC.Isilon.NVRAM']$")
Call oInst.AddProperty("$MPElement[Name='NetworkLibrary!System.NetworkManagement.Node']/DeviceKey$", oArgs(1))
Call oInst.AddProperty("$MPElement[Name='NetworkLibrary!System.NetworkManagement.LogicalDevice']/Key$", "NVRAM-" & NVRAMIndex)
Call oInst.AddProperty("$MPElement[Name='NetworkLibrary!System.NetworkManagement.LogicalDevice']/Index$", "NVRAM-" & NVRAMIndex)
Call oInst.AddProperty("$MPElement[Name='NetworkLibrary!System.NetworkManagement.LogicalDevice']/Description$", sNVRAM)
Call oInst.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", "EMC Isilon NVRAM")
Call oDiscoveryData.AddInstance(oInst)
#@~^nwAAAA==~,P~,P,PP,P,~P,P~P,PH#"bH&UN6P{~H."btqUNna,_~F@#@&P,P~~,PP@#@&,P~P,~,P~,P,PP,P;C/PEfk3/O^J@#@&~P,PP,~~P,P,P~P~~,P~/Gr/0ZGUDDWssD~',PMkhv?aVkD`drx~~J=Jbc8##OCIAAA==^#~@
Set oInst = oDiscoveryData.CreateClassInstance("$MPElement[Name='EMC.Isilon.DiskController']$")
Call oInst.AddProperty("$MPElement[Name='NetworkLibrary!System.NetworkManagement.Node']/DeviceKey$", oArgs(1))
Call oInst.AddProperty("$MPElement[Name='NetworkLibrary!System.NetworkManagement.PhysicalPackage']/Key$", DiskControllerIndex)
Call oInst.AddProperty("$MPElement[Name='NetworkLibrary!System.NetworkManagement.PhysicalPackage']/Index$", DiskControllerIndex)
Call oInst.AddProperty("$MPElement[Name='NetworkLibrary!System.NetworkManagement.PhysicalPackage']/Type$", sDiskController)
Call oInst.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", "EMC Isilon Disk Controller")
Call oDiscoveryData.AddInstance(oInst)
#@~^rwAAAA==~,P~,P,PP,P,~P,P~P,P9rk3ZKUYMWV^n.q N6~'~9b/VZKUYMWssDqU[6~_,q@#@&~,P,PP,P@#@&P,P~P,P~~,PP,~P,Zlkn~JhhM?;wsE@#@&~P,~P,P~~,PP~~,P~P,~knGS+M?Eaw^zP{PPDb:cjaVkDcSbx+B~E)r#vFb#ESoAAA==^#~@
Set oInst = oDiscoveryData.CreateClassInstance("$MPElement[Name='EMC.Isilon.PowerSupply']$")
Call oInst.AddProperty("$MPElement[Name='NetworkLibrary!System.NetworkManagement.Node']/DeviceKey$", oArgs(1))
Call oInst.AddProperty("$MPElement[Name='NetworkLibrary!System.NetworkManagement.LogicalDevice']/Key$", PowerSupplyIndex)
Call oInst.AddProperty("$MPElement[Name='NetworkLibrary!System.NetworkManagement.LogicalDevice']/Index$", PowerSupplyIndex)
Call oInst.AddProperty("$MPElement[Name='NetworkLibrary!System.NetworkManagement.LogicalDevice']/Description$", sPowerSupply)
Call oInst.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", "EMC Isilon PowerSupply")
Call oDiscoveryData.AddInstance(oInst)
#@~^qgAAAA==~,P~,P,PP,P,~P,P~P,PKGS+DU;waVX&U[+XP{PKWAnM?;wasX&x[nXP_~q@#@&@#@&,~,P~,P,PP,P,~P,ZC/PE(~KXanJ@#@&P,~~P,P,P~P~~,P~P,~PkqUWbxk$C N)Nm2D+.,',KDb:vjw^kO`dkUnBPJ=E#vF#*~~P,sCgAAA==^#~@
Set oInst = oDiscoveryData.CreateClassInstance("$MPElement[Name='EMC.Isilon.InfiniBandAdapter']$")
Call oInst.AddProperty("$MPElement[Name='NetworkLibrary!System.NetworkManagement.Node']/DeviceKey$", oArgs(1))
Call oInst.AddProperty("$MPElement[Name='NetworkLibrary!System.NetworkManagement.NetworkAdapter']/Key$", "IB-" & InfiniBandAdapterIndex)
Call oInst.AddProperty("$MPElement[Name='NetworkLibrary!System.NetworkManagement.NetworkAdapter']/Index$", "IB-" & InfiniBandAdapterIndex)
Call oInst.AddProperty("$MPElement[Name='NetworkLibrary!System.NetworkManagement.NetworkAdapter']/Type$", sInfiniBandAdapter)
Call oInst.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", "EMC Isilon InfiniBandAdapter")
Call oDiscoveryData.AddInstance(oInst)
#@~^eQAAAA==~,P~,P,PP,P,~P,P~P,P(U6kxb$l Nb9C2YD&x[+a~{P(x6rxbACU9bNC2D+.q [6~3P8@#@&@#@&,~P,P~P,P~~,2x9~?V+1O@#@&@#@&,P~P~~,PH+XOwRwAAA==^#~@
Set oInst = oDiscoveryData.CreateClassInstance("$MPElement[Name='EMC.Isilon.ClusterNode']$")
Call oInst.AddProperty("$MPElement[Name='NetworkLibrary!System.NetworkManagement.Node']/DeviceKey$", oArgs(1))
Call oInst.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", "EMC Isilon Cluster Node " & oArgs(2))
Call oInst.AddProperty("$MPElement[Name='EMC.Isilon.ClusterNode']/NodeName$", oArgs(2))
Call oInst.AddProperty("$MPElement[Name='EMC.Isilon.ClusterNode']/ClusterGUID$", oArgs(3))
Call oInst.AddProperty("$MPElement[Name='EMC.Isilon.ClusterNode']/ClusterName$", oArgs(4))
Call oInst.AddProperty("$MPElement[Name='EMC.Isilon.ClusterNode']/NodeID$", sNodeID)
Call oInst.AddProperty("$MPElement[Name='EMC.Isilon.ClusterNode']/SerialNumber$", sSerialNumber)
Call oInst.AddProperty("$MPElement[Name='EMC.Isilon.ClusterNode']/Series$", sSeries)
Call oInst.AddProperty("$MPElement[Name='EMC.Isilon.ClusterNode']/Product$", sProduct)
Call oInst.AddProperty("$MPElement[Name='EMC.Isilon.ClusterNode']/HWGen$", sHWGen)
Call oInst.AddProperty("$MPElement[Name='EMC.Isilon.ClusterNode']/Chassis$", sChassis)
Call oInst.AddProperty("$MPElement[Name='EMC.Isilon.ClusterNode']/Motherboard$", sMotherboard)
Call oInst.AddProperty("$MPElement[Name='EMC.Isilon.ClusterNode']/IMB$", sIMB)
Call oDiscoveryData.AddInstance(oInst)
Set ClusterInst = oDiscoveryData.CreateClassInstance("$MPElement[Name='EMC.Isilon.Cluster']$")
Call ClusterInst.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", "EMC Isilon Cluster")
Call ClusterInst.AddProperty("$MPElement[Name='EMC.Isilon.Cluster']/ClusterGUID$", oArgs(3))
Call ClusterInst.AddProperty("$MPElement[Name='EMC.Isilon.Cluster']/ClusterName$", oArgs(4))
Call oDiscoveryData.AddInstance(ClusterInst)
Set oInst = oDiscoveryData.CreateClassInstance("$MPElement[Name='EMC.Isilon.ClusterNode']$")
Call oInst.AddProperty("$MPElement[Name='NetworkLibrary!System.NetworkManagement.Node']/DeviceKey$", oArgs(1))
Set relationshipInstance = oDiscoveryData.CreateRelationshipInstance("$MPElement[Name='EMC.Isilon.ClusterContainsClusterNode']$")
relationshipInstance.Source = ClusterInst
relationshipInstance.Target = oInst
Call oDiscoveryData.AddInstance(relationshipInstance)
#@~^PgEAAA==~,P~AVk+@#@&P,~P,P~P@#@&~~,PP,~P;lV^~GbhqcSGoj^Mk2YA-+ Yc9b/mG-Dzr(%mOUmMkwD1mh+BP9kkmG-DX}8LmYA-nxDqG~~c~S,J\n,Jk1+UdP2a2bDnNrb@#@&@#@&P,PPAx9~q6@#@&@#@&2sd@#@&,~P,@#@&,~~P;l^V~W)K&RJWTjmMk2OA\+UOvfr/1G7+.Hr(L+1YU^DbwO1m:nS,fkk^W7+DH68LmD2-+UO&fSPW~~,JiU^kmnUk+[PK.,qU7l^kN,Sb^+ /nPn+z~G+Y^YNJ*@#@&@#@&2 N~qWzVsAAA==^#~@
Set oInst = oDiscoveryData.CreateClassInstance("$MPElement[Name='EMC.Isilon.ClusterNodeHelper']$")
Call oInst.AddProperty("$MPElement[Name='NetworkLibrary!System.NetworkManagement.Node']/DeviceKey$", oArgs(1))
Call oInst.AddProperty("$MPElement[Name='EMC.Isilon.ClusterNodeHelper']/LicenseKey$", strLicenseKey)
Call oDiscoveryData.AddInstance(oInst)
Call oAPI.Return(oDiscoveryData)
Call oAPI.LogScriptEvent(DiscoveryObjectScriptName, DiscoveryObjectEventID, 4 , "Completed " & DiscoveryObjectName & " discovery...")
Set oDiscoveryData = nothing
Set oApi = nothing
#@~^NAIAAA==o!x^DkKxPG+1.XaYc?DDSFX#@#@&@#@&dfbh~Sxn+z~~FXKWkSPd+UjDD~~aBPH+SjDD@#@&P@#@&dg+SjYMPxPrJ@#@&iS+ F+HP',Jnxv|Xb@#@&7n+znKdP{Pq@#@&dSnUUY.P{~d+Uv?DD#@#@&,7?DD~',?O."+\./`?D.b@#@&@#@&doW.~XPxPdnxUY.~:WPq~UYnw,R8@#@&id&0Ptk9c?DDS6BFb~{PJ,EP:t+ @#@&didg+A?O.,'~1A?DD~',JPE@#@&d72^d@#@&idi1+S?D.P{PH+S?O.,[P;4Dv`bk^cHbNv?ODSaBFb#,QPvbd^vHk[cn+z~nnHnGk~8##,HK[P8 b#*@#@&7i2x9~q6@#@&i7F+HnK/~'~FXKWkQF@#@&77&0PFnHnG/,@*,Sn |XP:tU@#@&d7dn+zKK/P{~F@#@&di3UN,q6@#@&P~~,1n6D@#@&i@#@&~,PPHnS?OD{jDD]\D/`gnhUY.#@#@&~~,P@#@&7fmDH2OP{Pg+A/O.@#@&@#@&AUN,s;U1YkGU@#@&zIgAAA==^#~@
</Script> </ScriptBody>
<SecureInput/>
<TimeoutSeconds>$Config/TimeoutSeconds$</TimeoutSeconds>
<EventPolicy/>
</ProbeAction>
</MemberModules>
<Composition>
<Node ID="Script">
<Node ID="SSHPA">
<Node ID="Scheduler"/>
</Node>
</Node>
</Composition>
</Composite>
</ModuleImplementation>
<OutputType>System!System.Discovery.Data</OutputType>
</DataSourceModuleType>