MCPcopy Create free account
hub / github.com/aaPanel/BaoTa / multi_remove_project

Method multi_remove_project

class/projectModel/javaModel.py:4584–4644  ·  view source on GitHub ↗

@name 批量删除项目 @author baozi<2023-3-2> @param get { project_names: list[string] <项目名称>所组成的列表 } @return dict

(self, get)

Source from the content-addressed store, hash-verified

4582 # ————————————
4583
4584 def multi_remove_project(self, get):
4585 ''&#x27;
4586 @name 批量删除项目
4587 @author baozi<2023-3-2>
4588 @param get<dict_obj>{
4589 project_names: list[string] <项目名称>所组成的列表
4590 }
4591 @return dict
4592 ''&#x27;
4593 project_names = get.project_names
4594 if isinstance(project_names, list):
4595 pjnames = [i.strip() for i in project_names]
4596 else:
4597 pjnames = []
4598
4599 projects = public.M('sites').where(
4600 f'project_type=? AND name in ({",".join(["?"] * len(pjnames))})',
4601 ('Java', *pjnames)
4602 ).select()
4603 if not projects:
4604 return public.returnMsg(False, "未选中要删除的站点")
4605
4606 _duli, _neizh, _springboot, _error_type = [], [], [], []
4607 for project in projects:
4608 project['project_config'] = json.loads(project['project_config'])
4609 if project['project_config']['java_type'] == 'duli':
4610 _duli.append(project)
4611 elif project['project_config']['java_type'] == 'neizhi':
4612 _neizh.append(project)
4613 elif project['project_config']['java_type'] == 'springboot':
4614 _springboot.append(project)
4615 else:
4616 _error_type.append("项目:[{}], 项目类型错误\n".format(project["name"]))
4617 if _error_type:
4618 return public.return_error(data = _error_type)
4619
4620 # 执行每种删除的独特操作
4621 if _duli:
4622 self._multi_remove_duli(_duli)
4623 if _neizh:
4624 self._multi_remove_neizhi(_neizh)
4625 if _springboot:
4626 self._multi_remove_springboot(_springboot)
4627
4628 # 清除Nginx, Apache 配置文件,并重起服务
4629 self._multi_clear_config(projects)
4630 # 从面板数据库删除信息
4631 project_ids = tuple([i["id"] for i in projects])
4632 public.M('domain').where('pid IN ({})'.format(",".join(["?"] * len(projects))), project_ids).delete()
4633 public.M('sites').where(
4634 f'project_type=? AND name in ({",".join(["?"] * len(pjnames))})',
4635 ('Java', *pjnames)
4636 ).delete()
4637 public.WriteLog(self._log_name, f'批量删除Java项目:[{"; ".join([i["name"] for i in projects])}]')
4638 # 获取域名列表 并删除host
4639 for project in projects:
4640 self.del_crontab(project["name"])
4641 for i in project['project_config']['domains']:

Callers

nothing calls this directly

Calls 15

_multi_remove_duliMethod · 0.95
_multi_remove_neizhiMethod · 0.95
_multi_clear_configMethod · 0.95
del_crontabMethod · 0.95
del_hostsMethod · 0.95
returnMsgMethod · 0.80
selectMethod · 0.45
whereMethod · 0.45
MMethod · 0.45
joinMethod · 0.45
loadsMethod · 0.45

Tested by

no test coverage detected