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))
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> </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))