-
Notifications
You must be signed in to change notification settings - Fork 6
/
send-base.os
132 lines (92 loc) · 7.18 KB
/
send-base.os
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
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
#Использовать "./oscript_modules/logos"
#Использовать "./oscript_modules/advanced-logos"
#Использовать "./src/core/Классы/internal"
#Использовать fs
#Использовать v8runner
#Использовать tempfiles
Перем КлиентRMQ;
Процедура ПодготовитьКлиентаRMQ() Экспорт
КлиентRMQ = Новый КлиентRMQ;
НастройкаRMQ = Новый Структура;
// НастройкаRMQ.Вставить("Сервер", "rmq.1c.can");
// НастройкаRMQ.Вставить("Порт", 80);
// НастройкаRMQ.Вставить("Пользователь", "AutoUpdate");
// НастройкаRMQ.Вставить("Пароль", "123");
// НастройкаRMQ.Вставить("ИмяОчереди", "all.update.buh");
НастройкаRMQ.Вставить("Сервер", "http://localhost");
НастройкаRMQ.Вставить("Порт", 15672);
НастройкаRMQ.Вставить("Пользователь", "guest");
НастройкаRMQ.Вставить("Пароль", "guest");
НастройкаRMQ.Вставить("ИмяОчереди", "all.update");
КлиентRMQ.УстановитьНастройкиПодключения(НастройкаRMQ);
КлиентRMQ.УстановитьВиртуальныйХост("%2F");
КонецПроцедуры
Процедура ОтправитьСообщение(Знач ПутьКФайлу)
ЧтениеТекста = Новый ЧтениеТекста();
ЧтениеТекста.Открыть(ПутьКФайлу, КодировкаТекста.UTF8);
ТекстСообщения = ЧтениеТекста.Прочитать();
ЧтениеТекста.Закрыть();
ОсновныеДанные = ТекстСообщения;
СообщениеRMQ = Новый СообщениеRMQ();
// СообщениеRMQ.КлючМаршрутизации = "all.update.buh";
СообщениеRMQ.КлючМаршрутизации = "all.update";
СообщениеRMQ.ДанныеСообщения = ОсновныеДанные;
СообщениеRMQ.Параметр("Тип", "update");
СообщениеRMQ.Параметр("КлючСообщения", Строка(Новый УникальныйИдентификатор()));
СообщениеRMQ.Параметр("АдресОтвета", "report.update");
// СообщениеRMQ.Параметр("АдресОтвета", "report.update.buh");
СообщениеRMQ.Параметр("КодировкаКонтента", "application/json");
КлиентRMQ.ОтправитьСообщениеRMQ(СообщениеRMQ);
КонецПроцедуры
Функция СоздатьТестовоеОбновление(Знач ИмяБазы)
ПутьКФайлуШаблону = "./tests/fixtures/one-base.yaml";
ПутьКФайлуОбновления = "./tests/fixtures/distr/1.1/1Cv8.cfu";
КаталогФайловойБазы = "./templates/ib/"+ИмяБазы;
ФС.ОбеспечитьПустойКаталог(КаталогФайловойБазы);
УправлениеКонфигуратором = Новый УправлениеКонфигуратором;
УправлениеКонфигуратором.КаталогСборки(ВременныеФайлы.СоздатьКаталог());
УправлениеКонфигуратором.СоздатьФайловуюБазу(КаталогФайловойБазы);
УправлениеКонфигуратором.УстановитьКонтекст(СтрШаблон("/F%1", КаталогФайловойБазы), "", "");
УправлениеКонфигуратором.ЗагрузитьКонфигурациюИзФайла(ОбъединитьПути("tests", "fixtures", "distr", "1.0/1Cv8.cf"), Истина);
ЧтениеТекста = Новый ЧтениеТекста();
ЧтениеТекста.Открыть(ПутьКФайлуШаблону, КодировкаТекста.UTF8);
ТекстYaml = ЧтениеТекста.Прочитать();
ЧтениеТекста.Закрыть();
ТекстYaml = СтрЗаменить(ТекстYaml, "<ТестоваяБаза>", КаталогФайловойБазы);
ЧтениеТекста = Новый ЧтениеТекста();
ЧтениеТекста.Открыть(ПутьКФайлуОбновления + ".md5", КодировкаТекста.UTF8);
ХешСумма = ЧтениеТекста.Прочитать();
ЧтениеТекста.Закрыть();
ЗагрузитьКонфигурацию = Ложь;
ПредупрежденияКакОшибки = Ложь;
ДинамическоеОбновление = Ложь;
ТекстYaml = СтрЗаменить(ТекстYaml, "<ПутьКФайлуОбновления>", ПутьКФайлуОбновления);
ТекстYaml = СтрЗаменить(ТекстYaml, "<ХешСумма>", ХешСумма);
ТекстYaml = СтрЗаменить(ТекстYaml, "<ЗагрузитьКонфигурацию>", XMLСтрока(ЗагрузитьКонфигурацию));
ТекстYaml = СтрЗаменить(ТекстYaml, "<ПредупрежденияКакОшибки>", XMLСтрока(ПредупрежденияКакОшибки));
ТекстYaml = СтрЗаменить(ТекстYaml, "<ДинамическоеОбновление>", XMLСтрока(ДинамическоеОбновление));
Процессор = Новый ПарсерYAML;
Результат = Процессор.ПрочитатьYaml(ТекстYaml);
ПроцессорJSon = Новый ПарсерJSON;
ДанныеСообщения = ПроцессорJSon.ЗаписатьJson(Результат);
ВременныйФайл = ВременныеФайлы.СоздатьФайл(".json");
ЗаписьТекста = Новый ЗаписьТекста(ВременныйФайл);
ЗаписьТекста.Записать(ДанныеСообщения);
ЗаписьТекста.Закрыть();
Возврат ВременныйФайл;
КонецФункции
Лог = Логирование.ПолучитьЛог("oscript.lib.AutoUpdateIB.rmq");
Лог.УстановитьУровень(УровниЛога.Отладка);
ВыводВКонсоль = Новый ЦветнойВыводЛогаКонсоль();
Лог.ДобавитьСпособВывода(ВыводВКонсоль);
ПодготовитьКлиентаRMQ();
// ПутьКФайлу = "./test-base.json";
// ОтправитьСообщение(ПутьКФайлу);
ПутьКФайлу = СоздатьТестовоеОбновление("base1");
ОтправитьСообщение(ПутьКФайлу);
// ПутьКФайлу = СоздатьТестовоеОбновление("base2");
// ОтправитьСообщение(ПутьКФайлу);
// ПутьКФайлу = СоздатьТестовоеОбновление("base3");
// ОтправитьСообщение(ПутьКФайлу);
// ПутьКФайлу = СоздатьТестовоеОбновление("base4");
// ОтправитьСообщение(ПутьКФайлу);