fix: resolve node auto-upgrade failure (#12875)

This commit is contained in:
ssongliu
2026-05-27 16:49:24 +08:00
committed by GitHub
parent d0e3914a29
commit b1c028b786
11 changed files with 57 additions and 2 deletions
+27 -2
View File
@@ -16,7 +16,6 @@ import (
"github.com/1Panel-dev/1Panel/core/utils/cmd"
"github.com/1Panel-dev/1Panel/core/utils/common"
"github.com/1Panel-dev/1Panel/core/utils/encrypt"
"github.com/1Panel-dev/1Panel/core/utils/xpack"
"github.com/spf13/cobra"
"golang.org/x/term"
"gopkg.in/yaml.v3"
@@ -92,6 +91,13 @@ type serverConfig struct {
} `yaml:"base"`
}
type Node struct {
Name string `gorm:"column:name"`
Addr string `gorm:"column:addr"`
IsAutoUpgrade bool `gorm:"column:is_auto_upgrade"`
Status string `gorm:"column:status"`
}
func isEnterprise() bool {
var config serverConfig
if err := yaml.Unmarshal(conf.AppYaml, &config); err != nil {
@@ -158,7 +164,26 @@ var updateVersion = &cobra.Command{
fmt.Println(i18n.GetMsgWithMapForCmd("UpdateUserErr", map[string]interface{}{"err": err.Error()}))
return err
}
xpack.MultiNodeProvider.AutoUpgradeWithMaster()
xpackDB, err := loadDBConn("xpack.db")
if err != nil {
return nil
}
var nodes []Node
if err := xpackDB.Where("is_auto_upgrade = ? AND name != ?", true, "local").Find(&nodes).Error; err != nil {
fmt.Println(i18n.GetMsgWithMapForCmd("LoadAutoUpgradeNodesFailed", map[string]interface{}{"err": err.Error()}))
}
var nodeNames []string
for _, item := range nodes {
nodeNames = append(nodeNames, fmt.Sprintf("%s-%s", item.Name, item.Addr))
}
fmt.Println(i18n.GetMsgWithMapForCmd("AutoUpgradeNodes", map[string]interface{}{"nodes": strings.Join(nodeNames, ", ")}))
if err := xpackDB.Model(&Node{}).
Where("is_auto_upgrade = ? AND name != ?", true, "local").
Updates(map[string]interface{}{"status": constant.StatusWaitForUpgrade}).
Error; err != nil {
fmt.Println(i18n.GetMsgWithMapForCmd("UpdateAutoUpgradeNodesStatusFailed", map[string]interface{}{"err": err.Error()}))
}
return nil
},
}
+3
View File
@@ -180,6 +180,9 @@ NewSSHClient: "Initializing SSH connection"
BackupBeforeUpgrade: "Backup data before upgrade"
UploadUpgradeFile: "Distribute upgrade files"
RestartAfterUpgrade: "Start service after upgrade"
LoadAutoUpgradeNodesFailed: "Load auto upgrade nodes failed, err: {{ .err }}"
AutoUpgradeNodes: "Auto upgrade nodes: {{ .nodes }}"
UpdateAutoUpgradeNodesStatusFailed: "Update status of auto upgrade nodes failed, err: {{ .err }}"
#add node
MasterData: "Master Node Data"
+3
View File
@@ -174,6 +174,9 @@ NewSSHClient: "Inicializando conexión SSH"
BackupBeforeUpgrade: "Respaldar datos antes de actualizar"
UploadUpgradeFile: "Distribuir archivos de actualización"
RestartAfterUpgrade: "Iniciar servicio después de actualizar"
LoadAutoUpgradeNodesFailed: "Error al cargar nodos de actualización automática, error: {{ .err }}"
AutoUpgradeNodes: "Nodos de actualización automática: {{ .nodes }}"
UpdateAutoUpgradeNodesStatusFailed: "Error al actualizar el estado de los nodos de actualización automática, error: {{ .err }}"
#add node
MasterData: "Datos del nodo principal"
+3
View File
@@ -174,6 +174,9 @@ NewSSHClient: "SSH接続の初期化"
BackupBeforeUpgrade: "アップグレード前にデータをバックアップ"
UploadUpgradeFile: "アップグレードに必要なファイルを配布"
RestartAfterUpgrade: "アップグレード後にサービスを起動"
LoadAutoUpgradeNodesFailed: "自動アップグレードノードの読み込みに失敗しました、エラー: {{ .err }}"
AutoUpgradeNodes: "自動アップグレードノード: {{ .nodes }}"
UpdateAutoUpgradeNodesStatusFailed: "自動アップグレードノードのステータス更新に失敗しました、エラー: {{ .err }}"
#add node
MasterData: "マスターノードデータ"
+3
View File
@@ -173,6 +173,9 @@ NewSSHClient: "SSH 연결 초기화"
BackupBeforeUpgrade: "업그레이드 전 데이터 백업"
UploadUpgradeFile: "업그레이드에 필요한 파일 전송"
RestartAfterUpgrade: "업그레이드 후 서비스 시작"
LoadAutoUpgradeNodesFailed: "자동 업그레이드 노드 로드 실패, 오류: {{ .err }}"
AutoUpgradeNodes: "자동 업그레이드 노드: {{ .nodes }}"
UpdateAutoUpgradeNodesStatusFailed: "자동 업그레이드 노드 상태 업데이트 실패, 오류: {{ .err }}"
#add node
MasterData: "마스터 노드 데이터"
+3
View File
@@ -168,6 +168,9 @@ NewSSHClient: "Memulakan sambungan SSH"
BackupBeforeUpgrade: "Menyandarkan data sebelum naik taraf"
UploadUpgradeFile: "Sebarkan fail naik taraf"
RestartAfterUpgrade: "Mulakan perkhidmatan selepas naik taraf"
LoadAutoUpgradeNodesFailed: "Gagal memuatkan nod naik taraf automatik, ralat: {{ .err }}"
AutoUpgradeNodes: "Nod naik taraf automatik: {{ .nodes }}"
UpdateAutoUpgradeNodesStatusFailed: "Gagal mengemas kini status nod naik taraf automatik, ralat: {{ .err }}"
#add node
MasterData: "Data Nod Master"
+3
View File
@@ -173,6 +173,9 @@ NewSSHClient: "Inicializando a conexão SSH"
BackupBeforeUpgrade: "Fazer backup dos dados antes da atualização"
UploadUpgradeFile: "Distribuir arquivos necessários para a atualização"
RestartAfterUpgrade: "Iniciar serviço após a atualização"
LoadAutoUpgradeNodesFailed: "Falha ao carregar nós de atualização automática, erro: {{ .err }}"
AutoUpgradeNodes: "Nós de atualização automática: {{ .nodes }}"
UpdateAutoUpgradeNodesStatusFailed: "Falha ao atualizar o status dos nós de atualização automática, erro: {{ .err }}"
#add node
MasterData: "Dados do Nó Mestre"
+3
View File
@@ -172,6 +172,9 @@ NewSSHClient: "Инициализация SSH-соединения"
BackupBeforeUpgrade: "Резервное копирование данных перед обновлением"
UploadUpgradeFile: "Распределение файлов обновления"
RestartAfterUpgrade: "Запуск службы после обновления"
LoadAutoUpgradeNodesFailed: "Не удалось загрузить узлы автообновления, ошибка: {{ .err }}"
AutoUpgradeNodes: "Узлы автообновления: {{ .nodes }}"
UpdateAutoUpgradeNodesStatusFailed: "Не удалось обновить статус узлов автообновления, ошибка: {{ .err }}"
#add node
MasterData: "Данные главного узла"
+3
View File
@@ -172,6 +172,9 @@ NewSSHClient: "SSH bağlantısı başlatılıyor"
BackupBeforeUpgrade: "Yükseltme öncesi veri yedekleme"
UploadUpgradeFile: "Yükseltme dosyalarını dağıt"
RestartAfterUpgrade: "Yükseltme sonrası servisi başlat"
LoadAutoUpgradeNodesFailed: "Otomatik yükseltme düğümleri yüklenemedi, hata: {{ .err }}"
AutoUpgradeNodes: "Otomatik yükseltme düğümleri: {{ .nodes }}"
UpdateAutoUpgradeNodesStatusFailed: "Otomatik yükseltme düğümlerinin durumu güncellenemedi, hata: {{ .err }}"
#add node
MasterData: "Ana Düğüm Verisi"
+3
View File
@@ -175,6 +175,9 @@ NewSSHClient: "初始化 SSH 連接"
BackupBeforeUpgrade: "升級前備份資料"
UploadUpgradeFile: "發送升級所需檔案"
RestartAfterUpgrade: "升級後啟動服務"
LoadAutoUpgradeNodesFailed: "載入自動升級節點失敗,錯誤: {{ .err }}"
AutoUpgradeNodes: "自動升級節點: {{ .nodes }}"
UpdateAutoUpgradeNodesStatusFailed: "更新自動升級節點狀態失敗,錯誤: {{ .err }}"
#add node
MasterData: "主節點資料"
+3
View File
@@ -182,6 +182,9 @@ NewSSHClient: "初始化 SSH 连接"
BackupBeforeUpgrade: "升级前备份数据"
UploadUpgradeFile: "下发升级所需文件"
RestartAfterUpgrade: "升级后启动服务"
LoadAutoUpgradeNodesFailed: "加载自动升级节点失败,错误: {{ .err }}"
AutoUpgradeNodes: "自动升级节点: {{ .nodes }}"
UpdateAutoUpgradeNodesStatusFailed: "更新自动升级节点状态失败,错误: {{ .err }}"
#add node
MasterData: "主节点数据"