示例#1
0
        //---------------------------------------------------------------------
        internal static void RetrieveParameterInfo(
            ManagementPackOverride mpOverrride,
            out string parameter,
            out string newValue
            )
        {
            parameter = string.Empty;
            newValue  = string.Empty;

            if (mpOverrride is ManagementPackMonitorConfigurationOverride)
            {
                ManagementPackMonitorConfigurationOverride monitorConfigOverride = (ManagementPackMonitorConfigurationOverride)mpOverrride;

                parameter = monitorConfigOverride.Parameter;
                newValue  = monitorConfigOverride.Value;
            }
            else if (mpOverrride is ManagementPackMonitorPropertyOverride)
            {
                ManagementPackMonitorPropertyOverride monitorPropertyOverride = (ManagementPackMonitorPropertyOverride)mpOverrride;

                parameter = monitorPropertyOverride.Property.ToString();
                newValue  = monitorPropertyOverride.Value;
            }
            else if (mpOverrride is ManagementPackRuleConfigurationOverride)
            {
                ManagementPackRuleConfigurationOverride ruleConfigOverride = (ManagementPackRuleConfigurationOverride)mpOverrride;

                parameter = ruleConfigOverride.Parameter;
                newValue  = ruleConfigOverride.Value;
            }
            else if (mpOverrride is ManagementPackRulePropertyOverride)
            {
                ManagementPackRulePropertyOverride rulePropertyOverride = (ManagementPackRulePropertyOverride)mpOverrride;

                parameter = rulePropertyOverride.Property.ToString();
                newValue  = rulePropertyOverride.Value;
            }
            else if (mpOverrride is ManagementPackDiscoveryConfigurationOverride)
            {
                ManagementPackDiscoveryConfigurationOverride discoveryConfigurationOverride = (ManagementPackDiscoveryConfigurationOverride)mpOverrride;

                parameter = discoveryConfigurationOverride.Parameter;
                newValue  = discoveryConfigurationOverride.Value;
            }
            else if (mpOverrride is ManagementPackDiscoveryPropertyOverride)
            {
                ManagementPackDiscoveryPropertyOverride discoveryPropertyOverride = (ManagementPackDiscoveryPropertyOverride)mpOverrride;

                parameter = discoveryPropertyOverride.Property.ToString();
                newValue  = discoveryPropertyOverride.Value;
            }
            else
            {
                throw new ApplicationException("Unknown override type");
            }
        }
示例#2
0
 internal MPOverride(
     ManagementPackOverride  mpOverride,
     MPWorkflow              workflow,
     MPClass                 workflowTarget
     )
 {
     m_override          = mpOverride;
     m_workflow          = workflow;
     m_workflowTarget    = workflowTarget;
 }
示例#3
0
 internal MPOverride(
     ManagementPackOverride mpOverride,
     MPWorkflow workflow,
     MPClass workflowTarget
     )
 {
     m_override       = mpOverride;
     m_workflow       = workflow;
     m_workflowTarget = workflowTarget;
 }
示例#4
0
 //---------------------------------------------------------------------
 internal void RemoveOverride(ManagementPackOverride mpOverrideToDelete)
 {
     foreach (ManagementPackOverride mpOverride in m_overrides)
     {
         if (mpOverride.Id == mpOverrideToDelete.Id)
         {
             m_overrides.Remove(mpOverride);
             break;
         }
     }
 }
示例#5
0
 //---------------------------------------------------------------------
 internal void RemoveOverride(ManagementPackOverride mpOverrideToDelete)
 {
     foreach (ManagementPackOverride mpOverride in m_overrides)
     {
         if (mpOverride.Id == mpOverrideToDelete.Id)
         {
             m_overrides.Remove(mpOverride);
             break;
         }
     }
 }
示例#6
0
        //---------------------------------------------------------------------
        internal void AddOverride(
            ManagementPackOverride mpOverride,
            ManagementPackElement overridenElement
            )
        {
            if (!m_mpWorkflows.ContainsKey(overridenElement.Id))
            {
                m_mpWorkflows.Add(overridenElement.Id, new MPWorkflow(overridenElement));
            }

            m_mpWorkflows[overridenElement.Id].AddOverride(mpOverride);
        }
