From 12d17e7f285289f67146404be7bfe8862daf731c Mon Sep 17 00:00:00 2001 From: Tony Mack Date: Tue, 16 Jan 2007 20:48:30 +0000 Subject: [PATCH] - fix errors - return what the old api returned --- PLC/Methods/SliceExtendedInfo.py | 36 +++++++++++++++++++++++--------- 1 file changed, 26 insertions(+), 10 deletions(-) diff --git a/PLC/Methods/SliceExtendedInfo.py b/PLC/Methods/SliceExtendedInfo.py index 651bd7e..9ab4822 100644 --- a/PLC/Methods/SliceExtendedInfo.py +++ b/PLC/Methods/SliceExtendedInfo.py @@ -3,7 +3,10 @@ from PLC.Parameter import Parameter, Mixed from PLC.Filter import Filter from PLC.Auth import Auth from PLC.Slices import Slice, Slices +from PLC.SliceAttributes import SliceAttribute, SliceAttributes from PLC.Sites import Site, Sites +from PLC.Nodes import Node, Nodes +from PLC.Persons import Person, Persons class SliceExtendedInfo(Method): """ @@ -31,7 +34,7 @@ class SliceExtendedInfo(Method): returns = [Slice.fields] - def call(self, auth, slice_name_list=None, return_users=None, return_nodes=None): + def call(self, auth, slice_name_list=None, return_users=None, return_nodes=None, return_attributes=None): # If we are not admin, make sure to return only viewable # slices. slice_filter = slice_name_list @@ -53,14 +56,27 @@ class SliceExtendedInfo(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') + attribute_ids = slices[index].pop('slice_attribute_ids') + if return_users or return_users is None: + persons = Persons(self.api, person_ids) + person_info = [{'email': person['email'], + 'person_id': person['person_id']} \ + for person in persons] + slices[index]['users'] = person_info + if return_nodes or return_nodes is None: + nodes = Nodes(self.api, node_ids) + node_info = [{'hostname': node['hostname'], + 'node_id': node['node_id']} \ + for node in nodes] + slices[index]['nodes'] = node_info + if return_attributes or return_attributes is None: + attributes = SliceAttributes(self.api, attribute_ids) + attribute_info = [{'name': attribute['name'], + 'value': attribute['value']} \ + for attribute in attributes] + slices[index]['attributes'] = attribute_info return slices -- 2.43.0