X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;ds=sidebyside;f=sfa%2Fplanetlab%2Fpldriver.py;h=6c88a14fff9d5ff0ae14b6b4161af273c6e3b4ab;hb=8753f49d0f07c3419b387d798625ad1830c0ba9a;hp=15442f54922de3762759ce5f02b0f3c934f75e7b;hpb=ef93cb4ac2a1bd90ca35504ee543f03cda789741;p=sfa.git diff --git a/sfa/planetlab/pldriver.py b/sfa/planetlab/pldriver.py index 15442f54..6c88a14f 100644 --- a/sfa/planetlab/pldriver.py +++ b/sfa/planetlab/pldriver.py @@ -745,8 +745,11 @@ class PlDriver (Driver): slices.verify_slice_links(slice, rspec.version.get_link_requests(), nodes) # add/remove leases - rspec_requested_leases = rspec.version.get_leases() - leases = slices.verify_slice_leases(slice, rspec_requested_leases, peer) + try: + rspec_requested_leases = rspec.version.get_leases() + leases = slices.verify_slice_leases(slice, rspec_requested_leases, peer) + except: + pass #requested_leases = [] #kept_leases = [] #for lease in rspec.version.get_leases(): @@ -775,7 +778,10 @@ class PlDriver (Driver): if not slices: return True slice = slices[0] - + + # leases + leases = self.shell.GetLeases({'name': slicename}) + leases_ids = [lease['lease_id'] for lease in leases ] # determine if this is a peer slice # xxx I wonder if this would not need to use PlSlices.get_peer instead # in which case plc.peers could be deprecated as this here @@ -785,6 +791,8 @@ class PlDriver (Driver): if peer: self.shell.UnBindObjectFromPeer('slice', slice['slice_id'], peer) self.shell.DeleteSliceFromNodes(slicename, slice['node_ids']) + if len(leases_ids) > 0: + self.shell.DeleteLeases(leases_ids) finally: if peer: self.shell.BindObjectToPeer('slice', slice['slice_id'], peer, slice['peer_slice_id'])