Esempio n. 1
0
        private void LoadSelectedTemplate()
        {
            if (lvwTemplates.SelectedItems.Count == 1 && lvwTemplates.SelectedItems[0].Tag is QuickMonTemplate)
            {
                cboType.Enabled        = cboTypeFilter.SelectedIndex == 5;
                txtName.Enabled        = true;
                cboClass.Enabled       = true;
                txtDescription.Enabled = true;

                QuickMonTemplate t = (QuickMonTemplate)lvwTemplates.SelectedItems[0].Tag;
                cboType.SelectedIndex = (int)t.TemplateType;
                txtName.Text          = t.Name;
                cboClass.Text         = t.ForClass;
                txtDescription.Text   = t.Description;
                txtConfig.Text        = XmlFormattingUtils.NormalizeXML(t.Config);
                SetSaveButton(false);
            }
            else
            {
                cboType.Enabled        = lvwTemplates.SelectedItems.Count == 0 && cboTypeFilter.SelectedIndex == 5;
                txtName.Enabled        = lvwTemplates.SelectedItems.Count == 0;
                cboClass.Enabled       = lvwTemplates.SelectedItems.Count == 0;
                txtDescription.Enabled = lvwTemplates.SelectedItems.Count == 0;
                txtName.Text           = "";
                cboClass.Text          = "";
                txtDescription.Text    = "";
                txtConfig.Text         = "";
                SetSaveButton(false);
            }
        }
Esempio n. 2
0
        private void LoadMonitorPackItems()
        {
            lvwAgentType.Items.Clear();
            lvwAgentType.Groups.Clear();
            ListViewGroup generalGroup = new ListViewGroup("General");

            lvwAgentType.Groups.Add(generalGroup);
            ListViewItem lviEmptyMonitorPack = new ListViewItem("Empty monitor pack");

            lviEmptyMonitorPack.SubItems.Add("Creates a blank monitor pack with no collectors");
            lviEmptyMonitorPack.Group = generalGroup;
            lviEmptyMonitorPack.Tag   = Properties.Resources.BlankTemplateMonitorPack;
            lvwAgentType.Items.Add(lviEmptyMonitorPack);

            ListViewGroup templatesGroup = new ListViewGroup("Templates");

            lvwAgentType.Groups.Add(templatesGroup);
            foreach (QuickMonTemplate qt in QuickMonTemplate.GetAllTemplates().Where(t => t.TemplateType == TemplateType.MonitorPack))
            {
                ListViewItem lviTemplateCollector = new ListViewItem(qt.Name);
                lviTemplateCollector.SubItems.Add(qt.Description);
                lviTemplateCollector.Group = templatesGroup;
                lviTemplateCollector.Tag   = qt;
                lvwAgentType.Items.Add(lviTemplateCollector);
            }
        }
Esempio n. 3
0
 private void LoadTemplates()
 {
     lvwTemplates.Items.Clear();
     foreach (QuickMonTemplate t in (from t in QuickMonTemplate.GetAllTemplates()
                                     orderby t.Name
                                     select t))
     {
         if (
             cboTypeFilter.SelectedIndex == 5 ||
             (
                 (cboTypeFilter.SelectedIndex == 0 && t.TemplateType == TemplateType.MonitorPack) ||
                 (cboTypeFilter.SelectedIndex == 1 && t.TemplateType == TemplateType.CollectorHost) ||
                 (cboTypeFilter.SelectedIndex == 2 && t.TemplateType == TemplateType.CollectorAgent) ||
                 (cboTypeFilter.SelectedIndex == 3 && t.TemplateType == TemplateType.NotifierHost) ||
                 (cboTypeFilter.SelectedIndex == 4 && t.TemplateType == TemplateType.NotifierAgent)
             )
             )
         {
             ListViewGroup lg = (from ListViewGroup g in lvwTemplates.Groups
                                 where
                                 (g.Header == "Monitor Pack" && t.TemplateType == TemplateType.MonitorPack) ||
                                 (g.Header == "Collector Host" && t.TemplateType == TemplateType.CollectorHost) ||
                                 (g.Header == "Collector Agent" && t.TemplateType == TemplateType.CollectorAgent) ||
                                 (g.Header == "Notifier Host" && t.TemplateType == TemplateType.NotifierHost) ||
                                 (g.Header == "Notifier Agent" && t.TemplateType == TemplateType.NotifierAgent)
                                 select g).FirstOrDefault();
             ListViewItem lvi = new ListViewItem(t.Name);
             lvi.SubItems.Add(t.ForClass);
             lvi.SubItems.Add(t.Description);
             lvi.Group = lg;
             lvi.Tag   = t;
             lvwTemplates.Items.Add(lvi);
         }
     }
 }
