mirror of
https://github.com/CumulusNetworks/ifupdown2.git
synced 2024-05-06 15:54:50 +00:00
brought up Ticket: CM-10954, CM-10953 Reviewed By: julien Testing Done: ran ifupdown2 smoke and vrf ifup/ifdown testing - vrf master if not around is brought up when the first slave is brought up by design (because we want the slaves to be enslaved to a vrf master before addresses are configured). and master is not brought up by first because interfaces are brought up down to top in the dependency tree. - This patch makes sure a slave brings up a vrf master only when all interfaces are specified. When an individual interface is brought up, skip master bring up and throw an error. - Since the addon modules also need to use the ALL and WITH_DEPENDS flags, this patch moves them to the existing global ifupdownflags class - vrf module uses the ifupdownflags.ALL flag to not bring up the master when only the slave is being brought up example: ifup <vrf> # brings up the vrf device ifup <vrf> --with-depends # brings up the vrf dev and # its slaves ifup <vrf_slave> # if vrf master is not around, # an error is thrown ifup <vrf_slave> --with-depends # will still not bring up the vrf master ifdown <vrf> # deletes vrf dev and flushes the # addresses on vrf slaves ifup <vrf> # brings up vrf dev and does not # up the adresses on the slaves ifup <vrf> --with-depends # will bring up vrf and reapply config # on slaves (including addresses) Signed-off-by: Roopa Prabhu <roopa@cumulusnetworks.com>
24 lines
531 B
Python
24 lines
531 B
Python
#!/usr/bin/env python
|
|
#
|
|
# Copyright 2015 Cumulus Networks, Inc. All rights reserved.
|
|
#
|
|
# Author: Roopa Prabhu, roopa@cumulusnetworks.com
|
|
#
|
|
#
|
|
|
|
class ifupdownFlags():
|
|
|
|
def __init__(self):
|
|
self.ALL = False
|
|
self.FORCE = False
|
|
self.DRYRUN = False
|
|
self.NOWAIT = False
|
|
self.PERFMODE = False
|
|
self.CACHE = False
|
|
self.WITHDEFAULTS = False
|
|
|
|
# Flags
|
|
self.CACHE_FLAGS = 0x0
|
|
|
|
flags = ifupdownFlags()
|