Esempio n. 1
0
    def post(self):
        login_user = self.get_login_user()
        if not login_user:
            return
        if not login_user.user_right & UserRight.MANUAL_START:
            self.redirect("/")
            return

        a_dict = dict()
        a_dict['success'] = False
        a_dict['content'] = list()
        a_dict['item_count'] = 0

        Logger.info(json.dumps(self.request.arguments, ensure_ascii=False), self.request.uri)
        user_email = self.get_argument("user_email")
        off_set = self.get_argument("off_set")
        limit = self.get_argument("limit")
        start_time = self.get_argument('start_time')
        end_time = self.get_argument('end_time')
        if not start_time or not end_time:
            self.write(json.dumps(a_dict, ensure_ascii=False))
            return
        start_time = float(start_time)
        end_time = float(end_time)

        text = DbOperator.query_start_history(user_email, off_set, limit, start_time, end_time)
        self.write(text)
Esempio n. 2
0
    def post(self):
        login_user = self.get_login_user()
        if not login_user:
            return
        Logger.info(json.dumps(self.request.arguments, ensure_ascii=False), self.request.uri)
        room_name = self.get_argument('room_name')
        room_pwd = self.get_argument('room_pwd')
        rooter_name = self.get_argument('rooter_name')
        rooter_pwd = self.get_argument('rooter_pwd')
        wifi_name = self.get_argument('wifi_name')
        wifi_pwd = self.get_argument('wifi_pwd')
        electric_date = self.get_argument('electric_date')
        electric_fee = self.get_argument('electric_fee')
        water_date = self.get_argument('water_date')
        water_fee = self.get_argument('water_fee')
        gas_date = self.get_argument('gas_date')
        gas_fee = self.get_argument('gas_fee')
        net_date = self.get_argument('net_date')
        net_fee = self.get_argument('net_fee')
        room_desc = self.get_argument('room_desc')

        a_dict = dict()
        if not room_name:
            a_dict['code'] = 1
            a_dict['msg'] = 'Room name is empty'
            self.write(json.dumps(a_dict, ensure_ascii=False))
            return
        user_id = self.get_secure_cookie('user_id')
        code, msg = DbOperator.insert_one_room(user_id, room_name, room_pwd, rooter_name, rooter_pwd, wifi_name, wifi_pwd,
                                               electric_date, electric_fee, water_date, water_fee,
                                               gas_date, gas_fee, net_date, net_fee, room_desc)
        a_dict['code'] = code
        a_dict['msg'] = msg
        self.write(json.dumps(a_dict, ensure_ascii=False))
Esempio n. 3
0
 def get(self):
     login_user = self.get_login_user()
     if not login_user:
         return
     Logger.info(json.dumps(self.request.arguments, ensure_ascii=False), self.request.uri)
     json_text = DbOperator.query_plats()
     self.write(json_text)
Esempio n. 4
0
 def post(self):
     login_user = self.get_login_user()
     if not login_user:
         return
     Logger.info(json.dumps(self.request.arguments, ensure_ascii=False), self.request.uri)
     room_id = self.get_argument('room_id')
     states = self.get_argument('states')
     json_text = DbOperator.save_room_states(room_id, states)
     self.write(json_text)
Esempio n. 5
0
 def get(self):
     login_user = self.get_login_user()
     if not login_user:
         return
     Logger.info(json.dumps(self.request.arguments, ensure_ascii=False), self.request.uri)
     room_id = self.get_argument('room_id')
     start_dt = self.get_argument('start_dt')
     end_dt = self.get_argument('end_dt')
     json_text = DbOperator.query_room_state(room_id, start_dt, end_dt)
     self.write(json_text)
Esempio n. 6
0
 def post(self):
     login_user = self.get_login_user()
     if not login_user:
         return
     service_name = self.get_argument("service_name")
     off_set = self.get_argument("off_set")
     limit = self.get_argument("limit")
     Logger.info(json.dumps(self.request.arguments, ensure_ascii=False), self.request.uri)
     text = DbOperator.query_all_monitor_base(service_name, off_set, limit)
     self.write(text)
