ИШ обновляется через сервер лицензий вместе с bj; наглядный ход установки ИШ
- Дистрибутив ИШ — компонент выпуска igate-dist (версия = версия ИШ). В выпуск попадает только одобренный архив: deploy/release/igate-approved (версия и sha256), сборка сверяет контрольную сумму. Клиент получает его обновлением; bj-server после обновления (и при запуске) сам обновляет ИШ, если на сервере он старее; итог — событие в «Новостях». Настройки, каналы и база ИШ сохраняются, прежняя версия — в /var/backups. - Установка «с сервера» берёт самый новый проверенный дистрибутив: с образа или из обновления. С сайта НРД — только в режиме разработки. - Большие файлы: одна прежняя копия вместо пяти; предел скачивания — по размеру. - Ход установки ИШ — этапами: пройденные, текущий («идёт 0:41 · обычно до 1:30», дольше обычного — предупреждение), журнал под раскрытием; кнопка на время установки выключена. - Установщик: уникальные этапы; igate-cli и сессия ключницы с принудительным завершением (timeout -k); зависшая установка (ход не менялся 15 минут) снимается повторным запуском; служба установки — не дольше 40 минут. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
This commit is contained in:
@@ -7,7 +7,6 @@ package lkgateway
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"os"
|
||||
"os/exec"
|
||||
@@ -198,13 +197,7 @@ func prepareIgate(ctx context.Context) {
|
||||
return
|
||||
}
|
||||
if st := igateInstallStatus(); !st.Busy {
|
||||
res, err := runKeymediaOp(ctx, "igate-install", map[string]string{"extra": `{"bundled":"1"}`})
|
||||
if err == nil {
|
||||
if ok, _ := res["ok"].(bool); !ok {
|
||||
err = fmt.Errorf("%v", res["error"])
|
||||
}
|
||||
}
|
||||
if err != nil {
|
||||
if err := igateInstallDist(ctx); err != nil {
|
||||
prepareRun.Lock()
|
||||
prepareRun.IgateErr = err.Error()
|
||||
prepareRun.Unlock()
|
||||
@@ -228,7 +221,7 @@ func prepareIgateItem() PrepareItem {
|
||||
prepareRun.Unlock()
|
||||
switch {
|
||||
case st.Busy:
|
||||
it.State, it.Detail = "run", "устанавливается: "+st.Msg+" (2–5 минут)"
|
||||
it.State, it.Detail = "run", "устанавливается: "+st.Msg+" (вся установка — 2–5 минут)"
|
||||
case igateInstalled():
|
||||
it.State, it.Detail = "ok", "установлен"+pickStr(prefixed(", версия ", ishInstalledVersion()), "")
|
||||
case st.Stage == "error":
|
||||
|
||||
Reference in New Issue
Block a user