From c8673b60bbb8a97da142b334900aa8f4ddc2d1a6 Mon Sep 17 00:00:00 2001 From: ssongliu <73214554+ssongliu@users.noreply.github.com> Date: Sun, 4 Jan 2026 17:31:43 +0800 Subject: [PATCH] fix: Fix the issue of abnormal cache cleanup display (#11547) --- agent/app/repo/monitor.go | 25 +++++---------------- agent/app/service/device_clean.go | 26 +++++----------------- core/constant/common.go | 2 ++ frontend/src/lang/modules/en.ts | 2 -- frontend/src/lang/modules/es-es.ts | 2 -- frontend/src/lang/modules/ja.ts | 2 -- frontend/src/lang/modules/ko.ts | 2 -- frontend/src/lang/modules/ms.ts | 2 -- frontend/src/lang/modules/pt-br.ts | 2 -- frontend/src/lang/modules/ru.ts | 2 -- frontend/src/lang/modules/tr.ts | 2 -- frontend/src/lang/modules/zh-Hant.ts | 2 -- frontend/src/lang/modules/zh.ts | 2 -- frontend/src/views/toolbox/clean/index.vue | 26 ---------------------- 14 files changed, 12 insertions(+), 87 deletions(-) diff --git a/agent/app/repo/monitor.go b/agent/app/repo/monitor.go index 953a9cb2c..64d9c0ec6 100644 --- a/agent/app/repo/monitor.go +++ b/agent/app/repo/monitor.go @@ -73,28 +73,13 @@ func (u *MonitorRepo) CreateMonitorBase(model model.MonitorBase) error { return global.MonitorDB.Create(&model).Error } func (s *MonitorRepo) BatchCreateMonitorGPU(list []model.MonitorGPU) error { - for _, item := range list { - if err := global.GPUMonitorDB.Create(&item).Error; err != nil { - global.LOG.Errorf("create Monitor GPU record failed, err: %v", err) - } - } - return nil + return global.GPUMonitorDB.CreateInBatches(&list, len(list)).Error } -func (u *MonitorRepo) BatchCreateMonitorIO(list []model.MonitorIO) error { - for _, item := range list { - if err := global.MonitorDB.Create(&item).Error; err != nil { - global.LOG.Errorf("create Monitor IO record failed, err: %v", err) - } - } - return nil +func (u *MonitorRepo) BatchCreateMonitorIO(ioList []model.MonitorIO) error { + return global.MonitorDB.CreateInBatches(ioList, len(ioList)).Error } -func (u *MonitorRepo) BatchCreateMonitorNet(list []model.MonitorNetwork) error { - for _, item := range list { - if err := global.MonitorDB.Create(&item).Error; err != nil { - global.LOG.Errorf("create Monitor Network record failed, err: %v", err) - } - } - return nil +func (u *MonitorRepo) BatchCreateMonitorNet(ioList []model.MonitorNetwork) error { + return global.MonitorDB.CreateInBatches(ioList, len(ioList)).Error } func (u *MonitorRepo) DelMonitorBase(timeForDelete time.Time) error { return global.MonitorDB.Where("created_at < ?", timeForDelete).Delete(&model.MonitorBase{}).Error diff --git a/agent/app/service/device_clean.go b/agent/app/service/device_clean.go index 21f235252..bd41d5ffa 100644 --- a/agent/app/service/device_clean.go +++ b/agent/app/service/device_clean.go @@ -19,7 +19,6 @@ import ( "github.com/1Panel-dev/1Panel/agent/global" "github.com/1Panel-dev/1Panel/agent/i18n" "github.com/1Panel-dev/1Panel/agent/utils/common" - "github.com/1Panel-dev/1Panel/agent/utils/controller" "github.com/1Panel-dev/1Panel/agent/utils/docker" fileUtils "github.com/1Panel-dev/1Panel/agent/utils/files" "github.com/docker/docker/api/types" @@ -30,7 +29,6 @@ import ( const ( rollbackPath = "1panel/tmp" - cachePath = "1panel/cache" upgradePath = "1panel/tmp/upgrade" uploadPath = "1panel/uploads" downloadPath = "1panel/download" @@ -56,16 +54,6 @@ func (u *DeviceService) Scan() dto.CleanData { }) treeData = append(treeData, loadUpgradeTree(fileOp)) treeData = append(treeData, loadAgentPackage(fileOp)) - cachePath := path.Join(global.Dir.BaseDir, cachePath) - cacheSize, _ := fileOp.GetDirSize(cachePath) - treeData = append(treeData, dto.CleanTree{ - ID: uuid.NewString(), - Label: "cache", - Size: uint64(cacheSize), - IsCheck: false, - IsRecommend: false, - Type: "cache", - }) SystemClean.BackupClean = loadBackupTree(fileOp) @@ -102,7 +90,6 @@ func (u *DeviceService) Scan() dto.CleanData { func (u *DeviceService) Clean(req []dto.Clean) { size := uint64(0) - restart := false for _, item := range req { size += item.Size switch item.TreeType { @@ -131,10 +118,6 @@ func (u *DeviceService) Clean(req []dto.Clean) { case "rollback_website": dropFileOrDir(path.Join(global.Dir.BaseDir, rollbackPath, "website", item.Name)) - case "cache": - dropFileOrDir(path.Join(global.Dir.BaseDir, cachePath, item.Name)) - restart = true - case "upload": dropFileOrDir(path.Join(global.Dir.BaseDir, uploadPath, item.Name)) case "upload_app": @@ -202,10 +185,6 @@ func (u *DeviceService) Clean(req []dto.Clean) { _ = settingRepo.Update("LastCleanTime", time.Now().Format(constant.DateTimeLayout)) _ = settingRepo.Update("LastCleanSize", fmt.Sprintf("%v", size)) _ = settingRepo.Update("LastCleanData", fmt.Sprintf("%v", len(req))) - - if restart { - go controller.RestartPanel(false, true, false) - } } func doSystemClean(taskItem *task.Task) func(t *task.Task) error { @@ -327,6 +306,7 @@ func loadAgentPackage(fileOp fileUtils.FileOp) dto.CleanTree { itemTree.Size += uint64(itemSize) itemTree.Children = append(itemTree.Children, dto.CleanTree{ ID: uuid.NewString(), + Label: file.Name(), Name: file.Name(), Size: uint64(itemSize), IsCheck: true, @@ -342,6 +322,7 @@ func loadAgentPackage(fileOp fileUtils.FileOp) dto.CleanTree { itemTree.Children = append(itemTree.Children, dto.CleanTree{ ID: uuid.NewString(), Label: file.Name(), + Name: file.Name(), Size: uint64(itemSize.Size()), IsCheck: true, IsRecommend: true, @@ -598,6 +579,9 @@ func loadBackupIsCheck(treeData *dto.CleanTree) { treeData.Children[i].IsRecommend = true continue } + if treeData.Label != "unknown_database" && treeData.Label != "unknown_app" { + continue + } for j := 0; j < len(treeData.Children[i].Children); j++ { if len(treeData.Children[i].Children[j].Children) == 0 { treeData.Children[i].Children[j].IsCheck = true diff --git a/core/constant/common.go b/core/constant/common.go index 2540fc8ad..4e7959f3f 100644 --- a/core/constant/common.go +++ b/core/constant/common.go @@ -59,6 +59,7 @@ var WebUrlMap = map[string]struct{}{ "/ai": {}, "/ai/model": {}, "/ai/gpu": {}, + "/ai/gpu/current": {}, "/ai/mcp": {}, "/ai/model/tensorrt": {}, "/ai/model/ollama": {}, @@ -165,6 +166,7 @@ var WebUrlMap = map[string]struct{}{ "/xpack/alert/log": {}, "/xpack/alert/setting": {}, "/xpack/setting": {}, + "/xpack/node/dashboard": {}, "/xpack/node": {}, "/xpack/simple-node": {}, "/xpack/exchange/file": {}, diff --git a/frontend/src/lang/modules/en.ts b/frontend/src/lang/modules/en.ts index 56dc84358..627739089 100644 --- a/frontend/src/lang/modules/en.ts +++ b/frontend/src/lang/modules/en.ts @@ -2202,8 +2202,6 @@ const message = { upgrade: 'System upgrade backup files', agentPackages: 'Historical version child node upgrade/installation packages', upgradeHelper: '(Recommend keeping the latest upgrade backup for system rollback)', - cache: 'System cache files', - cacheHelper: '(Proceed with caution, cleaning requires a service restart)', snapshot: 'System snapshot temporary files', rollback: 'Backup files before recover', diff --git a/frontend/src/lang/modules/es-es.ts b/frontend/src/lang/modules/es-es.ts index 9ab16a87f..bc714c00e 100644 --- a/frontend/src/lang/modules/es-es.ts +++ b/frontend/src/lang/modules/es-es.ts @@ -2215,8 +2215,6 @@ const message = { upgrade: 'Archivos de copia de seguridad de actualización del sistema', agentPackages: 'Paquetes de actualización/instalación de nodos secundarios de versiones históricas', upgradeHelper: '(Mantenga el último respaldo para restaurar el sistema)', - cache: 'Archivos de caché', - cacheHelper: '(Precaución, limpiar requiere reiniciar servicios)', snapshot: 'Archivos temporales de instantáneas', rollback: 'Archivos de respaldo antes de recuperación', diff --git a/frontend/src/lang/modules/ja.ts b/frontend/src/lang/modules/ja.ts index 3062d8a56..b4bcc811b 100644 --- a/frontend/src/lang/modules/ja.ts +++ b/frontend/src/lang/modules/ja.ts @@ -2122,8 +2122,6 @@ const message = { upgrade: 'システムアップグレードのバックアップファイル', agentPackages: '履歴バージョンの子ノードアップグレード/インストールパッケージ', upgradeHelper: '(システムロールバックのために最新のアップグレードバックアップを保持することをお勧めします)', - cache: 'システムキャッシュファイル', - cacheHelper: '(注意を払って進むには、クリーニングにはサービスの再起動が必要です)', rollback: '回復する前にファイルをバックアップします', backup: 'システムバックアップ', diff --git a/frontend/src/lang/modules/ko.ts b/frontend/src/lang/modules/ko.ts index 25217f628..f04df1d26 100644 --- a/frontend/src/lang/modules/ko.ts +++ b/frontend/src/lang/modules/ko.ts @@ -2087,8 +2087,6 @@ const message = { upgrade: '시스템 업그레이드 백업 파일', agentPackages: '이전 버전 자식 노드 업그레이드/설치 패키지', upgradeHelper: '(시스템 롤백을 위해 최신 업그레이드 백업을 유지하는 것이 좋습니다)', - cache: '시스템 캐시 파일', - cacheHelper: '(주의하여 진행, 정리 후 서비스 재시작 필요)', rollback: '복구 전 백업 파일', backup: '시스템 백업', diff --git a/frontend/src/lang/modules/ms.ts b/frontend/src/lang/modules/ms.ts index 9d12a6cad..4d6f0300b 100644 --- a/frontend/src/lang/modules/ms.ts +++ b/frontend/src/lang/modules/ms.ts @@ -2182,8 +2182,6 @@ const message = { upgrade: 'Fail sandaran naik taraf sistem', agentPackages: 'Pakej naik taraf/pemasangan nod anak versi sejarah', upgradeHelper: '(Disarankan untuk mengekalkan sandaran peningkatan terbaru untuk pemulihan sistem)', - cache: 'Fail cache sistem', - cacheHelper: '(Berhati-hati, pembersihan memerlukan permulaan semula perkhidmatan)', rollback: 'Fail sandaran sebelum pemulihan', backup: 'Sandaran Sistem', diff --git a/frontend/src/lang/modules/pt-br.ts b/frontend/src/lang/modules/pt-br.ts index 5c396b377..25e6303d9 100644 --- a/frontend/src/lang/modules/pt-br.ts +++ b/frontend/src/lang/modules/pt-br.ts @@ -2176,8 +2176,6 @@ const message = { upgrade: 'Arquivos de backup de atualização do sistema.', agentPackages: 'Pacotes de atualização/instalação de nós filhos de versões históricas.', upgradeHelper: '(Recomenda-se manter o backup de atualização mais recente para rollback do sistema)', - cache: 'Arquivos de cache do sistema', - cacheHelper: '(Prossiga com cautela, a limpeza exige reinício do serviço)', rollback: 'Arquivos de backup antes da recuperação', backup: 'Backup do Sistema', diff --git a/frontend/src/lang/modules/ru.ts b/frontend/src/lang/modules/ru.ts index b2240cdd7..2fbd19b48 100644 --- a/frontend/src/lang/modules/ru.ts +++ b/frontend/src/lang/modules/ru.ts @@ -2171,8 +2171,6 @@ const message = { upgrade: 'Файлы резервных копий обновления системы', agentPackages: 'Пакеты обновления/установки дочерних узлов исторических версий', upgradeHelper: '(Рекомендуется сохранять последнюю резервную копию обновления для отката системы)', - cache: 'Системные файлы кэша', - cacheHelper: '(Действуйте с осторожностью, очистка требует перезапуска службы)', rollback: 'Файлы резервных копий перед восстановлением', backup: 'Резервная Копия Системы', diff --git a/frontend/src/lang/modules/tr.ts b/frontend/src/lang/modules/tr.ts index df00db194..970573001 100644 --- a/frontend/src/lang/modules/tr.ts +++ b/frontend/src/lang/modules/tr.ts @@ -2227,8 +2227,6 @@ const message = { upgrade: 'Sistem yükseltme yedekleme dosyaları', agentPackages: 'Geçmiş sürüm alt düğüm yükseltme/kurulum paketleri', upgradeHelper: '(Sistem geri alımı için en son yükseltme yedeğini tutmanız önerilir)', - cache: 'Sistem önbellek dosyaları', - cacheHelper: '(Dikkatli ilerleyin, temizleme servis yeniden başlatılmasını gerektirir)', snapshot: 'Sistem anlık görüntü geçici dosyaları', rollback: 'Kurtarma öncesi yedek dosyaları', diff --git a/frontend/src/lang/modules/zh-Hant.ts b/frontend/src/lang/modules/zh-Hant.ts index 37eb584fb..841b18876 100644 --- a/frontend/src/lang/modules/zh-Hant.ts +++ b/frontend/src/lang/modules/zh-Hant.ts @@ -2051,8 +2051,6 @@ const message = { upgrade: '系統升級備份檔案', agentPackages: '歷史版本子節點升級/安裝套件', upgradeHelper: '( 建議保留最新的升級備份用於系統回滾 )', - cache: '系統快取文件', - cacheHelper: '( 謹慎操作,清理需要重啟服務 )', snapshot: '系統快照暫存檔', rollback: '復原前備份目錄', diff --git a/frontend/src/lang/modules/zh.ts b/frontend/src/lang/modules/zh.ts index 9c29ae481..ae2938ef9 100644 --- a/frontend/src/lang/modules/zh.ts +++ b/frontend/src/lang/modules/zh.ts @@ -2048,8 +2048,6 @@ const message = { upgrade: '系统升级备份文件', agentPackages: '历史版本子节点升级 / 安装包', upgradeHelper: '( 建议保留最新的升级备份用于系统回滚 )', - cache: '系统缓存文件', - cacheHelper: '( 谨慎操作,清理需要重启服务 )', snapshot: '系统快照临时文件', rollback: '恢复前备份目录', diff --git a/frontend/src/views/toolbox/clean/index.vue b/frontend/src/views/toolbox/clean/index.vue index 4050fd8f1..141913a35 100644 --- a/frontend/src/views/toolbox/clean/index.vue +++ b/frontend/src/views/toolbox/clean/index.vue @@ -261,9 +261,6 @@ import { getSettingInfo } from '@/api/modules/setting'; import { clean, scan } from '@/api/modules/toolbox'; import i18n from '@/lang'; import { MsgSuccess } from '@/utils/message'; -import { GlobalStore } from '@/store'; - -const globalStore = GlobalStore(); const loading = ref(); const totalSize = ref(0); @@ -370,19 +367,12 @@ const onSubmitClean = async () => { }).then(async () => { loading.value = true; submitCleans.value = []; - let restart = false; loadSubmitCheck(cleanData.systemClean); loadSubmitCheck(cleanData.backupClean); loadSubmitCheck(cleanData.uploadClean); loadSubmitCheck(cleanData.downloadClean); loadSubmitCheck(cleanData.systemLogClean); loadSubmitCheck(cleanData.containerClean); - for (const item of submitCleans.value) { - if (item.treeType === 'cache') { - restart = true; - break; - } - } await clean(submitCleans.value) .then(() => { form.lastCleanSize = selectSize.value + ''; @@ -390,17 +380,6 @@ const onSubmitClean = async () => { scanStatus.value = 'afterScan'; MsgSuccess(i18n.global.t('commons.msg.operationSuccess')); loading.value = false; - if (restart) { - let href = window.location.href; - globalStore.isLogin = false; - let address = href.split('://')[1]; - if (globalStore.entrance) { - address = address.replaceAll('settings/panel', globalStore.entrance); - } else { - address = address.replaceAll('settings/panel', 'login'); - } - window.open(`http://${address}`, '_self'); - } }) .catch(() => { loading.value = false; @@ -530,9 +509,6 @@ function loadTag(node: any, data: any) { if (data.label === 'upgrade') { return i18n.global.t('clean.upgradeHelper'); } - if (data.label === 'cache') { - return i18n.global.t('clean.cacheHelper'); - } return data.isRecommend ? i18n.global.t('clean.statusSuggest') : i18n.global.t('clean.statusWarning'); } @@ -544,8 +520,6 @@ function load18n(label: string) { return i18n.global.t('clean.upgrade'); case 'agent_packages': return i18n.global.t('clean.agentPackages'); - case 'cache': - return i18n.global.t('clean.cache'); case 'snapshot': return i18n.global.t('clean.snapshot'); case 'rollback':