def add(request, nodeId): node = get_object_or_404(Node, id=nodeId) if not nodeIsAllowedTo(request, node, "add_domain"): return HttpResponseRedirect("%s" % (reverse("403"))) #endif newDomain = Domain() newDomain.node = node newDomain.hypervisor_type = node.driver permis = request.session.get("domains.domain.add", {}) permisHash = sha.sha(request.user.username.upper() + ":" + str(time.time())).hexdigest() permis[permisHash] = (time.time(), { "domain": newDomain }) # Session cleanup hashes = permis.keys() for per in hashes: if (time.time() - permis[per][0]) > 3600: del permis[per] #endif #endfor request.session['domains.domain.add'] = permis return render_to_response( "domains/domain/add.html", { "hash": permisHash, "node": node }, context_instance=RequestContext(request) )
def add(request): if request.method != "POST" or "secret" not in request.POST or "action" not in request.POST: return HttpResponseRedirect("%s" % (reverse("403"))) #endif secret = request.POST['secret'] action = request.POST['action'] permis = request.session.get("domains.domain.add", {}) if secret not in permis: return HttpResponseRedirect("%s" % (reverse("403"))) #endif domainData = permis[secret][1] domain = domainData['domain'] node = domain.node if not nodeIsAllowedTo(request, node, "add_domain"): return HttpResponseRedirect("%s" % (reverse("403"))) #endif data = { "status": 200, "statusMessage": _("OK") } if action == "nodeCheck": try: virNode = virtualization.virNode(node) result = virNode.getInfo() except virtualization.ErrorException, e: data['nodeStatus'] = False data['error'] = unicode(e) else: data['nodeStatus'] = True data['info'] = result try: freeMemory = virNode.getFreeMemory() except virtualization.ErrorException, e: data['info']['freeMemory'] = -1 else: