mirror of
https://github.com/CumulusNetworks/ifupdown2.git
synced 2024-05-06 15:54:50 +00:00
move ifupdown2/* .
ifupdown2 code was one level deeper because ifupdown2 initially had ifupdown2 and ifupdown2-addons as two separate packages. Since they were combined into one package, it makes sense to move all combined code under the top level directory Signed-off-by: Roopa Prabhu <roopa@cumulusnetworks.com>
This commit is contained in:
74
README.rst
Normal file
74
README.rst
Normal file
@@ -0,0 +1,74 @@
|
||||
python-ifupdown2
|
||||
================
|
||||
|
||||
This package is a replacement for the debian ifupdown package.
|
||||
It is ifupdown 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/ifupdownaddons.
|
||||
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/ifupdownaddons will override a script by the same name under
|
||||
/etc/network/.
|
||||
|
||||
It publishes an interface object which is passed to all loadble python
|
||||
modules. For more details on adding a addon module, see the section on
|
||||
adding python modules.
|
||||
|
||||
|
||||
pluggable python modules:
|
||||
=========================
|
||||
Unlike original ifupdown, all interface configuration is moved to external
|
||||
python modules. That includes inet, inet6 and dhcp configurations.
|
||||
|
||||
A set of default modules are included in the package.
|
||||
|
||||
python-ifupdown2 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 addon 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 dependency order.
|
||||
- if the module supports -r option to ifquery, ie ability to construct the
|
||||
ifaceobj from running state, it can optionally implement the
|
||||
get_dependent_ifacenames_running() method, to return the list of
|
||||
dependent interfaces derived from running state of the interface.
|
||||
This is different from get_dependent_ifacenames() where the dependent
|
||||
interfaces are derived from the interfaces config file (provided by the
|
||||
user).
|
||||
|
||||
Example: Address handling module /usr/share/ifupdownaddons/address.py
|
||||
|
||||
|
||||
build
|
||||
=====
|
||||
- get source
|
||||
|
||||
- install build dependencies:
|
||||
apt-get install python-stdeb
|
||||
apt-get install python-docutils
|
||||
|
||||
- cd <python-ifupdown2 sourcedir> && ./build.sh
|
||||
|
||||
(generates python-ifupdown2-<ver>.deb)
|
||||
|
||||
install
|
||||
=======
|
||||
|
||||
- remove existing ifupdown package
|
||||
dpkg -r ifupdown
|
||||
|
||||
- install python-ifupdown2 using `dpkg -i`
|
||||
|
||||
- or install from deb
|
||||
dpkg -i python-ifupdown2-<ver>.deb
|
||||
Reference in New Issue
Block a user