1
0
mirror of https://github.com/CumulusNetworks/ifupdown2.git synced 2024-05-06 15:54:50 +00:00
Roopa Prabhu 7ea57ea91f Fix return value when upperifaces are brought up
Ticket: CM-3208
Reviewed By:
Testing Done: Tested with testcase listed in the bug

This patch does the following:
- moves the interface error exit check to before upperifaces are brought
  up
- changes errors to warns on upperiface error (this is because
  upperiface 'up' is done as best effort to reconfigure the interface in
  question as slave device to the upper device. But if the upper device
  is not in a right state config steps can fail. And we should just
warn).
- Implicitly bringing up the upperifaces helps in most of the cases. especially
  when a bond is brought down and up. The upperiface handling code adds
  the bond back into bridges it was part of. or creates the vlan devices
  on the bond that got deleted. But there can be cases where upperifaces are
  not in the right state and this results in warnings.

  To disable the implicit upperiface handling, this patch also supports
  'skip_upperifaces=1' in /etc/network/ifupdown2/ifupdown2.conf

in future, i am thinking of an option --skip-upperifaces to ifup
2014-07-14 22:30:14 -07:00
2014-02-14 11:13:09 -08:00
2014-03-27 16:53:32 -07:00

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
No description provided
Readme 6.2 MiB
Languages
Python 99.2%
Shell 0.6%
Makefile 0.2%