2 from PLC.Faults import *
3 from PLC.Method import Method
4 from PLC.Parameter import Parameter, Mixed
5 from PLC.PCUProtocolTypes import PCUProtocolType, PCUProtocolTypes
6 from PLC.Auth import Auth
8 can_update = lambda (field, value): field in \
9 ['pcu_type_id', 'port', 'protocol', 'supported']
11 class UpdatePCUProtocolType(Method):
13 Updates a pcu protocol type. Only the fields specified in
14 port_typee_fields are updated, all other fields are left untouched.
16 Returns 1 if successful, faults otherwise.
21 protocol_type_fields = dict(filter(can_update, PCUProtocolType.fields.items()))
25 PCUProtocolType.fields['pcu_protocol_type_id'],
29 returns = Parameter(int, '1 if successful')
31 def call(self, auth, protocol_type_id, protocol_type_fields):
32 protocol_type_fields = dict(filter(can_update, protocol_type_fields.items()))
34 protocol_types = PCUProtocolTypes(self.api, [protocol_type_id])
35 if not protocol_types:
36 raise PLCInvalidArgument, "No such pcu protocol type"
38 protocol_type = protocol_types[0]
39 protocol_type.update(protocol_type_fields)
41 self.event_objects = {'PCUProtocolType': [protocol_type['pcu_protocol_type_id']]}