ИШ: этапы обновления шлюза в окне обновления bj, проверка нового ИШ, свежая версия в строке НРД
- окно обновления bj после перезапуска ведёт обновление ИШ по этапам (загрузка, остановка, резервная копия, установка, запуск, проверка) и закрывается только после проверки; пока шлюз обновляется, то же окно на любой странице - bj-igate-admin: этапы stop/backup/verify; после запуска сверяются версия, служба, движок, каналы и ключ с прежними (иначе автооткат), обмен с НРД - версия ИШ в строке НРД читается всегда заново (кэш 6 ч — только сайт НРД); после установки версии пересобираются сразу Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
This commit is contained in:
@@ -15,22 +15,27 @@ import (
|
||||
)
|
||||
|
||||
type updateProgressState struct {
|
||||
Seq int64 `json:"seq"`
|
||||
Active bool `json:"active"`
|
||||
Finished bool `json:"finished"`
|
||||
Step int `json:"step"`
|
||||
Steps int `json:"steps"`
|
||||
Stage string `json:"stage"`
|
||||
Done int64 `json:"done"`
|
||||
Total int64 `json:"total"`
|
||||
Target string `json:"target,omitempty"` // версия ядра после обновления (если ядро обновляется)
|
||||
Result string `json:"result,omitempty"`
|
||||
Note string `json:"note,omitempty"` // пояснение, которое нужно показать и после перезапуска ядра
|
||||
Err string `json:"error,omitempty"`
|
||||
Started time.Time `json:"started"`
|
||||
Version string `json:"version"` // версия работающего bj-server
|
||||
Seq int64 `json:"seq"`
|
||||
Active bool `json:"active"`
|
||||
Finished bool `json:"finished"`
|
||||
Step int `json:"step"`
|
||||
Steps int `json:"steps"`
|
||||
Stage string `json:"stage"`
|
||||
Done int64 `json:"done"`
|
||||
Total int64 `json:"total"`
|
||||
Target string `json:"target,omitempty"` // версия ядра после обновления (если ядро обновляется)
|
||||
Result string `json:"result,omitempty"`
|
||||
Note string `json:"note,omitempty"` // пояснение, которое нужно показать и после перезапуска ядра
|
||||
Err string `json:"error,omitempty"`
|
||||
Started time.Time `json:"started"`
|
||||
Version string `json:"version"` // версия работающего bj-server
|
||||
IgateTo string `json:"igate_to,omitempty"` // bj сам обновит ИШ до этой версии (ещё не обновил)
|
||||
Igate map[string]any `json:"igate,omitempty"` // ход установки ИШ (как /admin/setup/igate/install-status)
|
||||
Up int `json:"up"` // секунд с запуска bj-server
|
||||
}
|
||||
|
||||
var procStarted = time.Now()
|
||||
|
||||
var updProg = struct {
|
||||
sync.Mutex
|
||||
s updateProgressState
|
||||
@@ -110,6 +115,7 @@ func (h *setupHandlers) updateProgress(w http.ResponseWriter, r *http.Request) {
|
||||
s := updProg.s
|
||||
updProg.Unlock()
|
||||
s.Version = BuildVersion
|
||||
s.IgateTo, s.Igate, s.Up = igatePendingUpgrade(), igateInstallStatusJSON(h.rc), int(time.Since(procStarted).Seconds())
|
||||
w.Header().Set("Content-Type", "application/json")
|
||||
w.Header().Set("Cache-Control", "no-store")
|
||||
_ = json.NewEncoder(w).Encode(s)
|
||||
|
||||
Reference in New Issue
Block a user