mirror of
https://github.com/1Panel-dev/1Panel.git
synced 2025-10-08 22:46:51 +08:00
feat(app): delete parent dir after uninstall app (#8350)
This commit is contained in:
parent
00885c5c97
commit
d67dfe2dfd
9 changed files with 34 additions and 11 deletions
|
@ -112,7 +112,7 @@ func (t TaskRepo) CountExecutingTask() (int64, error) {
|
|||
return count, err
|
||||
}
|
||||
|
||||
func (u TaskRepo) Delete(opts ...DBOption) error {
|
||||
func (t TaskRepo) Delete(opts ...DBOption) error {
|
||||
db := global.TaskDB
|
||||
for _, opt := range opts {
|
||||
db = opt(db)
|
||||
|
@ -120,6 +120,6 @@ func (u TaskRepo) Delete(opts ...DBOption) error {
|
|||
return db.Delete(&model.Task{}).Error
|
||||
}
|
||||
|
||||
func (u TaskRepo) DeleteAll() error {
|
||||
func (t TaskRepo) DeleteAll() error {
|
||||
return global.TaskDB.Where("1 = 1").Delete(&model.Task{}).Error
|
||||
}
|
||||
|
|
|
@ -11,6 +11,7 @@ import (
|
|||
"os"
|
||||
"os/exec"
|
||||
"path"
|
||||
"path/filepath"
|
||||
"reflect"
|
||||
"regexp"
|
||||
"strconv"
|
||||
|
@ -428,6 +429,11 @@ func deleteAppInstall(deleteReq request.AppInstallDelete) error {
|
|||
}
|
||||
}
|
||||
_ = op.DeleteDir(appDir)
|
||||
parentDir := filepath.Dir(appDir)
|
||||
entries, err := os.ReadDir(parentDir)
|
||||
if err == nil && len(entries) == 0 {
|
||||
_ = op.DeleteDir(parentDir)
|
||||
}
|
||||
tx.Commit()
|
||||
return nil
|
||||
}
|
||||
|
|
|
@ -736,6 +736,9 @@ func (r *RuntimeService) InstallPHPExtension(req request.PHPExtensionInstallReq)
|
|||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if task.CheckResourceTaskIsExecuting(task.TaskInstall, task.TaskScopeRuntimeExtension, runtime.ID) {
|
||||
return buserr.New("ErrInstallExtension")
|
||||
}
|
||||
installTask, err := task.NewTaskWithOps(req.Name, task.TaskInstall, task.TaskScopeRuntimeExtension, req.TaskID, runtime.ID)
|
||||
if err != nil {
|
||||
return err
|
||||
|
|
|
@ -100,6 +100,16 @@ func CheckTaskIsExecuting(name string) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func CheckResourceTaskIsExecuting(operate, scope string, resourceID uint) bool {
|
||||
taskRepo := repo.NewITaskRepo()
|
||||
task, _ := taskRepo.GetFirst(
|
||||
taskRepo.WithByStatus(constant.StatusExecuting),
|
||||
taskRepo.WithResourceID(resourceID),
|
||||
taskRepo.WithOperate(operate),
|
||||
repo.WithByType(scope))
|
||||
return task.ID != ""
|
||||
}
|
||||
|
||||
func NewTask(name, operate, taskScope, taskID string, resourceID uint) (*Task, error) {
|
||||
if taskID == "" {
|
||||
taskID = uuid.New().String()
|
||||
|
|
|
@ -416,4 +416,7 @@ ErrAlert: "告警信息格式错误,请检查后重试!"
|
|||
ErrAlertPush: "告警信息推送错误,请检查后重试!"
|
||||
ErrAlertSave: "告警信息保存错误,请检查后重试!"
|
||||
ErrAlertSync: "告警信息同步错误,请检查后重试!"
|
||||
ErrAlertRemote: "告警信息远端错误,请检查后重试!"
|
||||
ErrAlertRemote: "告警信息远端错误,请检查后重试!"
|
||||
|
||||
#task - runtime
|
||||
ErrInstallExtension: "已有安装任务正在进行,请等待任务结束"
|
|
@ -2707,8 +2707,8 @@ const message = {
|
|||
env: 'Environment',
|
||||
noenv: 'None',
|
||||
net: 'Network Connection',
|
||||
laddr: 'Source address/port',
|
||||
raddr: 'Destination address/port',
|
||||
laddr: 'Local address/port',
|
||||
raddr: 'Remote address/port',
|
||||
stopProcess: 'End',
|
||||
stopProcessWarn: 'Are you sure you want to end this process (PID:{0})? ',
|
||||
processName: 'Processname',
|
||||
|
|
|
@ -2505,8 +2505,8 @@ const message = {
|
|||
env: '環境變量',
|
||||
noenv: '無',
|
||||
net: '網絡連接',
|
||||
laddr: '源地址/端口',
|
||||
raddr: '目標地址/端口',
|
||||
laddr: '本地地址/端口',
|
||||
raddr: '远程地址/端口',
|
||||
stopProcess: '結束',
|
||||
stopProcessWarn: '是否確定結束此進程 (PID:{0})?',
|
||||
processName: '進程名稱',
|
||||
|
|
|
@ -2497,8 +2497,8 @@ const message = {
|
|||
env: '环境变量',
|
||||
noenv: '无',
|
||||
net: '网络连接',
|
||||
laddr: '源地址/端口',
|
||||
raddr: '目标地址/端口',
|
||||
laddr: '本地地址/端口',
|
||||
raddr: '远程地址/端口',
|
||||
stopProcess: '结束',
|
||||
stopProcessWarn: '是否确定结束此进程 (PID:{0})?',
|
||||
processName: '进程名称',
|
||||
|
|
|
@ -89,9 +89,10 @@ const installExtension = async (row: Runtime.SupportExtension) => {
|
|||
try {
|
||||
await InstallPHPExtension(req);
|
||||
taskLogRef.value.openWithTaskID(req.taskID);
|
||||
|
||||
} catch (error) {
|
||||
} finally {
|
||||
loading.value = false;
|
||||
} catch (error) {}
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue