/// <summary>
        /// 安装MP
        /// </summary>
        /// <param name="path">
        /// The path.
        /// </param>
        public void InstallMp(string path)
        {
            var newMp    = new ManagementPack(path);
            var criteria = new ManagementPackCriteria($"Name = '{newMp.Name}'");
            var oldMp    = this.ManagementPacks.GetManagementPacks(criteria).FirstOrDefault();

            if (oldMp != null)
            {
                // 已安装则跳过
                HWLogger.Install.Warn($"Skip install:{oldMp.Name}-{oldMp.Version} has Installed.");
                //// 已安装
                // if (oldMp.Version != newMp.Version)
                // {
                // // 版本不一致则先进行卸载
                // this.UnInstallMp(oldMp.Name);
                // this.ManagementPacks.ImportManagementPack(newMp);
                // Console.WriteLine($"Install {newMp.Name} Finish.");
                // }
                // else
                // {
                // HwLogger.Install.Warn($"Skip install:{newMp.Name}-{newMp.Version} has Installed.");
                // }
            }
            else
            {
                this.ManagementPacks.ImportManagementPack(newMp);
                HWLogger.Install.Warn($"Install {newMp.Name} Finish.");
            }
        }
Ejemplo n.º 2
0
        //---------------------------------------------------------------------
        private void MPBrowserDialog_Load(object sender, EventArgs e)
        {
            ReadOnlyCollection <ManagementPack> managementPacks;
            ManagementPackCriteria criteria = new ManagementPackCriteria("Sealed=0");

            try
            {
                managementPacks = m_managementGroup.GetManagementPacks(criteria);
            }
            catch (Microsoft.EnterpriseManagement.Common.ServerDisconnectedException)
            {
                m_managementGroup.Reconnect();

                managementPacks = m_managementGroup.GetManagementPacks(criteria);
            }

            lstManagementPacks.BeginUpdate();

            foreach (ManagementPack mp in managementPacks)
            {
                ListViewItem listViewItem = new ListViewItem();

                listViewItem.Text = Common.GetBestManagementPackName(mp);
                listViewItem.Tag  = mp;

                listViewItem.SubItems.Add(mp.Version.ToString());

                lstManagementPacks.Items.Add(listViewItem);

                lstManagementPacks.Sort();
            }

            lstManagementPacks.EndUpdate();
        }
        /// <summary>
        /// Installs the MPB.
        /// </summary>
        /// <param name="path">The path.</param>
        public void InstallMpb(string path)
        {
            var mpStore = new ManagementPackFileStore();

            mpStore.AddDirectory(Path.GetDirectoryName(path));

            var reader = ManagementPackBundleFactory.CreateBundleReader();
            var bundle = reader.Read(path, mpStore);

            var newMp = bundle.ManagementPacks.FirstOrDefault();

            if (newMp == null)
            {
                HWLogger.Install.Warn($"Install faild. can not find ManagementPack in the path :{path}");
                return;
            }

            var criteria = new ManagementPackCriteria($"Name = '{newMp.Name}'");
            var oldMp    = this.ManagementPacks.GetManagementPacks(criteria).FirstOrDefault();

            if (oldMp != null)
            {
                HWLogger.Install.Warn($"Skip install:{oldMp.Name}-{oldMp.Version} has Installed.");
            }
            else
            {
                this.ManagementPacks.ImportBundle(bundle);
                HWLogger.Install.Warn($"Install {newMp.Name} Finish.");
            }
        }
Ejemplo n.º 4
0
        //---------------------------------------------------------------------
        private void MPBrowserDialog_Load(object sender, EventArgs e)
        {
            ReadOnlyCollection<ManagementPack> managementPacks;
            ManagementPackCriteria             criteria = new ManagementPackCriteria("Sealed=0");

            try
            {
                managementPacks = m_managementGroup.GetManagementPacks(criteria);
            }
            catch (Microsoft.EnterpriseManagement.Common.ServerDisconnectedException)
            {
                m_managementGroup.Reconnect();

                managementPacks = m_managementGroup.GetManagementPacks(criteria);
            }

            lstManagementPacks.BeginUpdate();

            foreach (ManagementPack mp in managementPacks)
            {
                ListViewItem listViewItem = new ListViewItem();

                listViewItem.Text   = Common.GetBestManagementPackName(mp);
                listViewItem.Tag    = mp;

                listViewItem.SubItems.Add(mp.Version.ToString());

                lstManagementPacks.Items.Add(listViewItem);

                lstManagementPacks.Sort();
            }

            lstManagementPacks.EndUpdate();
        }
 public override bool SavePageConfig()
 {
     if (!DestinationManagementPack.References.ContainsKey("Windows"))
     {
         ManagementPackCriteria mpCriteria      = new ManagementPackCriteria("Name='Microsoft.Windows.Library'");
         IList <ManagementPack> managementPacks =
             ManagementGroup.ManagementPacks.GetManagementPacks(mpCriteria);
         DestinationManagementPack.References.Add("Windows", managementPacks[0]);
         mpCriteria = null;
     }
     if (!DestinationManagementPack.References.ContainsKey("Health"))
     {
         ManagementPackCriteria mpCriteria      = new ManagementPackCriteria("Name='System.Health.Library'");
         IList <ManagementPack> managementPacks =
             ManagementGroup.ManagementPacks.GetManagementPacks(mpCriteria);
         DestinationManagementPack.References.Add("Health", managementPacks[0]);
         mpCriteria = null;
     }
     if (!DestinationManagementPack.References.ContainsKey("SCDW"))
     {
         ManagementPackCriteria mpCriteria      = new ManagementPackCriteria("Name='Microsoft.SystemCenter.DataWarehouse.Library'");
         IList <ManagementPack> managementPacks =
             ManagementGroup.ManagementPacks.GetManagementPacks(mpCriteria);
         DestinationManagementPack.References.Add("SCDW", managementPacks[0]);
         mpCriteria = null;
     }
     return(base.SavePageConfig());
 }
