fix sliver.name
[plstackapi.git] / planetstack / core / models / sliver.py
index d9d2028..4d89d9f 100644 (file)
@@ -8,21 +8,23 @@ from core.models import Slice
 from core.models import Node
 from core.models import Site
 from core.models import Deployment
 from core.models import Node
 from core.models import Site
 from core.models import Deployment
+from core.models import Controller
 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
 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
+from monitor import driver as monitor
 
 config = Config()
 
 
 config = Config()
 
-def get_default_flavor(deployment = None):
+def get_default_flavor(controller = 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
 
     # 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()
+    if controller:
+        flavors = controller.flavors.all()
     else:
         flavors = Flavor.objects.all()
 
     else:
         flavors = Flavor.objects.all()
 
@@ -45,7 +47,7 @@ class SliverDeletionManager(PlCoreBaseDeletionManager):
 
         parent_queryset = parent.get_queryset() if hasattr(parent, "get_queryset") else parent.get_query_set()
         if (backend_type):
 
         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))
+            return parent_queryset.filter(Q(node__controller__backend_type=backend_type))
         else:
             return parent_queryset
 
         else:
             return parent_queryset
 
@@ -66,7 +68,7 @@ class SliverManager(PlCoreBaseManager):
         parent_queryset = parent.get_queryset() if hasattr(parent, "get_queryset") else parent.get_query_set()
 
         if backend_type:
         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))
+            return parent_queryset.filter(Q(node__controller__backend_type=backend_type))
         else:
             return parent_queryset
 
         else:
             return parent_queryset
 
@@ -86,8 +88,8 @@ class Sliver(PlCoreBase):
     #key = models.ForeignKey(Key, related_name='slivers')
     creator = models.ForeignKey(User, related_name='slivers', blank=True, null=True)
     slice = models.ForeignKey(Slice, related_name='slivers')
     #key = models.ForeignKey(Key, related_name='slivers')
     creator = models.ForeignKey(User, related_name='slivers', blank=True, null=True)
     slice = models.ForeignKey(Slice, related_name='slivers')
+    deployment = models.ForeignKey(Deployment, verbose_name='deployment', related_name='sliver_deployment')
     node = models.ForeignKey(Node, related_name='slivers')
     node = models.ForeignKey(Node, related_name='slivers')
-    deploymentNetwork = models.ForeignKey(Deployment, verbose_name='deployment', related_name='sliver_deploymentNetwork')
     numberCores = models.IntegerField(verbose_name="Number of Cores", help_text="Number of cores for sliver", default=0)
     flavor = models.ForeignKey(Flavor, help_text="Flavor of this instance", default=get_default_flavor)
     tags = generic.GenericRelation(Tag)
     numberCores = models.IntegerField(verbose_name="Number of Cores", help_text="Number of cores for sliver", default=0)
     flavor = models.ForeignKey(Flavor, help_text="Flavor of this instance", default=get_default_flavor)
     tags = generic.GenericRelation(Tag)
@@ -104,14 +106,13 @@ class Sliver(PlCoreBase):
             return u'unsaved-sliver'
 
     def save(self, *args, **kwds):
             return u'unsaved-sliver'
 
     def save(self, *args, **kwds):
-        self.name = self.slice.slicename
+        self.name = self.slice.name
         if not self.creator and hasattr(self, 'caller'):
             self.creator = self.caller
         if not self.creator and hasattr(self, 'caller'):
             self.creator = self.caller
-        self.deploymentNetwork = self.node.deployment
 
 # XXX smbaker - disabled for now, was causing fault in tenant view create slice
 
 # XXX smbaker - disabled for now, was causing fault in tenant view create slice
-#        if not self.deploymentNetwork.test_acl(slice=self.slice):
-#            raise exceptions.ValidationError("Deployment %s's ACL does not allow any of this slice %s's users" % (self.deploymentNetwork.name, self.slice.name))
+#        if not self.controllerNetwork.test_acl(slice=self.slice):
+#            raise exceptions.ValidationError("Deployment %s's ACL does not allow any of this slice %s's users" % (self.controllerNetwork.name, self.slice.name))
 
         super(Sliver, self).save(*args, **kwds)
 
 
         super(Sliver, self).save(*args, **kwds)
 
@@ -141,3 +142,15 @@ class Sliver(PlCoreBase):
             slices = Slice.select_by_user(user)
             qs = Sliver.objects.filter(slice__in=slices)
         return qs
             slices = Slice.select_by_user(user)
             qs = Sliver.objects.filter(slice__in=slices)
         return qs
+
+    def get_cpu_stats(self):
+        filter = 'instance_id=%s'%self.sliver_id
+        return monitor.get_meter('cpu',filter,None)
+
+    def get_bw_stats(self):
+        filter = 'instance_id=%s'%self.sliver_id
+        return monitor.get_meter('network.outgoing.bytes',filter,None)
+
+    def get_node_stats(self):
+        # Note sure what should go back here
+        return 1