Esempio n. 4
0
        private void LoadNotifierHostItems()
        {
            lvwAgentType.Items.Clear();
            lvwAgentType.Groups.Clear();
            ListViewGroup generalGroup = new ListViewGroup("General");

            lvwAgentType.Groups.Add(generalGroup);
            ListViewItem lviDefaultNotifier = new ListViewItem("Default Notifier");

            lviDefaultNotifier.SubItems.Add("Creates a default notifier with 'In Memory' agent");
            lviDefaultNotifier.Group = generalGroup;
            lviDefaultNotifier.Tag   = NotifierHost.FromXml("<notifierHost name=\"Default Notifier\" enabled=\"True\" alertLevel=\"Warning\" detailLevel=\"Detail\" attendedOptionOverride=\"OnlyAttended\"><notifierAgents><notifierAgent name=\"Memory agent\" type=\"QuickMon.Notifiers.InMemoryNotifier\" enabled=\"True\"><config><inMemory maxEntryCount=\"99999\" /></config></notifierAgent></notifierAgents></notifierHost>");
            lvwAgentType.Items.Add(lviDefaultNotifier);

            ListViewGroup templatesGroup = new ListViewGroup("Templates");

            lvwAgentType.Groups.Add(templatesGroup);

            foreach (QuickMonTemplate qt in QuickMonTemplate.GetAllTemplates().Where(t => t.TemplateType == TemplateType.NotifierHost))
            {
                ListViewItem lviTemplateCollector = new ListViewItem(qt.Name);
                lviTemplateCollector.SubItems.Add(qt.Description);
                lviTemplateCollector.Group = templatesGroup;
                lviTemplateCollector.Tag   = qt;
                lvwAgentType.Items.Add(lviTemplateCollector);
            }
        }
Esempio n. 5
0
 private void resetToolStripButton_Click(object sender, EventArgs e)
 {
     if (MessageBox.Show("Are you sure you want to reset all templates to the defaults that came with the original installation?", "Reset", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) == System.Windows.Forms.DialogResult.Yes)
     {
         QuickMonTemplate.ResetTemplates();
         CreateNewTemplate(); //to blank out everything
         LoadTemplates();
     }
 }
