+ # enforce should only be set by
+ # 'service plc start accessors' sequence
+ if enforce:
+ try:
+ tag_type.update({'category': category,
+ 'description': description})
+ tag_type.sync()
+ roles_to_add = set(roles).difference(set(tag_type['roles']))
+ for rolename in roles_to_add:
+ tag_type.add_role(self.hash_name_to_role[rolename])
+ roles_to_delete = set(tag_type['roles']). difference(set(roles))
+ for rolename in roles_to_delete:
+ tag_type.remove_role(self.hash_name_to_role[rolename])
+ except:
+ logger.exception(
+ "WARNING, Could not enforce tag type, tagname={}\n"
+ .format(tagname))
+
+