Esempio n. 7
0
 def get(self, *args, **kwargs):
     login_user = self.get_login_user()
     if not login_user:
         return
     Logger.info(json.dumps(self.request.arguments, ensure_ascii=False), self.request.uri)
     room_id = self.get_argument('room_id', None)
     room_name = DbOperator.query_room_by_id(room_id)
     if not room_name:
         self.render('404.html')
         return
     self.render('order/add_order.html', login_user=login_user, room_id=room_id, room_name=room_name)
Esempio n. 8
0
 def post(self):
     login_user = self.get_login_user()
     if not login_user:
         return
     if not login_user.user_right & UserRight.USER_MANAGER:
         self.redirect("/")
         return
     Logger.info(json.dumps(self.request.arguments, ensure_ascii=False), self.request.uri)
     user_id_list = self.get_argument("user_id_list")
     text = DbOperator.delete_users(user_id_list)
     self.write(text)
Esempio n. 9
0
 def post(self):
     login_user = self.get_login_user()
     if not login_user:
         return
     if not login_user.user_right & UserRight.EDIT_MANAGER:
         self.redirect("/")
         return
     Logger.info(json.dumps(self.request.arguments, ensure_ascii=False), self.request.uri)
     service_id = self.get_argument('service_id')
     text = DbOperator.delete_monitor_detail(service_id)
     self.write(text)
Esempio n. 10
0
 def post(self):
     login_user = self.get_login_user()
     if not login_user:
         return
     if not login_user.user_right & UserRight.EDIT_MANAGER:
         self.redirect("/")
         return
     ssh_user = self.get_argument("ssh_user")
     ssh_ip = self.get_argument("ssh_ip")
     ssh_port = self.get_argument("ssh_port")
     text = DbOperator.add_one_machine(ssh_user, ssh_ip, ssh_port)
     self.write(text)
Esempio n. 11
0
 def post(self):
     login_user = self.get_login_user()
     if not login_user:
         return
     Logger.info(json.dumps(self.request.arguments, ensure_ascii=False), self.request.uri)
     room_name = self.get_argument('room_name')
     sort_column = self.get_argument("sort_column")
     desc_order = self.get_argument("desc_order")
     off_set = self.get_argument("off_set")
     limit = self.get_argument("limit")
     user_id = self.get_secure_cookie('user_id')
     text = DbOperator.query_room_list(user_id, room_name, sort_column, desc_order, off_set, limit)
     self.write(text)
Esempio n. 12
0
 def post(self):
     login_user = self.get_login_user()
     if not login_user:
         return
     if not login_user.user_right & UserRight.EDIT_MANAGER:
         self.redirect("/")
         return
     Logger.info(json.dumps(self.request.arguments, ensure_ascii=False), self.request.uri)
     machine = self.get_argument("machine")
     off_set = self.get_argument("off_set")
     limit = self.get_argument("limit")
     text = DbOperator.query_machine_list(machine, off_set, limit)
     self.write(text)
Esempio n. 13
0
 def post(self):
     login_user = self.get_login_user()
     if not login_user:
         return
     if not login_user.user_right & UserRight.USER_MANAGER:
         self.redirect("/")
         return
     user_name = self.get_argument("user_name")
     user_email = self.get_argument("user_email")
     user_pwd = self.get_argument("user_pwd")
     user_right = self.get_argument("user_right")
     text = DbOperator.add_one_user(user_name, user_email, user_pwd, user_right)
     self.write(text)
