Age | Commit message (Collapse) | Author | Files | Lines |
|
Updates the impl_ifcfg.child_members method so that it
uses a set instead of an array (this avoids dups). Also
fixes an issue with this method which would cause tests
to fail intermittently due to ordering differences.
Adding each member object regardless solves this
(not sure why I had commented out the children.append before)
Also fixes an issue in test_cli which causes tests to fail
on Debian which doesn't yet support the add_bond method
on its ENI provider. This fix was to explicitly set
--provider=ifcfg on the failing tests. We should be able to
remove these once ENI supports bonding properly.
Closes-bug: #1370615
Change-Id: Id9cfa2b2eaab27c93113956f5956facfa2a2aeee
|
|
If a top level bridge or bond is modified we also want to
restart the child interfaces.
|
|
|
|
Adds support for ovs_extra to the OVS Bridge and
OVS bond objects.
|
|
Adds new YAML examples. Also adds some new CLI test
cases which compare --noop stdout (from the CLI) for
the json and yaml examples to verify they generate
the same things.
|
|
Implements a new active NIC abstraction and naming convention
that allows nic1, nic2, etc. to be translated to actual (active)
network device names like em1, em2 (or eth0, eth1).
This includes some logic to map ordered active nics to the
nic1, nic2 naming scheme. Embedded nics are always listed
first (in sort order) followed by any other active Nics
on the system.
With the new code:
{"type": "interface", "name": "nic1" }
is automatically translated (internally) to:
{"type": "interface", "name": "em1" }
This works for all top level "interface" devices, vlans, bonds, and
bridges alike. For vlans the 'device' name is translated instead
of the device name per vlan object conventions.
|
|
This interface should always exist... we don't want to clean
it up.
|
|
Adds a new cleanup option which can be used to ifdown and
remove interfaces that exists but aren't specified in
the object model (or JSON).
|
|
|
|
Adds support for a new 'primary' interface option exposed via the
object model and JSON parsers which can be used to force the
MAC address on a bridge. Only one interface on a given
bridge (or bond) may be set as the primary interface.
Also, update the ifcfg and eni providers so that they use
OVS_EXTRA (or ovs_extra) to pin the mac accordingly.
|
|
Corrects an issue where 'None' got written into the
ifcfg format route files instead of ''.
|
|
|
|
We should bring up the interfaces on boot in the same order
with which we bring them up in this tool.
|
|
|
|
Drop the 'set Interface $DEVICE external-ids:iface-id=...' config
from ifcfg ovs vlans.
|
|
|
|
Updates the ENI format so it creates multiple config sections
for a single os-net-config interface object if both v4 and v6
IP addresses are defined.
Also, fixes several of the test so that DHCP is not enabled on
OvsPorts. If an OVS port is part of a bridge that is itself using
DHCP we don't also need to run DHCP on the OvsPort interface.
|
|
Adds a from_json static method to all objects.
Also adds a top level object_from_json function that
can be used for all the interface and bridge types.
(everything except addresses and routes). This should
be useful for wiring processing JSON from the CLI.
|
|
Supports the configuration of OVS bond interfaces.
Also adds the ability to configure extra OVS_OPTIONS
for both bonds and bridges (useful for some modes of
operation)
|
|
Consolidates the test data into a single string block for the
ovs vlan port test string.
|
|
Add ifcfg configuration support for Vlans and Vlan OVS ports.
|
|
This uses /etc/network/interfaces single file format.
Includes basic tests
|
|
Adds new object for OvsBridge. Also update the ifcfg network
config class to support adding bridges.
As part of the change both the bridge and interface classes
extend a _BaseOpts base class.
|
|
Adds an apply function to the ifcfg implementation
which:
1) Shuts down existing interfaces w/ ifdown
2) writes new interfaces config files (routes too)
3) Starts up new interfaces w/ ifup
|
|
Ifcfg formatted persistence for interfaces and routes.
|
|
Add some initial objects for interfaces, routes and addresses.
|
|
Initial commit of the project layout
|