Added GetJobs.
[sfa.git] / sfa / senslab / slabaggregate.py
index 714bd35..2adf474 100644 (file)
@@ -9,7 +9,7 @@ import json
 
 from sfa.rspecs.version_manager import VersionManager
 from sfa.senslab.OARrestapi import *
-from sfa.senslab.slabdriver import SlabDriver
+#from sfa.senslab.slabdriver import SlabDriver
 from sfa.util.config import Config
 from sfa.util.xrn import hrn_to_urn, urn_to_hrn, urn_to_sliver_id
 from sfa.util.plxrn import PlXrn, hostname_to_urn, hrn_to_pl_slicename
@@ -25,7 +25,7 @@ from sfa.rspecs.elements.node import Node
 #from sfa.rspecs.elements.interface import Interface
 #from sfa.rspecs.elements.services import Services
 #from sfa.rspecs.elements.pltag import PLTag
-from sfa.util.topology import Topology
+
 from sfa.rspecs.version_manager import VersionManager
 #from sfa.plc.vlink import get_tc_rate
 from sfa.util.sfatime import epochparse
@@ -47,11 +47,11 @@ class SlabAggregate:
 
     user_options = {}
     
-    def __init__(self ,api):
+    def __init__(self ,driver):
        self.OARImporter = OARapi()     
-        self.driver = SlabDriver(Config())
-       self.api = api 
-       print >>sys.stderr,"\r\n \r\n \t\t_____________INIT Slabaggregate api : %s" %(api)
+        self.driver = driver
+       #self.api = api 
+       print >>sys.stderr,"\r\n \r\n \t\t_____________INIT Slabaggregate api : %s" %(driver)
 
 
     def get_slice_and_slivers(self, slice_xrn):
@@ -65,35 +65,35 @@ class SlabAggregate:
         slice_urn = hrn_to_urn(slice_xrn, 'slice')
         slice_hrn, _ = urn_to_hrn(slice_xrn)
         slice_name = slice_hrn
-        slices = self.driver.GetSlices(slice_name)
+        slices = self.driver.GetSlices([slice_name])
         if not slices:
             return (slice, slivers)
         slice = slices[0]
 
-        # sort slivers by node id    
-        for node_id in slice['node_ids']:
-            sliver = Sliver({'sliver_id': urn_to_sliver_id(slice_urn, slice['slice_id'], node_id),
-                             'name': slice['hrn'],
-                             'type': 'slab-vm', 
-                             'tags': []})
-            slivers[node_id]= sliver
-
-        # sort sliver attributes by node id    
-        #tags = self.driver.GetSliceTags({'slice_tag_id': slice['slice_tag_ids']})
-        #for tag in tags:
-            ## most likely a default/global sliver attribute (node_id == None)
-            #if tag['node_id'] not in slivers:
-                #sliver = Sliver({'sliver_id': urn_to_sliver_id(slice_urn, slice['slice_id'], ""),
-                                 #'name': 'slab-vm',
-                                 #'tags': []})
-                #slivers[tag['node_id']] = sliver
-            #slivers[tag['node_id']]['tags'].append(tag)
+        ## sort slivers by node id    
+        #for node_id in slice['node_ids']:
+            #sliver = Sliver({'sliver_id': urn_to_sliver_id(slice_urn, slice['slice_id'], node_id),
+                             #'name': slice['hrn'],
+                             #'type': 'slab-vm', 
+                             #'tags': []})
+            #slivers[node_id]= sliver
+
+        ## sort sliver attributes by node id    
+        ##tags = self.driver.GetSliceTags({'slice_tag_id': slice['slice_tag_ids']})
+        ##for tag in tags:
+            ### most likely a default/global sliver attribute (node_id == None)
+            ##if tag['node_id'] not in slivers:
+                ##sliver = Sliver({'sliver_id': urn_to_sliver_id(slice_urn, slice['slice_id'], ""),
+                                 ##'name': 'slab-vm',
+                                 ##'tags': []})
+                ##slivers[tag['node_id']] = sliver
+            ##slivers[tag['node_id']]['tags'].append(tag)
         
         return (slice, slivers)
             
             
   
-    def get_nodes(self):
+    def get_nodes(self,slice=None,slivers=[], options={}):
         filtre = {}
         #tags_filter = {}
         #if slice and 'node_ids' in slice and slice['node_ids']:
@@ -197,7 +197,7 @@ class SlabAggregate:
             rspec_version = version_manager._get_version(version.type, version.version, 'ad')
         else:
             rspec_version = version_manager._get_version(version.type, version.version, 'manifest')
-        #slice, slivers = self.get_slice_and_slivers(slice_xrn)
+        slice, slivers = self.get_slice_and_slivers(slice_xrn)
         rspec = RSpec(version=rspec_version, user_options=options)
         #if slice and 'expires' in slice:
            #rspec.xml.set('expires',  epochparse(slice['expires']))