from django.contrib.auth.models import BaseUserManager
from django.core import serializers
from django.core.mail import EmailMultiAlternatives
+import json
BLESSED_DEPLOYMENTS = ["US-MaxPlanck", "US-GeorgiaTech", "US-Princeton", "US-Washington", "US-Stanford"]
firstname = request.POST.get("firstname", "0")
lastname = request.POST.get("lastname", "0")
site = request.POST.get("site","0")
+ # see if it already exists
+ user=User.objects.filter(email=BaseUserManager.normalize_email(email))
+ if (user):
+ user = user[0]
+ if user.is_active:
+ # force a new email to be sent
+ user.is_registering=True
+ user.save()
+ return HttpResponse(json.dumps({"error": "already_approved"}), content_type='application/javascript')
+ else:
+ return HttpResponse(json.dumps({"error": "already_pending"}), content_type='application/javascript')
+
+ user=User.deleted_objects.filter(email=BaseUserManager.normalize_email(email))
+ if (user):
+ return HttpResponse(json.dumps({"error": "is_deleted"}), content_type='application/javascript')
+
user = User(
email=BaseUserManager.normalize_email(email),
firstname=firstname,
lastname=lastname,
- is_active=False
+ is_active=False,
+ is_admin=False,
+ is_registering=True
)
user.save()
user.site=Site.objects.get(name=site)
subject, from_email, to = 'Authorize OpenCloud User Account', 'support@opencloud.us', str(sp.user)
text_content = 'This is an important message.'
html_content = """<p>Please authorize the following user on site """+site+""": <br><br>User: """+firstname+""" """+lastname+"""<br>Email: """+email+"""<br><br>
-Check the checkbox next to Is Active property at <a href="""+userUrl+"""> this link</a> to authorize the user. If you do not recognize this individual, or otherwise do not want to approve this account, please ignore this email. If you do not approve this request in 48 hours, the account will automatically be deleted.</p>"""
+Check the checkbox next to Is Active property at <a href="""+userUrl+"""> this link</a> to authorize the user, and then click the Save button. If you do not recognize this individual, or otherwise do not want to approve this account, please ignore this email. If you do not approve this request in 48 hours, the account will automatically be deleted.</p>"""
msg = EmailMultiAlternatives(subject,text_content, from_email, [to])
msg.attach_alternative(html_content, "text/html")
msg.send()
serviceClass = ServiceClass.objects.get(name=serviceClass)
site = request.user.site
image = Image.objects.get(name=imageName)
- newSlice = Slice(name=sliceName,serviceClass=serviceClass,site=site,imagePreference=image,mountDataSets=mountDataSets)
+ newSlice = Slice(name=sliceName,serviceClass=serviceClass,site=site,image_preference=image,mount_data_sets=mountDataSets)
newSlice.save()
privateTemplate="Private"
publicTemplate="Public shared IPv4"\r
if(entry.name==sliceName):\r
if (actionToDo == "update"):\r
setattr(entry,'serviceClass',serviceClass)\r
- setattr(entry,'imagePreference',imageName)\r
- setattr(entry,'mountDataSets',dataSet)\r
+ setattr(entry,'image_preference',imageName)\r
+ setattr(entry,'mount_data_sets',dataSet)\r
entry.save()\r
break\r
addOrModifyPorts(networkPorts,sliceName)\r
sliceName = Slice.objects.get(id=entry.id).name
slice = Slice.objects.get(name=Slice.objects.get(id=entry.id).name)
sliceServiceClass = entry.serviceClass.name
- preferredImage = entry.imagePreference
- #sliceDataSet = entry.mountDataSets
+ preferredImage = entry.image_preference
+ #sliceDataSet = entry.mount_data_sets
sliceNetwork = {}
numSliver = 0
sliceImage=""
sliceNode = {}
sliceInstance= {}
#createPrivateVolume(user,sliceName)
- available_sites = get_available_sites()
+ available_sites = getAvailableSites()
for sliver in slice.slivers.all():
if sliver.node.site.name in available_sites:
sliceSite[sliver.node.site.name] = sliceSite.get(sliver.node.site.name,0) + 1
length = len(BLESSED_DEPLOYMENTS)
for deployment in Deployment.objects.all():
if deployment.name in BLESSED_DEPLOYMENTS:
- for x in deployment.imagedeployments_set.all():
+ for x in deployment.imagedeployments.all():
tempImageInfo.append(x.image.name)
temp = {}
for i in set(tempImageInfo):
available_sites = []
for deployment in Deployment.objects.all():
if deployment.name in BLESSED_DEPLOYMENTS:
- for x in deployment.sitedeployments_set.all():
+ for x in deployment.sitedeployments.all():
if x.site.nodes.all():
available_sites.append(x.site.name)
return list(set(available_sites))
print "exception in geo code"
traceback.print_exc()
- available_sites = get_available_sites()
+ available_sites = getAvailableSites()
sites = Site.objects.all()
sites = [x for x in sites if x.name in available_sites]
sites = sorted(sites, key=functools.partial(siteSortKey, slice=slice, count=count, lat=lat, lon=lon))