示例#7
0
 //---------------------------------------------------------------------
 internal OverrideMover(
     ManagementPack sourceMp,
     ManagementPack targetMp,
     ManagementPackOverride mpOverride,
     MPWorkflow mpWorkflow
     )
 {
     m_mpOverride = mpOverride;
     m_sourceMp   = sourceMp;
     m_targetMp   = targetMp;
     m_mpWorkflow = mpWorkflow;
 }
示例#8
0
 //---------------------------------------------------------------------
 internal OverrideMover(
     ManagementPack          sourceMp,
     ManagementPack          targetMp,
     ManagementPackOverride  mpOverride,
     MPWorkflow              mpWorkflow
     )
 {
     m_mpOverride    = mpOverride;
     m_sourceMp      = sourceMp;
     m_targetMp      = targetMp;
     m_mpWorkflow    = mpWorkflow;
 }
示例#9
0
        //---------------------------------------------------------------------
        internal void AddOverride(
            ManagementPackOverride  mpOverride,
            ManagementPackElement   overridenElement
            )
        {
            if (!m_mpWorkflows.ContainsKey(overridenElement.Id))
            {
                m_mpWorkflows.Add(overridenElement.Id, new MPWorkflow(overridenElement));
            }

            m_mpWorkflows[overridenElement.Id].AddOverride(mpOverride);
        }
示例#10
0
        //---------------------------------------------------------------------
        internal void AddOverride(
            ManagementPackClass mpClass,
            ManagementPackElement overridenElement,
            ManagementPackOverride mpOverride
            )
        {
            Debug.Assert(mpClass != null);
            Debug.Assert(overridenElement != null);
            Debug.Assert(mpOverride != null);

            if (!m_classCollection.ContainsKey(mpClass.Id))
            {
                m_classCollection.Add(mpClass.Id, new MPClass(mpClass));
            }

            m_classCollection[mpClass.Id].AddOverride(mpOverride, overridenElement);
        }
示例#11
0
        //---------------------------------------------------------------------
        internal static string RetrieveContext(
            ManagementPackOverride mpOverrride,
            ManagementGroup managementGroup
            )
        {
            string context = "Unknown";

            if (mpOverrride.ContextInstance == null)
            {
                string className;

                className = GetBestElementName(managementGroup.GetMonitoringClass(mpOverrride.Context.Id));

                context = string.Format("All Instances of type {0}", className);
            }
            else
            {
                PartialMonitoringObject monitoringObject;

                try
                {
                    try
                    {
                        monitoringObject = managementGroup.GetPartialMonitoringObject((Guid)mpOverrride.ContextInstance);
                        context          = monitoringObject.DisplayName;
                    }
                    catch (Microsoft.EnterpriseManagement.Common.MonitoringException exception)
                    {
                        managementGroup.Reconnect();
                        monitoringObject = managementGroup.GetMonitoringObject((Guid)mpOverrride.ContextInstance);
                    }
                }
                catch (Microsoft.EnterpriseManagement.Common.MonitoringException exception)
                {
                    MessageBox.Show(exception.Message);
                }
            }

            return(context);
        }
示例#12
0
        //---------------------------------------------------------------------
        internal void AddOverride(ManagementPackOverride mpOverride)
        {
            Debug.Assert(mpOverride != null);

            m_overrides.Add(mpOverride);
        }
