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

Method SaveConfFile

class/projectModel/pythonModel.py:2166–2217  ·  view source on GitHub ↗

修改项目配置文件信息 @author baozi <202-03-08> @param: get ( dict ): 用户请求信息 包含name,data,encoding @return 文件信息

(self, get)

Source from the content-addressed store, hash-verified

2164
2165 # 保存文件配置
2166 def SaveConfFile(self, get):
2167 """修改项目配置文件信息
2168 @author baozi <202-03-08>
2169 @param:
2170 get ( dict ): 用户请求信息 包含name,data,encoding
2171 @return 文件信息
2172 """
2173 project_conf = self._get_project_conf(get.name.strip())
2174 if not project_conf:
2175 return public.return_error('项目不存在')
2176
2177 import files
2178
2179 data = get.data
2180 if project_conf["stype"] == "python":
2181 return public.returnMsg(False, "Python启动方式没有配置文件可修改")
2182 elif project_conf["stype"] == "gunicorn":
2183 get.path = project_conf["path"] + "/gunicorn_conf.py"
2184 flag, changes = self.__get_gunicorn_config_from_file(data, project_conf)
2185 if not flag:
2186 return public.returnMsg(False, changes)
2187 else:
2188 get.path = project_conf["path"] + "/uwsgi.ini"
2189 flag, changes = self.__get_uwsgi_config_from_file(data, project_conf)
2190 if not flag:
2191 return public.returnMsg(False, changes)
2192
2193 project_conf.update(changes)
2194
2195 f = files.files()
2196 get.encoding = "utf-8"
2197 result = f.SaveFileBody(get)
2198 if not result["status"]:
2199 return public.returnMsg(False, "保存失败")
2200
2201 # 尝试重启项目
2202 msg = ''
2203 if not self.__stop_project(project_conf, reconstruction=True):
2204 msg = "修改成功,但尝试重启时,项目停止失败"
2205 if not self.__start_project(project_conf, reconstruction=True):
2206 msg = "修改成功,但尝试重启时,项目启动失败"
2207
2208 pdata = {
2209 "project_config": json.dumps(project_conf)
2210 }
2211 public.M('sites').where('name=?', (get.name.strip(),)).update(pdata)
2212 public.WriteLog(self._log_name, 'Python项目{}, 修改了启动配置项'.format(get.name.strip()))
2213
2214 if msg:
2215 return public.returnMsg(False, msg)
2216
2217 return public.returnMsg(True, "修改成功")
2218
2219 # ———————————————————————————————————————————
2220 # Nginx 与 Apache 相关的设置内容(包含SSL) |

Callers

nothing calls this directly

Calls 12

_get_project_confMethod · 0.95
__stop_projectMethod · 0.95
__start_projectMethod · 0.95
returnMsgMethod · 0.80
SaveFileBodyMethod · 0.80
updateMethod · 0.45
dumpsMethod · 0.45
whereMethod · 0.45
MMethod · 0.45
formatMethod · 0.45

Tested by

no test coverage detected