- if (slice_name is None or slice_name == ''):
- self.errors.append('Slice Name is mandatory')
-
- if (purpose is None or purpose == ''):
- 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)
+ if slice_name is None or slice_name == '':
+ errors.append('Slice name is mandatory')
+
+ if re.search(r'^[A-Za-z0-9_]*$', slice_name) is None:
+ errors.append('Slice name may contain only letters, numbers, and underscore.')
+
+ organization = slice_request['organization']
+ if theme.theme == 'fed4fire':
+ if organization is None or organization == '':
+ errors.append('Selecting project is mandatory')
+ else:
+ if organization is None or organization == '':
+ errors.append('Organization is mandatory')
+
+ slice_length= len(slice_request['slice_name'])
+ if slice_length >19:
+ errors.append('Slice name can be maximum 19 characters long')
+
+