Пример #1
0
def virtuals():
    virtuals_columns = ['id', 'qufu', 'platform', 'serverid', 'hostname', 'lan_ip', 'wan_ip', 'cpu', 'mem', 'disk', 'master_slave', 'server_id']
    virtuals = db.get_list(virtuals_columns, 'virtuals')
    server_columns = ['id', 'hostname']
    servers = db.get_list(server_columns, 'server')
    servers = dict((server['id'], server['hostname']) for server in servers)
    for virtual in virtuals:
        if virtual['server_id'] in servers.keys():
            virtual['server_id'] = servers[virtual['server_id']]
    return render_template('assets/virtuals/virtuals.html', virtuals=virtuals, display = dis)
Пример #2
0
def cabinet():
    cabinet_columns = ['id', 'name', 'idc_id', 'bandwidth', 'money', 'agreement_date', 'u_num', 'server_num', 'switch_num']
    cabinets = db.get_list(cabinet_columns, 'cabinet')
    idc_columns = ['id', 'name']
    idcs = db.get_list(idc_columns, 'idc')
    idcs = dict((idc['id'],idc['name']) for idc in idcs)
    for cabinet in cabinets:
        if cabinet['idc_id'] in idcs.keys():
            cabinet['idc_id'] = idcs[cabinet['idc_id']]
    return render_template('assets/cabinet/cabinet.html', cabinets=cabinets, display = dis)
Пример #3
0
def get_server():
    columns = ['hostname', 'lan_ip']
    domain_list_tmp = db.get_list(columns, 'virtuals')
    ip_list_tmp = db.get_list(['wan_ip'], 'server')
    domain_list = []
    for x in domain_list_tmp:
        if len(x['hostname'].split('/')) == 2:
            domain_list.append(x['hostname'].split('/')[1] + '.ppweb.com.cn')
        else:
            domain_list.append(x['lan_ip'])
    for y in ip_list_tmp:
        domain_list.append(y['wan_ip'])
    return domain_list
Пример #4
0
def data_month():
    day = datetime.date.today() + datetime.timedelta(days=-1)
    today = datetime.date.today()
    firt_day = today.replace(day=1)
    lastMonth = (firt_day - datetime.timedelta(days=1)).strftime('%Y-%m')

    if request.args.get('date'):
        date = str(request.args.get('date'))
        year = date[0:4]
        month = date[5:7]
        platform = request.args.get('platform')
    else:
        date = lastMonth
        year = date[0:4]
        month = date[5:7]
        platform = 7

    last_day_month = calendar.monthrange(int(year), int(month))[1]
    where = "data_date=" + "'" + year + '-' + month + '-' + str(
        last_day_month) + "'" + ' and platform=' + str(
            platform) + ' order by qufu'
    datas = db.get_list(columns_day_column, 'data_month', where)

    if len(datas) == 0 and date == lastMonth:
        where = "data_date=" + "'" + str(day) + "'" + ' and platform=' + str(
            platform) + ' order by qufu'
        datas = db.get_list(columns_day_column, 'data_month', where)

    for data in datas:
        data['data_date'] = lastMonth
        if data['platform'] != 21 and data['platform'] != 3:
            data['pay_money'] /= 10.00
            try:
                data['pay_m_gw'] /= 10.00
                data['pay_m_pt'] /= 10.00
            except BaseException as e:
                data['pay_m_gw'] = 0.0
                data['pay_m_pt'] = 0.0
        else:
            try:
                data['pay_m_gw'] /= 11.00
            except BaseException as e:
                data['pay_m_gw'] = 0.0
                data['pay_m_pt'] = 0.0
    return render_template('statistics/data_month.html',
                           datas=datas,
                           date=date,
                           platform=platform,
                           display=dis)
Пример #5
0
def cabinet():
    cabinet_columns = [
        'id', 'name', 'idc_id', 'bandwidth', 'money', 'agreement_date',
        'u_num', 'server_num', 'switch_num'
    ]
    cabinets = db.get_list(cabinet_columns, 'cabinet')
    idc_columns = ['id', 'name']
    idcs = db.get_list(idc_columns, 'idc')
    idcs = dict((idc['id'], idc['name']) for idc in idcs)
    for cabinet in cabinets:
        if cabinet['idc_id'] in idcs.keys():
            cabinet['idc_id'] = idcs[cabinet['idc_id']]
    return render_template('assets/cabinet/cabinet.html',
                           cabinets=cabinets,
                           display=dis)
Пример #6
0
def virtuals():
    virtuals_columns = [
        'id', 'qufu', 'platform', 'serverid', 'hostname', 'lan_ip', 'wan_ip',
        'cpu', 'mem', 'disk', 'master_slave', 'server_id'
    ]
    virtuals = db.get_list(virtuals_columns, 'virtuals')
    server_columns = ['id', 'hostname']
    servers = db.get_list(server_columns, 'server')
    servers = dict((server['id'], server['hostname']) for server in servers)
    for virtual in virtuals:
        if virtual['server_id'] in servers.keys():
            virtual['server_id'] = servers[virtual['server_id']]
    return render_template('assets/virtuals/virtuals.html',
                           virtuals=virtuals,
                           display=dis)
Пример #7
0
def size(cate, page):
    if cate is None:
        cate = 1
    if page is None:
        page = 1
    mms = []
    condition = {}
    select = {'name': 1, 'thumbnail': 1, 'my_url': 1, '_id': 1}
    sort_field = 'rand'
    sort_type  = -1
    mms = db.get_list(cate, select, condition, 2000, page, sort_field, sort_type)
    for mm in mms:
        #print(mm['_id'])
        if 'my_url' not in mm.keys():
            continue
        try: 
            res = requests.get(mm['my_url'])
            if res.status_code != 200:
                continue
            tmpIm = io.BytesIO(res.content)
            im = Image.open(tmpIm)
            width = im.size[0]
            height = im.size[1]
            if width < 100 or height < 200:
                continue
            db.update_colum(cate, mm['_id'], width, height)
        except KeyError:
            print(1)
            continue
        except requests.exceptions.MissingSchema:
            print(2)
            continue