Ejemplo n.º 6
0
        /// <summary>
        /// Uninstalls the mp.
        /// </summary>
        /// <param name="name">
        /// The name.
        /// </param>
        public void UnInstallMp(string name)
        {
            var criteria = new ManagementPackCriteria($"Name = '{name}'");
            var mp       = this.ManagementPacks.GetManagementPacks(criteria).FirstOrDefault();

            if (mp != null)
            {
                this.ManagementPacks.UninstallManagementPack(mp);
            }
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Initializes a new instance of the <see cref="ConfigurationPackConnector"/> class.
        /// Connects to the provided management server or URI
        /// </summary>
        public ConfigurationPackConnector()
        {
            Log.WriteTrace(
                EventType.UIActivity,
                "Connecting to configuration override Management Pack");

            try
            {
                ManagementGroup        managementGroupConnection = ManagementGroupConnector.CurrentManagementGroup;
                ManagementPackCriteria packCriteria = new ManagementPackCriteria("Name = 'Community.ManagementPackCatalog.Configuration'");
                var packResults = managementGroupConnection.ManagementPacks.GetManagementPacks(packCriteria);
                if (packResults.Count == 1)
                {
                    // Good news, we should only see one
                    configurationOverridePack = packResults[0];
                }
                else if (packResults.Count == 0)
                {
                    // install the shell unsealed pack
                    try
                    {
                        DialogResult installPack = System.Windows.Forms.MessageBox.Show(
                            "A small unsealed MP is required to configure the alerting, can we create it now?"
                            + Environment.NewLine + "Community.ManagementPackCatalog.Configuration will be created for alert configuration overrides."
                            , "Create Override Pack?"
                            , System.Windows.Forms.MessageBoxButtons.YesNo
                            , System.Windows.Forms.MessageBoxIcon.Information);

                        if (installPack == DialogResult.Yes)
                        {
                            InstallConfigurationPack();
                        }
                        else
                        {
                            throw new Exception("The Settings pane cannot be used without the unsealed Configuration management pack.");
                        }
                    }
                    catch (Exception ex)
                    {
                        Log.WriteError(
                            EventType.UIActivity,
                            "Unable to install management pack.",
                            ex.Message);
                    }
                }
            }
            catch (Exception ex)
            {
                Log.WriteError(
                    EventType.ExternalDependency,
                    "Unable to connect to Management Group and Get Override Pack",
                    ex.Message);
            }
        }
Ejemplo n.º 8
0
        public static ManagementPack GetManagementPackByName(string strManagementPackName, EnterpriseManagementGroup emg)
        {
            ManagementPack         mpToReturn = null;
            ManagementPackCriteria mpc        = new ManagementPackCriteria(String.Format("Name = '{0}'", strManagementPackName));

            foreach (ManagementPack mp in emg.ManagementPacks.GetManagementPacks(mpc))
            {
                mpToReturn = mp;
            }
            return(mpToReturn);
        }
Ejemplo n.º 9
0
        public static ManagementPack GetManagementPackByName(string strName, EnterpriseManagementGroup emg)
        {
            ManagementPackCriteria mpc = new ManagementPackCriteria(String.Format("Name = '{0}'", strName));
            IList <ManagementPack> ListManagementPacks = emg.ManagementPacks.GetManagementPacks(mpc);

            if (ListManagementPacks.Count > 0)
            {
                return(ListManagementPacks[0]);
            }
            else
            {
                return(null);
            }
        }
Ejemplo n.º 10
0
        /// <summary>
        /// Uninstalls the mp.
        /// </summary>
        /// <param name="name">
        /// The name.
        /// </param>
        public void UnInstallMp(string name)
        {
            var criteria = new ManagementPackCriteria($"Name = '{name}'");
            var mp       = this.ManagementPacks.GetManagementPacks(criteria).FirstOrDefault();

            if (mp == null)
            {
                Console.WriteLine($"ManagementPack {name} is not installed.");
            }
            else
            {
                this.ManagementPacks.UninstallManagementPack(mp);
                Console.WriteLine($"Uninstall {name} Finish.");
            }
        }
Ejemplo n.º 11
0
        /// <summary>
        /// The get management pack.
        /// </summary>
        /// <param name="name">
        /// The name.
        /// </param>
        /// <returns>
        /// The <see cref="ManagementPack"/>.
        /// </returns>
        public ManagementPack GetManagementPack(string name)
        {
            var criteria = new ManagementPackCriteria($"Name = '{name}'");

            return(this.ManagementPacks.GetManagementPacks(criteria).FirstOrDefault());
        }
Ejemplo n.º 12
0
        /// <summary>
        /// 检查MP文件是否已安装
        /// </summary>
        /// <param name="name">
        /// The name.
        /// </param>
        /// <returns>
        /// <c>true</c> if XXXX, <c>false</c> otherwise.
        /// </returns>
        public bool CheckIsInstallMp(string name)
        {
            var criteria = new ManagementPackCriteria($"Name = '{name}'");

            return(this.ManagementPacks.GetManagementPacks(criteria).Count > 0);
        }