MAAS: improve the main of datasource to look at kernel cmdline config.
This just looks in one other maas related path for a config file.
The file '91_kernel_cmdline_url' is written by cloud-init when it
gets a cloud-config-url parameter.
Also now we read the config even if a url is specified to potentially
fill in credentials.
tests: silence the Cheetah UserWarning about NameMapper C version.
This silences a warning made by Cheetah in pip installed environments:
UserWarning: You don't have the C version of NameMapper installed!
I'm disabling Cheetah's useStackFrames option ...
The reason for the monkey patching is that the warning goes to stderr
during nose and breaks up its expected output. The side affect of it
is that tests would run with Cheetah's 'useStackFrames'
enabled which is "painfully slow with the Python version of NameMapper".
systemd: Run cloud-init.service Before dbus.socket not dbus.target
The change reported to fix bug 1629797 was incorrect. It added:
Before=dbus.target
and its commit message referenced dbus.service.
dbus.target does not exist, and dbus.service would not solve the
problem. The change did not fix the problem nor actually make any
difference.
systemd: run cloud-init.service Before dbus.service
This is the best work around we have for an issue seen when dns is used
during cloud-init.service on a system that is configured in nsswitch
to use systemd-resolved. The problem is that cloud-init.service was
blocking basic.target, and dbus would not be available until after
cloud-init.service finished.
unittests: fix use of mock 2.0 'assert_called' when running make check
Some of the new DigitalOcean unittests were written to use 'assert_called',
which is only available in mock versions 2.0. Because of this, the failure
would only occur in releases less than yakkety and not in 'tox'.
Add a 'xenial' entry to tox.ini with versions from xenial.
This adds lots of config module documentation in a standard format.
It will greatly improve the content at readthedocs.
Additionally:
* Add a 'doc' env to tox.ini
* Changed default highlight language for sphinx conf from python to yaml
most examples in documentation are yaml configs
* Updated datasource examples to highlight sh code properly
Prior to LXD 2.3, the bridge configuration was done through distro
packaging. Thus, lxd module interacted with debconf.
With 2.3 and higher, this is now done inside LXD itself, so we
need to use "lxc network" there.
For now, this perfectly matches what we had before with debconf and
doesn't cover any of the new options. We can always add those later.
A set of tests similar to what we had for debconf has been added to make
sure things look good.
This is tested in Yakkety container running LXD 2.3 and all options seem
to be passed through as expected, giving me the bridge I defined.
DigitalOcean: use meta-data for network configruation
On DigitalOcean, Network information is provided via Meta-data.
It changes the datasource to be a local datasource, meaning it
will run before fallback networking is configured.
The advantage of that is that before networking is configured it
can bring up a network device with ipv4 link-local and hit the
metadata service that lives at 169.254.169.254 to find its networking
configuration. It then takes down the link local address and lets
cloud-init configure networking.
The configuring of a network device to go looking for a metadata
service is gated by a check of data in the smbios. This guarantees
that the code will not run on another system.