from celery.task import Task, PeriodicTask from django.core.cache import cache import os import time from firewall.fw import * from cloud.settings import firewall_settings as settings def reload_firewall_lock(): acquire_lock = lambda: cache.add("reload_lock1", "true", 9) if acquire_lock(): print "megszereztem" ReloadTask.delay() else: print "nem szereztem meg" class ReloadTask(Task): def run(self, **kwargs): acquire_lock = lambda: cache.add("reload_lock1", "true", 90) release_lock = lambda: cache.delete("reload_lock1") if not acquire_lock(): print "mar folyamatban van egy reload" return print "indul" try: sleep = float(settings['reload_sleep']) except: sleep = 10 time.sleep(sleep) try: print "ipv4" ipv4 = firewall() ipv4.reload() # print ipv4.show() print "ipv6" ipv6 = firewall(True) ipv6.reload() print "dns" dns() print "dhcp" dhcp() print "vege" except: raise print "nem sikerult :(" print "leall" release_lock()