blob: 217ee8917fec5b964328d803e9ccbacb549a1e44 [file] [log] [blame]
Siobhan Tullybfd11dc2013-09-03 12:59:24 -04001from django.db import models
Siobhan Tullycf04fb62014-01-11 11:25:57 -05002from core.models import User, Service, SingletonModel, PlCoreBase
Siobhan Tullybfd11dc2013-09-03 12:59:24 -04003import os
4from django.db import models
5from django.forms.models import model_to_dict
6
7
8# Create your models here.
9
Siobhan Tullycf04fb62014-01-11 11:25:57 -050010class HpcService(SingletonModel,Service):
Siobhan Tullybfd11dc2013-09-03 12:59:24 -040011
12 class Meta:
Siobhan Tullybfd11dc2013-09-03 12:59:24 -040013 app_label = "hpc"
Siobhan Tullycf04fb62014-01-11 11:25:57 -050014 verbose_name = "HPC Service"
Siobhan Tullybfd11dc2013-09-03 12:59:24 -040015
Siobhan Tullycf04fb62014-01-11 11:25:57 -050016class ServiceProvider(PlCoreBase):
17 class Meta:
18 app_label = "hpc"
Siobhan Tullybfd11dc2013-09-03 12:59:24 -040019 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
Siobhan Tullycf04fb62014-01-11 11:25:57 -050025class ContentProvider(PlCoreBase):
26 class Meta:
27 app_label = "hpc"
Siobhan Tullybfd11dc2013-09-03 12:59:24 -040028 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
Siobhan Tullycf04fb62014-01-11 11:25:57 -050038class OriginServer(PlCoreBase):
39 class Meta:
40 app_label = "hpc"
Siobhan Tullybfd11dc2013-09-03 12:59:24 -040041 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
Siobhan Tullycf04fb62014-01-11 11:25:57 -050053class CDNPrefix(PlCoreBase):
54 class Meta:
55 app_label = "hpc"
Siobhan Tullybfd11dc2013-09-03 12:59:24 -040056 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