From c661cc37b3b7bf3f2da0749e214975dcecbd709a Mon Sep 17 00:00:00 2001 From: CityFun <31820853+zhengkunwang223@users.noreply.github.com> Date: Tue, 5 Aug 2025 14:29:50 +0800 Subject: [PATCH] feat: Delete app while ignoring it during synchronization. (#9852) --- agent/app/repo/app_ignore_upgrade.go | 7 +++++++ agent/app/service/app_utils.go | 5 +++++ frontend/src/components/log/file/index.vue | 4 +++- 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/agent/app/repo/app_ignore_upgrade.go b/agent/app/repo/app_ignore_upgrade.go index e24a52e19..cc35b21aa 100644 --- a/agent/app/repo/app_ignore_upgrade.go +++ b/agent/app/repo/app_ignore_upgrade.go @@ -11,6 +11,7 @@ type AppIgnoreUpgradeRepo struct { type IAppIgnoreUpgradeRepo interface { WithScope(scope string) DBOption + WithAppID(appID uint) DBOption List(opts ...DBOption) ([]model.AppIgnoreUpgrade, error) Create(appIgnoreUpgrade *model.AppIgnoreUpgrade) error Delete(opts ...DBOption) error @@ -26,6 +27,12 @@ func (a AppIgnoreUpgradeRepo) WithScope(scope string) DBOption { } } +func (a AppIgnoreUpgradeRepo) WithAppID(appID uint) DBOption { + return func(g *gorm.DB) *gorm.DB { + return g.Where("app_id = ?", appID) + } +} + func (a AppIgnoreUpgradeRepo) List(opts ...DBOption) ([]model.AppIgnoreUpgrade, error) { var appIgnoreUpgradeList []model.AppIgnoreUpgrade err := getDb(opts...).Find(&appIgnoreUpgradeList).Error diff --git a/agent/app/service/app_utils.go b/agent/app/service/app_utils.go index bef2f942e..9ec206c9c 100644 --- a/agent/app/service/app_utils.go +++ b/agent/app/service/app_utils.go @@ -440,6 +440,11 @@ func deleteAppInstall(deleteReq request.AppInstallDelete) error { _ = op.DeleteDir(parentDir) } tx.Commit() + + existApps, _ := appInstallRepo.ListBy(context.Background(), appInstallRepo.WithAppId(install.AppId)) + if len(existApps) == 0 { + _ = appIgnoreUpgradeRepo.Delete(appIgnoreUpgradeRepo.WithAppID(install.AppId)) + } return nil } uninstallTask.AddSubTask(task.GetTaskName(install.Name, task.TaskUninstall, task.TaskScopeApp), uninstall, nil) diff --git a/frontend/src/components/log/file/index.vue b/frontend/src/components/log/file/index.vue index d53b26589..9ebd4791c 100644 --- a/frontend/src/components/log/file/index.vue +++ b/frontend/src/components/log/file/index.vue @@ -1,7 +1,9 @@