diff --git a/eve_api/cron.py b/eve_api/cron.py index 747f514..b37f3f4 100644 --- a/eve_api/cron.py +++ b/eve_api/cron.py @@ -24,7 +24,7 @@ class UpdateAPIs(): self.__logger = logging.getLogger(__name__) return self.__logger - def job(self): + def job(self, args): # Update all the eve accounts and related corps delta = datetime.timedelta(seconds=self.last_update_delay) @@ -63,7 +63,7 @@ class CorpManagementUpdate(): self.__logger = logging.getLogger(__name__) return self.__logger - def job(self): + def job(self, args): directors = EVEPlayerCharacter.objects.filter(director=True) for director in directors: @@ -85,6 +85,6 @@ class AllianceUpdate(): self.__logger = logging.getLogger(__name__) return self.__logger - def job(self): + def job(self, args): alliance_import() diff --git a/eve_proxy/cron.py b/eve_proxy/cron.py index f9ed87d..e1e7ff0 100644 --- a/eve_proxy/cron.py +++ b/eve_proxy/cron.py @@ -14,7 +14,7 @@ class ClearStaleCache(): self.__logger = logging.getLogger(__name__) return self.__logger - def job(self): + def job(self, args): objs = CachedDocument.objects.filter(cached_until__lt=datetime.utcnow()) self._logger.info('Removing %s stale cache documents' % objs.count()) objs.delete() @@ -30,7 +30,7 @@ class FlushCache(): self.__logger = logging.getLogger(__name__) return self.__logger - def job(self): + def job(self, args): objs = CachedDocument.objects.all() self._logger.info('Removing %s stale cache documents' % objs.count()) objs.delete() diff --git a/reddit/cron.py b/reddit/cron.py index ec888f1..0b4f150 100644 --- a/reddit/cron.py +++ b/reddit/cron.py @@ -18,7 +18,7 @@ class UpdateAPIs(): last_update_delay = 604800 - def job(self): + def job(self, args): delta = datetime.timedelta(seconds=self.last_update_delay) self._logger.debug("Updating accounts older than %s" % (datetime.datetime.now() - delta)) @@ -63,7 +63,7 @@ class ProcessValidations(): self.__logger = logging.getLogger(__name__) return self.__logger - def job(self): + def job(self, args): inbox = Inbox(settings.REDDIT_USER, settings.REDDIT_PASSWD) for msg in inbox: diff --git a/run-cron.py b/run-cron.py index ba68678..90d5ba9 100755 --- a/run-cron.py +++ b/run-cron.py @@ -31,7 +31,11 @@ cron_class = getattr(mod, sys.argv[2])() log.info("Starting Job %s in %s" % (sys.argv[2], sys.argv[1])) try: - cron_class.job() + if len(sys.argv) >= 3: + args = sys.argv[3:] + else: + args = [] + cron_class.job(args) except KeyboardInterrupt: log.error("aborting.") diff --git a/sso/cron.py b/sso/cron.py index fe48e58..9b15a15 100644 --- a/sso/cron.py +++ b/sso/cron.py @@ -19,7 +19,7 @@ class RemoveInvalidUsers(): self.__logger = logging.getLogger(__name__) return self.__logger - def job(self): + def job(self, args): for user in User.objects.all(): # For each user, update access list based on Corp details user.get_profile().update_access() @@ -38,8 +38,14 @@ class UpdateServiceGroups(): self.__logger = logging.getLogger(__name__) return self.__logger - def job(self): - for serv in Service.objects.filter(active=1): + def job(self, args): + + if args and len(args) == 1: + services = Service.objects.filter(active=1, id=args[0]) + else: + services = Service.objects.filter(active=1) + + for serv in services: self._logger.info('Updating %s service' % serv) api = serv.api_class for servacc in ServiceAccount.objects.filter(active=1, service=serv):