blob: 7d686bdf4903eaa89ab1b9cc5dd24a3f9193393b [file] [log] [blame]
Scott Baker1fa9adf2016-05-26 20:20:47 -07001import os
2from django.db import models
3from core.models import PlCoreBase
4from core.models.plcorebase import StrippedCharField
5
6# XOS: Serves as the root of the build system
7
Scott Baker18cd4622016-06-03 15:49:16 -07008
9
Scott Baker1fa9adf2016-05-26 20:20:47 -070010class XOS(PlCoreBase):
11 name = StrippedCharField(max_length=200, unique=True, help_text="Name of XOS", default="XOS")
Scott Baker18cd4622016-06-03 15:49:16 -070012 ui_port = models.IntegerField(help_text="Port for XOS UI", default=80)
13 db_container_name = StrippedCharField(max_length=200, help_text="name of XOS db container", default="xos_db")
Scott Baker1fa9adf2016-05-26 20:20:47 -070014
15 def __unicode__(self): return u'%s' % (self.name)
16
17 def __init__(self, *args, **kwargs):
18 super(XOS, self).__init__(*args, **kwargs)
19
20 def save(self, *args, **kwds):
21 super(XOS, self).save(*args, **kwds)
22
23# def can_update(self, user):
24# return user.can_update_site(self.site, allow=['tech'])
25
Scott Bakereba0d0f2016-06-01 15:53:27 -070026 def rebuild(self):
27 for service_controller in self.service_controllers.all():
28 for scr in service_controller.service_controller_resources.all():
29 scr.save()
30 service_controller.save()
31 self.save()
32
Scott Baker18cd4622016-06-03 15:49:16 -070033class XOSVolume(PlCoreBase):
34 xos = models.ForeignKey(XOS, related_name='volumes', help_text="The XOS object for this Volume")
35 container_path=StrippedCharField(max_length=1024, unique=True, help_text="Path of Volume in Container")
36 host_path=StrippedCharField(max_length=1024, help_text="Path of Volume in Host")
37 read_only=models.BooleanField(default=False, help_text="True if mount read-only")
38
39 def __unicode__(self): return u'%s' % (self.container_path)
40
Scott Bakereba0d0f2016-06-01 15:53:27 -070041