Merged ansible branch into master
diff --git a/planetstack/core/models/credential.py b/planetstack/core/models/credential.py
index 13bc1c8..b74e540 100644
--- a/planetstack/core/models/credential.py
+++ b/planetstack/core/models/credential.py
@@ -6,7 +6,7 @@
from core.models import Deployment,DeploymentLinkManager,DeploymentLinkDeletionManager
class UserCredential(PlCoreBase):
- user = models.ForeignKey(User, related_name='credentials', help_text="The User this credential is associated with")
+ user = models.ForeignKey(User, related_name='usercredentials', help_text="The User this credential is associated with")
name = models.SlugField(help_text="The credential type, e.g. ec2", max_length=128)
key_id = models.CharField(help_text="The backend id of this credential", max_length=1024)
@@ -17,7 +17,7 @@
return self.name
class SiteCredential(PlCoreBase):
- site = models.ForeignKey(Site, related_name='credentials', help_text="The User this credential is associated with")
+ site = models.ForeignKey(Site, related_name='sitecredentials', help_text="The User this credential is associated with")
name = models.SlugField(help_text="The credential type, e.g. ec2", max_length=128)
key_id = models.CharField(help_text="The backend id of this credential", max_length=1024)
@@ -28,7 +28,7 @@
return self.name
class SliceCredential(PlCoreBase):
- slice = models.ForeignKey(Slice, related_name='credentials', help_text="The User this credential is associated with")
+ slice = models.ForeignKey(Slice, related_name='slicecredentials', help_text="The User this credential is associated with")
name = models.SlugField(help_text="The credential type, e.g. ec2", max_length=128)
key_id = models.CharField(help_text="The backend id of this credential", max_length=1024)
@@ -41,7 +41,7 @@
class DeploymentCredential(PlCoreBase):
objects = DeploymentLinkManager()
deleted_objects = DeploymentLinkDeletionManager()
- deployment = models.ForeignKey(Deployment, related_name='credentials', help_text="The User this credential is associated with")
+ deployment = models.ForeignKey(Deployment, related_name='deploymentcredentials', help_text="The User this credential is associated with")
name = models.SlugField(help_text="The credential type, e.g. ec2", max_length=128)
key_id = models.CharField(help_text="The backend id of this credential", max_length=1024)
diff --git a/planetstack/core/models/flavor.py b/planetstack/core/models/flavor.py
index 27b2642..04747af 100644
--- a/planetstack/core/models/flavor.py
+++ b/planetstack/core/models/flavor.py
@@ -32,7 +32,7 @@
parameter = models.ForeignKey(FlavorParameterType, related_name="parameters", help_text="The type of the parameter")
value = models.CharField(help_text="The value of this parameter", max_length=1024)
- flavor = models.ForeignKey(Flavor)
+ flavor = models.ForeignKey(Flavor,related_name='flavorparameter')
def __unicode__(self):
return self.parameter.name
diff --git a/planetstack/core/models/image.py b/planetstack/core/models/image.py
index 752dfe6..fdeb2cc 100644
--- a/planetstack/core/models/image.py
+++ b/planetstack/core/models/image.py
@@ -17,8 +17,8 @@
class ImageDeployments(PlCoreBase):
objects = DeploymentLinkManager()
deleted_objects = DeploymentLinkDeletionManager()
- image = models.ForeignKey(Image)
- deployment = models.ForeignKey(Deployment)
+ image = models.ForeignKey(Image,related_name='imagedeployments')
+ deployment = models.ForeignKey(Deployment,related_name='imagedeployments')
glance_image_id = models.CharField(null=True, blank=True, max_length=200, help_text="Glance image id")
def __unicode__(self): return u'%s %s' % (self.image, self.deployment)
diff --git a/planetstack/core/models/slice.py b/planetstack/core/models/slice.py
index 7412fe2..ed10caf 100644
--- a/planetstack/core/models/slice.py
+++ b/planetstack/core/models/slice.py
@@ -124,8 +124,8 @@
objects = DeploymentLinkManager()
deleted_objects = DeploymentLinkDeletionManager()
- slice = models.ForeignKey(Slice)
- deployment = models.ForeignKey(Deployment)
+ slice = models.ForeignKey(Slice, related_name='slicedeployments')
+ deployment = models.ForeignKey(Deployment, related_name='slicedeployments')
tenant_id = models.CharField(null=True, blank=True, max_length=200, help_text="Keystone tenant id")
network_id = models.CharField(null=True, blank=True, max_length=256, help_text="Quantum network")
router_id = models.CharField(null=True, blank=True, max_length=256, help_text="Quantum router id")
diff --git a/planetstack/core/models/sliver.py b/planetstack/core/models/sliver.py
index c694a1e..d9d2028 100644
--- a/planetstack/core/models/sliver.py
+++ b/planetstack/core/models/sliver.py
@@ -1,7 +1,8 @@
import os
from django.db import models
+from django.db.models import Q
from django.core import exceptions
-from core.models import PlCoreBase
+from core.models import PlCoreBase,PlCoreBaseManager,PlCoreBaseDeletionManager
from core.models import Image
from core.models import Slice
from core.models import Node
@@ -11,6 +12,9 @@
from core.models import Tag
from core.models import Flavor
from django.contrib.contenttypes import generic
+from planetstack.config import Config
+
+config = Config()
def get_default_flavor(deployment = None):
# Find a default flavor that can be used for a sliver. This is particularly
@@ -31,8 +35,49 @@
return flavors[0]
+class SliverDeletionManager(PlCoreBaseDeletionManager):
+ def get_queryset(self):
+ parent=super(SliverDeletionManager, self)
+ try:
+ backend_type = config.observer_backend_type
+ except AttributeError:
+ backend_type = None
+
+ parent_queryset = parent.get_queryset() if hasattr(parent, "get_queryset") else parent.get_query_set()
+ if (backend_type):
+ return parent_queryset.filter(Q(node__deployment__backend_type=backend_type))
+ else:
+ return parent_queryset
+
+ # deprecated in django 1.7 in favor of get_queryset().
+ def get_query_set(self):
+ return self.get_queryset()
+
+
+class SliverManager(PlCoreBaseManager):
+ def get_queryset(self):
+ parent=super(SliverManager, self)
+
+ try:
+ backend_type = config.observer_backend_type
+ except AttributeError:
+ backend_type = None
+
+ parent_queryset = parent.get_queryset() if hasattr(parent, "get_queryset") else parent.get_query_set()
+
+ if backend_type:
+ return parent_queryset.filter(Q(node__deployment__backend_type=backend_type))
+ else:
+ return parent_queryset
+
+ # deprecated in django 1.7 in favor of get_queryset().
+ def get_query_set(self):
+ return self.get_queryset()
+
# Create your models here.
class Sliver(PlCoreBase):
+ objects = SliverManager()
+ deleted_objects = SliverDeletionManager()
instance_id = models.CharField(null=True, blank=True, max_length=200, help_text="Nova instance id")
name = models.CharField(max_length=200, help_text="Sliver name")
instance_name = models.CharField(blank=True, null=True, max_length=200, help_text="OpenStack generated name")