示例#13
0
        //---------------------------------------------------------------------
        private void LoadOverrideInfo(ManagementPackOverride mpOverride)
        {
            try
            {
                ManagementPack      mp;
                ManagementPackClass mpClass;

                if (mpOverride is ManagementPackMonitorOverride)
                {
                    ManagementPackMonitorOverride monitorOverride = (ManagementPackMonitorOverride)mpOverride;
                    ManagementPackMonitor         monitor;

                    if (!m_monitorsCache.ContainsKey(monitorOverride.Monitor.Id))
                    {
                        return;
                    }

                    monitor = m_monitorsCache[monitorOverride.Monitor.Id];

                    //The class to which the monitor is targeted
                    mpClass = m_typesCache[monitor.Target.Id];

                    //The MP in which the monitor is defined
                    mp = monitor.GetManagementPack();

                    if (!m_managementPackCollection.ContainsKey(mp.Id))
                    {
                        m_managementPackCollection.Add(mp.Id, new MP(mp));
                    }

                    m_managementPackCollection[mp.Id].AddOverride(mpClass, monitor, monitorOverride);
                }
                else if (mpOverride is ManagementPackRuleOverride)
                {
                    ManagementPackRuleOverride ruleOverride = (ManagementPackRuleOverride)mpOverride;
                    ManagementPackRule         rule;

                    if (!m_rulesCache.ContainsKey(ruleOverride.Rule.Id))
                    {
                        return;
                    }

                    rule = m_rulesCache[ruleOverride.Rule.Id];

                    //The class to which the rule is targeted
                    mpClass = m_typesCache[rule.Target.Id];

                    //The MP in which the monitor is defined
                    mp = rule.GetManagementPack();

                    if (!m_managementPackCollection.ContainsKey(mp.Id))
                    {
                        m_managementPackCollection.Add(mp.Id, new MP(mp));
                    }

                    m_managementPackCollection[mp.Id].AddOverride(mpClass, rule, ruleOverride);
                }
                else if (mpOverride is ManagementPackDiscoveryOverride)
                {
                    ManagementPackDiscoveryOverride discoveryOverride = (ManagementPackDiscoveryOverride)mpOverride;
                    ManagementPackDiscovery         discovery         = discoveryOverride.Discovery.GetElement();

                    mpClass = m_typesCache[discovery.Target.Id];

                    mp = discovery.GetManagementPack();

                    if (!m_managementPackCollection.ContainsKey(mp.Id))
                    {
                        m_managementPackCollection.Add(mp.Id, new MP(mp));
                    }

                    m_managementPackCollection[mp.Id].AddOverride(mpClass, discovery, discoveryOverride);
                }
            }
            catch (Microsoft.EnterpriseManagement.Common.ObjectNotFoundException error)
            {
                //This exception will be thrown for rules/monitors/discoveries/diagnostics/recoveries that are marked "hidden"
            }
        }
示例#14
0
        //---------------------------------------------------------------------
        private void LoadOverrideInfo(ManagementPackOverride mpOverride)
        {
            try
            {
                ManagementPack mp;
                ManagementPackClass mpClass;

                if (mpOverride is ManagementPackMonitorOverride)
                {
                    ManagementPackMonitorOverride   monitorOverride = (ManagementPackMonitorOverride)mpOverride;
                    ManagementPackMonitor           monitor;

                    if (!m_monitorsCache.ContainsKey(monitorOverride.Monitor.Id))
                    {
                        return;
                    }

                    monitor = m_monitorsCache[monitorOverride.Monitor.Id];

                    //The class to which the monitor is targeted
                    mpClass = m_typesCache[monitor.Target.Id];

                    //The MP in which the monitor is defined
                    mp = monitor.GetManagementPack();

                    if (!m_managementPackCollection.ContainsKey(mp.Id))
                    {
                        m_managementPackCollection.Add(mp.Id, new MP(mp));
                    }

                    m_managementPackCollection[mp.Id].AddOverride(mpClass, monitor, monitorOverride);

                }
                else if (mpOverride is ManagementPackRuleOverride)
                {
                    ManagementPackRuleOverride  ruleOverride = (ManagementPackRuleOverride)mpOverride;
                    ManagementPackRule          rule;

                    if (!m_rulesCache.ContainsKey(ruleOverride.Rule.Id))
                    {
                        return;
                    }

                    rule = m_rulesCache[ruleOverride.Rule.Id];

                    //The class to which the rule is targeted
                    mpClass = m_typesCache[rule.Target.Id];

                    //The MP in which the monitor is defined
                    mp = rule.GetManagementPack();

                    if (!m_managementPackCollection.ContainsKey(mp.Id))
                    {
                        m_managementPackCollection.Add(mp.Id, new MP(mp));
                    }

                    m_managementPackCollection[mp.Id].AddOverride(mpClass, rule, ruleOverride);

                }
                else if (mpOverride is ManagementPackDiscoveryOverride)
                {
                    ManagementPackDiscoveryOverride discoveryOverride   = (ManagementPackDiscoveryOverride)mpOverride;
                    ManagementPackDiscovery         discovery           = discoveryOverride.Discovery.GetElement();

                    mpClass = m_typesCache[discovery.Target.Id];

                    mp = discovery.GetManagementPack();

                    if (!m_managementPackCollection.ContainsKey(mp.Id))
                    {
                        m_managementPackCollection.Add(mp.Id, new MP(mp));
                    }

                    m_managementPackCollection[mp.Id].AddOverride(mpClass, discovery, discoveryOverride);
                }

            }
            catch (Microsoft.EnterpriseManagement.Common.ObjectNotFoundException error)
            {
                //This exception will be thrown for rules/monitors/discoveries/diagnostics/recoveries that are marked "hidden"
            }
        }
