Age | Commit message (Collapse) | Author | Files | Lines |
|
Change-Id: I3eedbacc359bf6209392b2e69a5a65a055d81390
|
|
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.
|
|
|
|
|
|
Update the utils.get_file_data method so that it doesn't log
errors if a file doesn't exist.
|
|
Adds support for ovs_extra to the OVS Bridge and
OVS bond objects.
|
|
Updates the object model so that a VLAN on top of a bridge
(an OVS int port) doesn't require a physical device to
be set in the object model.
|
|
Corrects the eni provider so that it returns the correct
format in noop mode.
|
|
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.
|
|
Missed this in 9e515950c7eb4a73e02a4f4883c223dd24ba93ff
|
|
|
|
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.
|
|
|
|
Updates the apply() function for each NetConfig object
so that it now accepts noop instead. Also, the updated
files are not returned (always instead of conditionally
if mock was used).
|
|
Specifying mock=True for 'apply' will return a string
representing the changes required, or commands to be used
in order to implement the requested/specified configuration.
This is also exposed to the cli, with -m (--mock), e.g.
os-net-config --mock -c ./etc/example_os_net_config_1.json -p eni
|
|
This fixes issues where running os-net-config did nothing.
|
|
|
|
Corrects an issue where 'None' got written into the
ifcfg format route files instead of ''.
|
|
|
|
Adds -d (--debug) and -v (--verbose) options to control
the log levels.
|
|
|
|
|
|
|
|
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.
|
|
|
|
We were shutting the interfaces down but not bringing them up
again. This fixes that...
|
|
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 new CLI which parses the JSON and calls the configured
provider to apply the configuration.
|
|
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.
|