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)
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)
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
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)
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)
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)
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
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) }
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)
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)
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)
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']
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)
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'))
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)
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)
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)
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)
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)
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)
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
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)
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)
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'))
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, )
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)
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)
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)
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)
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)
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)
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)
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)
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'))
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')
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)
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'))
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']
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)
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)}
def cabinetinfo(): cabinet_columns = ['id', 'name'] return json.dumps(db.get_list(cabinet_columns, 'cabinet'))
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)
def get(self): categories = db.get_list("category") self.render("selection.html", categories=categories)
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)
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
def idcinfo(): columns = ['id', 'name'] return json.dumps(db.get_list(columns, 'idc'))
@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)
def serverinfo(): server_columns = ['id', 'hostname'] serverinfo = db.get_list(server_columns, 'server') return json.dumps(serverinfo)
def serverinfo(): server_columns = ['id', 'hostname'] serverinfo = db.get_list(server_columns, 'server') return json.dumps(serverinfo)
def history(): login = request.args['login'] login = session['login'] money = db.get_list(login) return render_template('history.html', money=money)
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)
def idcinfo(): columns = ['id', 'name'] return json.dumps(db.get_list(columns, 'idc'))
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)
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')
def get(self): categories = db.get_list('category') self.render("selection.html", categories=categories)
def cabinetinfo(): cabinet_columns = ['id', 'name'] return json.dumps(db.get_list(cabinet_columns, 'cabinet'))