From: Tony Mack <tmack@paris.CS.Princeton.EDU>
Date: Tue, 15 Jan 2013 18:38:54 +0000 (-0500)
Subject: produce more human readable error message when we've received an invalid sliver urn
X-Git-Tag: sfa-3.0-0~27
X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=39c21a8a278e9422feb8fd4d200673145b28d7fe;p=sfa.git

produce more human readable error message when we've received an invalid sliver urn
---

diff --git a/sfa/planetlab/plaggregate.py b/sfa/planetlab/plaggregate.py
index c21cdc74..6ad1e471 100644
--- a/sfa/planetlab/plaggregate.py
+++ b/sfa/planetlab/plaggregate.py
@@ -120,9 +120,14 @@ class PlAggregate:
             xrn = PlXrn(xrn=urn)
             if xrn.type == 'sliver':
                  # id: slice_id-node_id
-                sliver_id_parts = xrn.get_sliver_id_parts()
-                slice_ids.add(int(sliver_id_parts[0])) 
-                node_ids.append(int(sliver_id_parts[1]))
+                try:
+                    sliver_id_parts = xrn.get_sliver_id_parts()
+                    slice_id = int(sliver_id_parts[0]) 
+                    node_id = int(sliver_id_parts[1])
+                    slice_ids.add(slice_id) 
+                    node_ids.append(node_id)
+                except ValueError:
+                    pass 
             else:  
                 names.add(xrn.pl_slicename())
 
diff --git a/sfa/planetlab/pldriver.py b/sfa/planetlab/pldriver.py
index 52bf4037..ec6e973a 100644
--- a/sfa/planetlab/pldriver.py
+++ b/sfa/planetlab/pldriver.py
@@ -56,8 +56,12 @@ class PlDriver (Driver):
 
     def sliver_to_slice_xrn(self, xrn):
         sliver_id_parts = Xrn(xrn).get_sliver_id_parts()
-        slice_id = int(sliver_id_parts[0])
-        slices = self.shell.GetSlices(slice_id)
+        filter = {}
+        try:
+            filter['slice_id'] = int(sliver_id_parts[0])
+        except ValueError:
+            fliter['name'] = sliver_id_parts[0] 
+        slices = self.shell.GetSlices(filter)
         if not slices:
             raise Forbidden("Unable to locate slice record for sliver:  %s" % xrn)
         slice = slices[0]
@@ -75,7 +79,10 @@ class PlDriver (Driver):
         slice_ids = []
         for urn in urns:
             sliver_id_parts = Xrn(xrn=urn).get_sliver_id_parts()
-            slice_ids.append(sliver_id_parts[0])
+            try:
+                slice_ids.append(int(sliver_id_parts[0]))
+            except ValueError: 
+                pass
 
         if not slice_ids:
              raise Forbidden("sliver urn not provided")