fix: Fix the exception of some 1pctl commands (#8268)

This commit is contained in:
ssongliu 2025-03-27 22:49:37 +08:00 committed by GitHub
parent 1908a59174
commit 79c8349747
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
25 changed files with 70 additions and 35 deletions

View file

@ -177,11 +177,14 @@ func (u *BackupRecordService) ListAppRecords(name, detailName, fileName string)
func (u *BackupRecordService) ListFiles(req dto.OperateByID) []string { func (u *BackupRecordService) ListFiles(req dto.OperateByID) []string {
var datas []string var datas []string
_, client, err := NewBackupClientWithID(req.ID) backupItem, client, err := NewBackupClientWithID(req.ID)
if err != nil { if err != nil {
return datas return datas
} }
prefix := "system_snapshot" prefix := "system_snapshot"
if len(backupItem.BackupPath) != 0 {
prefix = path.Join(backupItem.BackupPath, prefix)
}
files, err := client.ListObjects(prefix) files, err := client.ListObjects(prefix)
if err != nil { if err != nil {
global.LOG.Debugf("load files failed, err: %v", err) global.LOG.Debugf("load files failed, err: %v", err)

View file

@ -31,7 +31,7 @@ func (o upClient) ListBuckets() ([]interface{}, error) {
func (s upClient) Upload(src, target string) (bool, error) { func (s upClient) Upload(src, target string) (bool, error) {
if _, err := s.client.GetInfo(path.Dir(src)); err != nil { if _, err := s.client.GetInfo(path.Dir(src)); err != nil {
_ = s.client.Mkdir(path.Dir(src)) _ = s.client.Mkdir(path.Dir(target))
} }
if err := s.client.Put(&upyun.PutObjectConfig{ if err := s.client.Put(&upyun.PutObjectConfig{
Path: target, Path: target,

View file

@ -130,7 +130,7 @@ func (u *UpgradeService) Upgrade(req dto.Upgrade) error {
_ = settingRepo.Update("SystemStatus", "Free") _ = settingRepo.Update("SystemStatus", "Free")
return return
} }
itemLog := model.UpgradeLog{NodeID: 0, OldVersion: global.CONF.Base.Version, NewVersion: req.Version, BackupFile: originalDir} itemLog := model.UpgradeLog{NodeID: 0, OldVersion: global.CONF.Base.Version, NewVersion: req.Version, BackupFile: baseDir}
_ = upgradeLogRepo.Create(&itemLog) _ = upgradeLogRepo.Create(&itemLog)
global.LOG.Info("backup original data successful, now start to upgrade!") global.LOG.Info("backup original data successful, now start to upgrade!")

View file

@ -3,6 +3,7 @@ package cmd
import ( import (
"fmt" "fmt"
"github.com/1Panel-dev/1Panel/core/constant"
"github.com/1Panel-dev/1Panel/core/i18n" "github.com/1Panel-dev/1Panel/core/i18n"
"github.com/spf13/cobra" "github.com/spf13/cobra"
) )
@ -51,11 +52,11 @@ func updateBindInfo(protocol string) error {
if err != nil { if err != nil {
return err return err
} }
ipv6 := "disable" ipv6 := constant.StatusDisable
tcp := "tcp4" tcp := "tcp4"
address := "0.0.0.0" address := "0.0.0.0"
if protocol == "ipv6" { if protocol == "ipv6" {
ipv6 = "enable" ipv6 = constant.StatusEnable
tcp = "tcp6" tcp = "tcp6"
address = "::" address = "::"
} }

View file

@ -3,6 +3,7 @@ package cmd
import ( import (
"fmt" "fmt"
"github.com/1Panel-dev/1Panel/core/constant"
"github.com/1Panel-dev/1Panel/core/i18n" "github.com/1Panel-dev/1Panel/core/i18n"
"github.com/spf13/cobra" "github.com/spf13/cobra"
) )
@ -43,7 +44,7 @@ var resetMFACmd = &cobra.Command{
return err return err
} }
return setSettingByKey(db, "MFAStatus", "disable") return setSettingByKey(db, "MFAStatus", constant.StatusDisable)
}, },
} }
var resetSSLCmd = &cobra.Command{ var resetSSLCmd = &cobra.Command{
@ -59,7 +60,7 @@ var resetSSLCmd = &cobra.Command{
return err return err
} }
return setSettingByKey(db, "SSL", "disable") return setSettingByKey(db, "SSL", constant.StatusDisable)
}, },
} }
var resetEntranceCmd = &cobra.Command{ var resetEntranceCmd = &cobra.Command{

View file

@ -73,7 +73,7 @@ var restoreCmd = &cobra.Command{
} }
fmt.Println(i18n.GetMsgByKeyForCmd("RestoreStep4")) fmt.Println(i18n.GetMsgByKeyForCmd("RestoreStep4"))
if _, err := os.Stat(path.Join(tmpPath, "db")); err == nil { if _, err := os.Stat(path.Join(tmpPath, "db")); err == nil {
dbPath := path.Join(baseDir, "1panel/db") dbPath := path.Join(baseDir, "1panel")
if err := files.CopyItem(true, true, path.Join(tmpPath, "db"), dbPath); err != nil { if err := files.CopyItem(true, true, path.Join(tmpPath, "db"), dbPath); err != nil {
global.LOG.Errorf("rollback 1panel db failed, err: %v", err) global.LOG.Errorf("rollback 1panel db failed, err: %v", err)
} }

View file

@ -9,6 +9,7 @@ import (
"strings" "strings"
"unicode" "unicode"
"github.com/1Panel-dev/1Panel/core/constant"
"github.com/1Panel-dev/1Panel/core/global" "github.com/1Panel-dev/1Panel/core/global"
"github.com/1Panel-dev/1Panel/core/i18n" "github.com/1Panel-dev/1Panel/core/i18n"
"github.com/1Panel-dev/1Panel/core/utils/cmd" "github.com/1Panel-dev/1Panel/core/utils/cmd"
@ -136,7 +137,7 @@ func password() {
return return
} }
complexSetting := getSettingByKey(db, "ComplexityVerification") complexSetting := getSettingByKey(db, "ComplexityVerification")
if complexSetting == "enable" { if complexSetting == constant.StatusEnable {
if isValidPassword("newPassword") { if isValidPassword("newPassword") {
fmt.Println("\n" + i18n.GetMsgByKeyForCmd("UpdatePasswordFormat")) fmt.Println("\n" + i18n.GetMsgByKeyForCmd("UpdatePasswordFormat"))
return return

View file

@ -3,6 +3,7 @@ package cmd
import ( import (
"fmt" "fmt"
"github.com/1Panel-dev/1Panel/core/constant"
"github.com/1Panel-dev/1Panel/core/global" "github.com/1Panel-dev/1Panel/core/global"
"github.com/1Panel-dev/1Panel/core/i18n" "github.com/1Panel-dev/1Panel/core/i18n"
"github.com/1Panel-dev/1Panel/core/utils/encrypt" "github.com/1Panel-dev/1Panel/core/utils/encrypt"
@ -41,7 +42,7 @@ var userinfoCmd = &cobra.Command{
address := getSettingByKey(db, "SystemIP") address := getSettingByKey(db, "SystemIP")
protocol := "http" protocol := "http"
if ssl == "enable" { if ssl == constant.StatusEnable {
protocol = "https" protocol = "https"
} }
if address == "" { if address == "" {

View file

@ -62,6 +62,7 @@ ErrNodeBoundLimit: "The current free node has reached its limit, please check an
ErrNoSuchNode: "Node information not found, please check and retry!" ErrNoSuchNode: "Node information not found, please check and retry!"
ErrNodeUnbind: "This node is not within the license binding range, please check and retry!" ErrNodeUnbind: "This node is not within the license binding range, please check and retry!"
ErrNodeBind: "This node is already bound to a license, please check and retry!" ErrNodeBind: "This node is already bound to a license, please check and retry!"
ErrNodeLocalRollback: "The primary node does not support direct rollback. Please manually execute the '1pctl restore' command to rollback!"
# alert # alert
ErrAlertSync: "Alert information sync error, please check and retry!" ErrAlertSync: "Alert information sync error, please check and retry!"

View file

@ -63,6 +63,7 @@ ErrNodeBoundLimit: "現在の無料ノードは上限に達しました。確認
ErrNoSuchNode: "そのノード情報が見つかりませんでした、確認して再試行してください!" ErrNoSuchNode: "そのノード情報が見つかりませんでした、確認して再試行してください!"
ErrNodeUnbind: "そのノードはライセンスのバインド範囲内ではありません、確認して再試行してください!" ErrNodeUnbind: "そのノードはライセンスのバインド範囲内ではありません、確認して再試行してください!"
ErrNodeBind: "そのノードはライセンスにバインドされています、確認して再試行してください!" ErrNodeBind: "そのノードはライセンスにバインドされています、確認して再試行してください!"
ErrNodeLocalRollback: "マスターードは直接ロールバックをサポートしていません。手動で「1pctl restore」コマンドを実行してロールバックしてください"
# alert # alert
ErrAlertSync: "アラート情報の同期エラーです。後で再試行してください!" ErrAlertSync: "アラート情報の同期エラーです。後で再試行してください!"

View file

@ -62,6 +62,7 @@ ErrNodeBoundLimit: "현재 무료 노드가 한도에 도달했습니다. 확인
ErrNoSuchNode: "노드 정보를 찾을 수 없습니다. 다시 확인하고 시도해 주세요!" ErrNoSuchNode: "노드 정보를 찾을 수 없습니다. 다시 확인하고 시도해 주세요!"
ErrNodeUnbind: "이 노드가 라이선스 바인딩 범위에 있지 않음을 감지하였습니다. 다시 확인하고 시도해 주세요!" ErrNodeUnbind: "이 노드가 라이선스 바인딩 범위에 있지 않음을 감지하였습니다. 다시 확인하고 시도해 주세요!"
ErrNodeBind: "이 노드가 이미 라이선스에 바인딩되어 있음을 감지하였습니다. 다시 확인하고 시도해 주세요!" ErrNodeBind: "이 노드가 이미 라이선스에 바인딩되어 있음을 감지하였습니다. 다시 확인하고 시도해 주세요!"
ErrNodeLocalRollback: "마스터 노드는 직접 롤백을 지원하지 않습니다. 수동으로 '1pctl restore' 명령어를 실행하여 롤백하세요!"
# alert # alert
ErrAlertSync: "경고 정보 동기화 오류, 다시 확인하고 시도해 주세요!" ErrAlertSync: "경고 정보 동기화 오류, 다시 확인하고 시도해 주세요!"

View file

@ -62,6 +62,7 @@ ErrNodeBoundLimit: "Nod percuma semasa telah mencapai had, sila semak dan cuba l
ErrNoSuchNode: "Maklumat nod tidak ditemui, sila semak dan cuba lagi!" ErrNoSuchNode: "Maklumat nod tidak ditemui, sila semak dan cuba lagi!"
ErrNodeUnbind: "Nod di luar skop lesen dikesan, sila semak dan cuba lagi!" ErrNodeUnbind: "Nod di luar skop lesen dikesan, sila semak dan cuba lagi!"
ErrNodeBind: "Nod ini telah diikat dengan lesen, sila semak dan cuba lagi!" ErrNodeBind: "Nod ini telah diikat dengan lesen, sila semak dan cuba lagi!"
ErrNodeLocalRollback: "Nod utama tidak menyokong rollback secara langsung. Sila laksanakan arahan '1pctl restore' secara manual untuk rollback!"
# alert # alert
ErrAlertSync: "Ralat penyinkronan maklumat amaran, sila semak dan cuba lagi!" ErrAlertSync: "Ralat penyinkronan maklumat amaran, sila semak dan cuba lagi!"

View file

@ -62,6 +62,7 @@ ErrNodeBoundLimit: "O nó gratuito atual atingiu seu limite, por favor verifique
ErrNoSuchNode: "As informações deste nó não foram encontradas, por favor verifique e tente novamente!" ErrNoSuchNode: "As informações deste nó não foram encontradas, por favor verifique e tente novamente!"
ErrNodeUnbind: "Nó fora do escopo da licença detectado, por favor verifique e tente novamente!" ErrNodeUnbind: "Nó fora do escopo da licença detectado, por favor verifique e tente novamente!"
ErrNodeBind: "Este nó já está vinculado a uma licença, por favor verifique e tente novamente!" ErrNodeBind: "Este nó já está vinculado a uma licença, por favor verifique e tente novamente!"
ErrNodeLocalRollback: "O nó principal não suporta rollback direto. Por favor, execute manualmente o comando '1pctl restore' para fazer o rollback!"
# alert # alert
ErrAlertSync: "Erro na sincronização das informações de alerta, verifique e tente novamente!" ErrAlertSync: "Erro na sincronização das informações de alerta, verifique e tente novamente!"

View file

@ -62,6 +62,7 @@ ErrNodeBoundLimit: "Текущий бесплатный узел достиг п
ErrNoSuchNode: "Информация об узле не найдена, проверьте и повторите попытку!" ErrNoSuchNode: "Информация об узле не найдена, проверьте и повторите попытку!"
ErrNodeUnbind: "Обнаружен узел вне области действия лицензии, проверьте и повторите попытку!" ErrNodeUnbind: "Обнаружен узел вне области действия лицензии, проверьте и повторите попытку!"
ErrNodeBind: "Этот узел уже связан с лицензией, проверьте и повторите попытку!" ErrNodeBind: "Этот узел уже связан с лицензией, проверьте и повторите попытку!"
ErrNodeLocalRollback: "Основной узел не поддерживает прямой откат. Пожалуйста, вручную выполните команду '1pctl restore' для отката!"
# alert # alert
ErrAlertSync: "Ошибка синхронизации информации об оповещениях, пожалуйста, проверьте и повторите попытку!" ErrAlertSync: "Ошибка синхронизации информации об оповещениях, пожалуйста, проверьте и повторите попытку!"

View file

@ -62,6 +62,7 @@ ErrNodeBoundLimit: "當前免費節點已達上限,請檢查後重試!"
ErrNoSuchNode: "未能找到該節點信息,請檢查後重試!" ErrNoSuchNode: "未能找到該節點信息,請檢查後重試!"
ErrNodeUnbind: "檢測到該節點未在許可證綁定範圍內,請檢查後重試!" ErrNodeUnbind: "檢測到該節點未在許可證綁定範圍內,請檢查後重試!"
ErrNodeBind: "檢測到該節點已綁定許可證,請檢查後重試!" ErrNodeBind: "檢測到該節點已綁定許可證,請檢查後重試!"
ErrNodeLocalRollback: "主節點暫不支援直接回滾請手動執行「1pctl restore」命令回滾"
# alert # alert
ErrAlertSync: "告警信息同步錯誤,請檢查後重試!" ErrAlertSync: "告警信息同步錯誤,請檢查後重試!"

View file

@ -63,6 +63,7 @@ ErrNodeBoundLimit: "当前免费节点已经达到上限,请检查后重试!
ErrNoSuchNode: "未能找到该节点信息,请检查后重试!" ErrNoSuchNode: "未能找到该节点信息,请检查后重试!"
ErrNodeUnbind: "检测到该节点未在许可证绑定范围内,请检查后重试!" ErrNodeUnbind: "检测到该节点未在许可证绑定范围内,请检查后重试!"
ErrNodeBind: "检测到该节点已绑定许可证,请检查后重试!" ErrNodeBind: "检测到该节点已绑定许可证,请检查后重试!"
ErrNodeLocalRollback: "主节点暂不支持直接回滚,请手动执行 1pctl restore 命令回滚!"
# alert # alert
ErrAlertSync: "告警信息同步错误,请检查后重试!" ErrAlertSync: "告警信息同步错误,请检查后重试!"

View file

@ -1835,17 +1835,16 @@ const message = {
noUpgrade: 'It is currently the latest version', noUpgrade: 'It is currently the latest version',
versionHelper: versionHelper:
'Name rules: [major version].[functional version].[Bug fix version], as shown in the following example:', 'Name rules: [major version].[functional version].[Bug fix version], as shown in the following example:',
versionHelper1: 'v1.0.1 is a Bug fix after v1.0.0', rollbackLocalHelper:
versionHelper2: 'v1.1.0 is a feature release after v1.0.0', 'The primary node does not support direct rollback. Please manually execute the [1pctl restore] command to rollback!',
upgradeCheck: 'Check for updates', upgradeCheck: 'Check for updates',
upgradeNotes: 'Release note', upgradeNotes: 'Release note',
upgradeNow: 'Upgrade now', upgradeNow: 'Upgrade now',
source: 'Download source', source: 'Download source',
hasNewVersion: 'New version Available', versionNotSame:
versionHigher: 'The version of this node does not match the primary node. Switching is not supported at this time. Please check and try again!',
'Detected that node {0} version is higher than the main node, switching is not supported at this time. Please upgrade the main node system version and try again!', versionCompare:
versionLower: 'Detected that node {0} is already at the latest upgradable version. Please check the primary node version and try again!',
'Detected that node {0} version is lower than the main node, switching is not supported at this time. Please upgrade the system version of this node and try again!',
about: 'About', about: 'About',
project: 'Project Address', project: 'Project Address',

View file

@ -1739,10 +1739,16 @@ const message = {
'この回復をロールバックするとこの回復からすべてのファイルを置き換えDockerサービスと1パネルサービスを再起動する必要がある場合があります続けたいですか', 'この回復をロールバックするとこの回復からすべてのファイルを置き換えDockerサービスと1パネルサービスを再起動する必要がある場合があります続けたいですか',
upgradeHelper: 'アップグレードには1パネルサービスを再起動する必要があります続けたいですか', upgradeHelper: 'アップグレードには1パネルサービスを再起動する必要があります続けたいですか',
rollbackLocalHelper:
'マスターノードは直接ロールバックをサポートしていません手動で1pctl restoreコマンドを実行してロールバックしてください',
noUpgrade: '現在最新バージョンです', noUpgrade: '現在最新バージョンです',
upgradeNotes: 'リリースノート', upgradeNotes: 'リリースノート',
upgradeNow: '今すぐアップグレードしてください', upgradeNow: '今すぐアップグレードしてください',
source: 'ソースをダウンロードします', source: 'ソースをダウンロードします',
versionNotSame:
'このノードのバージョンがマスターノードと一致しません現在は切り替えをサポートしていません確認後再試行してください',
versionCompare:
'ノード {0} は既にアップグレード可能な最新バージョンですマスターノードのバージョンを確認後再試行してください',
about: 'について', about: 'について',
project: 'GitHub', project: 'GitHub',

View file

@ -1713,10 +1713,16 @@ const message = {
' 복구를 롤백하면 해당 복구의 모든 파일이 대체되며 Docker 1Panel 서비스를 재시작해야 있습니다. 계속하시겠습니까?', ' 복구를 롤백하면 해당 복구의 모든 파일이 대체되며 Docker 1Panel 서비스를 재시작해야 있습니다. 계속하시겠습니까?',
upgradeHelper: '업그레이드에는 1Panel 서비스를 재시작해야 합니다. 계속하시겠습니까?', upgradeHelper: '업그레이드에는 1Panel 서비스를 재시작해야 합니다. 계속하시겠습니까?',
rollbackLocalHelper:
'마스터 노드는 직접 롤백을 지원하지 않습니다. 수동으로 [1pctl restore] 명령어를 실행하여 롤백하세요!',
noUpgrade: '현재 최신 버전입니다', noUpgrade: '현재 최신 버전입니다',
upgradeNotes: '릴리스 노트', upgradeNotes: '릴리스 노트',
upgradeNow: '지금 업그레이드', upgradeNow: '지금 업그레이드',
source: '다운로드 소스', source: '다운로드 소스',
versionNotSame:
' 노드의 버전이 마스터 노드와 일치하지 않습니다. 현재 전환을 지원하지 않습니다. 확인 다시 시도하세요!',
versionCompare:
'노드 {0}() 이미 업그레이드 가능한 최신 버전입니다. 마스터 노드 버전을 확인 다시 시도하세요!',
about: '정보', about: '정보',
project: 'GitHub', project: 'GitHub',

View file

@ -1797,10 +1797,16 @@ const message = {
'Pulangkan semula pemulihan ini akan menggantikan semua fail dari pemulihan ini, dan mungkin memerlukan mulakan semula perkhidmatan Docker dan 1Panel. Adakah anda mahu meneruskan?', 'Pulangkan semula pemulihan ini akan menggantikan semua fail dari pemulihan ini, dan mungkin memerlukan mulakan semula perkhidmatan Docker dan 1Panel. Adakah anda mahu meneruskan?',
upgradeHelper: 'Kemas kini memerlukan mulakan semula perkhidmatan 1Panel. Adakah anda mahu meneruskan?', upgradeHelper: 'Kemas kini memerlukan mulakan semula perkhidmatan 1Panel. Adakah anda mahu meneruskan?',
rollbackLocalHelper:
'Nod utama tidak menyokong rollback secara langsung. Sila laksanakan arahan [1pctl restore] secara manual untuk rollback!',
noUpgrade: 'Ia adalah versi terbaru pada masa ini', noUpgrade: 'Ia adalah versi terbaru pada masa ini',
upgradeNotes: 'Nota pelepasan', upgradeNotes: 'Nota pelepasan',
upgradeNow: 'Kemas kini sekarang', upgradeNow: 'Kemas kini sekarang',
source: 'Sumber muat turun', source: 'Sumber muat turun',
versionNotSame:
'Versi nod ini tidak sepadan dengan nod utama. Penukaran tidak disokong buat masa ini. Sila periksa dan cuba lagi!',
versionCompare:
'Nod {0} telah berada pada versi terkini yang boleh dinaik taraf. Sila periksa versi nod utama dan cuba lagi!',
about: 'Mengenai', about: 'Mengenai',
project: 'GitHub', project: 'GitHub',

View file

@ -1782,10 +1782,16 @@ const message = {
'Reverter essa recuperação substituirá todos os arquivos dessa recuperação e pode exigir reiniciar os serviços Docker e 1Panel. Você deseja continuar?', 'Reverter essa recuperação substituirá todos os arquivos dessa recuperação e pode exigir reiniciar os serviços Docker e 1Panel. Você deseja continuar?',
upgradeHelper: 'A atualização requer reiniciar o serviço 1Panel. Você deseja continuar?', upgradeHelper: 'A atualização requer reiniciar o serviço 1Panel. Você deseja continuar?',
rollbackLocalHelper:
'O principal não suporta rollback direto. Por favor, execute manualmente o comando [1pctl restore] para fazer o rollback!',
noUpgrade: 'Esta é a versão mais recente', noUpgrade: 'Esta é a versão mais recente',
upgradeNotes: 'Notas de versão', upgradeNotes: 'Notas de versão',
upgradeNow: 'Atualizar agora', upgradeNow: 'Atualizar agora',
source: 'Fonte para download', source: 'Fonte para download',
versionNotSame:
'A versão deste não corresponde ao principal. A troca não é suportada no momento. Por favor, verifique e tente novamente!',
versionCompare:
'Detectado que o {0} está na última versão atualizável. Por favor, verifique a versão do principal e tente novamente!',
about: 'Sobre', about: 'Sobre',
project: 'GitHub', project: 'GitHub',

View file

@ -1783,10 +1783,17 @@ const message = {
rollbackHelper: rollbackHelper:
'Откат этого восстановления заменит все файлы из этого восстановления и может потребовать перезапуска служб Docker и 1Panel. Хотите продолжить?', 'Откат этого восстановления заменит все файлы из этого восстановления и может потребовать перезапуска служб Docker и 1Panel. Хотите продолжить?',
upgradeHelper: 'Обновление требует перезапуска службы 1Panel. Хотите продолжить?', upgradeHelper: 'Обновление требует перезапуска службы 1Panel. Хотите продолжить?',
rollbackLocalHelper:
'Основной узел не поддерживает прямой откат. Пожалуйста, вручную выполните команду [1pctl restore] для отката!',
noUpgrade: 'В настоящее время это последняя версия', noUpgrade: 'В настоящее время это последняя версия',
upgradeNotes: 'Примечания к выпуску', upgradeNotes: 'Примечания к выпуску',
upgradeNow: 'Обновить сейчас', upgradeNow: 'Обновить сейчас',
source: 'Источник загрузки', source: 'Источник загрузки',
versionNotSame:
'Версия этого узла не соответствует основной. Переключение в данный момент не поддерживается. Пожалуйста, проверьте и повторите попытку!',
versionCompare:
'Обнаружено, что узел {0} уже имеет последнюю обновляемую версию. Пожалуйста, проверьте версию основного узла и повторите попытку!',
about: 'О программе', about: 'О программе',
project: 'GitHub', project: 'GitHub',
issue: 'Проблема', issue: 'Проблема',

View file

@ -1629,15 +1629,13 @@ const message = {
upgradeHelper: '升級操作需要重啟 1Panel 服務是否繼續', upgradeHelper: '升級操作需要重啟 1Panel 服務是否繼續',
noUpgrade: '當前已經是最新版本', noUpgrade: '當前已經是最新版本',
versionHelper: '1Panel 版本號命名規則為 [大版本].[功能版本].[Bug 修復版本]', versionHelper: '1Panel 版本號命名規則為 [大版本].[功能版本].[Bug 修復版本]',
versionHelper1: 'v1.0.1 v1.0.0 之後的 Bug 修復版本', rollbackLocalHelper: '主節點暫不支援直接回滾請手動執行1pctl restore命令回滾',
versionHelper2: 'v1.1.0 v1.0.0 之後的功能版本',
upgradeCheck: '檢查更新', upgradeCheck: '檢查更新',
upgradeNotes: '更新內容', upgradeNotes: '更新內容',
upgradeNow: '立即更新', upgradeNow: '立即更新',
source: '下載源', source: '下載源',
hasNewVersion: '有新版本', versionNotSame: '檢測到該節點版本與主節點不一致暫不支援切換請檢查後重試',
versionHigher: '檢測到節點 {0} 版本高於主節點暫不支持切換請先升級主節點系統版本後重試', versionCompare: '檢測到節點 {0} 版本已是當前可升級最新版本請檢查主節點版本後重試',
versionLower: '檢測到節點 {0} 版本低於主節點暫不支持切換請先升級該節點系統版本後重試',
safe: '安全', safe: '安全',
bindInfo: '監聽地址', bindInfo: '監聽地址',

View file

@ -1622,15 +1622,13 @@ const message = {
upgradeHelper: '升级操作需要重启 1Panel 服务是否继续', upgradeHelper: '升级操作需要重启 1Panel 服务是否继续',
noUpgrade: '当前已经是最新版本', noUpgrade: '当前已经是最新版本',
versionHelper: '1Panel 版本号命名规则为 [大版本].[功能版本].[Bug 修复版本]', versionHelper: '1Panel 版本号命名规则为 [大版本].[功能版本].[Bug 修复版本]',
versionHelper1: 'v1.0.1 v1.0.0 之后的 Bug 修复版本', rollbackLocalHelper: '主节点暂不支持直接回滚请手动执行 1pctl restore 命令回滚',
versionHelper2: 'v1.1.0 v1.0.0 之后的功能版本',
upgradeCheck: '检查更新', upgradeCheck: '检查更新',
upgradeNotes: '更新内容', upgradeNotes: '更新内容',
upgradeNow: '立即更新', upgradeNow: '立即更新',
source: '下载源', source: '下载源',
hasNewVersion: '有新版本', versionNotSame: '检测该节点版本与主节点不一致暂不支持切换请检查后重试',
versionHigher: '检测到节点 {0} 版本高于主节点暂不支持切换请先升级主节点系统版本后重试', versionCompare: '检测到节点 {0} 版本已是当前可升级最新版本请检查主节点版本后重试',
versionLower: '检测到节点 {0} 版本低于主节点暂不支持切换请先升级该节点系统版本后重试',
safe: '安全', safe: '安全',
bindInfo: '监听地址', bindInfo: '监听地址',

View file

@ -57,7 +57,6 @@
import { GlobalStore, MenuStore } from '@/store'; import { GlobalStore, MenuStore } from '@/store';
import { DropdownInstance } from 'element-plus'; import { DropdownInstance } from 'element-plus';
import { countExecutingTask } from '@/api/modules/log'; import { countExecutingTask } from '@/api/modules/log';
import { compareVersion } from '@/utils/version';
import { MsgError, MsgSuccess } from '@/utils/message'; import { MsgError, MsgSuccess } from '@/utils/message';
import i18n from '@/lang'; import i18n from '@/lang';
import { listNodeOptions } from '@/api/modules/setting'; import { listNodeOptions } from '@/api/modules/setting';
@ -125,13 +124,8 @@ const changeNode = (command: string) => {
location.reload(); location.reload();
return; return;
} }
let compareItem = compareVersion(item.version, props.version); if (item.version !== props.version) {
if (compareItem) { MsgError(i18n.global.t('setting.versionNotSame'));
MsgError(i18n.global.t('setting.versionHigher', [command]));
return;
}
if (!compareItem) {
MsgError(i18n.global.t('setting.versionLower', [command]));
return; return;
} }
} }