Storage Controller Health Monitor Type

Intel.Hardware.ModularServer.SCMHealthMonitorType (UnitMonitorType)

Element properties:

RunAsDefault
AccessibilityInternal
Support Monitor RecalculateFalse

Member Modules:

ID Module Type TypeId RunAs 
DS DataSource Intel.Hardware.ModularServer.FRUHardwareHealthDataProvider Default
FilterDegradedDrive ConditionDetection System.ExpressionFilter Default
FilterFaultyDrive ConditionDetection System.ExpressionFilter Default
FilterHealthyDrive ConditionDetection System.ExpressionFilter Default

Overrideable Parameters:

IDParameterTypeSelectorDisplay NameDescription
IntervalSecondsint$Config/IntervalSeconds$Frequency (Seconds)

Source Code:

<UnitMonitorType ID="Intel.Hardware.ModularServer.SCMHealthMonitorType" Accessibility="Internal">
<MonitorTypeStates>
<MonitorTypeState ID="DriveIsHealthy"/>
<MonitorTypeState ID="DriveIsDegraded"/>
<MonitorTypeState ID="DriveIsFaulty"/>
</MonitorTypeStates>
<Configuration>
<xsd:element name="IntervalSeconds" type="xsd:integer"/>
<xsd:element name="HostName" type="xsd:string"/>
<xsd:element name="DeviceType" type="xsd:string"/>
<xsd:element name="DeviceId" type="xsd:string"/>
</Configuration>
<OverrideableParameters>
<OverrideableParameter ID="IntervalSeconds" ParameterType="int" Selector="$Config/IntervalSeconds$"/>
</OverrideableParameters>
<MonitorImplementation>
<MemberModules>
<DataSource ID="DS" TypeID="Intel.Hardware.ModularServer.FRUHardwareHealthDataProvider">
<IntervalSeconds>$Config/IntervalSeconds$</IntervalSeconds>
<HostName>$Config/HostName$</HostName>
</DataSource>
<ConditionDetection ID="FilterHealthyDrive" TypeID="System!System.ExpressionFilter">
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>Property[@Name='$Config/DeviceType$.$Config/DeviceId$']</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">OK</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</ConditionDetection>
<ConditionDetection ID="FilterDegradedDrive" TypeID="System!System.ExpressionFilter">
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>Property[@Name='$Config/DeviceType$.$Config/DeviceId$']</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Degraded</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</ConditionDetection>
<ConditionDetection ID="FilterFaultyDrive" TypeID="System!System.ExpressionFilter">
<Expression>
<Or>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>Property[@Name='$Config/DeviceType$.$Config/DeviceId$']</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Dead</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>Property[@Name='$Config/DeviceType$.$Config/DeviceId$']</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<!-- No communication to SCM! -->
<Value Type="String">SCM Comm Error</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>Property[@Name='$Config/DeviceType$.$Config/DeviceId$']</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Not Applicable</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</Or>
</Expression>
</ConditionDetection>
</MemberModules>
<RegularDetections>
<RegularDetection MonitorTypeStateID="DriveIsHealthy">
<Node ID="FilterHealthyDrive">
<Node ID="DS"/>
</Node>
</RegularDetection>
<RegularDetection MonitorTypeStateID="DriveIsDegraded">
<Node ID="FilterDegradedDrive">
<Node ID="DS"/>
</Node>
</RegularDetection>
<RegularDetection MonitorTypeStateID="DriveIsFaulty">
<Node ID="FilterFaultyDrive">
<Node ID="DS"/>
</Node>
</RegularDetection>
</RegularDetections>
</MonitorImplementation>
</UnitMonitorType>