1
0
mirror of https://github.com/CumulusNetworks/ifupdown2.git synced 2024-05-06 15:54:50 +00:00
Commit Graph

45 Commits

Author SHA1 Message Date
Roopa Prabhu
1720c3921a ifreload: --allow=class support
Ticket: CM-7939
Reviewed By: CCR-3732
Testing Done: Tested ifreload --allow=class
this now

The ifreload classes already supported allow. This just opens up the
option in /sbin/ifupdown

example 1:
---------
auto swp1
iface swp1

allow-test swp2
iface swp2

allow-test swp3
iface swp3

/* should only act on swp2 and swp3 */

example 2:
---------
auto swp1
iface swp1

allow-test swp2
iface swp2

allow-test br1
iface br1
	bridge-ports swp25 swp26

/* change  bridge name and do an ifreload */
auto swp1
iface swp1

allow-test swp2
iface swp2

allow-test br2
iface br2
	bridge-ports swp25 swp26

should delete br1 and create br2
2015-11-13 10:11:36 -08:00
Roopa Prabhu
4b5208d822 change shipping default ifupdown2.conf disable_cli_interfacesfile to 0
(ie to allow -i option)

Ticket: CM-7066
Reviewed By: CCR-3636
Testing Done: Tested ifupdown2 -i option

Administrators can protect from sudo users executing files with -i
by changing the disable_cli_interfacesfile=1 in ifupdown2.conf

I have uploaded the patch in CCR-3636. And checked with shm and nolan
before pushing this change in 2.5.4.

The default is being changed because of the fear of breaking existing
users of -i after an upgrade to 2.5.4.

The shipping default behaviour for -i will be revisited in 3.0
timeframe.

(cherry picked from commit 5dce566a94dafc99c441e66c412d8d66a083aa5e)
2015-10-10 07:33:47 -07:00
Sam Tannous
c28fc55eb9 Fix stdin issues with missing config filename ifquery for disable_cli_interfacesfile
Ticket: CM-7066
Reviewed By: roopa
Testing Done: unit tested and wrote new testcase in testifupdown2

Use case for ifquery where stdin used with -i breaks
because interfacesfileiobuf was not checked in addition to interfacesfilename.

Testcase like:

echo '[{"name": "swp1","auto": true,"config": {"address": "10.10.10.10/24"}}]' | ifquery -i - -t json swp1

would fail because while -i was given with stdin, the check for missing filename would produce an error.

It was also decided by consensus that the ifquery command does not need to have a check for
disable_cli_interfacesfile since a query "should" not pose a security check.

