From 9b0877c05dc78b2f25755f0d0c0fe7d65c15a16a Mon Sep 17 00:00:00 2001
From: Mohamed Larabi <mohamed.larabi@inria.fr>
Date: Thu, 14 Mar 2013 14:20:52 +0100
Subject: [PATCH] pldriver: delete_sliver needs to delete leases as well

---
 sfa/planetlab/pldriver.py | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/sfa/planetlab/pldriver.py b/sfa/planetlab/pldriver.py
index 1d0a59ec..6c88a14f 100644
--- a/sfa/planetlab/pldriver.py
+++ b/sfa/planetlab/pldriver.py
@@ -778,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
@@ -788,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'])
-- 
2.47.0