118 lines
4.2 KiB
Python
118 lines
4.2 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()
|
|
if self.get_query_argument('c') == 'Ops' and self.get_query_argument('a') == 'user_online':
|
|
print(f"get user_online get")
|
|
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):
|
|
# print(f"post {self.get_argument()}")
|
|
# log.info(f"get requests {self.request.body_arguments}")
|
|
# if self.get_query_argument('c') == 'Ops' and self.get_query_argument('a') == 'user_online':
|
|
# print(f"get user_online get")
|
|
# self._user_online()
|
|
|
|
def _user_online(self):
|
|
# post_data = self.request.body_arguments
|
|
# print(post_data)
|
|
# 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)
|
|
post_data = {}
|
|
# zone_id=10000&number=0&sign=de2e4303b3a4154a9a813a44ecd645f5&channel_id=0&game_id=5213
|
|
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'
|
|
# 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()
|