#views.py from django.views.generic import TemplateView, View import datetime import json from core.models import Slice,SliceRole,SlicePrivilege,Site,Reservation from django.http import HttpResponse class DashboardWelcomeView(TemplateView): template_name = 'admin/dashboard/welcome.html' def get(self, request, *args, **kwargs): context = self.get_context_data(**kwargs) try: site = Site.objects.filter(id=request.user.site.id) except: site = Site.objects.filter(name="Princeton") context['site'] = site[0] context['userSliceInfo'] = getSliceInfo(request, context) context['cdnData'] = getCDNOperatorData(); return self.render_to_response(context=context) def getSliceInfo(request, context): sliceList = Slice.objects.all() slicePrivs = SlicePrivilege.objects.filter(user=request.user) userSliceInfo = [] for entry in slicePrivs: try: reservationList = Reservation.objects.filter(slice=entry.slice) reservations = (True,reservationList) except: reservations = None userSliceInfo.append({'slice': Slice.objects.get(id=entry.slice.id), 'role': SliceRole.objects.get(id=entry.role.id).role, 'reservations': reservations}) return userSliceInfo def getCDNOperatorData(randomizeData = False): cdnData = { "Arizona": { "lat": 32.2333, "long": -110.94799999999998, "health": 0, "numNodes": 15, "numHPCSlivers": 2, "siteUrl": "http://www.cs.arizona.edu/" }, "I2 Singapore": { "lat": 1.33544, "long": 103.88999999999999, "health": 0, "numNodes": 15, "numHPCSlivers": 5, "siteUrl": "http://www.internet2.edu/" }, "ON.Lab": { "lat": 37.452955, "long": -122.18176599999998, "health": 0, "numNodes": 45, "numHPCSlivers": 12, "siteUrl": "http://www.onlab.us/" }, "I2 Washington DC": { "lat": 38.009, "long": -77.00029999999998, "health": 0, "numNodes": 50, "numHPCSlivers": 7, "siteUrl": "http://www.internet2.edu/" }, "I2 Seattle": { "lat": 47.6531, "long": -122.31299999999999, "health": 0, "numNodes": 100, "numHPCSlivers": 10, "siteUrl": "http://www.internet2.edu/" }, "I2 Salt Lake City": { "lat": 40.7659, "long": -111.844, "health": 0, "numNodes": 35, "numHPCSlivers": 10, "siteUrl": "http://www.internet2.edu/" }, "I2 New York": { "lat": 40.72, "long": -73.99000000000001, "health": 0, "numNodes": 25, "numHPCSlivers": 4, "siteUrl": "http://www.internet2.edu/" }, "I2 Los Angeles": { "lat": 33.2505, "long": -117.50299999999999, "health": 0, "numNodes": 20, "numHPCSlivers": 10, "siteUrl": "http://www.internet2.edu/" }, "I2 Kansas City": { "lat": 39.0012, "long": -94.00630000000001, "health": 0, "numNodes": 17, "numHPCSlivers": 8, "siteUrl": "http://www.internet2.edu/" }, "I2 Houston": { "lat": 29.0077, "long": -95.00369999999998, "health": 0, "numNodes": 15, "numHPCSlivers": 10, "siteUrl": "http://www.internet2.edu/" }, "I2 Chicago": { "lat": 41.0085, "long": -87.00650000000002, "health": 0, "numNodes": 15, "numHPCSlivers": 10, "siteUrl": "http://www.internet2.edu/" }, "I2 Atlanta": { "lat": 33.0075, "long": -84.00380000000001, "health": 0, "numNodes": 15, "numHPCSlivers": 10, "siteUrl": "http://www.internet2.edu/" }, "MaxPlanck": { "lat": 49.14, "long": 6.588999999999942, "health": 0, "numNodes": 15, "numHPCSlivers": 10, "siteUrl": "http://www.mpi-sws.mpg.de/" }, "GeorgiaTech": { "lat": 33.7772, "long": -84.39760000000001, "health": 0, "numNodes": 15, "numHPCSlivers": 10, "siteUrl": "http://www.gatech.edu/" }, "Princeton": { "lat": 40.3502, "long": -74.6524, "health": 0, "numNodes": 15, "numHPCSlivers": 10, "siteUrl": "http://princeton.edu/" }, "Washington": { "lat": 47.6531, "long": -122.31299999999999, "health": 0, "numNodes": 15, "numHPCSlivers": 10, "siteUrl": "https://www.washington.edu/" }, "Stanford": { "lat": 37.4294, "long": -122.17200000000003, "health": 0, "numNodes": 15, "numHPCSlivers": 10, "siteUrl": "http://www.stanford.edu/" }, } if randomizeData: cdnData["Siobhan"] = { "lat": 43.34203, "long": -70.56351, "health": 10, "numNodes": 5, "numHPCSlivers": 3, "siteUrl": "https:devonrexes"} del cdnData["Princeton"] cdnData["I2 Seattle"]['siteUrl'] = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") cdnData["I2 Salt Lake City"]["numHPCSlivers"] = 34 return cdnData class DashboardAjaxView(View): def get(self, request, **kwargs): return HttpResponse(json.dumps(getCDNOperatorData(True)), mimetype='application/javascript')