Skip to content

Commit dc395e5

Browse files
committed
Шаг 7. Командный интерфейс
1 parent 8cb3424 commit dc395e5

5 files changed

Lines changed: 135 additions & 41 deletions

File tree

main.os

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,26 @@
1+
#Использовать cli
12
#Использовать logos
23
#Использовать "."
34

45
Перем Лог;
56

67
Процедура ВыполнитьПриложение()
7-
8+
89
Лог = Мониторинг.Лог();
10+
11+
Приложение = Новый КонсольноеПриложение(ПараметрыПриложения.ИмяПриложения(), "Мониторинг ресурсов сервера");
12+
Приложение.Версия("v version", ПараметрыПриложения.Версия());
13+
14+
Приложение.ДобавитьКоманду("disk", "Проверка дисков", Новый КомандаПроверкаДисков);
915

10-
Конфигурация = Новый Конфигурация();
11-
Конфигурация.Инициализировать();
16+
Приложение.УстановитьОсновноеДействие(ЭтотОбъект);
17+
Приложение.Запустить(АргументыКоманднойСтроки);
18+
19+
КонецПроцедуры
20+
21+
Процедура ВыполнитьКоманду(Знач КомандаПриложения) Экспорт
1222

13-
Монитор = Новый Монитор(Конфигурация);
14-
Монитор.ЗапуститьМониторинг();
15-
Монитор.ОтправитьУведомления();
23+
Мониторинг.ВыполнитьПроверки();
1624

1725
КонецПроцедуры
1826

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
Процедура ВыполнитьКоманду(Знач Команда) Экспорт
2+
3+
Лог = Мониторинг.Лог();
4+
Лог.Отладка("Проверка дисков через команду disk" );
5+
6+
Мониторинг.ВыполнитьПроверки("ПроверкаДисков");
7+
8+
КонецПроцедуры

src/Классы/Монитор.os

Lines changed: 93 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,63 +1,50 @@
11
#Использовать logos
22

33
Перем _Конфигурация;
4+
Перем _ВыбраннаяПроверка;
5+
46
Перем Лог;
57

68
Процедура ПриСозданииОбъекта(Конфигурация)
7-
9+
810
_Конфигурация = Конфигурация;
9-
11+
1012
Лог = Мониторинг.Лог();
11-
13+
1214
КонецПроцедуры
1315

14-
Процедура ЗапуститьМониторинг() Экспорт
15-
16-
ЗагруженныеПроверки = _Конфигурация.Проверки();
17-
ДоступныеПроверки = Мониторинг.ДоступныеПроверки();
18-
19-
Для Каждого Проверка Из ЗагруженныеПроверки Цикл
20-
21-
ИмяПроверки = Проверка.Ключ;
22-
ПараметрыПроверки = Проверка.Значение;
23-
24-
Менеджер = ДоступныеПроверки.Получить(ИмяПроверки);
25-
Если Менеджер = Неопределено Тогда
26-
Лог.Отладка("Не найден менеджер для проверки: " + ИмяПроверки);
27-
Продолжить;
28-
КонецЕсли;
29-
30-
Если Не ПараметрыПроверки["Использовать"] Тогда
31-
Лог.Отладка("Отключена проверка: " + ИмяПроверки);
32-
Продолжить;
33-
КонецЕсли;
34-
35-
Менеджер.ВыполнитьПроверку(ПараметрыПроверки);
36-
37-
КонецЦикла;
16+
#Область ПрограммныйИнтерфейс
3817

18+
Процедура ЗапуститьМониторинг() Экспорт
19+
20+
Если ЗначениеЗаполнено(_ВыбраннаяПроверка) Тогда
21+
ВыполнитьВыбраннуюПроверку(_ВыбраннаяПроверка);
22+
Иначе
23+
ВыполнитьВсеПроверки();
24+
КонецЕсли;
25+
3926
Лог.Закрыть();
40-
27+
4128
КонецПроцедуры
4229

4330
Процедура ОтправитьУведомления() Экспорт
4431

4532
ФайлЛога = _Конфигурация.ФайлЛога();
46-
33+
4734
ЛогУведомления = Уведомления.Лог();
4835
ОшибкиМониторинга = Мониторинг.ОшибкиМониторинга(ФайлЛога);
4936

50-
Если Не ЗначениеЗаполнено(ОшибкиМониторинга) Тогда
37+
Если НЕ ЗначениеЗаполнено(ОшибкиМониторинга) Тогда
5138
ЛогУведомления.Отладка("Нет ошибок для отправки уведомлений");
5239
Возврат;
5340
КонецЕсли;
54-
41+
5542
СистемнаяИнформация = Новый СистемнаяИнформация;
5643
ИмяКомпьютера = СистемнаяИнформация.ИмяКомпьютера;
57-
44+
5845
ПараметрыУведомления = Уведомления.ПараметрыУведомления();
59-
ПараметрыУведомления["Тема"] = "Результат мониторинга сервера " + ИмяКомпьютера;
60-
ПараметрыУведомления["Текст"] = Мониторинг.ТекстУведомления(ОшибкиМониторинга);
46+
ПараметрыУведомления["Тема"] = "Результат мониторинга сервера " + ИмяКомпьютера;
47+
ПараметрыУведомления["Текст"] = Мониторинг.ТекстУведомления(ОшибкиМониторинга);
6148
ПараметрыУведомления["Вложение"] = ФайлЛога;
6249

