- xrn = PlXrn(xrn=urn, type='slice')
- names.append(xrn.pl_slicename())
- if xrn.id:
- ids.append(xrn.id)
- slices = self.shell.GetSlices({'name': names})
+ xrn = PlXrn(xrn=urn)
+ if xrn.type == 'slice' and xrn.pl_slicename() not in slice_names:
+ slice_names.append(xrn.pl_slicename())
+ elif xrn.type == 'sliver':
+ leaf = xrn.leaf
+ leaf_split = leaf.split('-')
+ if len(leaf_split) > 1:
+ slice_ids.append(leaf_split[0])
+ node_ids.append(leaf_split[1])
+
+ # look up the requested urns
+ filter = {}
+ if slice_names:
+ filter['name'] = slice_names
+ if slice_ids:
+ filter['id'] = slice_ids
+ slices = self.shell.GetSlices(filter)