Esempio n. 14
0
 def get(self):
     login_user = self.get_login_user()
     if not login_user:
         return
     if not login_user.user_right & UserRight.EDIT_MANAGER:
         self.redirect("/")
         return
     Logger.info(json.dumps(self.request.arguments, ensure_ascii=False), self.request.uri)
     service_id = self.get_argument('service_id')
     monitor_detail = DbOperator.query_monitor_detail(service_id)
     all_rely = DbOperator.query_all_monitor_base_v2(service_id)
     all_machine = DbOperator.query_machine_list_v2()
     if monitor_detail is None or all_rely is None or all_machine is None:
         self.redirect('/')
         return
     self.render('monitor/edit_monitor.html',
                 login_user=login_user,
                 base=monitor_detail.base_info,
                 healthy=monitor_detail.healthy_check_list,
                 unhealthy=monitor_detail.unhealthy_check_list,
                 rely_id_set=set([item.id for item in monitor_detail.rely_service_list]),
                 all_rely=all_rely,
                 all_machine=all_machine)
Esempio n. 15
0
 def post(self):
     login_user = self.get_login_user()
     if not login_user:
         return
     if not login_user.user_right & UserRight.EDIT_MANAGER:
         self.redirect("/")
         return
     Logger.info(json.dumps(self.request.arguments, ensure_ascii=False), self.request.uri)
     machine_id = self.get_argument("machine_id")
     ssh_user = self.get_argument("ssh_user")
     ssh_ip = self.get_argument("ssh_ip")
     ssh_port = self.get_argument("ssh_port")
     text = DbOperator.edit_machine(machine_id, ssh_user, ssh_ip, ssh_port)
     self.write(text)
Esempio n. 16
0
    def get(self, *args, **kwargs):
        login_user = self.get_login_user()
        if not login_user:
            return
        Logger.info(json.dumps(self.request.arguments, ensure_ascii=False), self.request.uri)

        api = self.get_argument("api", None)
        if not api:
            self.render('order/order_list.html', login_user=login_user)
            return
        room_name = self.get_argument("room_name", None)
        off_set = self.get_argument("off_set", None)
        limit = self.get_argument("limit", None)
        json_text = DbOperator.query_order_list(room_name, off_set, limit)
        self.write(json_text)
Esempio n. 17
0
    def post(self):
        a_dict = dict()

        user_email = self.get_argument('user_email')
        user_password = self.get_argument('user_password')
        captcha_value = self.get_argument('captcha_value')

        if not user_email or not user_password or not captcha_value:
            a_dict['code'] = 1
            a_dict['msg'] = 'empty input'
            self.write(json.dumps(a_dict, ensure_ascii=False))
            return
        user_email = user_email.strip()
        user_password = user_password.strip()
        captcha_value = captcha_value.strip()

        if captcha_value.lower() != self.get_secure_cookie('captcha_value').lower():
            a_dict['code'] = 2
            a_dict['msg'] = 'captcha error'
            self.write(json.dumps(a_dict, ensure_ascii=False))
            return

        user = DbOperator.get_user_info(user_email)
        if not user:
            a_dict['code'] = 3
            a_dict['msg'] = 'no this user'
            self.write(json.dumps(a_dict, ensure_ascii=False))
            return

        m = hashlib.md5()
        m.update(user_password)
        input_password = m.hexdigest()
        if input_password != user.user_pwd:
            a_dict['code'] = 4
            a_dict['msg'] = 'password error'
            self.write(json.dumps(a_dict, ensure_ascii=False))
            return

        self.set_secure_cookie("user_id", str(user.id), expires_days=None)
        self.set_secure_cookie("user_email", user.user_email, expires_days=None)
        self.set_secure_cookie("user_name", user.user_name, expires_days=None)
        self.set_secure_cookie("user_right", str(user.user_right), expires_days=None)
        self.set_secure_cookie("last_time", str(time.time()), expires_days=None)
        self.set_cookie("page_right", str(user.user_right), expires_days=None)

        a_dict['code'] = 0
        a_dict['msg'] = 'ok'
        self.write(json.dumps(a_dict, ensure_ascii=False))