示例#15
0
        //---------------------------------------------------------------------
        internal static void RetrieveParameterInfo(
            ManagementPackOverride      mpOverrride,
            out string                  parameter,
            out string                  newValue
            )
        {
            parameter   = string.Empty;
            newValue    = string.Empty;

            if (mpOverrride is ManagementPackMonitorConfigurationOverride)
            {
                ManagementPackMonitorConfigurationOverride monitorConfigOverride = (ManagementPackMonitorConfigurationOverride)mpOverrride;

                parameter   = monitorConfigOverride.Parameter;
                newValue    = monitorConfigOverride.Value;
            }
            else if (mpOverrride is ManagementPackMonitorPropertyOverride)
            {
                ManagementPackMonitorPropertyOverride monitorPropertyOverride = (ManagementPackMonitorPropertyOverride)mpOverrride;

                parameter   = monitorPropertyOverride.Property.ToString();
                newValue    = monitorPropertyOverride.Value;
            }
            else if (mpOverrride is ManagementPackRuleConfigurationOverride)
            {
                ManagementPackRuleConfigurationOverride ruleConfigOverride = (ManagementPackRuleConfigurationOverride)mpOverrride;

                parameter   = ruleConfigOverride.Parameter;
                newValue    = ruleConfigOverride.Value;
            }
            else if (mpOverrride is ManagementPackRulePropertyOverride)
            {
                ManagementPackRulePropertyOverride rulePropertyOverride = (ManagementPackRulePropertyOverride)mpOverrride;

                parameter = rulePropertyOverride.Property.ToString();
                newValue = rulePropertyOverride.Value;
            }
            else if (mpOverrride is ManagementPackDiscoveryConfigurationOverride)
            {
                ManagementPackDiscoveryConfigurationOverride discoveryConfigurationOverride = (ManagementPackDiscoveryConfigurationOverride)mpOverrride;

                parameter   = discoveryConfigurationOverride.Parameter;
                newValue    = discoveryConfigurationOverride.Value;
            }
            else if (mpOverrride is ManagementPackDiscoveryPropertyOverride)
            {
                ManagementPackDiscoveryPropertyOverride discoveryPropertyOverride = (ManagementPackDiscoveryPropertyOverride)mpOverrride;

                parameter   = discoveryPropertyOverride.Property.ToString();
                newValue    = discoveryPropertyOverride.Value;
            }
            else
            {
                throw new ApplicationException("Unknown override type");
            }
        }
示例#16
0
        //---------------------------------------------------------------------
        internal void AddOverride(ManagementPackOverride mpOverride)
        {
            Debug.Assert(mpOverride != null);

            m_overrides.Add(mpOverride);
        }
