- self.errors.append('Purpose is mandatory')
-
- if not self.errors:
- ctx = {
- 'email': email,
- 'slice_name': slice_name,
- 'authority_hrn': authority_hrn,
- 'number_of_nodes': number_of_nodes,
- 'purpose': purpose,
- }
- s = PendingSlice(
- slice_name = slice_name,
- user_hrn = user_hrn,
- authority_hrn = authority_hrn,
- number_of_nodes = number_of_nodes,
- purpose = purpose
- )
- s.save()
-
- # The recipients are the PI of the authority
- recipients = authority_get_pi_emails(request, authority_hrn)
-
- if cc_myself:
- recipients.append(email)
- msg = render_to_string('slice-request-email.txt', ctx)
- #print "email, msg, email, recipients", email , msg, email, recipients
- send_mail("Onelab user %s requested a slice"%email , msg, email, recipients)
-
- return render(request,'slice-request-ack-view.html') # Redirect after POST
+ errors.append('Experiment purpose is mandatory')
+
+ url = slice_request['url']
+
+ if not errors:
+ if is_pi(wsgi_request, user_hrn, authority_hrn):
+ # PIs can directly create slices in their own authority...
+ create_slice(wsgi_request, slice_request)
+ clear_user_creds(wsgi_request, user_email)
+ self.template_name = 'slice-request-done-view.html'
+ else:
+ # Otherwise a wsgi_request is sent to the PI
+ create_pending_slice(wsgi_request, slice_request, user_email)
+ self.template_name = 'slice-request-ack-view.html'
+
+ return render(wsgi_request, self.template, {'theme': self.theme}) # Redirect after POST
+ else:
+ slice_request = {}
+