Пример #8
0
def data_download():
    columns_day_headers = [
        '区服', '日期', '新增注册用户数', '登录用户数', '用户登录次数', '付费用户数', '付费次数', '付费用户ARPU',
        '平均在线', '峰值在线', '平均在线ARPU', '登录用户付费转化率', '新增注册用户付费转化率', '充值金额',
        '新增付费用户数'
    ]
    columns_day_download = [
        'qufu', 'data_date', 'new_reg_user_num', 'login_user_num',
        'user_login_num', 'pay_user_num', 'pay_num', 'pay_user_ARPU',
        'avg_online', 'mountain_online', 'avg_online_ARPU',
        'login_user_pay_trans_rate', 'new_reg_user_pay_transe_rate',
        'pay_money', 'new_pay_user_num'
    ]
    s = StringIO()
    s.write('\xEF\xBB\xBF')  #写入BOM,解决EXCEL中文显示乱码
    csv_writer = csv.writer(s)
    csv_writer.writerow(columns_day_headers)
    date = request.args.get('date')
    platform = request.args.get('platform')
    where = "data_date=" + "'" + str(date) + "'" + ' and platform=' + str(
        platform)
    datas = db.get_list(columns_day_column, 'data_day', where)
    for data in datas:
        data.pop('platform')
        data.pop('serverid')
        tmp_list = []
        [tmp_list.append(data[x]) for x in columns_day_download]
        csv_writer.writerow(tmp_list)
    cxt = s.getvalue()
    s.close()
    return cxt, 200, {
        'Content-Type': 'text/csv,charset=utf-8',
        'Content-disposition': 'attachment;filename=%s.csv' % (date)
    }
Пример #9
0
def data_day():
    day = datetime.date.today() + datetime.timedelta(days=-1)
    if request.args.get('date'):
        date = request.args.get('date')
        platform = request.args.get('platform')
    else:
        date = day
        platform = 7
    where = "data_date=" + "'" + str(date) + "'" + ' and platform=' + str(
        platform) + ' order by qufu'
    datas = db.get_list(columns_day_column, 'data_day', where)
    for data in datas:
        if data['platform'] != 21 and data['platform'] != 3:
            data['pay_money'] /= 10.00
            try:
                data['pay_m_gw'] /= 10.00
                data['pay_m_pt'] /= 10.00
            except BaseException as e:
                data['pay_m_gw'] = 0.0
                data['pay_m_pt'] = 0.0
        else:
            try:
                data['pay_m_gw'] /= 11.00
            except BaseException as e:
                data['pay_m_gw'] = 0.0
                data['pay_m_pt'] = 0.0
    return render_template('statistics/data_day.html',
                           datas=datas,
                           date=date,
                           platform=platform,
                           display=dis)
Пример #10
0
def data_total():
    day = datetime.date.today() + datetime.timedelta(days=-1)
    where = "data_date=" + "'" + str(day) + "'"
    datas = db.get_list(data_total_column, 'data_total', where)
    return render_template('statistics/data_total.html',
                           datas=datas,
                           display=dis)
Пример #11
0
def data_day():
    day = datetime.date.today() + datetime.timedelta(days=-1)
    if request.args.get('date'):
        date = request.args.get('date')
        platform = request.args.get('platform')
    else:
        date = day
        platform = 7
    where = "data_date=" + "'" + str(date) + "'" + ' and platform=' + str(platform) + ' order by qufu'
    datas = db.get_list(columns_day_column, 'data_day', where)
    for data in datas:
        if data['platform'] != 21 and data['platform'] != 3:
            data['pay_money'] /= 10.00
            try:
                data['pay_m_gw'] /= 10.00
                data['pay_m_pt'] /= 10.00
            except BaseException as e:
                data['pay_m_gw'] = 0.0
                data['pay_m_pt'] = 0.0
        else:
            try:
                data['pay_m_gw'] /= 11.00
            except BaseException as e:
                data['pay_m_gw'] = 0.0
                data['pay_m_pt'] = 0.0
    return render_template('statistics/data_day.html', datas=datas, date=date, platform=platform, display = dis)
Пример #12
0
def server():
    server_columns = ['id', 'hostname', 'lan_ip', 'wan_ip', 'cpu', 'mem', 'disk', 'virtual_nums', 'virtual_names', 'idc_id', 'cabinet_id']
    servers = db.get_list(server_columns, 'server')
    cabinets = json.loads(cabinetinfo())
    idcs = json.loads(idcinfo())
    for server in servers:
        virtual_nums_columns = ['count(*)']
        where = 'server_id=' +  str(server['id'])
        virtual_nums = json.loads(db.get_one(virtual_nums_columns, where, 'virtuals'))['count(*)']
        server['virtual_nums'] = virtual_nums

        virtual_names_columns = ['qufu']
        try:
            x = json.loads(db.get_one(virtual_names_columns, where, 'virtuals'))
            if isinstance(x, dict):
                names = x['qufu']
            elif isinstance(x, list):
                virtual_names = [ ",".join(i) for i in json.loads(db.get_one(virtual_names_columns, where, 'virtuals'))]
                names = ",".join(virtual_names)
            else:
                print 'not correct type'
            server['virtual_names'] = names
        except BaseException,e:
            print e

        for cabinet in cabinets:
            if cabinet['id'] == server['cabinet_id']:
                server['cabinet_id'] = cabinet['name']

        for idc in idcs:
            if idc['id'] == server['idc_id']:
                server['idc_id'] = idc['name']