示例#17
0
        //---------------------------------------------------------------------
        private void AddOverride(
            MPOverride mpOverride,
            PartialMonitoringObject monitoringObject
            )
        {
            ManagementPackOverride actualOverride = mpOverride.ManagementPackOverride;
            ManagementPack         overrideMp;
            ListViewItem           overrideItem;
            string parameter;
            string newValue;

            Common.RetrieveParameterInfo(actualOverride, out parameter, out newValue);

            overrideMp   = mpOverride.ManagementPackOverride.GetManagementPack();
            overrideItem = new ListViewItem();

            if (m_columnConfig == OverrideListViewColumnConfig.InstanceColumns)
            {
                overrideItem.Text = Common.GetBestMonitoringObjectName(monitoringObject);
            }

            if (m_columnConfig == OverrideListViewColumnConfig.WorkflowColumns ||
                m_columnConfig == OverrideListViewColumnConfig.InstanceColumns)
            {
                if (overrideItem.Text == null || overrideItem.Text.Length == 0)
                {
                    overrideItem.Text = mpOverride.Workflow.Workflow.DisplayName;
                }
                else
                {
                    overrideItem.SubItems.Add(mpOverride.Workflow.Workflow.DisplayName);
                }

                overrideItem.SubItems.Add(GetOverridenWorkflowType(mpOverride.Workflow.Workflow));

                overrideItem.SubItems.Add(parameter);
            }
            else
            {
                overrideItem.Text = parameter;
            }

            OverrideInfo overrideInfo = new OverrideInfo();

            overrideInfo.m_monitoringObject = monitoringObject;
            overrideInfo.m_override         = mpOverride;

            overrideItem.Tag = overrideInfo;

            overrideItem.SubItems.Add(newValue);
            overrideItem.SubItems.Add(actualOverride.TimeAdded.ToLocalTime().ToString());
            overrideItem.SubItems.Add(Common.RetrieveContext(mpOverride.ManagementPackOverride, m_managementGroup));
            overrideItem.SubItems.Add(actualOverride.Enforced.ToString());

            overrideItem.SubItems.Add(Common.GetBestManagementPackName(overrideMp));

            overrideItem.SubItems.Add(Common.GetManagementPackSealedFlag(overrideMp));

            overrideItem.SubItems.Add(mpOverride.ManagementPackOverride.Description);

            Items.Add(overrideItem);
        }
示例#18
0
        //---------------------------------------------------------------------
        internal static string RetrieveContext(
            ManagementPackOverride mpOverrride,
            ManagementGroup        managementGroup
            )
        {
            string context = "Unknown";

            if (mpOverrride.ContextInstance == null)
            {
                string className;

                className = GetBestElementName(managementGroup.GetMonitoringClass(mpOverrride.Context.Id));

                context = string.Format("All Instances of type {0}", className);
            }
            else
            {
                PartialMonitoringObject monitoringObject;

                try
                {
                    try
                    {
                        monitoringObject = managementGroup.GetPartialMonitoringObject((Guid)mpOverrride.ContextInstance);
                        context = monitoringObject.DisplayName;
                    }
                    catch (Microsoft.EnterpriseManagement.Common.MonitoringException exception)
                    {
                        managementGroup.Reconnect();
                        monitoringObject = managementGroup.GetMonitoringObject((Guid)mpOverrride.ContextInstance);
                    }
                }
                catch (Microsoft.EnterpriseManagement.Common.MonitoringException exception)
                {
                    MessageBox.Show(exception.Message);
                }
            }

            return (context);
        }
示例#19
0
        /// <summary>
        /// Get the status of the Community Pack Update Monitor
        /// </summary>
        /// <returns>a boolean representing the state of the Monitor</returns>
        public bool GetPackUpdateMonitorSetting()
        {
            ManagementPackOverride packStatusMonitorOverride = configurationOverridePack.GetOverride("Community.ManagementPackCatalog.Configuration.EnableUpdateMonitor");

            return(bool.Parse(packStatusMonitorOverride.Value));
        }
