fields for HPC object ids
[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
20     service_provider_id = models.IntegerField(null=True, blank=True)
21     name = models.CharField(max_length=254,help_text="Service Provider Name")
22     description = models.TextField(max_length=254,null=True, blank=True, help_text="Description of Service Provider")
23     enabled = models.BooleanField(default=True)
24
25     def __unicode__(self):  return u'%s' % (self.name)
26
27 class ContentProvider(PlCoreBase):
28     class Meta:
29         app_label = "hpc"
30
31     content_provider_id = models.IntegerField(null=True, blank=True)
32     name = models.CharField(max_length=254)
33     enabled = models.BooleanField(default=True)
34     description = models.TextField(max_length=254,null=True, blank=True,help_text="Description of Content Provider")
35     serviceProvider = models.ForeignKey(ServiceProvider)
36
37     # Note user relationships are directed not requiring a role.
38     users = models.ManyToManyField(User)
39
40     def __unicode__(self):  return u'%s' % (self.name)
41
42 class OriginServer(PlCoreBase):
43     class Meta:
44         app_label = "hpc"
45
46     origin_server_id = models.IntegerField(null=True, blank=True)
47     url = models.URLField()
48     contentProvider = models.ForeignKey(ContentProvider)
49
50     authenticated = models.BooleanField(default=False, help_text="Status for this Site")
51     enabled = models.BooleanField(default=True, help_text="Status for this Site")
52     PROTOCOL_CHOICES = (('http', 'HTTP'),('rtmp', 'RTMP'), ('rtp', 'RTP'),('shout', 'SHOUTcast')) 
53     protocol = models.CharField(default="HTTP", max_length = 12, choices=PROTOCOL_CHOICES)
54     redirects = models.BooleanField(default=True, help_text="Indicates whether Origin Server redirects should be used for this Origin Server")
55     description = models.TextField(null=True, blank=True, max_length=255)
56     
57     def __unicode__(self):  return u'%s' % (self.url)
58
59 class CDNPrefix(PlCoreBase):
60     class Meta:
61         app_label = "hpc"
62
63     cdn_prefix_id = models.IntegerField(null=True, blank=True)
64     prefix = models.CharField(max_length=200, help_text="Registered Prefix for Domain")
65     contentProvider = models.ForeignKey(ContentProvider)
66     description = models.TextField(max_length=254,null=True, blank=True,help_text="Description of Content Provider")
67
68     defaultOriginServer = models.ForeignKey(OriginServer)
69     enabled = models.BooleanField(default=True)
70
71     def __unicode__(self):  return u'%s' % (self.prefix)
72