Пример #13
0
def idc():
    idc_columns = [
        'id', 'name', 'address', 'adminer', 'phone', 'cabinet_num',
        'switch_num'
    ]
    idcs = db.get_list(idc_columns, 'idc')
    return render_template('assets/idc/idc.html', idcs=idcs, display=dis)
Пример #14
0
def cabinetupdate():
    cabinet_columns = [
        'id', 'name', 'idc_id', 'bandwidth', 'money', 'u_num', 'server_num',
        'switch_num'
    ]
    if request.method == 'GET':
        id = request.args.get('id')
        where = "id=" + id
        data = db.get_one(cabinet_columns, where, 'cabinet')
        return json.dumps(data)
    else:
        data = request.form.to_dict()
        for k, v in data.items():
            if v == '':
                return json.dumps({'code': 1, 'errmsg': '不能为空'})
        where = "id=" + data['id']
        columns = ['id', 'name']
        idcs = db.get_list(columns, 'idc')
        idcs = dict((idc['id'], idc['name']) for idc in idcs)
        for k, v in idcs.items():
            if data['idc_id'] == v:
                data['idc_id'] = k
        util.WriteLog('infoLogger').warning('%s update cabinet_id %s' %
                                            (session['username'], data['id']))
        return json.dumps(db.update(data, where, 'cabinet'))
Пример #15
0
def mongo_monitor():
    servers_columns = ['qufu', 'hostname', 'wan_ip', 'back_num', 'back_name', 'back_size','back_starttime','back_endtime', 'back_used_time', 'server_id', 'refresh_time']
    servers = db.get_list(servers_columns, 'virtuals')
    server_hostname_columns = ['id', 'hostname']
    server_hostname = db.get_list(server_hostname_columns, 'server')
    for hostname in server_hostname:
        for server in servers:
            if server['server_id'] == (hostname['id']):
                server['server_id'] = hostname['hostname']
    new_server = []
    for x in servers:
        if x['back_num'] != 0:
            new_server.insert(0,x)
        else:
            new_server.append(x)
    return render_template('monitor/mongo_monitor.html', servers=new_server, display = dis)
Пример #16
0
def kai_gua():
    columns_gua_headers = ['开挂时间', '大区', 'UID', '昵称', '封禁天数', '封禁原因']
    date = request.args.get('date')
    year = date[0:4]
    month = date[4:6]
    day = date[6:8]
    date = year + '_' + month + '_' + day
    table = 'cheat_log_' + date
    host_column = ['wan_ip']
    host_list = db.get_list(host_column, 'virtuals')
    hosts = []
    [hosts.append(str(host['wan_ip'])) for host in host_list]
    gua_column = ['platform_id', 'server_id', 'uid', 'nick_name', 'param']
    rows = []
    for host in hosts:
        try:
            gua_list = db.get_list(gua_column,
                                   table,
                                   where='reason=3',
                                   host=host,
                                   user='******',
                                   passwd='cygamebh2014',
                                   db='bh_log')
        except BaseException, e:
            print e
        for data in gua_list:
            gua_lists = []
            param = data['param'].split('|')
            start_kaigua = time.localtime(
                float(param[8].split('=')[1].replace(',', '')[:-3]))
            start_kaigua = time.strftime('%Y-%m-%d %H:%M:%S', start_kaigua)
            long_fengjin = float(param[10].split('=')[1].replace(',',
                                                                 '')) / 60 / 24
            data['start_kaigua'] = start_kaigua
            data['long_fengjin'] = long_fengjin
            gua_lists.append(data['start_kaigua'])
            platform_id = data['platform_id']
            server_id = data['server_id']
            where = 'platform=' + str(platform_id) + ' and serverid=' + str(
                server_id)
            qufu = json.loads(db.get_one(['qufu'], where, 'virtuals'))['qufu']
            gua_lists.append(qufu)
            gua_lists.append(data['uid'])
            gua_lists.append(data['nick_name'])
            gua_lists.append(data['long_fengjin'])
            gua_lists.append('透视')
            rows.append(gua_lists)
Пример #17
0
 def deploy(self, json_options):
     option_dict = loads(json_options)
     usernames = db.get_list(option_dict['list'])
     vapp_name = option_dict['vapp_name']
     if usernames is None or usernames == []:
         print(f"[ERROR] No users in list {option_dict['list']}, dying...")
         return 1
     self.dm.deployall(usernames, vapp_name)
Пример #18
0
def backupServer_monitor():
    ip_list = db.get_list(['qufu','hostname','wan_ip','backNum','backName','backSize'], 'backupServerMonitor')
    newlist = []
    for x in ip_list:
        if x['backSize'] != '1M':
            newlist.insert(0,x)
        else:
            newlist.append(x)
    return render_template('monitor/backupServer_monitor.html', infos=newlist, display = dis)