示例#20
0
        //---------------------------------------------------------------------
        private void CreateTargetOverride(
            out ManagementPackOverride targetOverride
            )
        {
            targetOverride = null;

            if (m_mpOverride is ManagementPackMonitorConfigurationOverride)
            {
                ManagementPackMonitorConfigurationOverride sourceMonitorConfigOverride = (ManagementPackMonitorConfigurationOverride)m_mpOverride;
                ManagementPackMonitorConfigurationOverride targetMonitorConfigOverride = new ManagementPackMonitorConfigurationOverride(m_targetMp, m_mpOverride.Name);

                targetMonitorConfigOverride.Monitor   = sourceMonitorConfigOverride.Monitor;
                targetMonitorConfigOverride.Parameter = sourceMonitorConfigOverride.Parameter;
                targetOverride = targetMonitorConfigOverride;
            }
            else if (m_mpOverride is ManagementPackMonitorPropertyOverride)
            {
                ManagementPackMonitorPropertyOverride sourceMonitorPropertyOverride = (ManagementPackMonitorPropertyOverride)m_mpOverride;
                ManagementPackMonitorPropertyOverride targetMonitorPropertyOverride = new ManagementPackMonitorPropertyOverride(m_targetMp, m_mpOverride.Name);

                targetMonitorPropertyOverride.Monitor  = sourceMonitorPropertyOverride.Monitor;
                targetMonitorPropertyOverride.Property = sourceMonitorPropertyOverride.Property;
                targetOverride = targetMonitorPropertyOverride;
            }
            else if (m_mpOverride is ManagementPackRuleConfigurationOverride)
            {
                ManagementPackRuleConfigurationOverride sourceRuleConfigOverride = (ManagementPackRuleConfigurationOverride)m_mpOverride;
                ManagementPackRuleConfigurationOverride targetRuleConfigOverride = new ManagementPackRuleConfigurationOverride(m_targetMp, m_mpOverride.Name);

                targetRuleConfigOverride.Module    = sourceRuleConfigOverride.Module;
                targetRuleConfigOverride.Parameter = sourceRuleConfigOverride.Parameter;
                targetRuleConfigOverride.Rule      = sourceRuleConfigOverride.Rule;
                targetOverride = targetRuleConfigOverride;
            }
            else if (m_mpOverride is ManagementPackRulePropertyOverride)
            {
                ManagementPackRulePropertyOverride sourceRulePropertyOverride = (ManagementPackRulePropertyOverride)m_mpOverride;
                ManagementPackRulePropertyOverride targetRulePropertyOverride = new ManagementPackRulePropertyOverride(m_targetMp, m_mpOverride.Name);

                targetRulePropertyOverride.Property = sourceRulePropertyOverride.Property;
                targetRulePropertyOverride.Rule     = sourceRulePropertyOverride.Rule;
                targetOverride = targetRulePropertyOverride;
            }
            else if (m_mpOverride is ManagementPackDiscoveryConfigurationOverride)
            {
                ManagementPackDiscoveryConfigurationOverride sourceDiscoveryConfigurationOverride = (ManagementPackDiscoveryConfigurationOverride)m_mpOverride;
                ManagementPackDiscoveryConfigurationOverride targetDiscoveryConfigurationOverride = new ManagementPackDiscoveryConfigurationOverride(m_targetMp, m_mpOverride.Name);

                targetDiscoveryConfigurationOverride.Discovery = sourceDiscoveryConfigurationOverride.Discovery;
                targetDiscoveryConfigurationOverride.Module    = sourceDiscoveryConfigurationOverride.Module;
                targetDiscoveryConfigurationOverride.Parameter = sourceDiscoveryConfigurationOverride.Parameter;
                targetOverride = targetDiscoveryConfigurationOverride;
            }
            else if (m_mpOverride is ManagementPackDiscoveryPropertyOverride)
            {
                ManagementPackDiscoveryPropertyOverride sourceDiscoveryPropertyOverride = (ManagementPackDiscoveryPropertyOverride)m_mpOverride;
                ManagementPackDiscoveryPropertyOverride targetDiscoveryPropertyOverride = new ManagementPackDiscoveryPropertyOverride(m_targetMp, m_mpOverride.Name);

                targetDiscoveryPropertyOverride.Discovery = sourceDiscoveryPropertyOverride.Discovery;
                targetDiscoveryPropertyOverride.Property  = sourceDiscoveryPropertyOverride.Property;
                targetOverride = targetDiscoveryPropertyOverride;
            }
            else
            {
                throw new ApplicationException("Unknown override type");
            }

            targetOverride.Comment         = m_mpOverride.Comment;
            targetOverride.Context         = m_mpOverride.Context;
            targetOverride.ContextInstance = m_mpOverride.ContextInstance;
            targetOverride.Description     = m_mpOverride.Description;

            // dmuscett 2012-03-02 in 2012 this has become mandatory, apparently....
            if (!String.IsNullOrEmpty(m_mpOverride.DisplayName))
            {
                targetOverride.DisplayName = m_mpOverride.DisplayName;
            }
            else
            {
                targetOverride.DisplayName = "";
            }

            targetOverride.Enforced = m_mpOverride.Enforced;

            targetOverride.LanguageCode = m_mpOverride.LanguageCode;
            targetOverride.LastModified = m_mpOverride.LastModified;

            targetOverride.TimeAdded = m_mpOverride.TimeAdded;
            targetOverride.Value     = m_mpOverride.Value;

            targetOverride.Status = ManagementPackElementStatus.PendingAdd;

            if (targetOverride.DisplayName == null)
            {
                targetOverride.DisplayName = m_mpOverride.Name;
            }
        }