(I've also added some test cases for this in cl-tests).

(cherry picked from commit 4d37e932b43da87a9240a866be2d8b9508a9c7eb)
2015-10-10 07:33:07 -07:00
Sam Tannous
1e6d7bd76c add param in ifupdown2.conf to prevent fupdown2 users from specify interface config file on the CLI
Ticket: CM-7066
Reviewed By: scotte,roopa,olson
Testing Done: Unit testing and regression testing

This patch does two things:

1. It moves the interfaces config file name to the ifupdown2.conf file in /etc/network/ifupdown2.
This should allow administrators to specify a config file location different from the default and allow
subsets of users to use it without giving them access to specifying their own with the -i option in ifup/ifdown.

2. It also adds a new config setting called "disable_cli_interfacesfile" used to prevent users
from specifying their own interfaces file. This defaults to "1" (even if it is not configured).

Note: this new default takes away users ability to specify an interfaces file.

This should close the vulnerability where users could specify their own interfaces file
and add arbitrary user commands.

This leaves the shell=True option in the user commands add-on module since the ifup/ifdown/ifreload/ifquery
commands already require root access to run and the interfaces config file also requires root access to modify.
2015-08-20 22:59:44 -04:00
Roopa Prabhu
d462f1fa2d Document ifreload new option + add it into init.d networking script
Ticket:
Reviewed By: trivial
Testing Done: Tested build/install/boot + ifupdown2 sanity
2015-01-03 00:27:35 -08:00
Roopa Prabhu
cebe79c93a Move link_master_slave flag overrides to /sbin/ifupdown + log a msg to
indicate link_master_slave flag status

Ticket:
Reviewed By:
Testing Done: ifupdown2 sanity tests with link_master_slave feature on/off
2014-12-29 22:10:36 -08:00
Roopa Prabhu
ad25e7bb98 Misc fixes. Add a --skip-upperifaces option to ifup (given the confusion
over ifup handling of upperifaces by default) + some fixes in the
reserved vlan check

Ticket: CM-3346
Reviewed By:
Testing Done: Tested ifupdown sanity.
2014-11-25 10:19:35 -08:00
Roopa Prabhu
97382e8841 Fix auto flag handling during reload
Ticket: CM-4204
Reviewed By:
Testing Done: Tested ifreload with interfaces file in the bug

My last checkin moved the auto flag around causing the breakage
2014-11-12 22:43:24 -08:00
Roopa Prabhu
2da58137d8 Misc fixes + ifreload new option + cleanups + more ifquery support etc
Ticket: CM-3346, CM-3784, CM-3841
Reviewed By:
Testing Done: various ifupdown2 tests
2014-11-11 21:58:12 -08:00
Roopa Prabhu
261379f01b Add /etc/default/networking to provide an easier way to change
ifupdown logging from /etc/init.d/networking.

Ticket: CM-3891
Reviewed By:
Testing Done: Tested changing default networking parameters

- This provides a way to log to syslog
- if syslog is not enabled, msgs are output to stdout (in case of boot
  these should be captured by bootlog in > 2.5)

Note that these values only affect logging from the
/etc/init.d/networking script and has nothing to do with ifupdown2
logging when ifupdown2 is used outside of /etc/init.d/networking
2014-11-07 15:18:42 -08:00
Roopa Prabhu
8e113d6319 misc query and fdb/vlan add fixes
Ticket: CM-3346
Reviewed By:
Testing Done: ifupdown2 sanity
2014-11-03 17:55:51 -08:00
Roopa Prabhu
61636dcc1c Set RLIMIT_CORE to zero. For some reason the core file size is huge.
Ticket: CM-3346
Reviewed By:
Testing Done: ifupdown2 sanity

I dont see a real reason for a core file to debug ifupdown2 problems
currently. Will re-enable core file generation when i root cause the
issue.
2014-10-13 09:55:21 -07:00
Roopa Prabhu
904908bc5f Documentation cleanup
Ticket:
Reviewed By:
Testing Done:

- these changes are mainly related to api doc generation using sphinx
2014-07-22 11:15:56 -07:00
Roopa Prabhu
fffdae9c21 Fix use of args.CLASS with ifreload (reload does not support CLASS yet).
Ticket: CM-3176
Reviewed By: trivial
Testing Done: Tested ifreload with the testcase in the bug

This broke when i recently fixed --allow-classes support for ifup/ifdown
2014-07-16 14:07:22 -07:00
Roopa Prabhu
5ee3e1a854 Fix handling of interfaces with --allow CLASS
Ticket: CM-3105
Reviewed By:
Testing Done: precommit and some interface class tests

- the patch mostly involves code reorg
2014-07-16 12:03:03 -07:00
Roopa Prabhu
51a8099130 Fix typo
Ticket: CM-2911
Reviewed By: pbendale
Testing Done:
2014-06-12 06:05:40 -07:00
Roopa Prabhu
522bf8e68b Fix bash completion for sudo users (mostly cosmetic) + man page and
example fixes

Ticket: CM-2911
Reviewed By: CCR-1637
Testing Done: tested ifupdown2 sanity and bash completion

The python argcomplete module that i use for ifupdown2 has a limitation
that it does not work with sudo when used in the global mode. But there is
a workaround for it online (long story short...instead of enabling the global
argparse complete ...the author recommends registering argparse complete bash
completion individually for your script). This patch does just that.

This patch also moves the udev overrides to their respective packages.
Two of them are owned by ifupdown2.

Conflicts:
	rootconf/default/home/cumulus/sysroot-complete
2014-06-10 19:31:50 -07:00
roopa
86fc62e20c make a few things configurable (check output err/success string +
warnings on ifupdown)

Ticket: CM-1438
Reviewed By:
Testing Done: Tested ifupdown2 sanity

Some of the above mentioned configurable items can be specified in
ifupdown2.conf
2014-05-09 09:10:49 -07:00
roopa
31c5878750 Change mstpctl show output parsing code (Use mstpctl show using
param-id). Its less prone to problems.

Ticket: CM-1438
Reviewed By:
Testing Done:

- Also add bpdufilter support
- This also gets rid of caching for mstpctl output
2014-05-05 13:39:00 -07:00
roopa
3dcc1d0eeb support json input + multiple instance running check
Ticket: CM-1438
Reviewed By:
Testing Done: Tested sanity and interfaces file in json format
2014-04-28 22:33:33 -07:00
roopa
d40e96ee4e man page cleanup + cleanup + minor fixes
Ticket: CM-1438
Reviewed By:
Testing Done: Tested ifupdown sanity
2014-04-25 16:09:14 -07:00
roopa
c778afebc3 Cosmetic - register level names
Ticket:
Reviewed By:
Testing Done: Tested sanity
2014-04-22 22:27:59 -07:00
roopa
14dc390d71 Fixes to some corner cases + support for some missing 'options and
attributes' for backward compatibility

Ticket: CM-1438
Reviewed By:
Testing Done: Tested ifupdown sanity and new functionality

support for:
- -i <interface file>
- template lookup path and move all template handling to a separate
  module template.py
- new ifupdown2 config file /etc/network/ifupdown2/ifupdown2.conf
- bridge_waitport and bridge_maxwait
- moved addons.conf to /var/lib/ifupdownaddons/
2014-04-18 14:09:20 -07:00
roopa
03d5166bff Fix PATH env for boot environment
Ticket: CM-2602
Reviewed By: trivial
Testing Done: Tested with pre-up script during boot
2014-04-14 22:56:51 -07:00
roopa
525f0a30ef cleanup + fix some reload caching issues
Ticket: CM-2508
Reviewed By:
Testing Done: ifreload and ifupdown sanity testing
2014-04-04 15:00:59 -07:00
roopa
9dce35612d warn on template rendering errors and continue + --syntax-check option to ifup +
minor parser cleanups

Ticket: CM-2488
Reviewed By:
Testing Done: Tested ifupdown sanity and also the interfaces file in CM-2488
2014-03-28 06:03:14 -07:00
roopa
91067b3d23 Remove batch support when deleting addresses. batching code does not
update the cache yet and that can cause problems during add

Ticket: CM-2491
Reviewed By:
Testing Done:

Still working on the cache update support during batching.
2014-03-27 16:36:54 -07:00
roopa
c798b0f4aa execute 'up' on upper devices if ifup is called with --with-depends
Ticket: CM-1438
Reviewed By: review pending
Testing Done: Tested ifup/ifdown

Before this patch, `ifup --with-depends <iface>` only brought up
lowerdevices. Because those were enough for iface to function.

And if ifaces above it (upperdevices) needed fixing, user could just
execute `ifup --with-depends <ifaceupper>`.

But in a recent, bond under a bridge bug in 2.0, got me thinking that
its probably better to up the upperdevices which might be impacted as
well. and this patch does just that.

The patch includes changes to make ifupdown generate dependency
information for all interfaces even if the user requested to operate
on a single interface. This is to get a full view of the interfaces file.
This might add some overhead. Should not change anything during boot.
Still looking at ways to optimize.
2014-03-18 16:38:00 -07:00
roopa
e6c9d00704 Add bash completion support using python-argcomplete
Ticket:
Reviewed By:
Testing Done: Tested bash completeion for cl-acltool and ifupdown

Caveat: It also completes hidden options.
2014-03-13 12:06:18 -07:00
roopa
5c72192578 A few state manager optimizations + and some other fixes
Ticket: CM-1438
Reviewed By:
Testing Done:

This also fixes a bug with address handling:
- If the user changed a primary address, flush all the addresses and
  re-add them. Previously, if user added a new primary address, it would
ust get appended to the end of the address list as a secondary address.
2014-03-06 06:41:28 -08:00
roopa
20dd6242f6 ifudown --no-scripts support
Ticket: CM-1438
Reviewed By:
Testing Done:
2014-02-26 08:09:44 -08:00
roopa
fe0a57d355 remove dhclient -nw option + cleanup
Ticket: CM-1438
Reviewed By:
Testing Done:
2014-02-19 21:30:55 -08:00
roopa
be0b20f288 Support for manual method + rearrange some code
Ticket: CM-1438
Reviewed By:
Testing Done:

- Moved link config to base ifupdown. I had been debating about this,
  this is need to support manual and also the --no-scripts option.
- helps executing only link up/down operations if needed on an interface
- While at it, i also moved the scheduler methods to be classmethods
  instead of instance methods (which again was a pending cleanup task)
2014-02-17 19:01:37 -08:00
roopa
83c1f241fd minor fixes + cleanup + update manpage
Ticket: CM-1438
Reviewed By:
Testing Done:

- simplified the dot generator
2014-02-15 21:39:13 -08:00
roopa
f802fe3ccb cleanup and some documentation
Ticket: CM-1438
Reviewed By:
Testing Done:
2014-02-13 21:37:26 -08:00
roopa
360d5f8eac rename a few options
Ticket: CM-1438
Reviewed By:
Testing Done:
2014-02-11 08:09:28 -08:00
roopa
d08d5f5478 More fixes and cleanup
Ticket: CM-1438
Reviewed By:
Testing Done:
2014-02-08 09:05:32 -08:00
roopa
37c0543d34 More fixes and changes
Ticket: CM-1438
Reviewed By:
Testing Done: unit tested with all kinds of interfaces

some high level changes
- moved ipv4/ipv6 address handling in a single module. dhcp
into a separate module.
- new link 'up' module
- igmp fixes
- many other fixes
2014-01-30 22:36:41 -08:00
roopa
cca03c30c5 some ifquery fixes + make the default to not follow dependents (
added a --with-depends option)

Ticket: CM-1438
Reviewed By:
Testing Done:

still debating on the default behaviour for following dependents.
for now not following dependents might be better.
When all interfaces are selected, it always follows dependents
2014-01-30 19:53:49 -08:00
roopa
739f665baa A whole lot of fixes and some new code (needs some cleanup which will be
part of subsequent checkins)

Ticket: CM-1438
Reviewed By:
Testing Done: Tested ifup, ifdown and ifquery

Conflicts:
	packages/ifupdown2-addons/addons/ifenslave.py
2014-01-30 19:53:25 -08:00
roopa
551a3627d4 Some fixes in dependency handling
Ticket: CM-1438
Reviewed By:
Testing Done: tested with configs involving vlan devices and bridges

- fix dependency handling which i had broken recently with my last
  checkin (nat reported this one)
- In inet pluggins, dont issue ip addr get unless required (saw cpu
  spike up because of CM-1889)
- and some other minor changes lying in my tree
2013-11-30 23:52:30 -08:00
roopa
10720a537d cleanup ifquery for interfaces that were configured but got deleted or
went away

Ticket: CM-1438
Reviewed By:
Testing Done:
2013-11-13 23:00:02 -08:00
roopa
3e8ee54f30 more fixes + cleanup + support for --exclude argument
Ticket: CM-1438
Reviewed By:
Testing Done:
2013-11-13 16:07:15 -08:00
roopa
eab25b7c62 Some fixes + enhancements
Ticket: CM-1438
Reviewed By:
Testing Done: Tested installing new ifupdown on the box

- fixed a few things in ifquery
- added new perfmode to skip some of the checks (useful during boot when there is
  no previous state)
- updated doc dir with example
- Added README, TODO and KNOWN_ISSUES file
2013-11-11 10:56:36 -08:00
roopa
a6f80f0e0b python-ifupdown initial checkin
Ticket: CM-1438
Reviewed By: TBD
Testing Done:

- Will checkin build files after some more testing and performance
  numbers. It will go into the testing repo for 2.0

- All TODO items are part of the checked in TODO file
2013-11-04 06:06:11 -08:00