Пример #19
0
def data_week():
    day = datetime.date.today() + datetime.timedelta(days=-1)
    if request.args.get('date'):
        date = str(request.args.get('date'))
        platform = request.args.get('platform')

        dt = datetime.datetime.strptime(date, '%Y-%m-%d')
        start = (dt - datetime.timedelta(days=dt.weekday())
                 ) - datetime.timedelta(days=7)
        end = (start + datetime.timedelta(days=6))
        week_end = datetime.datetime.strftime(end, '%Y/%m/%d')
        day = week_end
        week_start = datetime.datetime.strftime(start, '%Y/%m/%d')
        week = []
        week.append(week_start)
        week.append(week_end)
        week_dates = '--'.join(week)
    else:
        date = day
        platform = 7

        today = datetime.datetime.today()
        start_delta = datetime.timedelta(days=today.weekday(), weeks=1)
        start_of_week = (today - start_delta)
        end_of_week = (start_of_week + datetime.timedelta(days=6))
        start_of_week = start_of_week.strftime('%Y/%m/%d')
        end_of_week = end_of_week.strftime('%Y/%m/%d')
        last_week = []
        last_week.append(start_of_week)
        last_week.append(end_of_week)
        week_dates = '--'.join(last_week)

    where = "data_date=" + "'" + str(day) + "'" + ' and platform=' + str(
        platform) + ' order by qufu'
    columns_week_column = columns_day_column[:-2]
    datas = db.get_list(columns_week_column, 'data_week', where)

    for data in datas:
        data['data_date'] = week_dates
        if data['platform'] != 21 and data['platform'] != 3:
            data['pay_money'] /= 10.00
            try:
                data['pay_m_gw'] /= 10.00
                data['pay_m_pt'] /= 10.00
            except BaseException as e:
                data['pay_m_gw'] = 0.0
                data['pay_m_pt'] = 0.0
        else:
            try:
                data['pay_m_gw'] /= 11.00
            except BaseException as e:
                data['pay_m_gw'] = 0.0
    return render_template('statistics/data_week.html',
                           datas=datas,
                           date=date,
                           platform=platform,
                           display=dis)
Пример #20
0
def data_month():
    day = datetime.date.today() + datetime.timedelta(days=-1)
    today = datetime.date.today()
    firt_day = today.replace(day=1)
    lastMonth = (firt_day - datetime.timedelta(days=1)).strftime('%Y-%m')

    if request.args.get('date'):
        date = str(request.args.get('date'))
        year = date[0:4]
        month = date[5:7]
        platform = request.args.get('platform')
    else:
        date = lastMonth
        year = date[0:4]
        month = date[5:7]
        platform = 7

    last_day_month = calendar.monthrange(int(year), int(month))[1]
    where = "data_date=" + "'" + year + '-' + month + '-' + str(last_day_month) + "'" + ' and platform=' + str(platform) + ' order by qufu'
    datas = db.get_list(columns_day_column, 'data_month', where)

    if len(datas) == 0 and date == lastMonth:
        where = "data_date=" + "'" + str(day) + "'" + ' and platform=' + str(platform) + ' order by qufu'
        datas = db.get_list(columns_day_column, 'data_month', where)

    for data in datas:
        data['data_date'] = lastMonth
        if data['platform'] != 21 and data['platform'] != 3:
            data['pay_money'] /= 10.00
            try:
                data['pay_m_gw'] /= 10.00
                data['pay_m_pt'] /= 10.00
            except BaseException as e:
                data['pay_m_gw'] = 0.0
                data['pay_m_pt'] = 0.0
        else:
            try:
                data['pay_m_gw'] /= 11.00
            except BaseException as e:
                data['pay_m_gw'] = 0.0
                data['pay_m_pt'] = 0.0
    return render_template('statistics/data_month.html', datas=datas, date=date, platform=platform, display = dis)
Пример #21
0
def server_status(base_url, current_page, avg_page):
    collections = ('id','name','server','batt_t','match_t','enro_t','pvr_t','tran_t','ext_t','war_t','conf_t','start_batt','start_match',
                   'start_enro','start_pvr','start_state','start_trans','match_v','batt_v','pvr_v','state_v','trans_v','billingid')
    rt_list = db.get_list(collections, 'op_vertion')
    # 初始化Pager类
    page = pager.Pager(current_page, avg_page)
    # 获取首页显示的内容
    server_list = rt_list[page.start_page:page.end_page]
    # 获取分页的页数
    page_list = page.page_str(len(rt_list), base_url)
    return server_list, page_list
Пример #22
0
async def get_list(message: types.Message):
    task_list = db.get_list(message.chat.id)
    if task_list:
        msg = [
            str(i + 1) + '. ' + task_list[i] + '\n'
            for i in range(len(task_list))
        ]
        msg = ''.join(msg)
    else:
        msg = 'Нет активных задач'
    await message.answer(msg)
Пример #23
0
def idclist():
        #判断用户是否登录,如果没有登录就跳转到登录页
        if not session.get('name'):
                return redirect('/login')
        else:
                idc_items=["id","name","cabinets","hosts","contacts","telephone","remarks"]
                username=session.get("name")
    		table = 'idclist'
    		result = db.get_list(idc_items,table)
    		data = [dict((k,row[i]) for i,k in enumerate(idc_items)) for row in result]
                return render_template("idclist.html",idcs=data,username=username)
Пример #24
0
def cabinetadd():
    if request.method == 'GET':
        idc_columns = ['id', 'name', 'address', 'adminer', 'phone', 'cabinet_num', 'switch_num']
        idcs = db.get_list(idc_columns, 'idc')
        idcinfo = []
        for idc in idcs:
            idcinfo.append({'id': idc['id'], 'name': idc['name']})
        return render_template('assets/cabinet/cabinetadd.html', idcinfo=idcinfo, display = dis)
    else:
        data = request.form.to_dict()
        util.WriteLog('infoLogger').warning('%s add cabinet %s' % (session['username'], data['name']))
        return json.dumps(db.create(data, 'cabinet'))
Пример #25
0
def choose_list(list_name: str, update: Update, context: CallbackContext):
    list = db.get_list(list_name)
    tasks = db.get_tasks(list["id"])
    text = format_tasks(tasks)

    context.user_data["current_list"] = list

    return context.bot.send_message(
        chat_id=update.effective_message.chat_id,
        text=text,
        parse_mode=ParseMode.HTML,
    )
