3 # Thierry Parmentelat - INRIA
6 from PLC.Faults import *
7 from PLC.Method import Method
8 from PLC.Parameter import Parameter, Mixed
9 from PLC.Filter import Filter
10 from PLC.Auth import Auth
12 from PLC.Persons import Person
13 from PLC.Peers import Peer, Peers
15 class GetPeers (Method):
17 Returns an array of structs containing details about peers. If
18 person_filter is specified and is an array of peer identifiers or
19 peer names, or a struct of peer attributes, only peers matching
20 the filter will be returned. If return_fields is specified, only the
21 specified details will be returned.
24 roles = ['admin', 'node','pi','user']
28 Mixed([Mixed(Peer.fields['peer_id'],
29 Peer.fields['peername'])],
31 Parameter([str], "List of fields to return", nullok = True)
34 returns = [Peer.fields]
36 def call (self, auth, peer_filter = None, return_fields = None):
38 peers = Peers(self.api, peer_filter, return_fields)
40 # Remove admin only fields
41 if not isinstance(self.caller, Person) or \
42 'admin' not in self.caller['roles']:
44 for field in ['key', 'cacert']: