mirror of
https://github.com/CumulusNetworks/ifupdown2.git
synced 2024-05-06 15:54:50 +00:00
551a3627d439d5ddacceeb1be807a7bddd437a5a
Ticket: CM-1438 Reviewed By: Testing Done: tested with configs involving vlan devices and bridges - fix dependency handling which i had broken recently with my last checkin (nat reported this one) - In inet pluggins, dont issue ip addr get unless required (saw cpu spike up because of CM-1889) - and some other minor changes lying in my tree
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
Description
Languages
Python
99.2%
Shell
0.6%
Makefile
0.2%