+from core.models import User
+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
+ # useful in evolution. It's also intended this helper function can be used
+ # for admin.py when users
+
+ if deployment:
+ flavors = deployment.flavors.all()
+ else:
+ flavors = Flavor.objects.all()
+
+ if not flavors:
+ return None
+
+ for flavor in flavors:
+ if flavor.default:
+ return flavor
+
+ 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()