diff --git a/main.py b/main.py index 2b533c2..425160a 100755 --- a/main.py +++ b/main.py @@ -16,9 +16,12 @@ import argparse import firewall_config import sys +import os + +path =(os.path.dirname(os.path.abspath(__file__))) config = ConfigParser() -config.read('config.ini') +config.read(path+'/config.ini') api_hostname = config.get('Re2o', 'hostname') api_password = config.get('Re2o', 'password') @@ -28,11 +31,6 @@ api_client = Re2oAPIClient(api_hostname, api_username, api_password) client_hostname = socket.gethostname().split('.', 1)[0] -for arg in sys.argv: - if arg=="--force": - table=iptables() - table.action="restart" - table.do_action() class iptables: def __init__(self): @@ -625,13 +623,7 @@ class iptables: """Retire la mac de la blacklist""" self.atomic_del("filter", subtable, """-m mac --mac-source %s -j REJECT""" % mac, mode=mode) - -if __name__ == '__main__': - parser = argparse.ArgumentParser() - parser.add_argument("-v", "--verbose", help="increase output verbosity", action="store_true") - parser.add_argument("-e", "--export", help="export le contenu du parefeu", action="store_true") - parser.add_argument("action", help="Mode reconnus : start, stop ou restart") - args = parser.parse_args() +def run(args): table = iptables() if args.verbose: table.verbose = True @@ -639,10 +631,22 @@ if __name__ == '__main__': table.export = args.export table.do_action() -for service in api_client.list("services/regen/"): - if service['hostname'] == client_hostname and \ - service['service_name'] == 'firewall' and \ - service['need_regen']: - notif_end_adhesion(api_client) - api_client.patch(service['api_url'], data={'need_regen': False}) + +if __name__ == '__main__': + parser = argparse.ArgumentParser() + parser.add_argument("-v", "--verbose", help="increase output verbosity", action="store_true") + parser.add_argument("-e", "--export", help="export le contenu du parefeu", action="store_true") + parser.add_argument("action", help="Mode reconnus : start, stop ou restart", default="restart") + args = parser.parse_args() + + for arg in sys.argv: + if arg=="--force": + run(args) + + for service in api_client.list("services/regen/"): + if service['hostname'] == client_hostname and \ + service['service_name'] == 'firewall' and \ + service['need_regen']: + run(args) + api_client.patch(service['api_url'], data={'need_regen': False})