3 from PLC.Faults import *
4 from PLC.Method import Method
5 from PLC.Parameter import Parameter, Mixed
6 from PLC.PCUProtocolTypes import PCUProtocolType, PCUProtocolTypes
7 from PLC.Auth import Auth
9 can_update = lambda (field, value): field in \
10 ['pcu_type_id', 'port', 'protocol', 'supported']
12 class UpdatePCUProtocolType(Method):
14 Updates a pcu protocol type. Only the fields specified in
15 port_typee_fields are updated, all other fields are left untouched.
17 Returns 1 if successful, faults otherwise.
22 protocol_type_fields = dict(filter(can_update, PCUProtocolType.fields.items()))
26 PCUProtocolType.fields['pcu_protocol_type_id'],
30 returns = Parameter(int, '1 if successful')
32 def call(self, auth, protocol_type_id, protocol_type_fields):
33 protocol_type_fields = dict(filter(can_update, protocol_type_fields.items()))
35 protocol_types = PCUProtocolTypes(self.api, [protocol_type_id])
36 if not protocol_types:
37 raise PLCInvalidArgument, "No such pcu protocol type"
39 protocol_type = protocol_types[0]
40 protocol_type.update(protocol_type_fields)
42 self.event_objects = {'PCUProtocolType': [protocol_type['pcu_protocol_type_id']]}