コード例 #1
0
 private void UpdateFileSystem()
 {
     if (txtFileSystem.Text.Trim().Length > 0 && !fileSystemUpdated)
     {
         if (lvwFileSystems.SelectedItems.Count == 1)
         {
             ListViewItem           lvi  = lvwFileSystems.SelectedItems[0];
             LinuxDiskSpaceSubEntry dsse = (LinuxDiskSpaceSubEntry)lvwFileSystems.SelectedItems[0].Tag;
             dsse.FileSystemName  = txtFileSystem.Text;
             dsse.WarningValue    = (double)warningNumericUpDown.Value;
             dsse.ErrorValue      = (double)errorNumericUpDown.Value;
             lvi.Text             = txtFileSystem.Text;
             lvi.SubItems[1].Text = warningNumericUpDown.Value.ToString();
             lvi.SubItems[2].Text = errorNumericUpDown.Value.ToString();
         }
         else
         {
             LinuxDiskSpaceSubEntry dsse = new LinuxDiskSpaceSubEntry()
             {
                 FileSystemName = txtFileSystem.Text, WarningValue = (double)warningNumericUpDown.Value, ErrorValue = (double)errorNumericUpDown.Value
             };
             ListViewItem lvi = new ListViewItem()
             {
                 Text = dsse.FileSystemName
             };
             lvi.SubItems.Add(dsse.WarningValue.ToString());
             lvi.SubItems.Add(dsse.ErrorValue.ToString());
             lvi.Tag = dsse;
             lvwFileSystems.Items.Add(lvi);
             lvwFileSystems.SelectedItems.Clear();
             lvi.Selected = true;
         }
     }
 }
コード例 #2
0
        public List <DiskInfoState> GetDiskInfos()
        {
            List <DiskInfoState> fileSystemEntries = new List <DiskInfoState>();

            Renci.SshNet.SshClient sshClient = SSHConnection.GetConnection();


            //First see if ANY subentry is for all
            bool addAll = (from LinuxDiskSpaceSubEntry d in SubItems
                           where d.FileSystemName == "*"
                           select d).Count() > 0;

            if (addAll)
            {
                LinuxDiskSpaceSubEntry alertDef = (from LinuxDiskSpaceSubEntry d in SubItems
                                                   where d.FileSystemName == "*"
                                                   select d).FirstOrDefault();
                foreach (Linux.DiskInfo di in DiskInfo.FromDfTk(sshClient))
                {
                    DiskInfoState dis = new DiskInfoState()
                    {
                        FileSystemInfo = di, State = CollectorState.NotAvailable, AlertDefinition = alertDef
                    };
                    fileSystemEntries.Add(dis);
                }
            }
            else
            {
                foreach (Linux.DiskInfo di in DiskInfo.FromDfTk(sshClient))
                {
                    LinuxDiskSpaceSubEntry alertDef = (from LinuxDiskSpaceSubEntry d in SubItems
                                                       where d.FileSystemName.ToLower() == di.Name.ToLower()
                                                       select d).FirstOrDefault();

                    if (alertDef != null)
                    {
                        if (!fileSystemEntries.Any(f => f.FileSystemInfo.Name.ToLower() == di.Name.ToLower()))
                        {
                            DiskInfoState dis = new DiskInfoState()
                            {
                                FileSystemInfo = di, State = CollectorState.NotAvailable, AlertDefinition = alertDef
                            };
                            fileSystemEntries.Add(dis);
                        }
                    }
                }
            }
            SSHConnection.CloseConnection();
            return(fileSystemEntries);
        }
