예제 #1
0
파일: domain.py 프로젝트: Mordred/webPyVirt
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)
    )
예제 #2
0
파일: wizard.py 프로젝트: Mordred/webPyVirt
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: