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

Method _get_project_state

class/projectModel/pythonModel.py:1668–1707  ·  view source on GitHub ↗

获取项目详情信息 @author baozi <202-02-22> @param: project_info ( dict ): 项目详情 @return : 项目详情的列表

(self, project_info)

Source from the content-addressed store, hash-verified

1666 return data
1667
1668 def _get_project_state(self, project_info):
1669 """获取项目详情信息
1670 @author baozi <202-02-22>
1671 @param:
1672 project_info ( dict ): 项目详情
1673 @return : 项目详情的列表
1674 """
1675 if not isinstance(project_info['project_config'], dict):
1676 project_info['project_config'] = json.loads(project_info['project_config'])
1677
1678 pyenv = self.environment_manager.get_env_py_path(
1679 project_info['project_config'].get("python_bin", project_info['project_config']["vpath"])
1680 )
1681 if pyenv:
1682 project_info["shell_active"] = self.get_active_shell(project_info["name"], pyenv)
1683 project_info["pyenv_data"] = pyenv.to_dict()
1684 else:
1685 project_info["shell_active"] = ""
1686 project_info["pyenv_data"] = {}
1687
1688 project_info["project_config"]["prep_status"] = self.prep_status(project_info['project_config'])
1689 if project_info["project_config"]["stype"] == "python":
1690 project_info["config_file"] = None
1691 elif project_info["project_config"]["stype"] == "uwsgi":
1692 project_info["config_file"] = '{}/uwsgi.ini'.format(project_info["project_config"]["path"])
1693 else:
1694 project_info["config_file"] = '{}/gunicorn_conf.py'.format(project_info["project_config"]["path"])
1695 pids = self.get_project_run_state(project_info["name"])
1696 if not pids:
1697 project_info['run'], project_info['status'], project_info["project_config"]["status"] = False, 0, 0
1698 project_info["listen"] = []
1699 else:
1700 project_info['run'], project_info['status'], project_info["project_config"]["status"] = True, 1, 1
1701 mem, cpu = self.get_mem_and_cpu(pids)
1702 project_info.update({"cpu": cpu, "mem": mem})
1703 project_info["listen"] = self._list_listen(pids)
1704 project_info["pids"] = pids
1705 for i in ("start_sh", "stop_sh", "check_sh"):
1706 if i in project_info["project_config"]:
1707 project_info["project_config"].pop(i)
1708
1709 def get_active_shell(self, p_name, pyenv) -> str:
1710 pyenv.use2project(p_name)

Callers 2

GetProjectListMethod · 0.95
GetProjectInfoMethod · 0.95

Calls 12

get_active_shellMethod · 0.95
prep_statusMethod · 0.95
get_project_run_stateMethod · 0.95
get_mem_and_cpuMethod · 0.95
_list_listenMethod · 0.95
get_env_py_pathMethod · 0.80
loadsMethod · 0.45
getMethod · 0.45
to_dictMethod · 0.45
formatMethod · 0.45
updateMethod · 0.45
popMethod · 0.45

Tested by

no test coverage detected