mirror of
				https://github.com/CumulusNetworks/ifupdown2.git
				synced 2024-05-06 15:54:50 +00:00 
			
		
		
		
	
			
				
					
						
					
					f32151277177de2eb15c35133e3f908ac0dcc47b
				
			
			
		
	Ticket: CM-1438 Reviewed By: Testing Done: l3 lag test with help from purna - THe down sequence in the new ifupdown was causing switchd some grief (wilson is looking at it). readded the topological sort which i had removed in favor of only walking the tree. With the fix,i dont see the switchd problem anymore. - And another down bug was causing the bond to go away prematurely (only with the all depends option). Added a upperdevice list to track upperdev references
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%