+from PLC.Faults import *
from PLC.Method import Method
from PLC.Parameter import Parameter, Mixed
from PLC.Auth import Auth
from PLC.Peers import Peer, Peers
can_update = lambda (field, value): field in \
- ['peername', 'peer_url', 'key', 'cacert']
+ ['peername', 'peer_url', 'key', 'cacert', 'shortname', 'hrn_root']
class UpdatePeer(Method):
"""
peers = Peers(self.api, [peer_id_or_name])
if not peers:
raise PLCInvalidArgument, "No such peer"
-
peer = peers[0]
+
+ if isinstance(self.caller, Peer):
+ if self.caller['peer_id'] != peer['peer_id']:
+ raise PLCPermissionDenied, "Not allowed to update specified peer"
+
peer.update(peer_fields)
peer.sync()
# Log affected objects
- self.object_ids = [peer['peer_id']]
+ self.event_objects = {'Peer': [peer['peer_id']]}
- return 1
+ return 1