Esempio n. 18
0
 def post(self):
     if Config.FAKE_LOGIN:
         user_email = self.get_argument("user_email")
         db_user = DbOperator.get_user_info(user_email)
         if not db_user:
             self.render("user/fake_login.html")
             return
         self.set_secure_cookie("user_email", db_user.user_email, expires_days=None)
         if db_user.user_name:
             self.set_secure_cookie("user_name", db_user.user_name, expires_days=None)
         else:
             self.set_secure_cookie("user_name", db_user.user_email, expires_days=None)
         self.set_secure_cookie("user_right", str(db_user.user_right), expires_days=None)
         self.set_secure_cookie("last_time", str(time.time()), expires_days=None)
         self.set_cookie("page_right", str(db_user.user_right), expires_days=None)
         self.redirect("/")
Esempio n. 19
0
 def post(self):
     login_user = self.get_login_user()
     if not login_user:
         return
     a_dict = dict()
     old_pwd = self.get_argument('old_pwd')
     new_pwd = self.get_argument('new_pwd')
     if not new_pwd:
         a_dict['code'] = 1
         a_dict['msg'] = 'New password is empty'
         self.write(json.dumps(a_dict, ensure_ascii=False))
         return
     code, msg = DbOperator.change_user_pwd(login_user.user_email, old_pwd, new_pwd)
     a_dict['code'] = code
     a_dict['msg'] = msg
     self.write(json.dumps(a_dict, ensure_ascii=False))
Esempio n. 20
0
 def get(self):
     login_user = self.get_login_user()
     if not login_user:
         return
     Logger.info(json.dumps(self.request.arguments, ensure_ascii=False), self.request.uri)
     service_id = self.get_argument('service_id')
     monitor_detail = DbOperator.query_monitor_detail(service_id)
     if not monitor_detail:
         self.redirect('/')
         return
     self.render('monitor/view_monitor.html',
                 login_user=login_user,
                 base=monitor_detail.base_info,
                 healthy=monitor_detail.healthy_check_list,
                 unhealthy=monitor_detail.unhealthy_check_list,
                 rely=monitor_detail.rely_service_list)
Esempio n. 21
0
 def post(self):
     login_user = self.get_login_user()
     if not login_user:
         return
     Logger.info(json.dumps(self.request.arguments, ensure_ascii=False), self.request.uri)
     user_name = self.get_argument('user_name')
     user_count = DbOperator.get_user_count(user_name)
     a_dict = dict()
     if user_count is not None:
         a_dict['code'] = 0
         a_dict['msg'] = 'OK'
         a_dict['count'] = user_count
     else:
         a_dict['code'] = 1
         a_dict['msg'] = 'Internal error'
         a_dict['count'] = -1
     self.write(json.dumps(a_dict, ensure_ascii=False))
Esempio n. 22
0
 def post(self, *args, **kwargs):
     login_user = self.get_login_user()
     if not login_user:
         return
     Logger.info(json.dumps(self.request.arguments, ensure_ascii=False), self.request.uri)
     room_id = self.get_argument('room_id')
     plat_id = self.get_argument('plat_id')
     checkin_date = self.get_argument('check_in_date')
     checkout_date = self.get_argument('check_out_date')
     user_name = self.get_argument('user_name')
     order_fee = self.get_argument('order_fee')
     person_count = self.get_argument('person_count')
     phone = self.get_argument('phone')
     wechat = self.get_argument('wechat')
     order_desc = self.get_argument('order_desc')
     json_text = DbOperator.insert_one_order(room_id, plat_id, checkin_date, checkout_date, user_name, order_fee, person_count, phone, wechat,
                                             order_desc)
     self.write(json_text)
Esempio n. 23
0
    def post(self):
        login_user = self.get_login_user()
        if not login_user:
            return
        Logger.info(json.dumps(self.request.arguments, ensure_ascii=False), self.request.uri)

        a_dict = dict()
        user_name = self.get_argument('user_name')
        if not user_name:
            a_dict['code'] = 1
            a_dict['msg'] = 'User name is empty'
            self.write(json.dumps(a_dict, ensure_ascii=False))
            return
        code = DbOperator.change_user_name(login_user.user_email, user_name)
        if code == 0:
            self.set_secure_cookie("user_name", user_name, expires_days=None)
            a_dict['code'] = 0
            a_dict['msg'] = 'OK'
        else:
            a_dict['code'] = 2
            a_dict['msg'] = 'Internal error'
        self.write(json.dumps(a_dict, ensure_ascii=False))
