ops_interface/web.py
2020-03-20 15:30:42 +08:00

105 lines
3.6 KiB
Python

# -*- coding: utf-8 -*-
# myops 通用接口
# python web.py --port=6013
import tornado.ioloop
import tornado.web
import tornado.options
from tornado import gen
from myops.mylog import define_logger
import logging
from config.config import *
import pdb
from data_channel.gamelog_external import Build_Gamelog_Config
from data_channel.mp2shushu import Mp2shushu
from deploy.deploy_keys import DeployKeys
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.")
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') == 'clear_redis':
yield self._selfclear_redis()
elif self.get_query_argument('c') == 'Ops' and self.get_query_argument('a') == 'user_online':
yield self._user_online()
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):
# if self.get_query_argument('c') == 'Ops' and self.get_query_argument('a') == 'upJumpRecording':
# self._selfupJumpRecording()
def _user_online(self):
post_data = self.request.body_arguments
post_data = {x: post_data.get(x)[0].decode("utf-8") for x in post_data.keys()}
if not post_data:
post_data = self.request.body.decode('utf-8')
post_data = json.loads(post_data)
# param = self.request.body.decode('utf-8')
# prarm = json.loads(param)
log.info(f"get user_online prarm was {post_data}")
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": ''})
def make_app():
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()