get rid of svn keywords once and for good
[plcapi.git] / PLC / Methods / AddPeer.py
1 #
2 # Thierry Parmentelat - INRIA
3 #
4
5 from PLC.Method import Method
6 from PLC.Parameter import Parameter, Mixed
7 from PLC.Auth import Auth
8 from PLC.Peers import Peer, Peers
9
10 can_update = lambda (field, value): field in \
11              ['peername', 'peer_url', 'key', 'cacert', 'shortname', 'hrn_root']
12
13 class AddPeer(Method):
14     """
15     Adds a new peer.
16
17     Returns the new peer_id (> 0) if successful, faults otherwise.
18     """
19
20     roles = ['admin']
21
22     peer_fields = dict(filter(can_update, Peer.fields.items()))
23
24     accepts = [
25         Auth(),
26         peer_fields
27         ]
28
29     returns = Parameter(int, "New peer_id (> 0) if successful")
30
31     def call(self, auth, peer_fields):
32         peer = Peer(self.api, peer_fields);
33         peer.sync()
34         self.event_objects = {'Peer': [peer['peer_id']]}
35
36         return peer['peer_id']