示例#21
0
        //---------------------------------------------------------------------
        private void CreateTargetOverride(
            out ManagementPackOverride  targetOverride
            )
        {
            targetOverride = null;

            if (m_mpOverride is ManagementPackMonitorConfigurationOverride)
            {
                ManagementPackMonitorConfigurationOverride sourceMonitorConfigOverride = (ManagementPackMonitorConfigurationOverride)m_mpOverride;
                ManagementPackMonitorConfigurationOverride targetMonitorConfigOverride = new ManagementPackMonitorConfigurationOverride(m_targetMp, m_mpOverride.Name);

                targetMonitorConfigOverride.Monitor     = sourceMonitorConfigOverride.Monitor;
                targetMonitorConfigOverride.Parameter   = sourceMonitorConfigOverride.Parameter;
                targetOverride                          = targetMonitorConfigOverride;

            }
            else if (m_mpOverride is ManagementPackMonitorPropertyOverride)
            {
                ManagementPackMonitorPropertyOverride sourceMonitorPropertyOverride = (ManagementPackMonitorPropertyOverride)m_mpOverride;
                ManagementPackMonitorPropertyOverride targetMonitorPropertyOverride = new ManagementPackMonitorPropertyOverride(m_targetMp, m_mpOverride.Name);

                targetMonitorPropertyOverride.Monitor   = sourceMonitorPropertyOverride.Monitor;
                targetMonitorPropertyOverride.Property  = sourceMonitorPropertyOverride.Property;
                targetOverride                          = targetMonitorPropertyOverride;

            }
            else if (m_mpOverride is ManagementPackRuleConfigurationOverride)
            {
                ManagementPackRuleConfigurationOverride sourceRuleConfigOverride = (ManagementPackRuleConfigurationOverride)m_mpOverride;
                ManagementPackRuleConfigurationOverride targetRuleConfigOverride = new ManagementPackRuleConfigurationOverride(m_targetMp, m_mpOverride.Name);

                targetRuleConfigOverride.Module     = sourceRuleConfigOverride.Module;
                targetRuleConfigOverride.Parameter  = sourceRuleConfigOverride.Parameter;
                targetRuleConfigOverride.Rule       = sourceRuleConfigOverride.Rule;
                targetOverride                      = targetRuleConfigOverride;
            }
            else if (m_mpOverride is ManagementPackRulePropertyOverride)
            {
                ManagementPackRulePropertyOverride sourceRulePropertyOverride = (ManagementPackRulePropertyOverride)m_mpOverride;
                ManagementPackRulePropertyOverride targetRulePropertyOverride = new ManagementPackRulePropertyOverride(m_targetMp, m_mpOverride.Name);

                targetRulePropertyOverride.Property = sourceRulePropertyOverride.Property;
                targetRulePropertyOverride.Rule     = sourceRulePropertyOverride.Rule;
                targetOverride                      = targetRulePropertyOverride;

            }
            else if (m_mpOverride is ManagementPackDiscoveryConfigurationOverride)
            {
                ManagementPackDiscoveryConfigurationOverride sourceDiscoveryConfigurationOverride = (ManagementPackDiscoveryConfigurationOverride)m_mpOverride;
                ManagementPackDiscoveryConfigurationOverride targetDiscoveryConfigurationOverride = new ManagementPackDiscoveryConfigurationOverride(m_targetMp, m_mpOverride.Name);

                targetDiscoveryConfigurationOverride.Discovery  = sourceDiscoveryConfigurationOverride.Discovery;
                targetDiscoveryConfigurationOverride.Module     = sourceDiscoveryConfigurationOverride.Module;
                targetDiscoveryConfigurationOverride.Parameter  = sourceDiscoveryConfigurationOverride.Parameter;
                targetOverride                                  = targetDiscoveryConfigurationOverride;

            }
            else if (m_mpOverride is ManagementPackDiscoveryPropertyOverride)
            {
                ManagementPackDiscoveryPropertyOverride sourceDiscoveryPropertyOverride = (ManagementPackDiscoveryPropertyOverride)m_mpOverride;
                ManagementPackDiscoveryPropertyOverride targetDiscoveryPropertyOverride = new ManagementPackDiscoveryPropertyOverride(m_targetMp, m_mpOverride.Name);

                targetDiscoveryPropertyOverride.Discovery   = sourceDiscoveryPropertyOverride.Discovery;
                targetDiscoveryPropertyOverride.Property    = sourceDiscoveryPropertyOverride.Property;
                targetOverride                              = targetDiscoveryPropertyOverride;
            }
            else
            {
                throw new ApplicationException("Unknown override type");
            }

            targetOverride.Comment          = m_mpOverride.Comment;
            targetOverride.Context          = m_mpOverride.Context;
            targetOverride.ContextInstance  = m_mpOverride.ContextInstance;
            targetOverride.Description      = m_mpOverride.Description;

            // dmuscett 2012-03-02 in 2012 this has become mandatory, apparently....
            if (!String.IsNullOrEmpty(m_mpOverride.DisplayName))
                targetOverride.DisplayName      = m_mpOverride.DisplayName;
            else
                targetOverride.DisplayName = "";

            targetOverride.Enforced         = m_mpOverride.Enforced;

            targetOverride.LanguageCode     = m_mpOverride.LanguageCode;
            targetOverride.LastModified     = m_mpOverride.LastModified;

            targetOverride.TimeAdded        = m_mpOverride.TimeAdded;
            targetOverride.Value            = m_mpOverride.Value;

            targetOverride.Status           = ManagementPackElementStatus.PendingAdd;

            if (targetOverride.DisplayName == null)
            {
                targetOverride.DisplayName = m_mpOverride.Name;
            }
        }
示例#22
0
        //---------------------------------------------------------------------
        internal void AddOverride(
            ManagementPackClass             mpClass,
            ManagementPackElement           overridenElement,
            ManagementPackOverride          mpOverride
            )
        {
            Debug.Assert(mpClass != null);
            Debug.Assert(overridenElement != null);
            Debug.Assert(mpOverride != null);

            if (!m_classCollection.ContainsKey(mpClass.Id))
            {
                m_classCollection.Add(mpClass.Id, new MPClass(mpClass));
            }

            m_classCollection[mpClass.Id].AddOverride(mpOverride, overridenElement);
        }