Adjustments for initial public launch of OpenCloud
[plstackapi.git] / planetstack / hpc / models.py
1 from django.db import models
2 from core.models import User, Service, SingletonModel, PlCoreBase
3 import os
4 from django.db import models
5 from django.forms.models import model_to_dict
6
7
8 # Create your models here.
9
10 class HpcService(SingletonModel,Service):
11
12     class Meta:
13         app_label = "hpc"
14         verbose_name = "HPC Service"
15
16 class ServiceProvider(PlCoreBase):
17     class Meta:
18         app_label = "hpc"
19     name = models.CharField(max_length=254,help_text="Service Provider Name")
20     description = models.TextField(max_length=254,null=True, blank=True, help_text="Description of Service Provider")
21     enabled = models.BooleanField(default=True)
22
23     def __unicode__(self):  return u'%s' % (self.name)
24
25 class ContentProvider(PlCoreBase):
26     class Meta:
27         app_label = "hpc"
28     name = models.CharField(max_length=254)
29     enabled = models.BooleanField(default=True)
30     description = models.TextField(max_length=254,null=True, blank=True,help_text="Description of Content Provider")
31     serviceProvider = models.ForeignKey(ServiceProvider)
32
33     # Note user relationships are directed not requiring a role.
34     users = models.ManyToManyField(User)
35
36     def __unicode__(self):  return u'%s' % (self.name)
37
38 class OriginServer(PlCoreBase):
39     class Meta:
40         app_label = "hpc"
41     url = models.URLField()
42     contentProvider = models.ForeignKey(ContentProvider)
43
44     authenticated = models.BooleanField(default=False, help_text="Status for this Site")
45     enabled = models.BooleanField(default=True, help_text="Status for this Site")
46     PROTOCOL_CHOICES = (('http', 'HTTP'),('rtmp', 'RTMP'), ('rtp', 'RTP'),('shout', 'SHOUTcast')) 
47     protocol = models.CharField(default="HTTP", max_length = 12, choices=PROTOCOL_CHOICES)
48     redirects = models.BooleanField(default=True, help_text="Indicates whether Origin Server redirects should be used for this Origin Server")
49     description = models.TextField(null=True, blank=True, max_length=255)
50     
51     def __unicode__(self):  return u'%s' % (self.url)
52
53 class CDNPrefix(PlCoreBase):
54     class Meta:
55         app_label = "hpc"
56     prefix = models.CharField(max_length=200, help_text="Registered Prefix for Domain")
57     contentProvider = models.ForeignKey(ContentProvider)
58     description = models.TextField(max_length=254,null=True, blank=True,help_text="Description of Content Provider")
59
60     defaultOriginServer = models.ForeignKey(OriginServer)
61     enabled = models.BooleanField(default=True)
62
63     def __unicode__(self):  return u'%s' % (self.prefix)
64