Esempio n. 24
0
    def get(self):
        if Config.FAKE_LOGIN:
            # 本机fake登录
            self.redirect('/fake_login')
            return

        # 线上真实登录
        Logger.info(json.dumps(self.request.arguments, ensure_ascii=False), self.request.uri)
        user_email = self.get_current_user()
        if user_email:
            if self.check_login_valid():
                self.redirect("/")
                return

        code_from_auth = self.get_argument('code', None)
        if not code_from_auth:
            redirect_url = Config.OAUTH_AUTH_URL
            redirect_url += '?appid=%s' % Config.OAUTH_APP_ID
            redirect_url += '&response_type=code'
            redirect_url += '&redirect_uri=%s' % quote(Config.OAUTH_REDIRECT_URL)
            redirect_url += '&scope=user_info'
            redirect_url += '&state=test'
            self.redirect(redirect_url)
            return

        status, content = Login.get_access_token(code_from_auth)
        if status != 200:
            self.write(content)
            return
        Logger.info("get_access_token: [%s]" % content)

        try:
            a_dict = json.loads(content)
        except:
            Logger.error("parse token error: content[%s]" % content)
            self.write(content)
            return

        access_token = a_dict.get("access_token", None)
        openid = a_dict.get("openid", None)
        status, content = Login.get_user_info(access_token, openid)
        if status != 200:
            self.write(content)
            return
        Logger.info("get_user_info: [%s]" % content)

        try:
            a_dict = json.loads(content)
        except:
            Logger.error("parse user_info error: contnet[%s]" % content)
            self.write(content)
            return

        user_name = a_dict.get("name")
        user_email = a_dict.get("email")
        db_user = DbOperator.get_user_info(user_email)
        if not db_user:
            self.redirect('/refuse')
            return

        # 保存session
        self.set_secure_cookie("user_email", user_email, expires_days=None)
        self.set_secure_cookie("user_name", user_name, expires_days=None)
        self.set_secure_cookie("user_right", str(db_user.user_right), expires_days=None)
        self.set_secure_cookie("last_time", str(time.time()), expires_days=None)
        self.set_cookie("page_right", str(db_user.user_right), expires_days=None)

        # 重向定
        self.redirect("/")
Esempio n. 25
0
    def __get_pie_column_data(self, start_date, end_date):
        a_dict = DbOperator.query_network_list('', 0, -1)

        a_network_list = list()
        for item in a_dict['content']:
            a_network_list.append(item['network_name'])

        start_imp_list = list()
        end_imp_list = list()

        start_clk_list = list()
        end_clk_list = list()

        start_ctr_list = list()
        end_ctr_list = list()

        for network in a_network_list:
            imp, clk = self.get_day_impression_click(network, start_date)
            start_imp_list.append([network, imp])
            start_clk_list.append([network, clk])
            start_ctr_list.append(
                [network, clk * 100.0 / imp if imp > 0 else 0])

        for network in a_network_list:
            imp, clk = self.get_day_impression_click(network, end_date)
            end_imp_list.append([network, imp])
            end_clk_list.append([network, clk])
            end_ctr_list.append([network, clk * 100.0 / imp if imp > 0 else 0])

        pie_data = dict()
        # start date
        pie_data['start_imp'] = {
            'name': start_date.strftime('%Y年%m月%d日各渠道曝光量占比'),
            'list': self.__handle_pie_list(start_imp_list)
        }
        pie_data['start_clk'] = {
            'name': start_date.strftime('%Y年%m月%d日各渠道点击量占比'),
            'list': self.__handle_pie_list(start_clk_list)
        }

        # end date
        pie_data['end_imp'] = {
            'name': end_date.strftime('%Y年%m月%d日各渠道曝光量占比'),
            'list': self.__handle_pie_list(end_imp_list)
        }
        pie_data['end_clk'] = {
            'name': end_date.strftime('%Y年%m月%d日各渠道点击量占比'),
            'list': self.__handle_pie_list(end_clk_list)
        }

        # column data
        column_data = dict()
        column_data['start_ctr'] = {
            'name': start_date.strftime('%Y年%m月%d日各渠道点击率'),
            'list': self.__handle_column_list(start_ctr_list)
        }
        column_data['end_ctr'] = {
            'name': end_date.strftime('%Y年%m月%d日各渠道点击率'),
            'list': self.__handle_column_list(end_ctr_list)
        }

        return pie_data, column_data
