bugs fixing
authorMohamed Larabi <mohamed.larabi@inria.fr>
Mon, 10 Sep 2012 13:13:01 +0000 (15:13 +0200)
committerMohamed Larabi <mohamed.larabi@inria.fr>
Mon, 17 Sep 2012 12:13:38 +0000 (14:13 +0200)
sfa/importer/nitosimporter.py
sfa/nitos/nitosaggregate.py
sfa/nitos/nitosdriver.py
sfa/nitos/nitosshell.py

index 12dedcc..3a8f90b 100644 (file)
@@ -120,11 +120,11 @@ class NitosImporter:
         # create a dict user_id -> [ (nitos)keys ]
         keys_by_user_id = dict ( [ ( user['user_id'], user['keys']) for user in users ] ) 
         # Get all nitos nodes  
-        nodes = shell.getNodes()
+        nodes = shell.getNodes({}, [])
         # create hash by node_id
-        nodes_by_id = dict ( [ (node['node_id'], node) for node in nodes ] )
+        nodes_by_id = dict ( [ (node['id'], node) for node in nodes ] )
         # Get all nitos slices
-        slices = shell.getSlices()
+        slices = shell.getSlices({}, [])
         # create hash by slice_id
         slices_by_id = dict ( [ (slice['slice_id'], slice) for slice in slices ] )
 
@@ -174,7 +174,7 @@ class NitosImporter:
                         urn = hrn_to_urn(node_hrn, 'node')
                         node_gid = self.auth_hierarchy.create_gid(urn, create_uuid(), pkey)
                         node_record = RegNode (hrn=node_hrn, gid=node_gid, 
-                                               pointer =node['node_id'],
+                                               pointer =node['id'],
                                                authority=get_authority(node_hrn))
                         node_record.just_created()
                         dbsession.add(node_record)
@@ -186,6 +186,7 @@ class NitosImporter:
                 else:
                     # xxx update the record ...
                     pass
+                
                 node_record.stale=False
 
 
index 5c9e14f..2799a30 100644 (file)
@@ -1,5 +1,5 @@
 #!/usr/bin/python
-from sfa.util.xrn import Xrn, hrn_to_urn, urn_to_hrn, urn_to_sliver_id
+from sfa.util.xrn import Xrn, hrn_to_urn, urn_to_hrn
 from sfa.util.sfatime import utcparse, datetime_to_string
 from sfa.util.sfalogging import logger
 
@@ -113,21 +113,20 @@ class NitosAggregate:
         slice_urn = hrn_to_urn(slice_xrn, 'slice')
         slice_hrn, _ = urn_to_hrn(slice_xrn)
         slice_name = hrn_to_nitos_slicename(slice_hrn)
-        slices = self.driver.shell.getSlices()
+        slices = self.driver.shell.getSlices({'slice_name': slice_name}, [])
         # filter results
-        for slc in slices:
-             if slc['slice_name'] == slice_name:
-                 slice = slc
-                 break
+        #for slc in slices:
+        #     if slc['slice_name'] == slice_name:
+        #         slice = slc
+                 break
 
         if not slice:
             return (slice, slivers)
       
-        reserved_nodes = self.driver.shell.getReservedNodes()
-        # filter results
+        reserved_nodes = self.driver.shell.getReservedNodes({'slice_id': slice['slice_id']}, [])
+       
         for node in reserved_nodes:
-             if node['slice_id'] == slice['slice_id']:
-                 slivers[node[node_id]] = node
+             slivers[node['id']] = node
 
         return (slice, slivers)
        
@@ -142,7 +141,7 @@ class NitosAggregate:
             else:
                 nodes = [slivers[sliver] for sliver in slivers]
         else:
-            nodes = self.driver.shell.getNodes()
+            nodes = self.driver.shell.getNodes({}, [])
         
         # get the granularity in second for the reservation system
         grain = self.driver.testbedInfo['grain']
@@ -169,7 +168,7 @@ class NitosAggregate:
                 location = Location({'longitude': longitude, 'latitude': latitude, 'country': 'unknown'})
                 rspec_node['location'] = location
             # 3D position
-            position_3d = Position3D({'x': node['position']['X'], 'y': node['position']['Y'], 'z': node['position']['Z']})
+            position_3d = Position3D({'x': node['X'], 'y': node['Y'], 'z': node['Z']})
             #position_3d = Position3D({'x': 1, 'y': 2, 'z': 3})
             rspec_node['position_3d'] = position_3d 
             # Granularity
