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