reload_firewall.py 1.8 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
# Copyright 2014 Budapest University of Technology and Economics (BME IK)
#
# This file is part of CIRCLE Cloud.
#
# CIRCLE is free software: you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free
# Software Foundation, either version 3 of the License, or (at your option)
# any later version.
#
# CIRCLE is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
# details.
#
# You should have received a copy of the GNU General Public License along
# with CIRCLE.  If not, see <http://www.gnu.org/licenses/>.

from __future__ import unicode_literals, absolute_import

from django.core.management.base import BaseCommand

from firewall.tasks.local_tasks import reloadtask

24 25
from argparse import ArgumentTypeError

26 27

class Command(BaseCommand):
28 29 30 31 32 33 34 35

    def add_arguments(self, parser):

        parser.add_argument('--sync',
                            action='store_const',
                            dest='sync',
                            const=True,
                            default=False,
36
                            help='synchronous reload')
37

38 39 40 41 42 43 44
        parser.add_argument('--timeout',
                            action='store',
                            dest='timeout',
                            default=15,
                            type=self.positive_int,
                            help='timeout for synchronous reload')

45
    def handle(self, *args, **options):
46

47 48 49 50 51 52 53 54
        reloadtask('Vlan', sync=options["sync"], timeout=options["timeout"])

    def positive_int(self, val):

        if not val.isdigit():
            raise ArgumentTypeError("'%s' is not a valid positive int" % val)

        return int(val)