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):
"""
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)
]
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