X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=PLC%2FMethods%2FUpdateTagType.py;fp=PLC%2FMethods%2FUpdateTagType.py;h=8fc868c2e67171c2bf017eee8615e1d49aab5c2b;hb=41b097a10c1ac6dcd493b030d33194003369bdf1;hp=56bd61f442c140f58cc2ff42efaf4cfda5488ca9;hpb=b3a391490764be17194820147b1cf47fff17b69a;p=plcapi.git diff --git a/PLC/Methods/UpdateTagType.py b/PLC/Methods/UpdateTagType.py index 56bd61f..8fc868c 100644 --- a/PLC/Methods/UpdateTagType.py +++ b/PLC/Methods/UpdateTagType.py @@ -32,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']]