def rest_clusters(request): if request.method == 'GET': clusters = Cluster.objects.filter(user_id=request.user.id) return JsonResponse(clusters, encoder=QuerySetJSONEncoder, safe=False) elif request.method == 'POST': data = json.loads(request.body) cluster = Cluster() cluster.id = data['id'] cluster.name = data['name'] cluster.systems = data['systems']['storage'] + data['systems']['compute'] cluster.created = datetime.now() cluster.user = request.user cluster.save() data['config']['id'] = cluster.id response = requests.post(url=DEPLOY_URL, data=json.dumps(data['config'])) if json.loads(response.text).get('result') == 'success': return JsonResponse(model_to_dict(cluster)) else: return JsonResponse({ 'error': response['error_message'] }) else: return HttpResponse(status=404)