X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=PLC%2FMethods%2FAddPCUProtocolType.py;h=c324c5fc50d2cdb38d7cfe6f0cadce05c88c66a9;hb=8c952d8a400d444d40b8613f0db25f997162f214;hp=eccd42d8f6f07fa1bfb54e566193ffd36f4b01aa;hpb=286cdfc25f6ef8fd3e0ed59a175bcf801b14038a;p=plcapi.git diff --git a/PLC/Methods/AddPCUProtocolType.py b/PLC/Methods/AddPCUProtocolType.py index eccd42d..c324c5f 100644 --- a/PLC/Methods/AddPCUProtocolType.py +++ b/PLC/Methods/AddPCUProtocolType.py @@ -1,4 +1,5 @@ -# $Id# +# $Id$ +# $URL$ from PLC.Faults import * from PLC.Method import Method from PLC.Parameter import Parameter, Mixed @@ -7,7 +8,7 @@ from PLC.PCUTypes import PCUType, PCUTypes from PLC.Auth import Auth can_update = lambda (field, value): field in \ - ['pcu_type_id', 'port', 'protocol', 'supported'] + ['pcu_type_id', 'port', 'protocol', 'supported'] class AddPCUProtocolType(Method): """ @@ -22,35 +23,35 @@ class AddPCUProtocolType(Method): accepts = [ Auth(), - Mixed(PCUType.fields['pcu_type_id'], + Mixed(PCUType.fields['pcu_type_id'], PCUType.fields['model']), protocol_type_fields - ] + ] returns = Parameter(int, 'New pcu_protocol_type_id (> 0) if successful') def call(self, auth, pcu_type_id_or_model, protocol_type_fields): - # Check if pcu type exists - pcu_types = PCUTypes(self.api, [pcu_type_id_or_model]) - if not pcu_types: - raise PLCInvalidArgument, "No such pcu type" - pcu_type = pcu_types[0] - - - # Check if this port is already used - if 'port' not in protocol_type_fields: - raise PLCInvalidArgument, "Must specify a port" - else: - protocol_types = PCUProtocolTypes(self.api, {'pcu_type_id': pcu_type['pcu_type_id']}) - for protocol_type in protocol_types: - if protocol_type['port'] == protocol_type_fields['port']: - raise PLCInvalidArgument, "Port alreay in use" - - protocol_type_fields = dict(filter(can_update, protocol_type_fields.items())) + # Check if pcu type exists + pcu_types = PCUTypes(self.api, [pcu_type_id_or_model]) + if not pcu_types: + raise PLCInvalidArgument, "No such pcu type" + pcu_type = pcu_types[0] + + + # Check if this port is already used + if 'port' not in protocol_type_fields: + raise PLCInvalidArgument, "Must specify a port" + else: + protocol_types = PCUProtocolTypes(self.api, {'pcu_type_id': pcu_type['pcu_type_id']}) + for protocol_type in protocol_types: + if protocol_type['port'] == protocol_type_fields['port']: + raise PLCInvalidArgument, "Port alreay in use" + + protocol_type_fields = dict(filter(can_update, protocol_type_fields.items())) protocol_type = PCUProtocolType(self.api, protocol_type_fields) - protocol_type['pcu_type_id'] = pcu_type['pcu_type_id'] - protocol_type.sync() - self.event_object = {'PCUProtocolType': [protocol_type['pcu_protocol_type_id']]} + protocol_type['pcu_type_id'] = pcu_type['pcu_type_id'] + protocol_type.sync() + self.event_object = {'PCUProtocolType': [protocol_type['pcu_protocol_type_id']]} return protocol_type['pcu_protocol_type_id']