~raharper/cloud-init:fix/cloud-test-apt-pipelining

Last commit made on 2019-03-31
Get this branch:
git clone -b fix/cloud-test-apt-pipelining https://git.launchpad.net/~raharper/cloud-init
Only Ryan Harper can upload to this branch. If you are Ryan Harper please log in for upload directions.

Branch merges

Branch information

Name:
fix/cloud-test-apt-pipelining
Repository:
lp:~raharper/cloud-init

Recent commits

197bccd... by Ryan Harper

cloud_tests: fix apt_pipelining test-cases

The apt_pipelining test-cases were broken but until cloud-init
changed it's default behavior to not disable, these silently passed
as both only ever checked if pipelinging was disabled.

First, the tests used the 'apt' namespace, which is not for configuring
pipelining, rather that requires 'apt_pipelining' as the namespace.

Second, the 'os' variant needs to check that cloud-init does not
write a configuration file; it was a copy-and-paste error from the
disable test-case.

This branch fixes the config and collection to validate both scenarios.

0dc3a77... by "Jason Zions (MSFT)" <email address hidden>

Azure: Ensure platform random_seed is always serializable as JSON.

The Azure platform surfaces random bytes into /sys via Hyper-V.
Python 2.7 json.dump() raises an exception if asked to convert
a str with non-character content, and python 3.0 json.dump()
won't serialize a "bytes" value. As a result, c-i instance
data is often not written by Azure, making reboots slower (c-i
has to repeat work).

The random data is base64-encoded and then decoded into a string
(str or unicode depending on the version of Python in use). The
base64 string has just as many bits of entropy, so we're not
throwing away useful "information", but we can be certain
json.dump() will correctly serialize the bits.

bb0b6f1... by Robert Schweikert

net/sysconfig: write out SUSE-compatible IPv6 config

For writing IPv6 addresses to ifcfg-* the name "IPV6ADDR" is used. For
secondary IPs the value for "IPV6ADDR_SECONDARIES" is set. On SUSE based
distributions the names "IPADDR6" and "IPADDR6_$SOMELABEL" need to be
used.

dfe50e3... by Thomas Bechtold

tox: Update testenv for openSUSE Leap to 15.0

Use the requirements for the openSUSE Leap 15.0 release.

22e3329... by raphael.glon

net: Fix ipv6 static routes when using eni renderer

When rendering ipv6 static routes in eni format the
post-up/pre down commands were not correct for ipv6.

LP: #1818669

5e5894d... by Dan Watkins

Add ubuntu_drivers config module

The ubuntu_drivers config module enables usage of the 'ubuntu-drivers'
command. At this point it only serves as a way of installing NVIDIA
drivers for general purpose graphics processing unit (GPGPU)
functionality.

Also, a small usability improvement to get_cfg_by_path to allow it to
take a string for the key path
  "toplevel/second/mykey"
in addition to the original:
  ("toplevel", "second", "mykey")

6d58bd8... by Dan Watkins

doc: Refresh Azure walinuxagent docs

- Remove outdated waagent.conf recommendations
- Recommend using Provisioning.UseCloudInit
- Reorganise sections so walinuxagent recommendations are easier to find

200b0ac... by Dan Watkins

tox: bump pylint version to latest (2.3.1)

The previous version was emitting errors due to an incompatibility with
one of its dependencies.

(We could have pinned the dependency instead, but staying current on
pylint is a worthy goal in and of itself.)

f2fd6ea... by Dan Watkins

DataSource: move update_events from a class to an instance attribute

Currently, DataSourceAzure updates self.update_events in __init__. As
update_events is a class attribute on DataSource, this updates it for
all instances of classes derived from DataSource including those for
other clouds. This means that if DataSourceAzure is even instantiated,
its behaviour is applied to whichever data source ends up being used for
boot.

To address this, update_events is moved from a class attribute to an
instance attribute (that is therefore populated at instantiation time).
This retains the defaults for all DataSource sub-class instances, but
avoids them being able to mutate the state in instances of other
DataSource sub-classes.

update_events is only ever referenced on an instance of DataSource (or a
sub-class); no code relies on it being a class attribute. (In fact,
it's only used within methods on DataSource or its sub-classes, so it
doesn't even _need_ to remain public, though I think it's appropriate
for it to be public.)

DataSourceScaleway is also updated to move update_events from a
class attribute to an instance attribute, as the class attribute would
now be masked by the DataSource instance attribute.

LP: #1819913

3acaacc... by Robert Schweikert

net/sysconfig: Handle default route setup for dhcp configured NICs

When the network configuration has a default route configured and
another network device that is configured with dhcp, SUSE sysconfig
output should not accept the default route provided by the dhcp
server.

LP: #1812117