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

Method get_project_stat

class/projectModel/nodejsModel.py:2021–2072  ·  view source on GitHub ↗

@name 获取项目状态信息 @author hwliang<2021-08-09> @param project_info 项目信息 @return list

(self,project_info)

Source from the content-addressed store, hash-verified

2019
2020
2021 def get_project_stat(self,project_info):
2022 ''&#x27;
2023 @name 获取项目状态信息
2024 @author hwliang<2021-08-09>
2025 @param project_info<dict> 项目信息
2026 @return list
2027 ''&#x27;
2028 project_info['project_config'] = json.loads(project_info['project_config'])
2029 project_info['load_info'] = {}
2030 if ("pm2_name" in project_info['project_config'] and
2031 "project_type" in project_info['project_config'] and
2032 project_info['project_config']["project_type"] == "pm2") or "pm2" in project_info['project_config']['project_script']:
2033 from mod.project.nodejs.pm2Mod import main
2034 pm2_list = main().get_jlist()
2035 project_info['run'] = False
2036 pm2_name = project_info['project_config'].get("pm2_name", project_info['name'])
2037 pm2_pids = []
2038 for pm2_info in pm2_list:
2039 if pm2_info.get("name") in ("pm2-sysmonit", "pm2-logrotate"):
2040 continue
2041 env_projectname = ""
2042 if "pm2_env" in pm2_info and "NODE_PROJECT_NAME" in pm2_info["pm2_env"]:
2043 env_projectname = pm2_info["pm2_env"]["NODE_PROJECT_NAME"]
2044 if pm2_name != pm2_info.get("name") and pm2_name != env_projectname:
2045 continue
2046 project_info['run'] = pm2_info.get("pm2_env").get("status") == "online"
2047 if project_info['run']:
2048 pm2_pids.append(pm2_info.get("pid"))
2049 break
2050 project_info['load_info'] = self.get_pm2_load_info_new(pm2_pids)
2051 else:
2052 project_info['run'] = self.get_project_run_state(project_name=project_info['name'])
2053 if project_info['run']:
2054 project_info['load_info'] = self.get_project_load_info(project_name=project_info['name'])
2055
2056 project_info['ssl'] = self.get_ssl_end_date(project_name=project_info['name'])
2057 project_info['listen'] = []
2058 project_info['listen_ok'] = True
2059 if project_info['load_info']:
2060 for pid in project_info['load_info'].keys():
2061 if not 'connections' in project_info['load_info'][pid]:
2062 project_info['load_info'][pid]['connections'] = []
2063 for conn in project_info['load_info'][pid]['connections']:
2064 if not conn['status'] == 'LISTEN': continue
2065 if not conn['local_port'] in project_info['listen']:
2066 project_info['listen'].append(conn['local_port'])
2067 if project_info['listen']:
2068 if project_info['project_config']['port'] is None:
2069 project_info['project_config']['port'] = project_info['listen'][0]
2070 project_info['listen_ok'] = project_info['project_config']['port'] in project_info['listen']
2071
2072 return project_info
2073
2074 def get_project_state(self,project_name):
2075 ''&#x27;

Callers 2

get_project_listMethod · 0.95
get_project_infoMethod · 0.95

Calls 10

get_pm2_load_info_newMethod · 0.95
get_project_run_stateMethod · 0.95
get_project_load_infoMethod · 0.95
get_ssl_end_dateMethod · 0.95
mainClass · 0.90
get_jlistMethod · 0.80
loadsMethod · 0.45
getMethod · 0.45
appendMethod · 0.45
keysMethod · 0.45

Tested by

no test coverage detected