Lenovo SystemX MgmtController BIOS IncompatibleProvider Probe

IBM.SystemX.MgmtController.BIOS.IncompatibleProvider.Probe (ProbeActionModuleType)

Element properties:

TypeProbeActionModuleType
IsolationAny
AccessibilityPublic
RunAsDefault
OutputTypeSystem.PropertyBagData

Member Modules:

ID Module Type TypeId RunAs 
PassThrough ProbeAction System.PassThroughProbe Default
Script ProbeAction IBM.WinComputer.PropertyBagBase.Repository Default

Source Code:

<ProbeActionModuleType ID="IBM.SystemX.MgmtController.BIOS.IncompatibleProvider.Probe" Accessibility="Public" Batching="false" PassThrough="false">
<Configuration>
<xsd:element name="TimeoutSeconds" type="xsd:integer"/>
</Configuration>
<ModuleImplementation Isolation="Any">
<Composite>
<MemberModules>
<ProbeAction ID="PassThrough" TypeID="System!System.PassThroughProbe"/>
<ProbeAction ID="Script" TypeID="IBM.WinComputer.PropertyBagBase.Repository">
<ScriptName>IBMHwMgmtControllerIncompatible.vbs</ScriptName>
<Arguments>"$Target/Property[Type="IBM.SystemX.HWComponent"]/InstanceID$"</Arguments>
<ScriptBody><Script>

Dim oArgs
Set oArgs = WScript.Arguments
WScript.Echo oArgs.Count
if oArgs.Count &lt; 1 Then
'Wscript.Quit -1
End If

SetLocale("en-us")
Dim Name

Name = oArgs(0)
EventID = 112

if Name = "BMC or IMM" Then
Call GetMgmtControllerBMCStatus()
else

Call CreateEmptyPropertyBag()
End If


Sub CreateEmptyPropertyBag()

'Set oAPI = SCOMCreateObject("MOM.ScriptAPI")

Call LogDebugString("Entering CreateEmptyPropertyBag", INFO_LEVEL_FUNCTION)
Call LogDebugString("Management Controller Name:" + Name, INFO_LEVEL_DETAIL)

Set oBag= oAPI.CreatePropertyBag()
'Call UpdateMgmtControllerBMCState(oBag)
Call oAPI.Return(oBag)

End Sub

Sub GetMgmtControllerBMCStatus()

Dim oReg, RC_Code
debug = -1
'Set oAPI = SCOMCreateObject("MOM.ScriptAPI")
Set oReg = GetObject("winmgmts://localhost/root/default:StdRegProv")
If (not(oReg is nothing)) Then
RC_Code = oReg.GetStringValue(HKEY_LOCAL_MACHINE, DEBUG_INFO_KEY, DEBUG_LEVEL_NAME, debug)
If ( RC_Code&lt;&gt;0) Then
debug = -1
End If
End If
Call LogDebugString("Entering GetMgmtControllerBMCStatus", INFO_LEVEL_DETAIL)
Call LogDebugString("Management Controller Name:" + Name, INFO_LEVEL_DETAIL)

Set oBag= oAPI.CreatePropertyBag()
Call UpdateMgmtControllerBMCState(oBag)
Call oAPI.Return(oBag)

End Sub

Function UpdateMgmtControllerBMCState(ByRef oBag)
Call LogDebugString("Entering UpdateMgmtControllerBMCState", INFO_LEVEL_FUNCTION)
Dim iResult, strNormal, strAbnormal

strNormal = "IBM BMC or BMC SMBIOS compatible"
strAbnormal = "IBM BMC or BMC SMBIOS need update"

iResult = BMCPresented()
If iResult = 3 Then
'"SMBIOS(Need update)"
Call LogDebugString(Name + " Warning added into property bag", INFO_LEVEL)
Call oBag.AddValue("State", "Warning")
Call oBag.AddValue("Description",strAbnormal)
UpdateMgmtControllerBMCState = 1
ElseIf iResult = 1 Then
Call LogDebugString(Name + " Healthy added into property bag", INFO_LEVEL)
Call oBag.AddValue("State", "Healthy")
Call oBag.AddValue("Description",strAbnormal)
UpdateMgmtControllerBMCState = 1
ElseIf iResult = 2 Then
Call LogDebugString(Name + " Healthy added into property bag", INFO_LEVEL_DETAIL)
Call oBag.AddValue("State", "Healthy")
Call oBag.AddValue("Description",strAbnormal)
UpdateMgmtControllerBMCState = 1
Else 'no BMC
Call LogDebugString(Name + " Error added into property bag", INFO_LEVEL)
Call oBag.AddValue("State", "Error")
Call oBag.AddValue("Description",strAbnormal)
UpdateMgmtControllerBMCState = 1
End If

End Function
</Script></ScriptBody>
<TimeoutSeconds>$Config/TimeoutSeconds$</TimeoutSeconds>
</ProbeAction>
</MemberModules>
<Composition>
<Node ID="Script">
<Node ID="PassThrough"/>
</Node>
</Composition>
</Composite>
</ModuleImplementation>
<OutputType>System!System.PropertyBagData</OutputType>
<TriggerOnly>true</TriggerOnly>
</ProbeActionModuleType>