svn keywords
[plcapi.git] / PLC / Methods / SliceInfo.py
index 94b4bb9..15b1665 100644 (file)
@@ -1,9 +1,14 @@
+# $Id$
+# $URL$
 from PLC.Method import Method
 from PLC.Parameter import Parameter, Mixed
+from PLC.Faults import *
 from PLC.Filter import Filter
 from PLC.Auth import Auth
 from PLC.Slices import Slice, Slices
 from PLC.Sites import Site, Sites
+from PLC.Persons import Person, Persons
+from PLC.Nodes import Node, Nodes
 
 class SliceInfo(Method):
     """
@@ -19,6 +24,8 @@ class SliceInfo(Method):
     slice_filter, details about that slice will not be returned.
     """
 
+    status = "deprecated"
+
     roles = ['admin', 'pi', 'user']
 
     accepts = [
@@ -52,15 +59,19 @@ class SliceInfo(Method):
        
            slices = filter(lambda slice: slice['slice_id'] in valid_slice_ids, slices)
 
+
        for slice in slices:
-           slices.pop(slice)
-           person_ids = slice.pop('person_ids')
-           node_ids = slice.pop('node_ids')
-           if return_users:
-               slice['users'] = person_ids
-           if return_nodes:
-               slice['nodes'] = node_ids
-           slices.add(slice)
+           index = slices.index(slice)
+           node_ids = slices[index].pop('node_ids')
+           person_ids = slices[index].pop('person_ids')
+           if return_users or return_users is None:
+               persons = Persons(self.api, person_ids)
+               emails = [person['email'] for person in persons]
+               slices[index]['users'] = emails
+           if return_nodes or return_nodes is None:
+               nodes = Nodes(self.api, node_ids)
+               hostnames = [node['hostname'] for node in nodes]
+               slices[index]['nodes'] = hostnames
                
        
         return slices