Example #1
0
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)