# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.http import HttpResponse, JsonResponse from django.shortcuts import render import json import requests def status(): with open('conf.json') as conf: status = json.load(conf)["api"] + '/status' try: res = requests.get(status).content except: res = 'connection can\'t be established' return res def get_status(request): my_status = status() return JsonResponse(my_status, safe=False) def mount(request): if request.method == 'POST': data = request.POST.dict() #s = mount(data) with open('conf.json') as conf: url = json.load(conf)["api"] + '/mount' res = requests.post(url, json.dumps(data)) print res return JsonResponse(res.content, safe=False) def unmount(request): print request.GET.dict() with open('conf.json') as conf: url = json.load(conf)["api"] + '/umount' #data = json.dumps({'node': 'ceph1', 'mountpoint': '/mnt', 'block': 'rbd0'}) data = request.GET.dict() try: res = requests.post(url, json.dumps(data)).content except: res = 'connection can\'t be established' return JsonResponse(res, safe=False) def resolve(): with open('conf.json') as conf: url = json.load(conf)["api"] + '/resolve' data = request.GET.dict() res = requests.post(metrics, json.dumps(data)) return JsonResponse(res.content, safe=False) def get_metrics(): with open('conf.json') as conf: metrics = json.load(conf)["api"] + '/metrics' try: res = requests.get(metrics).content except: res = 'connection can\'t be established' return res def panel(request): with open('conf.json') as conf: ws = json.load(conf)["ws"] metrics = json.loads(get_metrics()) my_status = status() return render(request, 'rbmd/index.html', {'ws' : ws, 'metrics' : metrics, 'status' : my_status})