Пример #26
0
def data_week():
    day = datetime.date.today() + datetime.timedelta(days=-1)
    if request.args.get('date'):
        date = str(request.args.get('date'))
        platform = request.args.get('platform')

        dt = datetime.datetime.strptime(date, '%Y-%m-%d')
        start = (dt - datetime.timedelta(days=dt.weekday())) - datetime.timedelta(days=7)
        end = (start + datetime.timedelta(days=6))
        week_end = datetime.datetime.strftime(end, '%Y/%m/%d')
        day = week_end
        week_start = datetime.datetime.strftime(start, '%Y/%m/%d')
        week = []
        week.append(week_start)
        week.append(week_end)
        week_dates = '--'.join(week)
    else:
        date = day
        platform = 7

        today = datetime.datetime.today()
        start_delta = datetime.timedelta(days=today.weekday(), weeks=1)
        start_of_week = (today - start_delta)
        end_of_week = (start_of_week + datetime.timedelta(days=6))
        start_of_week = start_of_week.strftime('%Y/%m/%d')
        end_of_week = end_of_week.strftime('%Y/%m/%d')
        last_week = []
        last_week.append(start_of_week)
        last_week.append(end_of_week)
        week_dates = '--'.join(last_week)


    where = "data_date=" + "'" + str(day) + "'" + ' and platform=' + str(platform) + ' order by qufu'
    columns_week_column = columns_day_column[:-2]
    datas = db.get_list(columns_week_column, 'data_week', where)

    for data in datas:
        data['data_date'] = week_dates
        if data['platform'] != 21 and data['platform'] != 3:
            data['pay_money'] /= 10.00
            try:
                data['pay_m_gw'] /= 10.00
                data['pay_m_pt'] /= 10.00
            except BaseException as e:
                data['pay_m_gw'] = 0.0
                data['pay_m_pt'] = 0.0
        else:
            try:
                data['pay_m_gw'] /= 11.00
            except BaseException as e:
                data['pay_m_gw'] = 0.0
    return render_template('statistics/data_week.html', datas=datas, date=date, platform=platform, display = dis)
Пример #27
0
def get_admin_team_roles(db):
    query = """
        select
          r.description
        from
          gmasprod.rf_roles r
          join gmasprod.role_category_usages rcu on r.role_id = rcu.role_id
          join gmasprod.rf_role_categories rc on rcu.role_category_id = rc.role_category_id
        where
          rc.description = 'Visable project admin team'
          and r.description not in ('Principal Investigator', 'Mentor', 'Cost Share Signatory', 'Fellow Investigator')
        """
    return get_list(db, query)
Пример #28
0
def get_research_team_roles(db):
    query = """
        select
          r.description
        from
          gmasprod.rf_roles r
          join gmasprod.role_category_usages rcu on r.role_id = rcu.role_id
          join gmasprod.rf_role_categories rc on rcu.role_category_id = rc.role_category_id
        where
          rc.description = 'Research team roles'
          and r.description not in ('Principal Investigator', 'Mentor', 'Other')
        """
    return get_list(db, query)
Пример #29
0
def kai_gua():
    columns_gua_headers = [ '开挂时间', '大区', 'UID', '昵称', '封禁天数', '封禁原因' ]
    date = request.args.get('date')
    year = date[0:4]
    month = date[4:6]
    day = date[6:8]
    date = year + '_' + month + '_' + day
    table = 'cheat_log_' + date
    host_column = ['wan_ip']
    host_list = db.get_list(host_column, 'virtuals')
    hosts = []
    [ hosts.append(str(host['wan_ip'])) for host in host_list ]
    gua_column = ['platform_id', 'server_id', 'uid', 'nick_name', 'param']
    rows = []
    for host in hosts:
        try:
            gua_list = db.get_list(gua_column, table, where='reason=3', host=host, user='******', passwd='cygamebh2014', db='bh_log')
        except BaseException,e:
            print e
        for data in gua_list:
            gua_lists = []
            param = data['param'].split('|')
            start_kaigua = time.localtime(float(param[8].split('=')[1].replace(',','')[:-3]))
            start_kaigua = time.strftime('%Y-%m-%d %H:%M:%S', start_kaigua)
            long_fengjin = float(param[10].split('=')[1].replace(',','')) / 60 / 24
            data['start_kaigua'] = start_kaigua
            data['long_fengjin'] = long_fengjin
            gua_lists.append(data['start_kaigua'])
            platform_id = data['platform_id']
            server_id = data['server_id']
            where = 'platform=' + str(platform_id) + ' and serverid=' + str(server_id)
            qufu = json.loads(db.get_one(['qufu'], where, 'virtuals'))['qufu']
            gua_lists.append(qufu)
            gua_lists.append(data['uid'])
            gua_lists.append(data['nick_name'])
            gua_lists.append(data['long_fengjin'])
            gua_lists.append('透视')
            rows.append(gua_lists)
Пример #30
0
def get_not_funded_segments(database, created=None):
    query = """
    SELECT
        segment_id
    FROM
        segments s
        JOIN rf_segment_statuses rss ON s.segment_status_id = rss.segment_status_id
            AND rss.description = 'Not funded'
    """
    if created is not None:
        query += """WHERE
            s.create_date < to_date('%s','MM/DD/YYYY')
        """ % created
    return db.get_list(database, query)