@@ -177,7 +176,7 @@ class NitosAggregate:
             rspec_node['granularity'] = granularity
 
             # HardwareType
-            rspec_node['hardware_type'] = node['node_type']
+            rspec_node['hardware_type'] = node['type']
             #rspec_node['hardware_type'] = "orbit"
 
                 
@@ -186,10 +185,10 @@ class NitosAggregate:
 
     def get_leases_and_channels(self, slice=None, options={}):
         
-        slices = self.driver.shell.getSlices()
-        nodes = self.driver.shell.getNodes()
-        leases = self.driver.shell.getReservedNodes()
-        channels = self.driver.shell.getChannels()
+        slices = self.driver.shell.getSlices({}, [])
+        nodes = self.driver.shell.getNodes({}, [])
+        leases = self.driver.shell.getReservedNodes({}, [])
+        channels = self.driver.shell.getChannels({}, [])
         reserved_channels = self.driver.shell.getReservedChannels()
         grain = self.driver.testbedInfo['grain']
 
@@ -235,7 +234,7 @@ class NitosAggregate:
             rspec_lease['lease_id'] = lease['reservation_id']
             # retreive node name
             for node in nodes:
-                 if node['node_id'] == lease['node_id']:
+                 if node['id'] == lease['node_id']:
                      nodename = node['name']
                      break
            
@@ -259,7 +258,7 @@ class NitosAggregate:
     def get_channels(self, options={}):
         
         filter = {}
-        channels = self.driver.shell.getChannels()
+        channels = self.driver.shell.getChannels({}, [])
         rspec_channels = []
         for channel in channels:
             rspec_channel = Channel()
index 41dfe36..b917ee1 100644 (file)
@@ -7,7 +7,7 @@ from sfa.util.faults import MissingSfaInfo, UnknownSfaType, \
 from sfa.util.sfalogging import logger
 from sfa.util.defaultdict import defaultdict
 from sfa.util.sfatime import utcparse, datetime_to_string, datetime_to_epoch
-from sfa.util.xrn import hrn_to_urn, get_leaf, urn_to_sliver_id
+from sfa.util.xrn import hrn_to_urn, get_leaf
 from sfa.util.cache import Cache
 
 # one would think the driver should not need to mess with the SFA db, but..
@@ -565,7 +565,7 @@ class NitosDriver (Driver):
                 return slices
 
         # get data from db 
-        slices = self.shell.getSlices()
+        slices = self.shell.getSlices({}, [])
         # get site name
         #site_name = self.shell.getTestbedInfo()['site_name']
         site_name = "nitos"
@@ -623,7 +623,7 @@ class NitosDriver (Driver):
         # find out where this slice is currently running
         slicename = hrn_to_nitos_slicename(slice_hrn)
         
-        slices = self.shell.getSlices()
+        slices = self.shell.getSlices({}, [])
         # filter slicename
         if len(slices) == 0:        
             raise SliverDoesNotExist("%s (used %s as slicename internally)" % (slice_hrn, slicename))
@@ -689,7 +689,7 @@ class NitosDriver (Driver):
             if node['last_contact'] is not None:
                 
                 res['pl_last_contact'] = datetime_to_string(utcparse(node['last_contact']))
-            sliver_id = urn_to_sliver_id(slice_urn, slice['slice_id'], node['node_id'], authority=self.hrn) 
+            sliver_id = Xrn(slice_urn, type='slice', id=node['node_id'], authority=self.hrn).urn
             res['geni_urn'] = sliver_id
             if node['boot_state'] == 'boot':
                 res['geni_status'] = 'ready'
index 4b5fce6..afbc411 100644 (file)
@@ -14,6 +14,12 @@ class NitosShell:
     
     direct_calls = ['getNodes','getChannels','getSlices','getUsers','getReservedNodes',
                     'getReservedChannels','getTestbedInfo'
+                    'reserveNodes','reserveChannels','addSlice','addUser','addUserToSlice',
+                    'addUserKey','addNode', 'addChannel',
+                    'updateReservedNodes','updateReservedChannels','updateSlice','updateUser',
+                    'updateNode', 'updateChannel',
+                    'deleteNode','deleteChannel','deleteSlice','deleteUser', 'deleteUserFromSLice',
+                    'deleteKey', 'releaseNodes', 'releaseChannels'
                     ]