diff --git a/web.py b/web.py index 76c6f49..ee9e142 100644 --- a/web.py +++ b/web.py @@ -19,108 +19,104 @@ from deploy.clear_service_data import ClearService from online.online_data import OnlineData2mysql import json - define_logger("ops_interface.log") log = logging.getLogger(__name__) -tornado.options.define("port", default=interface_port, - type=int, help="run server on the given port.") +tornado.options.define("port", default=interface_port, type=int, help="run server on the given port.") class DispatchHandler(tornado.web.RequestHandler): - @gen.coroutine - def get(self): - if self.get_query_argument('c') == 'Ops' and self.get_query_argument('a') == 'sync_log_conf': - print("start sync_log_conf! ") - self._selfgamelogexternal() - elif self.get_query_argument('c') == 'Ops' and self.get_query_argument('a') == 'mp2ss': - yield self._selfmp2ss() - elif self.get_query_argument('c') == 'Ops' and self.get_query_argument('a') == 'user_online': - #print(f"get user_online get") - yield self._user_online() - elif self.get_query_argument('c') == 'Ops' and self.get_query_argument('a') == 'clear_redis': - yield self._selfclear_redis() - elif self.get_query_argument('c') == 'Deploy' and self.get_query_argument('a') == 'keys': - yield self._selfdeploykeys() - else: - self.write("pls check args!") - - @gen.coroutine - def post(self): - data = json.loads(self.request.body) - print(data) - if data.get('event_name', None) == 'tag_push': - yield self._git_webhook() - else: - self.write("pls check args!") - - def _git_webhook(self): - token = self.request.headers.get('X-Gitlab-Token', None) - if token == "kingsome_devops_937711": - name = json.loads(self.request.body).get( - 'project', None).get('name', None) - branch = json.loads(self.request.body).get( - 'project', None).get('default_branch', None) - if branch == "master": - print("stat deploy git with {name}!".format(name=name)) - d = DeployGit(name) - d.run() - else: - self.write("pls check args {name} {branch}!".format( - name=name, branch=branch)) - else: - self.write("{token} not in define!".format(token=token)) - - def _user_online(self): - post_data = {} - post_data['zone_id'] = self.get_query_argument('zone_id') - post_data['number'] = self.get_query_argument('number') - post_data['channel_id'] = self.get_query_argument('channel_id') - post_data['game_id'] = self.get_query_argument('game_id') - post_data['gamename'] = 'wjtx' - aa = OnlineData2mysql(post_data) - aa.run() - - def _selfdeploykeys(self): - try: - project = self.get_query_argument('project') - dk = DeployKeys(project) - dk.run() - except Exception: - log.error(f"deploy keys with {project} failed", exc_info=True) - - def _selfclear_redis(self): - try: - accountid = self.get_query_argument('accountid') - cc = ClearService(accountid) - cc.clear_rediskey() - except Exception: - log.error(f"clear keys with {accountid} failed", exc_info=True) - - def _selfgamelogexternal(self): - try: - cc = Build_Gamelog_Config() - cc.run() - except Exception: - return self.write({'errcode': 2, "errmsg": 'Failed'}) - return self.write({'errcode': 0, "errmsg": ''}) - - def _selfmp2ss(self): - log.info("start mp2ss") - try: - ss = Mp2shushu(2001, 6001) - ss.run() - except Exception: - return self.write({'errcode': 2, "errmsg": 'Failed'}) - return self.write({'errcode': 0, "errmsg": ''}) + @gen.coroutine + def get(self): + if self.get_query_argument('c') == 'Ops' and self.get_query_argument('a') == 'sync_log_conf': + print("start sync_log_conf! ") + self._selfgamelogexternal() + elif self.get_query_argument('c') == 'Ops' and self.get_query_argument('a') == 'mp2ss': + yield self._selfmp2ss() + elif self.get_query_argument('c') == 'Ops' and self.get_query_argument('a') == 'user_online': + # print(f"get user_online get") + yield self._user_online() + elif self.get_query_argument('c') == 'Ops' and self.get_query_argument('a') == 'clear_redis': + yield self._selfclear_redis() + elif self.get_query_argument('c') == 'Deploy' and self.get_query_argument('a') == 'keys': + yield self._selfdeploykeys() + else: + self.write("pls check args!") + + @gen.coroutine + def post(self): + data = json.loads(self.request.body) + print(data) + if data.get('event_name', None) == 'tag_push': + yield self._git_webhook() + else: + self.write("pls check args!") + + def _git_webhook(self): + token = self.request.headers.get('X-Gitlab-Token', None) + if token == "kingsome_devops_937711": + name = json.loads(self.request.body).get('project', None).get('name', None) + branch = json.loads(self.request.body).get('project', None).get('default_branch', None) + if branch == "master": + print("stat deploy git with {name}!".format(name=name)) + d = DeployGit(name) + d.run() + else: + self.write("pls check args {name} {branch}!".format(name=name, branch=branch)) + else: + self.write("{token} not in define!".format(token=token)) + + def _user_online(self): + post_data = {} + post_data['zone_id'] = self.get_query_argument('zone_id') + post_data['number'] = self.get_query_argument('number') + post_data['channel_id'] = self.get_query_argument('channel_id') + post_data['game_id'] = self.get_query_argument('game_id') + post_data['gamename'] = 'wjtx' + aa = OnlineData2mysql(post_data) + log.info(f"get {post_data}") + aa.run() + + def _selfdeploykeys(self): + try: + project = self.get_query_argument('project') + dk = DeployKeys(project) + dk.run() + except Exception: + log.error(f"deploy keys with {project} failed", exc_info=True) + + def _selfclear_redis(self): + try: + accountid = self.get_query_argument('accountid') + cc = ClearService(accountid) + cc.clear_rediskey() + except Exception: + log.error(f"clear keys with {accountid} failed", exc_info=True) + + def _selfgamelogexternal(self): + try: + cc = Build_Gamelog_Config() + cc.run() + except Exception: + return self.write({'errcode': 2, "errmsg": 'Failed'}) + return self.write({'errcode': 0, "errmsg": ''}) + + def _selfmp2ss(self): + log.info("start mp2ss") + try: + ss = Mp2shushu(2001, 6001) + ss.run() + except Exception: + return self.write({'errcode': 2, "errmsg": 'Failed'}) + return self.write({'errcode': 0, "errmsg": ''}) def make_app(): - return tornado.web.Application([(r"/webapp/index[\.]php", DispatchHandler)]) + return tornado.web.Application([(r"/webapp/index[\.]php", DispatchHandler)]) if __name__ == "__main__": - print('start!') - tornado.options.parse_command_line() - app = make_app() - app.listen(tornado.options.options.port) - tornado.ioloop.IOLoop.current().start() + print('start!') + tornado.options.parse_command_line() + app = make_app() + app.listen(tornado.options.options.port) + tornado.ioloop.IOLoop.current().start()