Esempio n. 1
0
    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