Exemplo n.º 1
0
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)
Exemplo n.º 2
0
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")