6350
НастройкиУведомлений = _Конфигурация.НастройкиУведомлений();
@@ -75,4 +62,75 @@
7562

7663
КонецЦикла;
7764

78-
КонецПроцедуры
65+
КонецПроцедуры
66+
67+
Процедура УстановитьПроверку(ВыбраннаяПроверка) Экспорт
68+
69+
_ВыбраннаяПроверка = ВыбраннаяПроверка;
70+
71+
Лог.Отладка("Установлена проверка: " + ВыбраннаяПроверка);
72+
73+
КонецПроцедуры
74+
75+
Процедура СброситьПроверку() Экспорт
76+
77+
_ВыбраннаяПроверка = Неопределено;
78+
79+
Лог.Отладка("Выбранная проверка сброшена");
80+
81+
КонецПроцедуры
82+
83+
#КонецОбласти
84+
85+
#Область СлужебныеПроцедурыИФункции
86+
87+
Процедура ВыполнитьВыбраннуюПроверку(ИмяПроверки)
88+
89+
ЗагруженныеПроверки = _Конфигурация.Проверки();
90+
ПараметрыПроверки = ЗагруженныеПроверки[_ВыбраннаяПроверка];
91+
92+
Если ПараметрыПроверки = Неопределено Тогда
93+
Лог.Ошибка("Нет настроек для проверки: " + ИмяПроверки);
94+
Возврат;
95+
КонецЕсли;
96+
97+
ДоступныеПроверки = Мониторинг.ДоступныеПроверки();
98+
99+
Менеджер = ДоступныеПроверки.Получить(_ВыбраннаяПроверка);
100+
Если Менеджер = Неопределено Тогда
101+
Лог.Отладка("Не найден менеджер для проверки: " + ИмяПроверки);
102+
Возврат;
103+
КонецЕсли;
104+
105+
Менеджер.ВыполнитьПроверку(ПараметрыПроверки);
106+
107+
КонецПроцедуры
108+
109+
Процедура ВыполнитьВсеПроверки()
110+
111+
ЗагруженныеПроверки = _Конфигурация.Проверки();
112+
ДоступныеПроверки = Мониторинг.ДоступныеПроверки();
113+
114+
Для Каждого Проверка Из ЗагруженныеПроверки Цикл
115+
116+
ИмяПроверки = Проверка.Ключ;
117+
ПараметрыПроверки = Проверка.Значение;
118+
119+
Менеджер = ДоступныеПроверки.Получить(ИмяПроверки);
120+
Если Менеджер = Неопределено Тогда
121+
Лог.Отладка("Не найден менеджер для проверки: " + ИмяПроверки);
122+
Продолжить;
123+
КонецЕсли;
124+
125+
Если Не ПараметрыПроверки["Использовать"] Тогда
126+
Лог.Отладка("Отключена проверка: " + ИмяПроверки);
127+
Продолжить;
128+
КонецЕсли;
129+
130+
Менеджер.ВыполнитьПроверку(ПараметрыПроверки);
131+
132+
КонецЦикла;
133+
134+
КонецПроцедуры
135+
136+
#КонецОбласти

src/Модули/Мониторинг.os

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,22 @@
66

77
#Область Проверки
88

9+
Процедура ВыполнитьПроверки(ВыбраннаяПроверка = "") Экспорт
10+
11+
Конфигурация = Новый Конфигурация();
12+
Конфигурация.Инициализировать();
13+
14+
Монитор = Новый Монитор(Конфигурация);
15+
16+
Если ЗначениеЗаполнено(ВыбраннаяПроверка) Тогда
17+
Монитор.УстановитьПроверку(ВыбраннаяПроверка);
18+
КонецЕсли;
19+
20+
Монитор.ЗапуститьМониторинг();
21+
Монитор.ОтправитьУведомления();
22+
23+
КонецПроцедуры
24+
925
Функция ДоступныеПроверки() Экспорт
1026

1127
Проверки = Новый Соответствие();

src/Модули/ПараметрыПриложения.os

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22
Возврат "monitor";
33
КонецФункции
44

5+
Функция Версия() Экспорт
6+
Возврат "1.0.0";
7+
КонецФункции
8+
59
Функция ИмяФайлаКонфигурации() Экспорт
610
Возврат "config.json";
711
КонецФункции

0 commit comments

Comments
 (0)