Exemplo n.º 1
0
 //сбор данных задачи для исполнения команд
 private void LoadConfiguration(RemoteTask task)
 {
     //  Logging("STARTED");
     foreach (Favorite fav in task.Favorites)
     {
         List <string> commands = new List <string>();
         //проходим по списку команд, выявляем соответствие используемой команды и категории избранного
         //в сортированном списке по ордеру
         foreach (Command command in task.Commands.OrderBy(c => c.Order))
         {
             foreach (Category category in command.Categories)
             {
                 if (fav.Category.CategoryName == category.CategoryName)
                 {
                     commands.Add(command.Name);
                 }
             }
         }
         //устанавливаем соединение
         FavoriteConnect connect = new FavoriteConnect();
         connect.commands = commands;
         connect.favorite = fav;
         connect.task     = task;
         try
         {
             Connection(connect);
         }
         catch (Exception ex)
         {
             //записать в логи!!!
             Logging(string.Format("TASK {0} failed!!! Exception: {1}!!!", taskId, ex.Message));
         }
     }
     //************************************************************
     //создаем событие и уведомляем о том, что все задачи выполнены
     taskCompleted();
 }
Exemplo n.º 2
0
        //исполнение команды для устройства
        private void Connection(FavoriteConnect favConnect)
        {          
            RemoteTask task = favConnect.task;
            List<string> commands = favConnect.commands;
            Favorite fav = favConnect.favorite;
            //данные для подключения к сетевому устройству
            ConnectionData data = new ConnectionData();
            data.address = fav.Address;
            data.port = fav.Port;
            data.username = fav.Credential.Username;
            data.password = fav.Credential.Password;
            data.enableMode = fav.Category.EnableModeRequired;           
            data.enablePassword = fav.Credential.EnablePassword;
            data.anonymousLogin = fav.Category.AnonymousLogin;
            //по типу протоколу выбираем требуемое подключение
            string protocol = fav.Protocol.Name;
            Expect.Expect expect;
            switch (protocol)
            {
                case "Telnet": expect = new TelnetMintExpect(data); break;
                case "SSH": expect = new SshExpect(data); break;
                //по умолчанию для сетевых устройств протокол Telnet
                default: expect = new TelnetMintExpect(data); break;
            }

            //если объект expect успешно создан
            if (expect != null)
            {
                //выполняем список команд
                expect.ExecuteCommands(commands);
                //если возвращает пустую строку, то выдает исключение
                string result = expect.GetResult();               
                bool success = expect.isSuccess;
                string error =expect.GetError();
                //если успешно сохраняем конфигурацию устройства
                if (success)
                {
                    Config config = new Config();                   
                    config.Current = result ?? "Empty";//если строка пустая, вернуть Empty
                    config.Date = DateTime.Now;
                    fav.Configs.Add(config);
                    Logging(string.Format("TASK {0} : success connection for {0} {1}", _taskId, fav.Hostname, fav.Address));
                }
                else
                {
                    Logging(string.Format("TASK {0} : failed connection for {0} {1}!!!", _taskId, fav.Hostname, fav.Address));
                }
                //создаем отчет о проделанном задании
                Report report = new Report();
                report.Date = DateTime.Now;
                report.Status = success;
                report.Info = error;
                report.Task = task;
                report.Favorite = fav;
                _context.Reports.Add(report);
                _context.SaveChanges();
            }
        }
Exemplo n.º 3
0
 //сбор данных задачи для исполнения команд
 private void LoadConfiguration(RemoteTask task)
 {
     //  Logging("STARTED");
     foreach (Favorite fav in task.Favorites)
     {
         List<string> commands = new List<string>();
         //проходим по списку команд, выявляем соответствие используемой команды и категории избранного 
         //в сортированном списке по ордеру
         foreach (Command command in task.Commands.OrderBy(c => c.Order))
         {
             foreach (Category category in command.Categories)
             {
                 if (fav.Category.CategoryName == category.CategoryName)
                 {
                     commands.Add(command.Name);
                 }
             }
         }
         //устанавливаем соединение
         FavoriteConnect connect = new FavoriteConnect();
         connect.commands = commands;
         connect.favorite = fav;
         connect.task = task;
         try
         {
             Connection(connect);
         }
         catch (Exception ex)
         {
             //записать в логи!!!
             Logging(string.Format("TASK {0} failed!!! Exception: {1}!!!", _taskId, ex.Message));
         }
     }
     //************************************************************
     //создаем событие и уведомляем о том, что все задачи выполнены
     taskCompleted();
 }   
Exemplo n.º 4
0
        //исполнение команды для устройства
        private void Connection(FavoriteConnect favConnect)
        {
            RemoteTask    task     = favConnect.task;
            List <string> commands = favConnect.commands;
            Favorite      fav      = favConnect.favorite;
            //данные для подключения к сетевому устройству
            ConnectionData data = new ConnectionData();

            data.address        = fav.Address;
            data.port           = fav.Port;
            data.username       = fav.Credential.Username;
            data.password       = fav.Credential.Password;
            data.enableMode     = fav.Category.EnableModeRequired;
            data.enablePassword = fav.Credential.EnablePassword;
            //по типу протоколу выбираем требуемое подключение
            string protocol = fav.Protocol.Name;

            Expect.Expect expect;
            switch (protocol)
            {
            case "Telnet": expect = new TelnetMintExpect(data); break;

            case "SSH": expect = new SshExpect(data); break;

            //по умолчанию для сетевых устройств протокол Telnet
            default: expect = new TelnetMintExpect(data); break;
            }

            //если объект expect успешно создан
            if (expect != null)
            {
                //выполняем список команд
                expect.ExecuteCommands(commands);
                //если возвращает пустую строку, то выдает исключение
                string result  = expect.GetResult();
                bool   success = expect.isSuccess;
                string error   = expect.GetError();
                //если успешно сохраняем конфигурацию устройства
                if (success)
                {
                    Config config = new Config();
                    config.Current = result ?? "Empty";//если строка пустая, вернуть Empty
                    config.Date    = DateTime.Now;
                    fav.Configs.Add(config);
                    Logging(string.Format("TASK {0} : success connection for {0} {1}", taskId, fav.Hostname, fav.Address));
                }
                else
                {
                    Logging(string.Format("TASK {0} : failed connection for {0} {1}!!!", taskId, fav.Hostname, fav.Address));
                }
                //создаем отчет о проделанном задании
                Report report = new Report();
                report.Date     = DateTime.Now;
                report.Status   = success;
                report.Info     = error;
                report.Task     = task;
                report.Favorite = fav;
                context.Reports.Add(report);
                context.SaveChanges();
            }
        }