Merge branch 'master' of ssh://git.planet-lab.org/git/plstackapi
[plstackapi.git] / planetstack / core / models / serviceclass.py
1 import os
2 from django.db import models
3 from core.models import PlCoreBase
4 from core.models import Site
5 from core.models import Deployment
6
7 def get_default_serviceclass():
8     try:
9         return ServiceClass.objects.get(name="Best Effort")
10     except ServiceClass.DoesNotExist:
11         return None
12
13 class ServiceClass(PlCoreBase):
14     name = models.CharField(max_length=32)
15     description = models.CharField(max_length=255)
16     commitment = models.IntegerField(default=365)
17     membershipFee = models.IntegerField(default=0)
18     membershipFeeMonths = models.IntegerField(default=12)
19     upgradeRequiresApproval = models.BooleanField(default=False)
20     upgradeFrom = models.ManyToManyField('self', blank=True, null=True)
21
22     class Meta(PlCoreBase.Meta):
23        verbose_name_plural = "Service classes"
24
25     def __unicode__(self):  return u'%s' % (self.name)
26
27     def save_by_user(self, user, *args, **kwds):
28         if self.can_update(user):
29             super(ServiceClass, self).save(*args, **kwds)