ИШ ставится при подготовке; на шаге «Шлюз НРД» — версия и «Установить заново»; ссылка на НРД вместо писем
- «Подготовка модулей»: ИШ нет на сервере — bj ставит его из дистрибутива на сервере (образ или обновление bj — версия, проверенная ZETIT), ход — в списке. - Шаг «Шлюз НРД»: установлен и работает — версия; не стоит или не работает — одна кнопка «Установить ИШ» / «Установить ИШ заново» (систему переставлять не нужно). «Скачать с сайта НРД» и «Установить из файла» — только в режиме разработки: версию ИШ меняем после своей проверки, вместе с обновлением bj. - Каналы TEST3 и боевого: до установки ИШ — «канал создаётся после установки ИШ», после — «Создать канал». - «Письма в НРД о доступе к контурам» убраны: НРД подключает заявкой на сайте — ссылка на «MOEX МОСТ для M2M», раздел «Как подключиться». Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
This commit is contained in:
@@ -329,6 +329,37 @@ func refreshCertStore(rc *RuntimeConfig) {
|
||||
}
|
||||
|
||||
// igateBundledVersion — версия ИШ, лежащего на сервере с образа (/var/lib/bj/igate-dist; "" — нет).
|
||||
// igateInstallState — ход установки ИШ (файл пишет установщик bj-igate-admin).
|
||||
type igateInstallState struct {
|
||||
Stage, Msg string
|
||||
Busy bool // установка идёт (не done/error и файл обновлялся недавно)
|
||||
}
|
||||
|
||||
// igateInstallStatusPath — файл хода установки; var — для тестов.
|
||||
var igateInstallStatusPath = "/var/lib/bj/igate-install-status.json"
|
||||
|
||||
func igateInstallStatus() igateInstallState {
|
||||
p := igateInstallStatusPath
|
||||
var st igateInstallState
|
||||
b, err := os.ReadFile(p)
|
||||
if err != nil {
|
||||
return st
|
||||
}
|
||||
var raw struct{ Stage, Msg string }
|
||||
if json.Unmarshal(b, &raw) != nil {
|
||||
return st
|
||||
}
|
||||
st.Stage, st.Msg = raw.Stage, raw.Msg
|
||||
if fi, err := os.Stat(p); err == nil && st.Stage != "done" && st.Stage != "error" {
|
||||
// установщик обновляет файл на каждом этапе; молчит 20 минут — установка прервалась
|
||||
st.Busy = time.Since(fi.ModTime()) < 20*time.Minute
|
||||
if !st.Busy {
|
||||
st.Stage, st.Msg = "error", "установка прервалась ("+st.Msg+")"
|
||||
}
|
||||
}
|
||||
return st
|
||||
}
|
||||
|
||||
func igateBundledVersion() string {
|
||||
m, _ := filepath.Glob("/var/lib/bj/igate-dist/igate-*-amd64.zip")
|
||||
best := ""
|
||||
|
||||
Reference in New Issue
Block a user