user's can't set/unset is_admin, is_active and is_readonly values in Login Details...
[plstackapi.git] / planetstack / hpc / models.py
index 217ee89..1b7535f 100644 (file)
@@ -16,6 +16,8 @@ class HpcService(SingletonModel,Service):
 class ServiceProvider(PlCoreBase):
     class Meta:
         app_label = "hpc"
+
+    service_provider_id = models.IntegerField(null=True, blank=True)
     name = models.CharField(max_length=254,help_text="Service Provider Name")
     description = models.TextField(max_length=254,null=True, blank=True, help_text="Description of Service Provider")
     enabled = models.BooleanField(default=True)
@@ -25,6 +27,12 @@ class ServiceProvider(PlCoreBase):
 class ContentProvider(PlCoreBase):
     class Meta:
         app_label = "hpc"
+
+    # legacy vicci content providers already have names.
+    CP_TO_ACCOUNT = {"ON.LAB": "onlabcp",
+                     "Syndicate": "syndicatecp"}
+
+    content_provider_id = models.IntegerField(null=True, blank=True)
     name = models.CharField(max_length=254)
     enabled = models.BooleanField(default=True)
     description = models.TextField(max_length=254,null=True, blank=True,help_text="Description of Content Provider")
@@ -35,9 +43,15 @@ class ContentProvider(PlCoreBase):
 
     def __unicode__(self):  return u'%s' % (self.name)
 
+    @property
+    def account(self):
+        return self.CP_TO_ACCOUNT.get(self.name, self.name)
+
 class OriginServer(PlCoreBase):
     class Meta:
         app_label = "hpc"
+
+    origin_server_id = models.IntegerField(null=True, blank=True)
     url = models.URLField()
     contentProvider = models.ForeignKey(ContentProvider)
 
@@ -53,12 +67,31 @@ class OriginServer(PlCoreBase):
 class CDNPrefix(PlCoreBase):
     class Meta:
         app_label = "hpc"
+
+    cdn_prefix_id = models.IntegerField(null=True, blank=True)
     prefix = models.CharField(max_length=200, help_text="Registered Prefix for Domain")
     contentProvider = models.ForeignKey(ContentProvider)
     description = models.TextField(max_length=254,null=True, blank=True,help_text="Description of Content Provider")
 
-    defaultOriginServer = models.ForeignKey(OriginServer)
+    defaultOriginServer = models.ForeignKey(OriginServer, blank=True, null=True)
     enabled = models.BooleanField(default=True)
 
     def __unicode__(self):  return u'%s' % (self.prefix)
 
+class AccessMap(models.Model):
+    contentProvider = models.ForeignKey(ContentProvider)
+    name = models.CharField(max_length=64, help_text="Name of the Access Map")
+    description = models.TextField(null=True, blank=True,max_length=130)
+    map = models.FileField(upload_to="maps/", help_text="specifies which client requests are allowed")
+
+    def __unicode__(self):  return self.name
+
+class SiteMap(models.Model):
+    """ can be bound to a ContentProvider, ServiceProvider, or neither """
+    contentProvider = models.ForeignKey(ContentProvider, blank=True, null=True)
+    serviceProvider = models.ForeignKey(ServiceProvider, blank=True, null=True)
+    name = models.CharField(max_length=64, help_text="Name of the Site Map")
+    description = models.TextField(null=True, blank=True,max_length=130)
+    map = models.FileField(upload_to="maps/", help_text="specifies how to map requests to hpc instances")
+
+    def __unicode__(self):  return self.name