mirror of
				https://github.com/CumulusNetworks/ifupdown2.git
				synced 2024-05-06 15:54:50 +00:00 
			
		
		
		
	part of subsequent checkins) Ticket: CM-1438 Reviewed By: Testing Done: Tested ifup, ifdown and ifquery Conflicts: packages/ifupdown2-addons/addons/ifenslave.py
		
			
				
	
	
		
			66 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
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
 | 
						|
 |