def _sync_ts_group_db(): logger.debug("_sync_ts_group_db function called.") try: remote_groups = Teamspeak3Manager._group_list() local_groups = TSgroup.objects.all() logger.debug("Comparing remote groups to TSgroup objects: %s" % local_groups) for key in remote_groups: logger.debug( "Typecasting remote_group value at position %s to int: %s" % (key, remote_groups[key])) remote_groups[key] = int(remote_groups[key]) for group in local_groups: logger.debug("Checking local group %s" % group) if group.ts_group_id not in remote_groups.values(): logger.debug( "Local group id %s not found on server. Deleting model %s" % (group.ts_group_id, group)) TSgroup.objects.filter( ts_group_id=group.ts_group_id).delete() for key in remote_groups: g = TSgroup(ts_group_id=remote_groups[key], ts_group_name=key) q = TSgroup.objects.filter(ts_group_id=g.ts_group_id) if not q: logger.debug( "Local group does not exist for TS group %s. Creating TSgroup model %s" % (remote_groups[key], g)) g.save() except: logger.exception( "An unhandled exception has occured while syncing TS groups.") pass