Пример #31
0
def userlist():
    #判断用户是否登录,如果没有登录就跳转到登录页
    if not session.get('name'):
        return redirect('/login')
    user_items = ["id", "name", "name_cn", "email", "mobile", "role", "status"]
    username = session.get("name")
    if username == "admin":
        table = 'users'
        result = db.get_list(user_items, table)
        data = [
            dict((k, row[i]) for i, k in enumerate(user_items))
            for row in result
        ]
        return render_template("userlist.html", users=data, username=username)
Пример #32
0
def inner():
    sql = "create table if not exists innerServer(" \
          "id int auto_increment PRIMARY key not null," \
          "hostname varchar(50) not null COMMENT 'hostname'," \
          "ip varchar(50) not null COMMENT 'ip'," \
          "cpu varchar(20) not null COMMENT 'cpu'," \
          "mem varchar(30) not null COMMENT '内存'," \
          "disk varchar(30) not null COMMENT '硬盘'," \
          "physicalHost varchar(30) COMMENT '宿主机'," \
          "user varchar(30) not null COMMENT '使用人') " \
          "ENGINE=InnoDB AUTO_INCREMENT=69 DEFAULT CHARSET=utf8 COMMENT='内网服务器管理表'"
    db.createTable(sql)
    columns = ['id', 'hostname', 'ip', 'cpu', 'mem', 'disk', 'physicalHost', 'user']
    data = db.get_list(columns, 'innerServer')
    return render_template('assets/inner/inner.html', inners=data, display = dis)
Пример #33
0
def inner():
    sql = "create table if not exists innerServer(" \
          "id int auto_increment PRIMARY key not null," \
          "hostname varchar(50) not null COMMENT 'hostname'," \
          "ip varchar(50) not null COMMENT 'ip'," \
          "cpu varchar(20) not null COMMENT 'cpu'," \
          "mem varchar(30) not null COMMENT '内存'," \
          "disk varchar(30) not null COMMENT '硬盘'," \
          "physicalHost varchar(30) COMMENT '宿主机'," \
          "user varchar(30) not null COMMENT '使用人') " \
          "ENGINE=InnoDB AUTO_INCREMENT=69 DEFAULT CHARSET=utf8 COMMENT='内网服务器管理表'"
    db.createTable(sql)
    columns = [
        'id', 'hostname', 'ip', 'cpu', 'mem', 'disk', 'physicalHost', 'user'
    ]
    data = db.get_list(columns, 'innerServer')
    return render_template('assets/inner/inner.html', inners=data, display=dis)
Пример #34
0
def cabinetadd():
    if request.method == 'GET':
        idc_columns = [
            'id', 'name', 'address', 'adminer', 'phone', 'cabinet_num',
            'switch_num'
        ]
        idcs = db.get_list(idc_columns, 'idc')
        idcinfo = []
        for idc in idcs:
            idcinfo.append({'id': idc['id'], 'name': idc['name']})
        return render_template('assets/cabinet/cabinetadd.html',
                               idcinfo=idcinfo,
                               display=dis)
    else:
        data = request.form.to_dict()
        util.WriteLog('infoLogger').warning(
            '%s add cabinet %s' % (session['username'], data['name']))
        return json.dumps(db.create(data, 'cabinet'))
Пример #35
0
def backupServer_monitor_cron():
    ip_list = db.get_list(['wan_ip','qufu','hostname'], 'virtuals')
    for ip in ip_list:
        dirname = '/data/mongobackup/' + ip['wan_ip']
        backNum = util.paramiko_command('121.201.72.22', 'ls %s|wc -l' % dirname)
        ip['backNum'] = backNum
        backName = util.paramiko_command('121.201.72.22', 'ls -rt %s|tail -1' % dirname)
        ip['backName'] = backName
        backSize = util.paramiko_command('121.201.72.22', "ls -lrt --block-size=M %s |tail -1|awk '{print $5}'" % dirname)
        ip['backSize'] = backSize
        if len(ip['backSize']) >= 5:
            ip['backSize'] = str(round(float(float(ip['backSize'][0:-1]) / 1024), 2)) + 'G'
        if len(json.loads(db.get_one(['wan_ip'], "wan_ip='%s'" % str(ip['wan_ip']), 'backupServerMonitor'))) > 1:
            db.delete("wan_ip='%s'" % ip['wan_ip'], 'backupServerMonitor')
            db.create(ip, 'backupServerMonitor')
        elif len(json.loads(db.get_one(['wan_ip'], "wan_ip='%s'" % str(ip['wan_ip']), 'backupServerMonitor'))) == 1:
            db.update(ip, "wan_ip='%s'" % ip['wan_ip'], 'backupServerMonitor')
        elif len(json.loads(db.get_one(['wan_ip'], "wan_ip='%s'" % str(ip['wan_ip']), 'backupServerMonitor'))) == 0:
            db.create(ip, 'backupServerMonitor')
Пример #36
0
def join():
    """
      - Allows users to join the default list
      - Takes a username and checks it against the list
      - Will run Org.getUser()
    """
    form = JoinForm(dm, list_default)
    error = None
    if request.method == 'POST':
        if "username" in request.form:
            list_data = db.get_list(list_default)
            for user in list_data:
                if user == request.form["username"]:
                    error = "Error! User is already on list."
                    return render_template('join.html', form=form, error=error)
            if form.validate_on_submit():
                flask.flash("User added to list!")
            else:
                error = "Error! User is invalid."

    return render_template('join.html', form=form, error=error)
