X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=PLC%2FMethods%2FUpdateTagType.py;h=8fc868c2e67171c2bf017eee8615e1d49aab5c2b;hb=502c66df9890a99c0887a3a9c89f7a54fb6914f8;hp=adec78e6b91a031efac24b2ee6fdd8d5479a2ea5;hpb=f7ce7ce813d4c44502629820a3583f32a99a98f7;p=plcapi.git diff --git a/PLC/Methods/UpdateTagType.py b/PLC/Methods/UpdateTagType.py index adec78e..8fc868c 100644 --- a/PLC/Methods/UpdateTagType.py +++ b/PLC/Methods/UpdateTagType.py @@ -1,10 +1,6 @@ -# $Id$ -# $URL$ # # Thierry Parmentelat - INRIA # -# $Revision: 9423 $ -# from PLC.Faults import * from PLC.Method import Method from PLC.Parameter import Parameter, Mixed @@ -12,7 +8,7 @@ from PLC.TagTypes import TagType, TagTypes from PLC.Auth import Auth can_update = lambda (field, value): field in \ - ['tagname', 'description', 'category', 'min_role_id'] + ['tagname', 'description', 'category'] class UpdateTagType(Method): """ @@ -36,14 +32,21 @@ class UpdateTagType(Method): returns = Parameter(int, '1 if successful') def call(self, auth, tag_type_id_or_name, tag_type_fields): - tag_type_fields = dict(filter(can_update, tag_type_fields.items())) + + accepted_type_fields = dict(filter(can_update, tag_type_fields.items())) + rejected_keys = [ k for k in tag_type_fields if k not in accepted_type_fields ] + if rejected_keys: + error="Cannot update TagType column(s) %r"%rejected_keys + if 'roles' in rejected_keys or 'role_ids' in rejected_keys: + error += " see AddRoleToTagType DeleteRoleFromTagType" + raise PLCInvalidArgument, error tag_types = TagTypes(self.api, [tag_type_id_or_name]) if not tag_types: raise PLCInvalidArgument, "No such tag type" tag_type = tag_types[0] - tag_type.update(tag_type_fields) + tag_type.update(accepted_type_fields) tag_type.sync() self.object_ids = [tag_type['tag_type_id']]