mirror of
https://github.com/CumulusNetworks/ifupdown2.git
synced 2024-05-06 15:54:50 +00:00
c798b0f4aa66736f9c260886c0bf4181dc755211
Ticket: CM-1438 Reviewed By: review pending Testing Done: Tested ifup/ifdown Before this patch, `ifup --with-depends <iface>` only brought up lowerdevices. Because those were enough for iface to function. And if ifaces above it (upperdevices) needed fixing, user could just execute `ifup --with-depends <ifaceupper>`. But in a recent, bond under a bridge bug in 2.0, got me thinking that its probably better to up the upperdevices which might be impacted as well. and this patch does just that. The patch includes changes to make ifupdown generate dependency information for all interfaces even if the user requested to operate on a single interface. This is to get a full view of the interfaces file. This might add some overhead. Should not change anything during boot. Still looking at ways to optimize.
python-ifupdown2 ================ This package is a replacement for the debian ifupdown package. It is completely re-written in python. It maintains the original ifupdown pluggable architecture and extends it further. The python-ifupdown2 package provides the infrastructure for parsing /etc/network/interfaces file, loading, scheduling and state management of interfaces. It dynamically loads python modules from /usr/share/ifupdownmodules (provided by the python-ifupdown2-addons package). To remain compatible with other packages that depend on ifupdown, it also executes scripts under /etc/network/. To make the transition smoother, a python module under /usr/share/ifupdownmodules will override a script by the same name under /etc/network/. It publishes an interface object which is passed to all loadble python modules (more details about the interface object is available in the python docs). pluggable python modules: ========================= Unlike original ifupdown, all interface configuration is moved to external python modules. That includes inet, inet6 and dhcp configurations. It expects a few things from the pluggable modules: - the module should implement a class by the same name - the interface object (class iface) and the operation to be performed is passed to the modules - the python class should provide a few methods: - run() : method to configure the interface. - get_ops() : must return a list of operations it supports. eg: 'pre-up', 'post-down' - get_dependent_ifacenames() : must return a list of interfaces the interface is dependent on. This is used to build the dependency list for sorting and executing interfaces in parallel. install instructions ==================== - remove existing ifupdown package dpkg -r ifupdown - download python-ifupdown2*.deb's and install - or apt-get from testing repo apt-get install python-ifupdown2 apt-get install python-ifupdown2-addons - or install from deb dpkg -i python-ifupdown2-<ver>.deb dpkg -i python-ifupdown2-addons-<ver>.deb extra packages to use addional packages: ====================================== To use templates install python-mako (from wheezy): apt-get install python-mako To generate dot files install python-gvgen (from wheezy): apt-get install python-gvgen
Description
Languages
Python
99.2%
Shell
0.6%
Makefile
0.2%