From 6f1e5074ed8ff7dced30f12edc7cc0aba51ff304 Mon Sep 17 00:00:00 2001 From: zhengkunwang <31820853+zhengkunwang223@users.noreply.github.com> Date: Tue, 27 Aug 2024 14:39:24 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=BA=94=E7=94=A8=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E9=9D=A2=E6=9D=BF=E7=89=88=E6=9C=AC=E9=99=90=E5=88=B6=20(#6264?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- agent/app/dto/app.go | 1 + agent/app/service/app.go | 7 ++++++- agent/app/service/app_utils.go | 6 +++++- agent/i18n/lang/en.yaml | 1 + agent/i18n/lang/zh-Hant.yaml | 1 + agent/i18n/lang/zh.yaml | 1 + 6 files changed, 15 insertions(+), 2 deletions(-) diff --git a/agent/app/dto/app.go b/agent/app/dto/app.go index 16bce0905..f648ddc3b 100644 --- a/agent/app/dto/app.go +++ b/agent/app/dto/app.go @@ -97,6 +97,7 @@ type AppProperty struct { Architectures []string `json:"architectures"` MemoryRequired int `json:"memoryRequired"` GpuSupport bool `json:"gpuSupport"` + Version float64 `json:"version"` } type AppConfigVersion struct { diff --git a/agent/app/service/app.go b/agent/app/service/app.go index 244e0a072..48743e0fa 100644 --- a/agent/app/service/app.go +++ b/agent/app/service/app.go @@ -867,7 +867,12 @@ func (a AppService) SyncAppListFromRemote(taskID string) (err error) { transport := xpack.LoadRequestTransport() baseRemoteUrl := fmt.Sprintf("%s/%s/1panel", global.CONF.System.AppRepo, global.CONF.System.Mode) - appsMap := getApps(oldApps, list.Apps) + + setting, err := NewISettingService().GetSettingInfo() + if err != nil { + return err + } + appsMap := getApps(oldApps, list.Apps, setting.SystemVersion, t) t.LogStart(i18n.GetMsgByKey("SyncAppDetail")) for _, l := range list.Apps { diff --git a/agent/app/service/app_utils.go b/agent/app/service/app_utils.go index 4005c7f74..f96d29b34 100644 --- a/agent/app/service/app_utils.go +++ b/agent/app/service/app_utils.go @@ -1091,13 +1091,17 @@ func getAppDetails(details []model.AppDetail, versions []dto.AppConfigVersion) m return appDetails } -func getApps(oldApps []model.App, items []dto.AppDefine) map[string]model.App { +func getApps(oldApps []model.App, items []dto.AppDefine, systemVersion string, task *task.Task) map[string]model.App { apps := make(map[string]model.App, len(oldApps)) for _, old := range oldApps { old.Status = constant.AppTakeDown apps[old.Key] = old } for _, item := range items { + if item.AppProperty.Version > 0 && common.CompareVersion(strconv.FormatFloat(item.AppProperty.Version, 'f', -1, 64), systemVersion) { + task.Log(i18n.GetWithName("AppVersionNotMatch", item.Name)) + continue + } config := item.AppProperty key := config.Key app, ok := apps[key] diff --git a/agent/i18n/lang/en.yaml b/agent/i18n/lang/en.yaml index 90381fba6..38ff5d2a3 100644 --- a/agent/i18n/lang/en.yaml +++ b/agent/i18n/lang/en.yaml @@ -65,6 +65,7 @@ UpgradeAppSuccess: "App {{ .name }} upgraded successfully" AppStoreIsLastVersion: "The app store is up to date" AppStoreSyncSuccess: "App store synchronized successfully" SyncAppDetail: "Synchronize app configuration" +AppVersionNotMatch: "{{ .name }} app requires an update to 1Panel, skipping synchronization" #file diff --git a/agent/i18n/lang/zh-Hant.yaml b/agent/i18n/lang/zh-Hant.yaml index 4ad1d53ff..b7823c120 100644 --- a/agent/i18n/lang/zh-Hant.yaml +++ b/agent/i18n/lang/zh-Hant.yaml @@ -66,6 +66,7 @@ UpgradeAppSuccess: "應用程式 {{ .name }} 升級成功" AppStoreIsLastVersion: "應用商店已經是最新版本" AppStoreSyncSuccess: "應用商店同步成功" SyncAppDetail: "同步應用配置" +AppVersionNotMatch: "{{ .name }} 應用需要更新 1Panel,跳過同步" #file diff --git a/agent/i18n/lang/zh.yaml b/agent/i18n/lang/zh.yaml index 6816556b8..8bc86ed02 100644 --- a/agent/i18n/lang/zh.yaml +++ b/agent/i18n/lang/zh.yaml @@ -65,6 +65,7 @@ UpgradeAppSuccess: "应用 {{ .name }} 升级成功" AppStoreIsLastVersion: "应用商店已经是最新版本" AppStoreSyncSuccess: "应用商店同步成功" SyncAppDetail: "同步应用配置" +AppVersionNotMatch: "{{ .name }} 应用需要更新 1Panel,跳过同步" #file ErrFileCanNotRead: "此文件不支持预览"