Merge from trunk; use initscript name instead of id
[plcapi.git] / PLC / Methods / SliceInfo.py
index 6551085..9645f99 100644 (file)
@@ -1,9 +1,12 @@
 from PLC.Method import Method
 from PLC.Parameter import Parameter, Mixed
 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.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):
     """
 
 class SliceInfo(Method):
     """
@@ -19,12 +22,14 @@ class SliceInfo(Method):
     slice_filter, details about that slice will not be returned.
     """
 
     slice_filter, details about that slice will not be returned.
     """
 
+    status = "deprecated"
+
     roles = ['admin', 'pi', 'user']
 
     accepts = [
         Auth(),
     roles = ['admin', 'pi', 'user']
 
     accepts = [
         Auth(),
-        [Mixed(Slice.fields['slice_name']],
-        Parameter(bool, "Whether or not to return users for the slices", nullok = True)
+        [Mixed(Slice.fields['name'])],
+        Parameter(bool, "Whether or not to return users for the slices", nullok = True),
        Parameter(bool, "Whether or not to return nodes for the slices", nullok = True)
         ]
 
        Parameter(bool, "Whether or not to return nodes for the slices", nullok = True)
         ]
 
@@ -52,15 +57,19 @@ class SliceInfo(Method):
        
            slices = filter(lambda slice: slice['slice_id'] in valid_slice_ids, slices)
 
        
            slices = filter(lambda slice: slice['slice_id'] in valid_slice_ids, slices)
 
+
        for slice in 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
                
        
         return slices