Added a type to backend_status
[plstackapi.git] / planetstack / core / models / image.py
1 import os
2 from django.db import models
3 from core.models import PlCoreBase
4 from core.models import Deployment,Controller,ControllerLinkManager,ControllerLinkDeletionManager
5
6 # Create your models here.
7
8 class Image(PlCoreBase):
9     name = models.CharField(max_length=256, unique=True)
10     disk_format = models.CharField(max_length=256)
11     container_format = models.CharField(max_length=256)
12     path = models.CharField(max_length=256, null=True, blank=True, help_text="Path to image on local disk")
13     deployments = models.ManyToManyField('Deployment', through='ImageDeployments', blank=True, help_text="Select which images should be instantiated on this deployment", related_name='images')
14
15     def __unicode__(self):  return u'%s' % (self.name)
16
17 class ImageDeployments(PlCoreBase):
18     image = models.ForeignKey(Image,related_name='imagedeployments')
19     deployment = models.ForeignKey(Deployment,related_name='imagedeployments')
20
21     def __unicode__(self):  return u'%s %s' % (self.image, self.deployment)
22
23 class ControllerImages(PlCoreBase):
24     objects = ControllerLinkManager()
25     deleted_objects = ControllerLinkDeletionManager()
26     image = models.ForeignKey(Image,related_name='controllerimages')
27     controller = models.ForeignKey(Controller,related_name='controllerimages')
28     glance_image_id = models.CharField(null=True, blank=True, max_length=200, help_text="Glance image id") 
29
30     def __unicode__(self):  return u'%s %s' % (self.image, self.controller)
31
32