def calculatePort(self): collection_name = self.month + '_' + self.dev_name port_data_list = mongo.db[collection_name].find( {'ifDescr': self.port_name}) if port_data_list.count() == 0: logging.error("Cannot get data from {} with port {}".format( collection_name, self.port_name)) return json.dumps({'data': [], 'length': 0}) self.port_billing = portBilling(port_data_list, self.billing_method) result = None if self.datetype == 'all': month_result = self.port_billing.getPortDataPerMonth() day_result = self.port_billing.getPortDataPerDay() result = {'month': month_result, 'allday': day_result} elif self.datetype == 'month': result = self.port_billing.getPortDataPerMonth() elif self.datetype == 'allday': result = self.port_billing.getPortDataPerDay() # self.datetype is like 20140801 else: result = self.port_billing.getPortDataPerDay(self.datetype) if result is not None: return json.dumps({'data': result, 'error': 'false'}) else: return json.dumps({'error': 'true', 'data': []})
def calculatePort(self): collection_name = self.month + '_' + self.dev_name port_data_list = mongo.db[collection_name].find({'ifDescr': self.port_name}) if port_data_list.count() == 0: logging.error("Cannot get data from {} with port {}".format(collection_name,self.port_name )) return json.dumps({'data':[],'length':0}) self.port_billing = portBilling(port_data_list, self.billing_method) result = None if self.datetype == 'all': month_result = self.port_billing.getPortDataPerMonth() day_result = self.port_billing.getPortDataPerDay() result = { 'month': month_result, 'allday': day_result } elif self.datetype == 'month': result = self.port_billing.getPortDataPerMonth() elif self.datetype == 'allday': result = self.port_billing.getPortDataPerDay() # self.datetype is like 20140801 else: result = self.port_billing.getPortDataPerDay(self.datetype) if result is not None: return json.dumps({'data': result, 'error': 'false'}) else: return json.dumps({'error': 'true', 'data': []})
def generatePortReport(self, port_args, csv_split=','): collection_name = port_args['month'] + '_' + port_args['dev_name'] port_data_list = mongo.db[collection_name].find( {'ifDescr': port_args['port_name']}) if port_data_list.count() == 0: logging.error("Cannot get data from {} with port {}".format( collection_name, port_args['port_name'])) return None port_billing = portBilling(port_data_list, port_args['billing_method']) # 得到当月的每日详细值 day_result = port_billing.getPortDataPerDay() # 得到当月的总计值 month_result = port_billing.getPortDataPerMonth() # CSV报表的基本信息 csv_string = '' csv_string += csv_split.join(['设备名称:', port_args['dev_name']]) csv_string += '\n' csv_string += csv_split.join(['端口名称:', port_args['port_name']]) csv_string += '\n' csv_string += csv_split.join(['计费时间段:', port_args['month']]) csv_string += '\n' # CSV报表的计费信息表示 和 当月统计值 date_list = ['', '月度'] billing_list = ['计费 (95th)', month_result['report_billing']] avrg_list = ['平均值 (In/Out)', month_result['report_avrg']] max_list = ['最大值 (In/Out)', month_result['report_max']] min_list = ['最小值 (In/Out)', month_result['report_min']] # CSV报表的每日详细信息 for port_item in day_result: date_list.append(port_item['date_type']) billing_list.append(port_item['report_billing']) avrg_list.append(port_item['report_avrg']) max_list.append(port_item['report_max']) min_list.append(port_item['report_min']) # CSV的详细计费字段 csv_string += '\n' csv_string += csv_split.join(date_list) csv_string += '\n' csv_string += csv_split.join(billing_list) csv_string += '\n' csv_string += csv_split.join(avrg_list) csv_string += '\n' csv_string += csv_split.join(max_list) csv_string += '\n' csv_string += csv_split.join(min_list) csv_string += '\n' # print(csv_string) return csv_string
def generatePortReport(self, port_args, csv_split=','): collection_name = port_args['month'] + '_' + port_args['dev_name'] port_data_list = mongo.db[collection_name].find({'ifDescr': port_args['port_name']}) if port_data_list.count() == 0: logging.error("Cannot get data from {} with port {}".format(collection_name, port_args['port_name'])) return None port_billing = portBilling(port_data_list, port_args['billing_method']) # 得到当月的每日详细值 day_result = port_billing.getPortDataPerDay() # 得到当月的总计值 month_result = port_billing.getPortDataPerMonth() # CSV报表的基本信息 csv_string = '' csv_string += csv_split.join(['设备名称:', port_args['dev_name']]) csv_string += '\n' csv_string += csv_split.join(['端口名称:', port_args['port_name']]) csv_string += '\n' csv_string += csv_split.join(['计费时间段:', port_args['month']]) csv_string += '\n' # CSV报表的计费信息表示 和 当月统计值 date_list = ['', '月度'] billing_list = ['计费 (95th)', month_result['report_billing']] avrg_list = ['平均值 (In/Out)', month_result['report_avrg']] max_list = ['最大值 (In/Out)', month_result['report_max']] min_list = ['最小值 (In/Out)', month_result['report_min']] # CSV报表的每日详细信息 for port_item in day_result: date_list.append(port_item['date_type']) billing_list.append(port_item['report_billing']) avrg_list.append(port_item['report_avrg']) max_list.append(port_item['report_max']) min_list.append(port_item['report_min']) # CSV的详细计费字段 csv_string += '\n' csv_string += csv_split.join(date_list) csv_string += '\n' csv_string += csv_split.join(billing_list) csv_string += '\n' csv_string += csv_split.join(avrg_list) csv_string += '\n' csv_string += csv_split.join(max_list) csv_string += '\n' csv_string += csv_split.join(min_list) csv_string += '\n' # print(csv_string) return csv_string