def bandwidth_csv(req): if req.method == 'GET': import csv domain_name = req.GET.get('domain_name') start = req.GET.get('start') end = req.GET.get('end') project_id = req.session['project_id'] token = req.session.get('token') api = DomainApi(token) json_str = {"domainName": domain_name, "start": start, "end": end, "project_id": project_id} res = api.bandwidth(json_str) if res.status == 200: return_json_str = json.loads(res.read()) flows = return_json_str["bandwidth"] response = HttpResponse(mimetype="text/csv") response['Content-Disposition'] = 'attachment; filename=%s_%s_bandwidth.csv' % (start, end) writer = csv.writer(response) writer.writerow(["Time", "BandWidth"]) for f in flows: writer.writerow([f.get('time'), f.get('value')]) return response else: result = json.loads(res.read()).get("error") return HttpResponse(result)
def bandwidth(req): if req.method == 'POST': domain_name = req.POST.getlist('domain_name') start = req.POST.get('start') end = req.POST.get('end') project_id = req.session['project_id'] token = req.session.get('token') api = DomainApi(token) json_str = {"domainName": ','.join(domain_name), "start": start, "end": end, "project_id": project_id} res = api.bandwidth(json_str) if res.status == 200: #random = uuid.uuid1() #path = settings.MONITOR_IMG % random #os.system('rm -f %s/*' % os.path.dirname(path)) #with open(path, 'wb') as f: # f.write(resp) return_json_str = json.loads(res.read()) flow_list = return_json_str["bandwidth"] try: point_start = flow_list[0]['time'] # point_start = '2015-12-04 14:35' point_start = [point_start[:4], point_start[5:7], point_start[8:10], point_start[11:13], point_start[14:16]] point_start = [int(i) for i in point_start] data = [] for i in flow_list: data.append(float(i.get('value'))) result = {"pointStart": point_start, "data": data} except Exception, e: traceback.print_exc(file=sys.stdout) LOG.error('Get Bandwidth Error, %s' % e) result = {"error": str(e) + ", 请联系管理员"} else: result = json.loads(res.read()) return HttpResponse(json.dumps(result), content_type="application/json")