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

Method multi_remove_project

mod/project/java/projectMod.py:3169–3228  ·  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

3167 return json_response(False, "项目类型错误")
3168
3169 def multi_remove_project(self, get):
3170 """
3171 @name 批量删除项目
3172 @author baozi<2023-3-2>
3173 @param get<dict_obj>{
3174 project_names: list[string] <项目名称>所组成的列表
3175 }
3176 @return dict
3177 """
3178 try:
3179 project_names = get.project_names
3180 if isinstance(project_names, list):
3181 project_names = [i.strip() for i in project_names]
3182 else:
3183 project_names = []
3184 except:
3185 return json_response(False, "参数错误")
3186 if not project_names:
3187 return json_response(False, "未选中要删除的站点")
3188
3189 projects = public.M('sites').where(
3190 'project_type=? AND name in ({})'.format(",".join(["?"] * len(project_names))),
3191 ('Java', *project_names)
3192 ).select()
3193
3194 if not projects:
3195 return public.returnMsg(False, "未选中要删除的站点")
3196
3197 _duli, _neizh, _springboot = [], [], []
3198 for project in projects:
3199 project['project_config'] = json.loads(project['project_config'])
3200 if project['project_config']['java_type'] == 'duli':
3201 _duli.append(project)
3202 elif project['project_config']['java_type'] == 'neizhi':
3203 _neizh.append(project)
3204 elif project['project_config']['java_type'] == 'springboot':
3205 _springboot.append(project)
3206
3207 # 执行每种删除的独特操作
3208 if _duli:
3209 self._multi_remove_duli(_duli)
3210 if _neizh:
3211 self._multi_remove_neizhi(_neizh)
3212 if _springboot:
3213 self._multi_remove_springboot(_springboot)
3214
3215 # 清除Nginx, Apache 配置文件,并重起服务
3216 for i in projects:
3217 remove_sites_service_config(i["name"], config_prefix = "java_")
3218
3219 # 从面板数据库删除信息
3220 project_ids = tuple([i["id"] for i in projects])
3221 public.M('domain').where('pid IN ({})'.format(",".join(["?"] * len(projects))), project_ids).delete()
3222 public.M('sites').where('id IN ({})'.format(",".join(["?"] * len(project_ids))), project_ids).delete()
3223 self.write_project_log('批量删除Java项目:[{}]'.format("; ".join([i["name"] for i in projects])))
3224
3225 for project in projects:
3226 self.del_crontab(project["name"])

Callers

nothing calls this directly

Calls 15

_multi_remove_duliMethod · 0.95
_multi_remove_neizhiMethod · 0.95
write_project_logMethod · 0.95
del_crontabMethod · 0.95
json_responseFunction · 0.90
returnMsgMethod · 0.80
selectMethod · 0.45
whereMethod · 0.45
MMethod · 0.45
formatMethod · 0.45

Tested by

no test coverage detected