コード例 #3
0
 private void lblAutoAdd_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
 {
     try
     {
         if (lvwFileSystems.Items.Count > 0 && (MessageBox.Show("Clear all existing entries?", "Clear", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.No))
         {
             return;
         }
         else
         {
             lvwFileSystems.Items.Clear();
             lvwFileSystems.Items.Add(new ListViewItem("Querying " + sshConnectionDetails.ComputerName + "..."));
             Application.DoEvents();
         }
         Renci.SshNet.SshClient sshClient = QuickMon.Linux.SshClientTools.GetSSHConnection(sshConnectionDetails);
         if (sshClient.IsConnected)
         {
             lvwFileSystems.Items.Clear();
             foreach (Linux.DiskInfo di in QuickMon.Linux.DiskInfo.FromDfTk(sshClient))
             {
                 LinuxDiskSpaceSubEntry dsse = new LinuxDiskSpaceSubEntry()
                 {
                     FileSystemName = di.Name, WarningValue = (double)warningNumericUpDown.Value, ErrorValue = (double)errorNumericUpDown.Value
                 };
                 ListViewItem lvi = new ListViewItem()
                 {
                     Text = dsse.FileSystemName
                 };
                 lvi.SubItems.Add(dsse.WarningValue.ToString());
                 lvi.SubItems.Add(dsse.ErrorValue.ToString());
                 lvi.Tag = dsse;
                 lvwFileSystems.Items.Add(lvi);
             }
         }
         else
         {
             lvwFileSystems.Items.Clear();
             MessageBox.Show("Could not connect to computer!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
     }
 }
コード例 #4
0
 private void lvwFileSystems_SelectedIndexChanged(object sender, EventArgs e)
 {
     if (lvwFileSystems.SelectedItems.Count == 1)
     {
         fileSystemUpdated = true;
         LinuxDiskSpaceSubEntry dsse = (LinuxDiskSpaceSubEntry)lvwFileSystems.SelectedItems[0].Tag;
         warningNumericUpDown.SaveValueSet((decimal)dsse.WarningValue);
         errorNumericUpDown.SaveValueSet((decimal)dsse.ErrorValue);
         txtFileSystem.Text = dsse.FileSystemName;
         fileSystemUpdated  = false;
     }
     else if (lvwFileSystems.SelectedItems.Count == 0)
     {
         fileSystemUpdated  = true;
         txtFileSystem.Text = "";
         fileSystemUpdated  = false;
     }
 }
コード例 #5
0
        private void cmdOK_Click(object sender, EventArgs e)
        {
            LinuxDiskSpaceEntry selectedEntry;

            if (SelectedEntry == null)
            {
                SelectedEntry = new LinuxDiskSpaceEntry();
            }
            selectedEntry = (LinuxDiskSpaceEntry)SelectedEntry;
            selectedEntry.SSHConnection = sshConnectionDetails;
            selectedEntry.SubItems      = new List <ICollectorConfigSubEntry>();

            foreach (ListViewItem lvi in lvwFileSystems.Items)
            {
                LinuxDiskSpaceSubEntry dsse = (LinuxDiskSpaceSubEntry)lvi.Tag;
                selectedEntry.SubItems.Add(dsse);
            }


            DialogResult = System.Windows.Forms.DialogResult.OK;
            Close();
        }
コード例 #6
0
        public void FromXml(string configurationString)
        {
            if (configurationString == null || configurationString.Length == 0)
            {
                return;
            }
            XmlDocument config = new XmlDocument();

            config.LoadXml(configurationString);
            XmlElement root = config.DocumentElement;

            Entries.Clear();
            foreach (XmlElement pcNode in root.SelectNodes("linux/diskSpace"))
            {
                LinuxDiskSpaceEntry entry = new LinuxDiskSpaceEntry();
                entry.SSHConnection = SSHConnectionDetails.FromXmlElement(pcNode);

                //entry.SSHConnection.SSHSecurityOption = SSHSecurityOptionTypeConverter.FromString(pcNode.ReadXmlElementAttr("sshSecOpt", "password"));
                //entry.SSHConnection.ComputerName = pcNode.ReadXmlElementAttr("machine", ".");
                //entry.SSHConnection.SSHPort = pcNode.ReadXmlElementAttr("sshPort", 22);
                //entry.SSHConnection.UserName = pcNode.ReadXmlElementAttr("userName", "");
                //entry.SSHConnection.Password = pcNode.ReadXmlElementAttr("password", "");
                //entry.SSHConnection.PrivateKeyFile = pcNode.ReadXmlElementAttr("privateKeyFile", "");
                //entry.SSHConnection.PassPhrase = pcNode.ReadXmlElementAttr("passPhrase", "");

                entry.SubItems = new List <ICollectorConfigSubEntry>();
                foreach (XmlElement fileSystemNode in pcNode.SelectNodes("fileSystem"))
                {
                    LinuxDiskSpaceSubEntry fse = new LinuxDiskSpaceSubEntry();
                    fse.FileSystemName = fileSystemNode.ReadXmlElementAttr("name", "");
                    fse.WarningValue   = fileSystemNode.ReadXmlElementAttr("warningValue", 10.0d);
                    fse.ErrorValue     = fileSystemNode.ReadXmlElementAttr("errorValue", 5.0d);
                    entry.SubItems.Add(fse);
                }
                Entries.Add(entry);
            }
        }