Merge branch 'master' of ssh://git.planet-lab.org/git/plstackapi
[plstackapi.git] / planetstack / hpc / models.py
index 9f5f165..1b7535f 100644 (file)
@@ -28,6 +28,10 @@ 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)
@@ -39,6 +43,10 @@ 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"
@@ -65,8 +73,25 @@ class CDNPrefix(PlCoreBase):
     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