Esempio n. 6
0
        private void SaveSelectedTemplate()
        {
            ListViewItem     lvi;
            QuickMonTemplate t;

            if (txtName.Text.Trim().Length == 0)
            {
                MessageBox.Show("You must specify the a name for the template!", "Name", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                txtName.Focus();
                return;
            }
            if (cboType.SelectedIndex == -1)
            {
                MessageBox.Show("You must specify the template type!", "Type", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                cboType.Focus();
                return;
            }

            if (lvwTemplates.SelectedItems.Count == 1 && lvwTemplates.SelectedItems[0].Tag is QuickMonTemplate)
            {
                lvi = lvwTemplates.SelectedItems[0];
                t   = (QuickMonTemplate)lvwTemplates.SelectedItems[0].Tag;
            }
            else
            {
                lvi = new ListViewItem(txtName.Text);
                lvi.SubItems.Add(cboClass.Text);
                lvi.SubItems.Add(txtDescription.Text);
                t = new QuickMonTemplate();
                lvwTemplates.Items.Add(lvi);
            }
            t.Name         = txtName.Text;
            t.TemplateType = (TemplateType)cboType.SelectedIndex;
            t.ForClass     = cboClass.Text;
            t.Description  = txtDescription.Text;
            t.Config       = txtConfig.Text;

            ListViewGroup lg = (from ListViewGroup g in lvwTemplates.Groups
                                where
                                (g.Header == "Monitor Pack" && t.TemplateType == TemplateType.MonitorPack) ||
                                (g.Header == "Collector Host" && t.TemplateType == TemplateType.CollectorHost) ||
                                (g.Header == "Collector Agent" && t.TemplateType == TemplateType.CollectorAgent) ||
                                (g.Header == "Notifier Host" && t.TemplateType == TemplateType.NotifierHost) ||
                                (g.Header == "Notifier Agent" && t.TemplateType == TemplateType.NotifierAgent)
                                select g).FirstOrDefault();

            lvi.Selected         = true;
            lvi.Text             = t.Name;
            lvi.SubItems[1].Text = t.ForClass;
            lvi.SubItems[2].Text = t.Description;
            lvi.Group            = lg;
            lvi.Tag = t;
            SaveAllTemplates();
            SetSaveButton(false);
        }
Esempio n. 7
0
        private void SaveAllTemplates()
        {
            List <QuickMonTemplate> list = new List <QuickMonTemplate>();

            foreach (ListViewItem lvi in lvwTemplates.Items)
            {
                if (lvi.Tag is QuickMonTemplate)
                {
                    QuickMonTemplate t = (QuickMonTemplate)lvi.Tag;
                    list.Add(t);
                }
            }
            QuickMonTemplate.SaveTemplates(list);
        }
Esempio n. 8
0
        private void LoadCollectorHostItems()
        {
            lvwAgentType.Items.Clear();
            lvwAgentType.Groups.Clear();

            ListViewGroup generalGroup = new ListViewGroup("General");

            lvwAgentType.Groups.Add(generalGroup);
            ListViewItem lviEmptyCollector = new ListViewItem("Folder/Blank collector");

            //lviEmptyCollector.SubItems.Add("Creates a blank collector with no agents");
            //lviEmptyCollector.Group = generalGroup;
            //lviEmptyCollector.Tag = new CollectorHost() { Name = "Folder" };
            //lvwAgentType.Items.Add(lviEmptyCollector);

            //lviEmptyCollector = new ListViewItem("Folder/Blank Collector");
            lviEmptyCollector.SubItems.Add("Creates a blank collector with no agents");
            lviEmptyCollector.Group = generalGroup;
            lviEmptyCollector.Tag   = CollectorHost.FromXml("<collectorHost uniqueId=\"\" dependOnParentId=\"\" name=\"[[FolderName:]]\"><collectorAgents agentCheckSequence=\"All\"></collectorAgents></collectorHost>").Clone(true);
            lvwAgentType.Items.Add(lviEmptyCollector);

            //<collectorHost uniqueId=\"\" dependOnParentId=\"\" name=\"[[FolderName:]]\"><collectorAgents agentCheckSequence="All"></collectorAgents></collectorHost>

            ListViewItem lviPingCollector = new ListViewItem("Ping (ICMP)");

            lviPingCollector.SubItems.Add("Creates a collector with a Ping (ICMP) agent");
            lviPingCollector.Group = generalGroup;
            lviPingCollector.Tag   = CollectorHost.FromXml("<collectorHost uniqueId=\"\" dependOnParentId=\"\" name=\"Ping [[MachineName:localhost]]\"><collectorAgents agentCheckSequence=\"All\"><collectorAgent name=\"Ping [[MachineName:localhost]]\" type=\"QuickMon.Collectors.PingCollector\" enabled=\"True\"><config><entries><entry pingMethod=\"Ping\" address=\"[[MachineName:localhost]]\" maxTimeMS=\"[[maxTimeMS:1000]]\" timeOutMS=\"[[timeOutMS:5000]]\" /></entries></config></collectorAgent></collectorAgents></collectorHost>").Clone(true);
            lvwAgentType.Items.Add(lviPingCollector);

            lviPingCollector = new ListViewItem("Ping (http)");
            lviPingCollector.SubItems.Add("Creates a collector with a Ping (http) agent");
            lviPingCollector.Group = generalGroup;
            lviPingCollector.Tag   = CollectorHost.FromXml("<collectorHost uniqueId=\"\" dependOnParentId=\"\" name=\"Ping [[MachineName:localhost]]\"><collectorAgents agentCheckSequence=\"All\"><collectorAgent name=\"Ping [[MachineName:localhost]]\" type=\"QuickMon.Collectors.PingCollector\" enabled=\"True\"><config><entries><entry pingMethod=\"Http\" address=\"http://[[MachineName:localhost]]\" maxTimeMS=\"[[maxTimeMS:1000]]\" timeOutMS=\"[[timeOutMS:5000]]\" /></entries></config></collectorAgent></collectorAgents></collectorHost>").Clone(true);
            lvwAgentType.Items.Add(lviPingCollector);

            ListViewGroup templatesGroup = new ListViewGroup("Templates");

            lvwAgentType.Groups.Add(templatesGroup);

            foreach (QuickMonTemplate qt in QuickMonTemplate.GetAllTemplates().Where(t => t.TemplateType == TemplateType.CollectorHost))
            {
                ListViewItem lviTemplateCollector = new ListViewItem(qt.Name);
                lviTemplateCollector.SubItems.Add(qt.Description);
                lviTemplateCollector.Group = templatesGroup;
                lviTemplateCollector.Tag   = qt;
                lvwAgentType.Items.Add(lviTemplateCollector);
            }
        }
Esempio n. 9
0
 private void cmdResetTemplates_Click(object sender, EventArgs e)
 {
     if (MessageBox.Show("Are you sure you want to reset all templates? This cannot be undone.", "Reset", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) == DialogResult.Yes)
     {
         QuickMonTemplate.ResetTemplates();
         if (selectingCollectorHosts)
         {
             LoadCollectorHostItems();
         }
         else if (selectingCollectorAgents || selectingNotifierAgents)
         {
             LoadCollectorAgents();
         }
         else if (selectingNotifierHosts)
         {
             LoadNotifierHostItems();
         }
     }
 }
Esempio n. 10
0
        private void LoadTemplates()
        {
            Text = "Select Template - ";
            switch (FilterTemplatesBy)
            {
            case TemplateType.CollectorHost:
                Text += "Collector Host";
                break;

            case TemplateType.CollectorAgent:
                Text += "Collector Agent";
                break;

            case TemplateType.NotifierHost:
                Text += "Notifier Host";
                break;

            case TemplateType.NotifierAgent:
                Text += "Notifier Agent";
                break;

            default:
                Text += "Monitor pack";
                break;
            }
            lvwTemplates.Items.Clear();
            foreach (QuickMonTemplate template in (from p in QuickMonTemplate.GetAllTemplates()
                                                   where p.TemplateType == FilterTemplatesBy
                                                   orderby p.Name
                                                   select p))
            {
                try
                {
                    ListViewItem lvi = new ListViewItem(template.Name);
                    lvi.ImageIndex = 0;
                    string details = template.Description.Trim().Length == 0 ? template.Config : template.Description;
                    lvi.SubItems.Add(details);
                    lvi.Tag = template;
                    lvwTemplates.Items.Add(lvi);
                }
                catch { }
            }
        }
Esempio n. 11
0
        private void LoadSelectedTemplate()
        {
            if (lvwTemplates.SelectedItems.Count == 1 && lvwTemplates.SelectedItems[0].Tag is QuickMonTemplate)
            {
                cboType.Enabled        = cboTypeFilter.SelectedIndex == 5;
                txtName.Enabled        = true;
                cboClass.Enabled       = true;
                txtDescription.Enabled = true;

                QuickMonTemplate t = (QuickMonTemplate)lvwTemplates.SelectedItems[0].Tag;
                cboType.SelectedIndex = (int)t.TemplateType;
                txtName.Text          = t.Name;
                cboClass.Text         = t.ForClass;
                txtDescription.Text   = t.Description;
                txtConfig.Text        = t.Config;
                try
                {
                    txtConfig.Text = txtConfig.Text.BeautifyXML(); // XmlFormattingUtils.NormalizeXML(txtConfig.Text);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(string.Format("Error formatting xml\r\n{0}", ex.Message), "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                }
                SetSaveButton(false);
            }
            else
            {
                cboType.Enabled        = lvwTemplates.SelectedItems.Count == 0 && cboTypeFilter.SelectedIndex == 5;
                txtName.Enabled        = lvwTemplates.SelectedItems.Count == 0;
                cboClass.Enabled       = lvwTemplates.SelectedItems.Count == 0;
                txtDescription.Enabled = lvwTemplates.SelectedItems.Count == 0;
                txtName.Text           = "";
                cboClass.Text          = "";
                txtDescription.Text    = "";
                txtConfig.Text         = "";
                SetSaveButton(false);
            }
        }
Esempio n. 12
0
        private void SaveSelectedTemplate()
        {
            ListViewItem     lvi;
            QuickMonTemplate t;

            if (txtName.Text.Trim().Length == 0)
            {
                MessageBox.Show("You must specify the a name for the template!", "Name", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                txtName.Focus();
                return;
            }
            if (cboType.SelectedIndex == -1)
            {
                MessageBox.Show("You must specify the template type!", "Type", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                cboType.Focus();
                return;
            }
            if (txtConfig.Text.Trim().Length == 0)
            {
                MessageBox.Show("You must specify the config for the template!", "Config", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                txtConfig.Focus();
                return;
            }
            if (((TemplateType)cboType.SelectedIndex) == TemplateType.CollectorHost)
            {
                try
                {
                    System.Xml.XmlDocument xdoc = new System.Xml.XmlDocument();
                    xdoc.LoadXml(txtConfig.Text);
                    System.Xml.XmlElement root = xdoc.DocumentElement;
                    if (root.ReadXmlElementAttr("uniqueId", "") == "" || root.ReadXmlElementAttr("dependOnParentId", "") == "")
                    {
                        root.SetAttributeValue("uniqueId", "");
                        root.SetAttributeValue("dependOnParentId", "");
                        txtConfig.Text = XmlFormattingUtils.NormalizeXML(xdoc.OuterXml);
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Invalid config!\r\n" + ex.Message, "Config", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    return;
                }
            }

            if (lvwTemplates.SelectedItems.Count == 1 && lvwTemplates.SelectedItems[0].Tag is QuickMonTemplate)
            {
                lvi = lvwTemplates.SelectedItems[0];
                t   = (QuickMonTemplate)lvwTemplates.SelectedItems[0].Tag;
            }
            else
            {
                lvi = new ListViewItem(txtName.Text);
                lvi.SubItems.Add(cboClass.Text);
                lvi.SubItems.Add(txtDescription.Text);
                t = new QuickMonTemplate();
                lvwTemplates.Items.Add(lvi);
            }
            t.Name         = txtName.Text;
            t.TemplateType = (TemplateType)cboType.SelectedIndex;
            t.ForClass     = cboClass.Text;
            t.Description  = txtDescription.Text;
            t.Config       = txtConfig.Text;

            ListViewGroup lg = (from ListViewGroup g in lvwTemplates.Groups
                                where
                                (g.Header == "Monitor Pack" && t.TemplateType == TemplateType.MonitorPack) ||
                                (g.Header == "Collector Host" && t.TemplateType == TemplateType.CollectorHost) ||
                                (g.Header == "Collector Agent" && t.TemplateType == TemplateType.CollectorAgent) ||
                                (g.Header == "Notifier Host" && t.TemplateType == TemplateType.NotifierHost) ||
                                (g.Header == "Notifier Agent" && t.TemplateType == TemplateType.NotifierAgent)
                                select g).FirstOrDefault();

            lvi.Selected         = true;
            lvi.Text             = t.Name;
            lvi.SubItems[1].Text = t.ForClass;
            lvi.SubItems[2].Text = t.Description;
            lvi.Group            = lg;
            lvi.Tag = t;
            SaveAllTemplates();
            SetSaveButton(false);
        }
Esempio n. 13
0
        private void cmdOK_Click(object sender, EventArgs e)
        {
            if (lvwAgentType.SelectedItems.Count == 1)
            {
                string configToUse = "";
                if (selectingMonitorPacks)
                {
                    #region Monitor pack
                    if (lvwAgentType.SelectedItems[0].Tag is string)
                    {
                        configToUse = lvwAgentType.SelectedItems[0].Tag.ToString();
                    }
                    else if (lvwAgentType.SelectedItems[0].Tag is QuickMonTemplate)
                    {
                        QuickMonTemplate selectedTemplate = (QuickMonTemplate)(lvwAgentType.SelectedItems[0].Tag);
                        configToUse = selectedTemplate.Config;
                    }
                    if (chkShowCustomConfig.Checked)
                    {
                        RAWXmlEditor editor = new RAWXmlEditor();
                        editor.SelectedMarkup = configToUse;
                        if (editor.ShowDialog() == DialogResult.OK)
                        {
                            configToUse = editor.SelectedMarkup;
                        }
                    }
                    configToUse = FormatTemplateVariables(configToUse);
                    if (configToUse.Length == 0)
                    {
                        return;
                    }

                    MonitorPack mp = new MonitorPack();
                    mp.LoadXml(configToUse);
                    SelectedMonitorPack = mp;
                    #endregion
                }
                else if (selectingCollectorHosts)
                {
                    #region Collector hosts
                    if (lvwAgentType.SelectedItems[0].Tag is CollectorHost)
                    {
                        CollectorHost newCH = (CollectorHost)lvwAgentType.SelectedItems[0].Tag;
                        newCH.UniqueId = "";
                        configToUse    = newCH.ToXml();
                    }
                    else if (lvwAgentType.SelectedItems[0].Tag is QuickMonTemplate)
                    {
                        QuickMonTemplate selectedTemplate = (QuickMonTemplate)(lvwAgentType.SelectedItems[0].Tag);
                        configToUse = selectedTemplate.Config;
                    }
                    if (chkShowCustomConfig.Checked)
                    {
                        RAWXmlEditor editor = new RAWXmlEditor();
                        editor.SelectedMarkup = configToUse;
                        if (editor.ShowDialog() == DialogResult.OK)
                        {
                            configToUse = editor.SelectedMarkup;
                        }
                    }

                    configToUse = FormatTemplateVariables(configToUse);
                    if (configToUse.Length == 0)
                    {
                        return;
                    }

                    CollectorHost cls = CollectorHost.FromXml(configToUse);
                    if (cls != null)
                    {
                        SelectedCollectorHost = cls;
                    }
                    else
                    {
                        MessageBox.Show("The configuration for this template is invalid! Please correct and try again.", "Template", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        return;
                    }
                    #endregion
                }
                else if (selectingCollectorAgents || selectingNotifierAgents)
                {
                    #region Collector agents
                    RegisteredAgent ra = null;
                    if (lvwAgentType.SelectedItems[0].Tag is RegisteredAgent)
                    {
                        ra = (RegisteredAgent)lvwAgentType.SelectedItems[0].Tag;
                    }
                    else if (lvwAgentType.SelectedItems[0].Tag is QuickMonTemplate)
                    {
                        QuickMonTemplate template = (QuickMonTemplate)lvwAgentType.SelectedItems[0].Tag;
                        ra          = RegisteredAgentCache.GetRegisteredAgentByClassName(template.ForClass, selectingCollectorAgents);
                        configToUse = template.Config;
                    }
                    if (ra != null)
                    {
                        if (System.IO.File.Exists(ra.AssemblyPath))
                        {
                            Assembly collectorEntryAssembly = Assembly.LoadFile(ra.AssemblyPath);
                            SelectedAgent = (IAgent)collectorEntryAssembly.CreateInstance(ra.ClassName);
                            SelectedAgent.AgentClassName        = ra.ClassName;
                            SelectedAgent.AgentClassDisplayName = ra.DisplayName;
                            if (configToUse.Length == 0)
                            {
                                configToUse = SelectedAgent.AgentConfig.GetDefaultOrEmptyXml();
                            }
                            if (chkShowCustomConfig.Checked)
                            {
                                RAWXmlEditor editor = new RAWXmlEditor();
                                editor.SelectedMarkup = configToUse;
                                if (editor.ShowDialog() == DialogResult.OK)
                                {
                                    configToUse = editor.SelectedMarkup;
                                }
                            }
                            try
                            {
                                if ((selectingCollectorAgents && configToUse.StartsWith("<collectorAgent")) || (selectingNotifierAgents && configToUse.StartsWith("<notifierAgent")))
                                {
                                    System.Xml.XmlDocument collectorAgentDoc = new System.Xml.XmlDocument();
                                    collectorAgentDoc.LoadXml(configToUse);
                                    System.Xml.XmlNode configNode = collectorAgentDoc.DocumentElement.SelectSingleNode("config");
                                    if (configNode != null)
                                    {
                                        configToUse = configNode.OuterXml;
                                    }
                                }

                                configToUse = FormatTemplateVariables(configToUse);
                                if (configToUse.Length == 0)
                                {
                                    return;
                                }

                                SelectedAgent.AgentConfig.FromXml(configToUse);
                                DialogResult = DialogResult.OK;
                                Close();
                            }
                            catch (Exception ex)
                            {
                                MessageBox.Show("An error occured while processing the config!\r\n" + ex.Message, "Edit config", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                            }
                        }
                    }
                    #endregion
                }
                else if (selectingNotifierHosts)
                {
                    #region Notifier hosts
                    if (lvwAgentType.SelectedItems[0].Tag is NotifierHost)
                    {
                        configToUse = ((NotifierHost)lvwAgentType.SelectedItems[0].Tag).ToXml();
                    }
                    else if (lvwAgentType.SelectedItems[0].Tag is QuickMonTemplate)
                    {
                        QuickMonTemplate selectedTemplate = (QuickMonTemplate)(lvwAgentType.SelectedItems[0].Tag);
                        configToUse = selectedTemplate.Config;
                    }

                    if (chkShowCustomConfig.Checked)
                    {
                        RAWXmlEditor editor = new RAWXmlEditor();
                        editor.SelectedMarkup = configToUse;
                        if (editor.ShowDialog() == DialogResult.OK)
                        {
                            configToUse = editor.SelectedMarkup;
                        }
                    }

                    configToUse = FormatTemplateVariables(configToUse);
                    if (configToUse.Length == 0)
                    {
                        return;
                    }

                    NotifierHost cls = NotifierHost.FromXml(configToUse);
                    if (cls != null)
                    {
                        SelectedNotifierHost = cls;
                    }
                    else
                    {
                        MessageBox.Show("The configuration for this template is invalid! Please correct and try again.", "Template", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        return;
                    }
                    #endregion
                }
                EditAfterCreation = chkEditAfterCreate.Checked;
                DialogResult      = DialogResult.OK;
                Close();
            }
        }
Esempio n. 14
0
        private void LoadCollectorAgents()
        {
            lvwAgentType.Items.Clear();
            lvwAgentType.Groups.Clear();

            ListViewGroup generalGroup = new ListViewGroup("General");

            lvwAgentType.Groups.Add(generalGroup);

            foreach (string categoryName in (from a in RegisteredAgentCache.Agents
                                             where ((a.IsCollector && selectingCollectorAgents) || (selectingNotifierAgents && a.IsNotifier)) && a.CategoryName != "Test" && a.CategoryName != "General"
                                             group a by a.CategoryName into g
                                             orderby g.Key
                                             select g.Key))
            {
                lvwAgentType.Groups.Add(new ListViewGroup(categoryName));
            }
            ListViewGroup testGroup = new ListViewGroup("Test");

            lvwAgentType.Groups.Add(testGroup);

            ListViewItem lvi;

            foreach (RegisteredAgent ar in (from a in RegisteredAgentCache.Agents
                                            where (selectingCollectorAgents && a.IsCollector) || (selectingNotifierAgents && a.IsNotifier)
                                            orderby a.Name
                                            select a))
            {
                try
                {
                    ListViewGroup agentGroup = (from ListViewGroup gr in lvwAgentType.Groups
                                                where gr.Header.ToLower() == ar.CategoryName.ToLower()
                                                select gr).FirstOrDefault();
                    if (agentGroup == null)
                    {
                        agentGroup = generalGroup;
                    }

                    lvi = new ListViewItem(ar.DisplayName);
                    string details = ar.ClassName;
                    System.Reflection.Assembly a = System.Reflection.Assembly.LoadFrom(ar.AssemblyPath);
                    details += ", Version: " + a.GetName().Version.ToString();
                    details += ", Assembly: " + System.IO.Path.GetFileName(a.Location);

                    if (agentGroup == testGroup)
                    {
                        lvi.ImageIndex = 1;
                    }
                    else
                    {
                        lvi.ImageIndex = 0;
                    }
                    lvi.Group = agentGroup;
                    lvi.SubItems.Add(details);
                    lvi.Tag = ar;
                    lvwAgentType.Items.Add(lvi);
                    if (ar.Name == InitialRegistrationName)
                    {
                        lvi.Selected = true;
                    }
                }
                catch { }
            }

            ListViewGroup templatesGroup = new ListViewGroup("Templates");

            lvwAgentType.Groups.Add(templatesGroup);

            foreach (QuickMonTemplate qt in QuickMonTemplate.GetAllTemplates().Where(t => (selectingCollectorAgents && t.TemplateType == TemplateType.CollectorAgent) || (selectingNotifierAgents && t.TemplateType == TemplateType.NotifierAgent)))
            {
                ListViewItem lviTemplateCollector = new ListViewItem(qt.Name);
                lviTemplateCollector.SubItems.Add(qt.Description);
                lviTemplateCollector.Group = templatesGroup;
                lviTemplateCollector.Tag   = qt;
                lvwAgentType.Items.Add(lviTemplateCollector);
            }
        }
Esempio n. 15
0
 private void cmdOK_Click(object sender, EventArgs e)
 {
     if (lvwAgentType.SelectedItems.Count == 1)
     {
         RegisteredAgent ra          = null;
         string          configToUse = "";
         if (lvwAgentType.SelectedItems[0].Tag is RegisteredAgent)
         {
             ra           = (RegisteredAgent)lvwAgentType.SelectedItems[0].Tag;
             TemplateUsed = false;
         }
         else if (lvwAgentType.SelectedItems[0].Tag is QuickMonTemplate)
         {
             QuickMonTemplate template = (QuickMonTemplate)lvwAgentType.SelectedItems[0].Tag;
             ra           = RegisteredAgentCache.GetRegisteredAgentByClassName(template.ForClass, selectingCollectors);
             configToUse  = template.Config;
             TemplateUsed = true;
         }
         if (ra != null)
         {
             if (System.IO.File.Exists(ra.AssemblyPath))
             {
                 Assembly collectorEntryAssembly = Assembly.LoadFile(ra.AssemblyPath);
                 SelectedAgent = (IAgent)collectorEntryAssembly.CreateInstance(ra.ClassName);
                 SelectedAgent.AgentClassName        = ra.ClassName.Replace("QuickMon.Collectors.", "").Replace("QuickMon.Notifiers.", "");
                 SelectedAgent.AgentClassDisplayName = ra.DisplayName;
                 if (configToUse.Length == 0)
                 {
                     configToUse = SelectedAgent.AgentConfig.GetDefaultOrEmptyXml();
                 }
                 if (chkShowCustomConfig.Checked)
                 {
                     RAWXmlEditor editor = new RAWXmlEditor();
                     editor.SelectedMarkup = configToUse;
                     if (editor.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                     {
                         configToUse = editor.SelectedMarkup;
                     }
                 }
                 try
                 {
                     if (selectingCollectors && configToUse.StartsWith("<collectorAgent"))
                     {
                         SelectedAgent = CollectorHost.GetCollectorAgentFromString(configToUse);
                     }
                     else if (!selectingCollectors && configToUse.StartsWith("<notifierAgent"))
                     {
                         SelectedAgent = NotifierHost.GetNotifierAgentFromString(configToUse);
                     }
                     else
                     {
                         SelectedAgent.AgentConfig.FromXml(configToUse);
                     }
                     DialogResult = System.Windows.Forms.DialogResult.OK;
                     Close();
                 }
                 catch (Exception ex)
                 {
                     MessageBox.Show("An error occured while processing the config!\r\n" + ex.Message, "Edit config", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                 }
             }
         }
     }
 }
Esempio n. 16
0
        private void LoadTemplates()
        {
            lvwAgentType.Items.Clear();
            ListViewItem  lvi;
            ListViewGroup generalGroup = (from ListViewGroup gr in lvwAgentType.Groups
                                          where gr.Header.ToLower() == "general"
                                          select gr).FirstOrDefault();

            List <QuickMonTemplate> allTemplates;

            if (selectingCollectors)
            {
                allTemplates = (from p in QuickMonTemplate.GetCollectorAgentTemplates()
                                orderby p.Name
                                select p).ToList();
            }
            else
            {
                allTemplates = (from p in QuickMonTemplate.GetNotifierAgentTemplates()
                                orderby p.Name
                                select p).ToList();
            }



            if (allTemplates == null || allTemplates.Count == 0)
            {
                if (!firstChoice)
                {
                    /**************************/
                    MessageBox.Show("No templates found for the selected agent type!", "Templates", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                /**************************/
                optShowConfigEditor.Checked = true;
            }
            else
            {
                foreach (QuickMonTemplate template in allTemplates)
                {
                    try
                    {
                        RegisteredAgent ar = (from a in RegisteredAgentCache.Agents
                                              where ((selectingCollectors && a.IsCollector) || (!selectingCollectors && a.IsNotifier)) &&
                                              a.ClassName.EndsWith(template.ForClass)
                                              orderby a.Name
                                              select a).FirstOrDefault();
                        if (ar != null)
                        {
                            ListViewGroup agentGroup = (from ListViewGroup gr in lvwAgentType.Groups
                                                        where gr.Header.ToLower() == ar.CategoryName.ToLower()
                                                        select gr).FirstOrDefault();
                            if (agentGroup == null)
                            {
                                agentGroup = generalGroup;
                            }

                            lvi = new ListViewItem(template.Name);
                            string details = template.Description.Trim().Length == 0 ? template.Config : template.Description;
                            lvi.ImageIndex = 0;
                            lvi.Group      = agentGroup;
                            lvi.SubItems.Add(details);
                            lvi.Tag = template;
                            lvwAgentType.Items.Add(lvi);
                        }
                    }
                    catch { }
                }
                if (lvwAgentType.Items.Count == 0)
                {
                    if (!firstChoice)
                    {
                        /**************************/
                        MessageBox.Show("No templates found for the selected agent type!", "Templates", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    /**************************/
                    optShowConfigEditor.Checked = true;
                }
            }
        }