예제 #1
0
def nodes_list(request, batchserver_name=None):
    """ Return the list of nodes with properties """
    l = []
    if request.GET.has_key('batchserver_name') and not batchserver_name:
        batchserver_name = request.GET['batchserver_name']

    if not batchserver_name:
        return HttpResponseNotFound()
    
    updated_nodes = live_updaters.update_all_nodes(batchserver_name)

    ns = Node.objects.filter(server__name=batchserver_name)

    for n in ns:
        if not n.isactive:
            continue
        l.append({
            'name': n.name,
            'state': ",".join([un.name for un in updated_nodes[batchserver_name]['nodes'][n]['state']]),
            'properties': ",".join([un.name for un in updated_nodes[batchserver_name]['nodes'][n]['properties']]),
            'subcluster': n.subcluster.name,
            'cputmult': n.cputmult,
            'wallmult': n.wallmult
            })
    return HttpResponse(simplejson.dumps(l))
예제 #2
0
def nodes_overview(request, batchserver_name=None,subcluster_name=None):
    l = []
    if request.GET.has_key('subcluster_name') and not subcluster_name:
        subcluster_name = request.GET['subcluster_name']
    if request.GET.has_key('batchserver_name') and not batchserver_name:
        batchserver_name = request.GET['batchserver_name']

    if not subcluster_name or not batchserver_name:
        return HttpResponseNotFound()

    updated_nodes = live_updaters.update_all_nodes(batchserver_name)

    ns = Node.objects.filter(server__name=batchserver_name, subcluster__name=subcluster_name)

    for n in ns:
        th = "<table style='border: 1px'><tr>"
        c = 0
        for jobid in updated_nodes[batchserver_name]['nodes'][n]['jobs']:
            th += "<td><a href='#'>%s</a>&nbsp;</td>" % jobid
            if c%2 == 1:
                th += "</tr><tr>"
            c += 1
        th += "</tr></table>"

        l.append({
            'name': n.name, 
            'shortname': n.shortname(), 
            'state': " ".join([un.name for un in updated_nodes[batchserver_name]['nodes'][n]['state']]),
            'ttiphtml': th,
#            'jobs': [ j.job.jobid for j in n.jobslot_set.all() ]
            })
    return HttpResponse(simplejson.dumps(l))