Пример #37
0
def cabinetupdate():
    cabinet_columns = ['id', 'name', 'idc_id', 'bandwidth', 'money', 'u_num', 'server_num', 'switch_num']
    if request.method == 'GET':
        id = request.args.get('id')
        where = "id=" + id
        data = db.get_one(cabinet_columns, where, 'cabinet')
        return json.dumps(data)
    else:
        data = request.form.to_dict()
        for k,v in data.items():
            if v == '':
                return json.dumps({'code': 1, 'errmsg': '不能为空'})
        where = "id=" + data['id']
        columns = ['id', 'name']
        idcs = db.get_list(columns, 'idc')
        idcs = dict((idc['id'], idc['name']) for idc in idcs)
        for k, v in idcs.items():
            if data['idc_id'] == v:
                data['idc_id'] = k
        util.WriteLog('infoLogger').warning('%s update cabinet_id %s' % (session['username'], data['id']))
        return json.dumps(db.update(data, where, 'cabinet'))
Пример #38
0
def server():
    server_columns = [
        'id', 'hostname', 'lan_ip', 'wan_ip', 'cpu', 'mem', 'disk',
        'virtual_nums', 'virtual_names', 'idc_id', 'cabinet_id'
    ]
    servers = db.get_list(server_columns, 'server')
    cabinets = json.loads(cabinetinfo())
    idcs = json.loads(idcinfo())
    for server in servers:
        virtual_nums_columns = ['count(*)']
        where = 'server_id=' + str(server['id'])
        virtual_nums = json.loads(
            db.get_one(virtual_nums_columns, where, 'virtuals'))['count(*)']
        server['virtual_nums'] = virtual_nums

        virtual_names_columns = ['qufu']
        try:
            x = json.loads(db.get_one(virtual_names_columns, where,
                                      'virtuals'))
            if isinstance(x, dict):
                names = x['qufu']
            elif isinstance(x, list):
                virtual_names = [
                    ",".join(i) for i in json.loads(
                        db.get_one(virtual_names_columns, where, 'virtuals'))
                ]
                names = ",".join(virtual_names)
            else:
                print 'not correct type'
            server['virtual_names'] = names
        except BaseException, e:
            print e

        for cabinet in cabinets:
            if cabinet['id'] == server['cabinet_id']:
                server['cabinet_id'] = cabinet['name']

        for idc in idcs:
            if idc['id'] == server['idc_id']:
                server['idc_id'] = idc['name']
Пример #39
0
def list(cate, page, rand):
    condition = {}
    key_word = request.values.get('key_word', 0)
    print(key_word)
    if key_word != 0 and cate == 4:
        print('enter condition.....')
        rgx = re.compile('.*' + key_word + '.*', re.IGNORECASE)
        condition = {"desc": rgx}
        print(condition)
    # 获取客户端IP
    #user_ip = request.remote_addr
    if cate is None:
        cate = 1
    if page is None:
        page = 1
    if rand is None:
        rand = 0
    mms = []
    select = {
        'name': 1,
        'thumbnail': 1,
        'my_url': 1,
        '_id': 0,
        'width': 1,
        'height': 1
    }
    sort_field = 'rand'
    sort_type = -1
    if page == 1:
        limit = 20
    else:
        limit = 10
    if rand == 1:
        limit = 20
    mms = db.get_list(cate, select, condition, limit, page, sort_field,
                      sort_type, rand)
    return jsonify(mms)
Пример #40
0
def data_download():
    columns_day_headers = ['区服','日期', '新增注册用户数', '登录用户数','用户登录次数','付费用户数', '付费次数',
                            '付费用户ARPU', '平均在线', '峰值在线','平均在线ARPU','登录用户付费转化率',
                            '新增注册用户付费转化率', '充值金额', '新增付费用户数']
    columns_day_download = ['qufu','data_date', 'new_reg_user_num', 'login_user_num','user_login_num','pay_user_num', 'pay_num',
                            'pay_user_ARPU', 'avg_online', 'mountain_online','avg_online_ARPU','login_user_pay_trans_rate',
                            'new_reg_user_pay_transe_rate', 'pay_money', 'new_pay_user_num']
    s = StringIO()
    s.write('\xEF\xBB\xBF')   #写入BOM,解决EXCEL中文显示乱码
    csv_writer = csv.writer(s)
    csv_writer.writerow(columns_day_headers)
    date = request.args.get('date')
    platform = request.args.get('platform')
    where = "data_date=" + "'" + str(date) + "'" + ' and platform=' + str(platform)
    datas = db.get_list(columns_day_column, 'data_day', where)
    for data in datas:
        data.pop('platform')
        data.pop('serverid')
        tmp_list = []
        [ tmp_list.append(data[x]) for x in columns_day_download ]
        csv_writer.writerow(tmp_list)
    cxt = s.getvalue()
    s.close()
    return cxt,200,{'Content-Type':'text/csv,charset=utf-8','Content-disposition':'attachment;filename=%s.csv' % (date)}
Пример #41
0
def cabinetinfo():
    cabinet_columns = ['id', 'name']
    return json.dumps(db.get_list(cabinet_columns, 'cabinet'))
