]> git.proxmox.com Git - mirror_ifupdown2.git/blame - README.rst
Update README.rst (#11)
[mirror_ifupdown2.git] / README.rst
CommitLineData
2c8c4ce7
RP
1python-ifupdown2
2================
3
4This package is a replacement for the debian ifupdown package.
5It is ifupdown re-written in python. It maintains the original ifupdown
6pluggable architecture and extends it further.
7
8The python-ifupdown2 package provides the infrastructure for
9parsing /etc/network/interfaces file, loading, scheduling and state
10management of interfaces.
11
f82758bf
RP
12It dynamically loads python modules from /usr/share/ifupdownaddons.
13To remain compatible with other packages that depend on ifupdown,
14it also executes scripts under /etc/network/.
2c8c4ce7 15To make the transition smoother, a python module under
f82758bf 16/usr/share/ifupdownaddons will override a script by the same name under
2c8c4ce7
RP
17/etc/network/.
18
19It publishes an interface object which is passed to all loadble python
20modules. For more details on adding a addon module, see the section on
21adding python modules.
22
23
24pluggable python modules:
25=========================
26Unlike original ifupdown, all interface configuration is moved to external
27python modules. That includes inet, inet6 and dhcp configurations.
28
f82758bf 29A set of default modules are included in the package.
2c8c4ce7
RP
30
31python-ifupdown2 expects a few things from the pluggable modules:
32- the module should implement a class by the same name
33- the interface object (class iface) and the operation to be performed is
34 passed to the modules
35- the python addon class should provide a few methods:
36 - run() : method to configure the interface.
37 - get_ops() : must return a list of operations it supports.
38 eg: 'pre-up', 'post-down'
39 - get_dependent_ifacenames() : must return a list of interfaces the
40 interface is dependent on. This is used to build the dependency list
41 for sorting and executing interfaces in dependency order.
42 - if the module supports -r option to ifquery, ie ability to construct the
43 ifaceobj from running state, it can optionally implement the
44 get_dependent_ifacenames_running() method, to return the list of
45 dependent interfaces derived from running state of the interface.
46 This is different from get_dependent_ifacenames() where the dependent
47 interfaces are derived from the interfaces config file (provided by the
48 user).
49
50Example: Address handling module /usr/share/ifupdownaddons/address.py
51
52
53build
54=====
55- get source
56
57- install build dependencies:
fc7fac14 58 apt-get install python-stdeb python-docutils
2c8c4ce7
RP
59
60- cd <python-ifupdown2 sourcedir> && ./build.sh
61
62 (generates python-ifupdown2-<ver>.deb)
63
64install
65=======
66
67- remove existing ifupdown package
68 dpkg -r ifupdown
69
70- install python-ifupdown2 using `dpkg -i`
71
72- or install from deb
73 dpkg -i python-ifupdown2-<ver>.deb