- return {
- 'Sites-local' : Sites (self.api,{'peer_id':None}),
- 'Sites-peer' : Sites (self.api,{'~peer_id':None}),
- 'Keys-local' : Keys (self.api,{'peer_id':None}),
- 'Keys-peer' : Keys (self.api,{'~peer_id':None}),
- 'Nodes-local' : Nodes (self.api,{'peer_id':None}),
- 'Nodes-peer' : Nodes (self.api,{'~peer_id':None}),
- 'Persons-local' : Persons (self.api,{'peer_id':None}),
- 'Persons-peer' : Persons (self.api,{'~peer_id':None}),
- 'SliceAttibuteTypes-local' : SliceAttributeTypes (self.api,{'peer_id':None}),
- 'SliceAttibuteTypes-peer' : SliceAttributeTypes (self.api,{'~peer_id':None}),
- 'Slices-local' : Slices (self.api,{'peer_id':None}),
- 'Slices-peer' : Slices (self.api,{'~peer_id':None}),
- 'SliceAttributes-local': SliceAttributes (self.api,{'peer_id':None}),
- 'SliceAttributes-peer': SliceAttributes (self.api,{'~peer_id':None}),
+
+ person_fields = filter(lambda field: field not in \
+ ['password', 'verification_key', 'verification_expires'],
+ Person.fields)
+
+ # XXX Optimize to return only those Persons, Keys, and Slices
+ # necessary for slice creation on the calling peer's nodes.
+
+ # filter out special person
+ persons = Persons(self.api, {'~email':[self.api.config.PLC_API_MAINTENANCE_USER,
+ self.api.config.PLC_ROOT_USER],
+ 'peer_id': None}, person_fields)
+
+ # filter out system slices
+ system_slice_ids = SliceAttributes(self.api, {'name': 'system', 'value': '1'}).dict('slice_id')
+ slices = Slices(self.api, {'peer_id': None,
+ '~slice_id':system_slice_ids.keys()})
+
+ result = {
+ 'Sites': Sites(self.api, {'peer_id': None}),
+ 'Keys': Keys(self.api, {'peer_id': None}),
+ 'Nodes': nodes,
+ 'Persons': persons,
+ 'Slices': slices,