Оповещения: группа «Администратор системы», блок «Кому писать» открыт; копии: адрес хранилища как в проводнике
Администратору (адрес из «Почты») — сбои (ИШ, связь с НРД, службы bj, DEPO) и обновления (новый выпуск bj, ИШ, лицензия, сертификаты); отделам — переводы и поручения. Существующие установки: администратор получает всё, что получал. Новые оповещения: «Доступно обновление bj» (раз на выпуск), «Служба … не работает / снова работает» (модули и служба ключей Валидаты). Резервные копии: \\сервер\папка или сервер + общая папка по полям → //сервер/папка; понятная причина отказа доступа. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
This commit is contained in:
@@ -574,6 +574,7 @@ func (u *Updater) updateLoop(ctx context.Context) {
|
||||
defer cancel()
|
||||
if st, err := u.CheckForUpdate(cctx); err == nil && st.HasUpdate {
|
||||
log.Printf("lk-gateway: %s", st.Message)
|
||||
u.notifyUpdate(st)
|
||||
}
|
||||
}
|
||||
// первая проверка через минуту после старта
|
||||
@@ -596,6 +597,24 @@ func (u *Updater) updateLoop(ctx context.Context) {
|
||||
}
|
||||
}
|
||||
|
||||
// notifyUpdate — администратору системы: вышел выпуск, который на этом сервере ещё не установлен (по разу на выпуск).
|
||||
func (u *Updater) notifyUpdate(st UpdateStatus) {
|
||||
cfg := u.rc.Snapshot().Update
|
||||
if st.Available == "" || cfg.Notified == st.Available {
|
||||
return
|
||||
}
|
||||
cfg.Notified = st.Available
|
||||
if err := u.rc.SaveUpdateSettings(cfg); err != nil {
|
||||
return
|
||||
}
|
||||
body := "Вышел выпуск bj " + st.Available + ", на этом сервере он ещё не установлен: " + strings.TrimPrefix(st.Message, "доступны обновления: ") +
|
||||
". Установить — Настройка → Обновления, кнопка «Обновить»; обмен на время установки прерывается на минуту-две."
|
||||
if n := strings.TrimSpace(st.Notes); n != "" {
|
||||
body += "\n\nЧто нового:\n" + n
|
||||
}
|
||||
raiseSystemAlert(u.rc, "Доступно обновление bj "+st.Available, body)
|
||||
}
|
||||
|
||||
// ApplyBundle — обновление из файла для закрытого контура: пакет с портала клиента
|
||||
// (подписанный манифест + файлы компонентов). Что ставить, решает тот же план, что и при
|
||||
// обновлении по сети: всё, что новее установленного, в порядке компонентов — ядро первым,
|
||||
|
||||
Reference in New Issue
Block a user