mirror of
https://github.com/CumulusNetworks/ifupdown2.git
synced 2024-05-06 15:54:50 +00:00
roopa
923290bd42
Fix bug during handling multiple iface sections for same interface
Ticket: CM-1438 Reviewed By: Testing Done: Tested ifupdown2 sanity + multiple iface sections for an interface - This patch fixes a few shortcomings in the multiple iface sections for same interface (partly because i was only covering backward compatibility cases earlier) - Since this is a very common configuration pattern, this patch cleans it up - also restructures some code - main change is: before: for iface in ifaces: for op in ops: run op on iface after: for op in ops: for iface in ifaces: run op on iface
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%