get rid of svn keywords once and for good
[plcapi.git] / PLC / Methods / DeletePeer.py
1 from PLC.Faults import *
2 from PLC.Method import Method
3 from PLC.Parameter import Parameter, Mixed
4 from PLC.Auth import Auth
5 from PLC.Peers import Peer, Peers
6
7 class DeletePeer(Method):
8     """
9     Mark an existing peer as deleted. All entities (e.g., slices,
10     keys, nodes, etc.) for which this peer is authoritative will also
11     be deleted or marked as deleted.
12
13     Returns 1 if successful, faults otherwise.
14     """
15
16     roles = ['admin']
17
18     accepts = [
19         Auth(),
20         Mixed(Peer.fields['peer_id'],
21               Peer.fields['peername'])
22         ]
23
24     returns = Parameter(int, "1 if successful")
25
26     def call(self, auth, peer_id_or_name):
27         # Get account information
28         peers = Peers(self.api, [peer_id_or_name])
29         if not peers:
30             raise PLCInvalidArgument, "No such peer"
31
32         peer = peers[0]
33         peer.delete()
34
35         # Log affected objects
36         self.event_objects = {'Peer': [peer['peer_id']]}
37
38         return 1