Share via


How to Create an Override for a Recovery

Applies To: System Center 2012 - Operations Manager

[This topic is pre-release documentation and is subject to change in future releases. Blank topics are included as placeholders.]

You can create an override for a property or configuration parameter for a recovery. A property override changes the default value of a recovery property, and a configuration override changes the default value of a custom configuration setting for the recovery. If you want to create an override for a recovery, use the ManagementPackRecoveryPropertyOverride or ManagementPackRecoveryConfigurationOverride class. These classes are derived from the ManagementPackRecoveryOverride class.

Only the Enabled property can be overridden for recoveries. To figure out which parameters can be overridden, you must look at the definition of the recovery in the management pack that defines the recovery. All the parameters that can be overridden are defined in the OverrideableParameters element of the recovery. You can also call the ManagementPackRecovery.GetOverrideableParameters method to get the list of parameters programmatically.

The following example creates an override for the Enabled property of a recovery:

using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Text;
using Microsoft.EnterpriseManagement;
using Microsoft.EnterpriseManagement.Administration;
using Microsoft.EnterpriseManagement.Common;
using Microsoft.EnterpriseManagement.Configuration;
using Microsoft.EnterpriseManagement.Monitoring;

namespace SDKSamples
{
    class Program
    {
        //---------------------------------------------------------------------
        static void Main(string[] args)
        {
            ManagementGroup                             mg;
            ManagementPack                              mp;
            ManagementPackClassCriteria                     monitoringClassCriteria;
            ManagementPackClass monitoringClass;
            ManagementPackRecoveryCriteria recoveryCriteria;
            ManagementPackRecovery recovery;
            ManagementPackRecoveryPropertyOverride      recoveryOverride;

            mg = new ManagementGroup("localhost");

            mp = mg.ManagementPacks.GetManagementPacks(new ManagementPackCriteria("Name='OverrideTestMP'"))[0];

            monitoringClassCriteria = new ManagementPackClassCriteria("Name='Microsoft.SystemCenter.HealthServiceWatcher'");

            monitoringClass = mg.EntityTypes.GetClasses(monitoringClassCriteria)[0];

            recoveryCriteria = new ManagementPackRecoveryCriteria("Name='Microsoft.SystemCenter.HealthService.Recovery.AutoReinstallAgent'");

            recovery = mg.Monitoring.GetRecoveries(recoveryCriteria)[0];

            recoveryOverride = new ManagementPackRecoveryPropertyOverride(mp, "SampleRecoveryOverride");

            recoveryOverride.Recovery     = recovery;
            recoveryOverride.Property     = ManagementPackWorkflowProperty.Enabled;
            recoveryOverride.Value        = "false";
            recoveryOverride.Context      = monitoringClass;
            recoveryOverride.DisplayName  = "SampleRecoveryOverride";

            mp.Verify();
            
            //Save the changes into the management pack.
            mp.AcceptChanges();
        }        
    }
}

See Also

Concepts

How to Create an Override