forked from JointCloud/pcm-coordinator
50 lines
1.5 KiB
Go
50 lines
1.5 KiB
Go
package apps
|
|
|
|
import (
|
|
"context"
|
|
"github.com/zeromicro/go-zero/core/logx"
|
|
"gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/svc"
|
|
"gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/types"
|
|
"gitlink.org.cn/JointCloud/pcm-coordinator/pkg/constants"
|
|
"gitlink.org.cn/JointCloud/pcm-coordinator/pkg/models"
|
|
)
|
|
|
|
type DeleteAppByAppNameLogic struct {
|
|
logx.Logger
|
|
ctx context.Context
|
|
svcCtx *svc.ServiceContext
|
|
}
|
|
|
|
func NewDeleteAppByAppNameLogic(ctx context.Context, svcCtx *svc.ServiceContext) *DeleteAppByAppNameLogic {
|
|
return &DeleteAppByAppNameLogic{
|
|
Logger: logx.WithContext(ctx),
|
|
ctx: ctx,
|
|
svcCtx: svcCtx,
|
|
}
|
|
}
|
|
|
|
func (l *DeleteAppByAppNameLogic) DeleteAppByAppName(req *types.DeleteAppReq) (resp *types.DeleteAppResp, err error) {
|
|
resp = &types.DeleteAppResp{}
|
|
var task = &Task{}
|
|
//查询应用的yamlString
|
|
l.svcCtx.DbEngin.Raw(`select * from task where ns_id= ? and name= ? AND deleted_at IS NULL`, req.NsID, req.Name).Scan(&task)
|
|
if task.Id == 0 {
|
|
resp.Code = 500
|
|
resp.Msg = "App not fount"
|
|
return resp, err
|
|
}
|
|
//删除主任务信息
|
|
l.svcCtx.DbEngin.Model(&models.Task{}).Where("id", task.Id).Update("status", constants.Deleted)
|
|
tx := l.svcCtx.DbEngin.Delete(&models.Task{}, task.Id)
|
|
if tx.Error != nil {
|
|
return nil, tx.Error
|
|
}
|
|
// 将子任务状态修改为待删除
|
|
tx = l.svcCtx.DbEngin.Model(&models.Cloud{}).Where("task_id", task.Id).Update("status", constants.WaitDelete)
|
|
l.svcCtx.DbEngin.Where("task_id = ?", task.Id).Delete(&models.Cloud{})
|
|
if tx.Error != nil {
|
|
return nil, tx.Error
|
|
}
|
|
return
|
|
}
|