From 33c526801a868b19ffc9e6b7e9d0dc858d7d64a8 Mon Sep 17 00:00:00 2001 From: Andrew Williams Date: Tue, 21 Sep 2010 10:57:27 +0100 Subject: [PATCH] Added job to update the service groups on a daily basis --- cronjobs.txt | 1 + sso/cron.py | 27 +++++++++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/cronjobs.txt b/cronjobs.txt index 828708f..1a1c5e0 100644 --- a/cronjobs.txt +++ b/cronjobs.txt @@ -7,3 +7,4 @@ ROOT=/home/matalok/auth/auth @daily $ROOT/run-cron.py eve_api.cron CorpManagementUpdate > $ROOT/logs/corpman-update.log 2>&1 0 */6 * * * $ROOT/run-cron.py eve_api.cron AllianceUpdate > $ROOT/logs/alliance-update.log 2>&1 @daily $ROOT/run-cron.py eve_proxy.cron ClearStaleCache > $ROOT/logs/cache-clear.log 2>&1 +@daily $ROOT/run-cron.py sso.cron UpdateServicegroups > $ROOT/logs/servicegroup-update.log 2>&1 diff --git a/sso/cron.py b/sso/cron.py index 3e4886d..4dc12aa 100644 --- a/sso/cron.py +++ b/sso/cron.py @@ -46,3 +46,30 @@ class ValidateDisabledUsers(): api.settings = servacc.service.settings if not api.disable_user(servacc.service_uid): self._logger.error('Error disabling %s on %s' % (servacc, servacc.service)) + + +class UpdateServiceGroups(): + """ + Cycles through all service accounts and updates group access. + """ + + # run daily + run_every = 84600 + + @property + def _logger(self): + if not hasattr(self, '__logger'): + self.__logger = logging.getLogger(__name__) + return self.__logger + + def job(self): + for serv in Service.objects.filter(active=1): + self._logger.info('Updating %s service' % serv) + api = serv.api_class + for servacc in ServiceAccount.objects.filter(active=1, service=serv): + self._logger.info('Processing %s' % servacc) + try: + api.update_groups(servacc.service_uid, servacc.user.groups.all()) + except: + self._logger.error('Error updating %s' % servacc) +