﻿<!--## Licensed to the Apache Software Foundation (ASF) under one
## or more contributor license agreements.  See the NOTICE file
## distributed with this work for additional information
## regarding copyright ownership.  The ASF licenses this file
## to you under the Apache License, Version 2.0 (the
## "License"); you may not use this file except in compliance
## with the License.  You may obtain a copy of the License at
##
##     http://www.apache.org/licenses/LICENSE-2.0
##
## Unless required by applicable law or agreed to in writing,
## software distributed under the License is distributed on an
## "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
## KIND, either express or implied.  See the License for the
## specific language governing permissions and limitations
## under the License.-->

<ManagementPackFragment SchemaVersion="2.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Monitoring>
    <Overrides>
      <RulePropertyOverride ID="Ambari.SCOM.Presentation.Override.PeformanceRule.WidgetLiveVsDeadNodes"
                            Context="System!System.Entity"
                            Rule="HDLibrary!Ambari.SCOM.PerformanceRule.WidgetLiveVsDeadNodes"
                            Enforced="false" Property="Enabled">
        <Value>true</Value>
      </RulePropertyOverride>

      <RulePropertyOverride ID="Ambari.SCOM.Presentation.Override.PeformanceRule.WidgetSpaceUtilization"
                            Context="System!System.Entity"
                            Rule="HDLibrary!Ambari.SCOM.PerformanceRule.WidgetSpaceUtilization"
                            Enforced="false" Property="Enabled">
        <Value>true</Value>
      </RulePropertyOverride>
    </Overrides>
  </Monitoring>
</ManagementPackFragment>
