Package expedient :: Package ui :: Package rspec :: Module views
[hide private]
[frames] | no frames]

Source Code for Module expedient.ui.rspec.views

 1  ''' 
 2  Created on Oct 6, 2010 
 3   
 4  @author: jnaous 
 5  ''' 
 6  # TODO: Also show the slice URN 
 7  from expedient.clearinghouse.slice.models import Slice 
 8  from django.shortcuts import get_object_or_404 
 9  from expedient.ui.rspec.forms import UploadRSpecForm 
10  from openflow.plugin.gapi.rspec import create_resv_rspec 
11  from openflow.plugin.gapi import gapi, rspec 
12  from expedient_geni.models import GENISliceInfo 
13  from expedient.common.messaging.models import DatedMessage 
14  from django.http import HttpResponseRedirect, HttpResponse 
15  from django.views.generic import simple 
16  from expedient.common.permissions.shortcuts import must_have_permission 
17   
18  TEMPLATE_PATH="rspec" 
19   
20 -def home(request, slice_id):
21 """Show buttons to download and upload rspecs.""" 22 23 slice = get_object_or_404(Slice, pk=slice_id) 24 info = GENISliceInfo.objects.get(slice=slice) 25 slice_urn = info.slice_urn 26 27 must_have_permission( 28 request.user, slice.project, "can_edit_slices") 29 30 if request.method == "POST": 31 form = UploadRSpecForm(request.POST, request.FILES) 32 if form.is_valid(): 33 # parse the rspec 34 rspec = form.files["rspec"].read() 35 gapi.CreateSliver(slice_urn, rspec, request.user) 36 DatedMessage.objects.post_message_to_user( 37 "Successfully uploaded RSpec.", 38 request.user, msg_type=DatedMessage.TYPE_SUCCESS) 39 return HttpResponseRedirect(request.path) 40 else: 41 form = UploadRSpecForm() 42 43 return simple.direct_to_template( 44 request, 45 template=TEMPLATE_PATH+"/home.html", 46 extra_context={ 47 "form": form, "slice_urn": slice_urn, "slice": slice, 48 }, 49 )
50
51 -def download_resv_rspec(request, slice_id):
52 slice = get_object_or_404(Slice, pk=slice_id) 53 rspec = create_resv_rspec(request.user, slice) 54 response = HttpResponse(rspec, mimetype='application/force-download') 55 response['Content-Disposition'] = 'attachment; filename=resv_rspec.xml' 56 return response
57
58 -def download_adv_rspec(request):
59 adv_rspec = rspec.get_resources(None, True) 60 response = HttpResponse(adv_rspec, mimetype='application/force-download') 61 response['Content-Disposition'] = 'attachment; filename=adv_rspec.xml' 62 return response
63