produce more human readable error message when we've received an invalid sliver urn
authorTony Mack <tmack@paris.CS.Princeton.EDU>
Tue, 15 Jan 2013 18:38:54 +0000 (13:38 -0500)
committerTony Mack <tmack@paris.CS.Princeton.EDU>
Tue, 15 Jan 2013 18:38:54 +0000 (13:38 -0500)
sfa/planetlab/plaggregate.py
sfa/planetlab/pldriver.py

index c21cdc7..6ad1e47 100644 (file)
@@ -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())
 
index 52bf403..ec6e973 100644 (file)
@@ -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")