//--------------------------------------------------------------------- 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"); } }
internal MPOverride( ManagementPackOverride mpOverride, MPWorkflow workflow, MPClass workflowTarget ) { m_override = mpOverride; m_workflow = workflow; m_workflowTarget = workflowTarget; }
//--------------------------------------------------------------------- internal void RemoveOverride(ManagementPackOverride mpOverrideToDelete) { foreach (ManagementPackOverride mpOverride in m_overrides) { if (mpOverride.Id == mpOverrideToDelete.Id) { m_overrides.Remove(mpOverride); break; } } }
//--------------------------------------------------------------------- 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); }
//--------------------------------------------------------------------- internal OverrideMover( ManagementPack sourceMp, ManagementPack targetMp, ManagementPackOverride mpOverride, MPWorkflow mpWorkflow ) { m_mpOverride = mpOverride; m_sourceMp = sourceMp; m_targetMp = targetMp; m_mpWorkflow = mpWorkflow; }
//--------------------------------------------------------------------- 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); }
//--------------------------------------------------------------------- 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); }
//--------------------------------------------------------------------- internal void AddOverride(ManagementPackOverride mpOverride) { Debug.Assert(mpOverride != null); m_overrides.Add(mpOverride); }
//--------------------------------------------------------------------- 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" } }
//--------------------------------------------------------------------- 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); }
//--------------------------------------------------------------------- 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); }
/// <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)); }
//--------------------------------------------------------------------- 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; } }
//--------------------------------------------------------------------- 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; } }