Esempio n. 26
0
def __main__():
    # 设置编码
    reload(sys)
    sys.setdefaultencoding('utf-8')

    # Do nothing
    setting.description()

    # 解析参数
    options.parse_command_line()
    if not Config.init(options.conf):
        print 'parse %s error' % options.conf
        return
    if not Config.check():
        return

    # 设置程序名称
    setproctitle.setproctitle('MTMonitorPlatServer')

    # 不要输出日志到屏幕
    logging.getLogger("tornado.access").propagate = False
    logging.getLogger("tornado.application").propagate = False
    logging.getLogger("tornado.general").propagate = False
    logging.getLogger("process").propagate = False
    logging.getLogger("report").propagate = False
    logging.getLogger("third").propagate = False

    # 初始化日志
    Logger.init(Config.LOG_ENV, Config.LOG_TARGET, Config.LOG_NAME, Config.LOG_SIZE, Config.LOG_COUNT)

    # 重定向tornado自带日志
    logging.getLogger("tornado.access").addHandler(Logger.get_third_handler())
    logging.getLogger("tornado.application").addHandler(Logger.get_third_handler())
    logging.getLogger("tornado.general").addHandler(Logger.get_third_handler())

    # 设置request日志
    logging.getLogger("requests").setLevel(logging.WARNING)

    # 打印启动日志
    print "server is starting..."
    Logger.info("server is starting...")
    Logger.info("config.listen_port: %s" % Config.LISTEN_PORT)
    Config.log_config()

    # 初始化DB连接参数
    if not DbOperator.init():
        return

    app = tornado.web.Application(
        [
            (r'/', RoomList),
            (r'/refuse', RefuseHandler),
            (r'/login', LoginHandler),
            (r'/logout', LogoutHandler),
            (r'/user_list', UserListHandler),
            (r'/api_add_user', AddUserHandler),
            (r'/api_del_user', DeleteUserHandler),
            (r'/api_edit_user', EditUserHandler),
            (r'/api_query_user', QueryUserListHandler),
            (r'/personal', PersonalHandler),
            (r'/get_user_count', GetUserCount),
            (r'/api_change_user_name', ApiChangeUserName),
            (r'/api_change_user_pwd', ApiChangeUserPwd),
            (r'/room_plat', RoomPlat),
            (r'/add_room', AddRoom),
            (r'/room_list', RoomList),
            (r'/edit_room', EditRoom),
            (r'/room_state', RoomState),
            (r'/captcha', Captcha),
            (r'/order', Order),
            (r'/order_list', OrderList),
            (r'/dis', DisHandler),
        ],
        cookie_secret=Config.LOGIN_COOKIE_SECRET,
        template_path=os.path.join(os.path.dirname(__file__), "templates"),
        static_path=os.path.join(os.path.dirname(__file__), "static"),
        xsrf_cookies=False,
        debug=Config.DEBUG_MODE
    )
    # http_server = tornado.httpserver.HTTPServer(app, ssl_options={
    #     'certfile': '/Users/liyanguo/cluster/centos/work/room_manager/key/ssl.crt',
    #     'keyfile': '/Users/liyanguo/cluster/centos/work/room_manager/key/ssl.key'
    # })
    # http_server.listen(433)
    app.listen(Config.LISTEN_PORT, Config.LISTEN_HOST)
    now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
    print '%s starting' % now
    tornado.ioloop.IOLoop.current().start()