Пример #42
0
def lists():
    """
      - Allows for the editing of userlists (removing/adding of users)
      - Allows for the creation of lists other than the main one
      - Allows for adding, removing, and exporting lists and users
    """
    error = None
    list_data = None
    list_selected = list_default

    # If POST, Add, Delete, Export
    if request.method == 'POST':
        if "list_name" in request.form:
            list_selected = request.form["list_name"]
            if "action" in request.form:
                action = request.form["action"]

                # Adding user or list
                if action == "Add":
                    if "username" in request.form:
                        form = JoinForm(dm, list_selected)
                        if form.validate_on_submit():
                            flask.flash("User added to " + list_selected + "!")
                        else:
                            error = "Error! User is invalid or already on list."
                    else:
                        db.create_list(list_selected)
                        flask.flash("List " + list_selected + " added!")

                # Deleting user or list
                elif action == "Delete":
                    if "username" in request.form:
                        db.delete_list(list_selected, request.form["username"])
                        flask.flash(request.form["username"] +
                                    " removed from " + list_selected + "!")
                    else:
                        if list_selected == list_default:
                            error = "Sorry, you can't remove the default list."
                        else:
                            db.drop_list(list_selected)
                            flask.flash("Dropped list " + list_selected + "!")
                            list_selected = list_default

                # Export list as plaintext
                elif action == "Export":
                    list_data = db.get_list(list_selected)
                    list_string = '<br>'.join(list_data)
                    return (list_string)
            list_data = db.get_list(list_selected)
        else:
            error = "You need to supply a list if you're going to POST this page."

    # If GET, display a list
    else:
        if "list" in request.args:
            list_selected = request.args["list"]
        list_data = db.get_list(list_selected)

    # Grab default list if list_data is None
    if list_data == None:
        error = "The specified list doesn't exist."
        list_selected = list_default
        list_data = db.get_list(list_selected)

    lists = db.get_lists(list_default)
    form = JoinForm(dm, list_selected)

    return render_template('lists.html',
                           form=form,
                           error=error,
                           list_name=list_selected,
                           list_data=list_data,
                           lists=lists)
Пример #43
0
 def get(self):
     categories = db.get_list("category")
     self.render("selection.html", categories=categories)
Пример #44
0
def mongoback_info_auto_refresh_getip():
    ip_list = []
    [ip_list.append((rs['wan_ip'], rs['master_slave'])) for rs in db.get_list(['wan_ip', 'master_slave'], 'virtuals')]
    for ip in ip_list:
        mongoback_info_auto_refresh(ip)
Пример #45
0
def set_current_list(update: Update, context: CallbackContext):
    list_name = update.message.text
    current_list = db.get_list(list_name)
    context.user_data["current_list"] = current_list
    return current_list
Пример #46
0
def idcinfo():
    columns = ['id', 'name']
    return json.dumps(db.get_list(columns, 'idc'))
Пример #47
0
@login_required
def code_release():
    sql = "create table if not exists codePublish(" \
          "id int auto_increment PRIMARY key not null," \
          "version int(10) not null comment '代码版本号'," \
          "introduction varchar(100) not null comment '发布说明'," \
          "username varchar(20) not null comment '发布人'," \
          "date varchar(30) not null comment '发布日期') " \
          "ENGINE=InnoDB AUTO_INCREMENT=69 DEFAULT CHARSET=utf8 COMMENT='代码发布版本说明'"
    try:
        db.get_one(['id'], 'id = "1"', 'codePublish', list=True)
    except BaseException, e:
        print e
        db.createTable(sql)
    columns = ['id', 'version', 'introduction', 'username', 'date']
    history = db.get_list(columns, 'codePublish order by id desc')
    username = session['username']
    date = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
    if request.method == 'GET':
        return render_template('code/code_release.html', username=username, infos=history, display = dis)
    elif request.method == 'POST':
        info = request.form.to_dict()
        if info['introduction'] == '':
            return json.dumps({'code': 1, 'errmsg': '必须填写发布说明'})
        client = pysvn.Client()
        client.callback_get_login = getLogin
        if os.path.exists(svnSavePath):
            client.update(svnSavePath)
        else:
            client.checkout(svnurl, svnSavePath)
Пример #48
0
def serverinfo():
    server_columns = ['id', 'hostname']
    serverinfo = db.get_list(server_columns, 'server')
    return json.dumps(serverinfo)
Пример #49
0
def serverinfo():
    server_columns = ['id', 'hostname']
    serverinfo = db.get_list(server_columns, 'server')
    return json.dumps(serverinfo)
Пример #50
0
def history():
    login = request.args['login']
    login = session['login']
    money = db.get_list(login)
    return render_template('history.html', money=money)
Пример #51
0
def data_total():
    day = datetime.date.today() + datetime.timedelta(days=-1)
    where = "data_date=" + "'" + str(day) + "'"
    datas = db.get_list(data_total_column, 'data_total', where)
    return render_template('statistics/data_total.html', datas=datas, display = dis)
Пример #52
0
def idcinfo():
    columns = ['id', 'name']
    return json.dumps(db.get_list(columns, 'idc'))
Пример #53
0
def idc():
    idc_columns = ['id', 'name', 'address', 'adminer', 'phone', 'cabinet_num', 'switch_num']
    idcs = db.get_list(idc_columns, 'idc')
    return render_template('assets/idc/idc.html', idcs=idcs, display = dis)
Пример #54
0
import db

user = {}
user['username'] = '******'
user['first_name'] = 'Seth'
user['last_name'] = 'Washeck'
user['address'] = '123 Main St.'
user['city'] = 'Springfield'
user['state'] = 'CO'
user['zip'] = '90210'
user['email'] = '*****@*****.**'

db.flush_db()

db.save_user_profile(user)

categories = ['Recreational Activities (Outdoor)', 'Recreational Activities (Indoor)', 'Community Groups', 'Academic Groups',
	'Spiritual Groups']
	
db.save_list('category',categories)

print db.get_list('category')

activities = ['Hiking','Biking','Climbing','Camping']

db.save_list('Recreational Activities (Outdoor)', activities)

print 'Recreational Activities (Outdoor): ', db.get_list('Recreational Activities (Outdoor)')

print db.get_user_profile('swasheck')
Пример #55
0
 def get(self):
     categories = db.get_list('category')
     self.render("selection.html", categories=categories)
Пример #56
0
def cabinetinfo():
    cabinet_columns = ['id', 'name']
    return json.dumps(db.get_list(cabinet_columns, 'cabinet'))