From: Mohamed Larabi Date: Mon, 10 Sep 2012 13:13:01 +0000 (+0200) Subject: bugs fixing X-Git-Tag: sfa-2.1-15~31 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=92b229d72b4e0a3fdd25c91e87d69d77102f7765;p=sfa.git bugs fixing --- diff --git a/sfa/importer/nitosimporter.py b/sfa/importer/nitosimporter.py index 12dedcca..3a8f90b1 100644 --- a/sfa/importer/nitosimporter.py +++ b/sfa/importer/nitosimporter.py @@ -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 diff --git a/sfa/nitos/nitosaggregate.py b/sfa/nitos/nitosaggregate.py index 5c9e14fc..2799a30f 100644 --- a/sfa/nitos/nitosaggregate.py +++ b/sfa/nitos/nitosaggregate.py @@ -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() diff --git a/sfa/nitos/nitosdriver.py b/sfa/nitos/nitosdriver.py index 41dfe369..b917ee12 100644 --- a/sfa/nitos/nitosdriver.py +++ b/sfa/nitos/nitosdriver.py @@ -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' diff --git a/sfa/nitos/nitosshell.py b/sfa/nitos/nitosshell.py index 4b5fce62..afbc4111 100644 --- a/sfa/nitos/nitosshell.py +++ b/sfa/nitos/nitosshell.py @@ -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' ]