~chad.smith/cloud-init:bug/ec2-tests-unmocked-metadata

Last commit made on 2017-08-31
Get this branch:
git clone -b bug/ec2-tests-unmocked-metadata https://git.launchpad.net/~chad.smith/cloud-init
Only Chad Smith can upload to this branch. If you are Chad Smith please log in for upload directions.

Branch merges

Branch information

Name:
bug/ec2-tests-unmocked-metadata
Repository:
lp:~chad.smith/cloud-init

Recent commits

53e97d2... by Chad Smith

flakes

d817633... by Chad Smith

lock down all unittest internet connections with httpretty.HTTPretty.allow_net_connect = False. drop bad_uri_handler, reorganize setup_ds to only mock instance-id of minimum_metadata_version and only mock all metadata on the desired version

555e110... by Lars Kellogg-Stedman

test_ec2: metadata tests were mocking wrong urls

The ec2 metadata tests were only mocking one version of the metadata
api, but requests were made against both. This fixes _setup_ds to
register mock data at both versions of the API.

7e76c57... by Ryan Harper

distro: allow distro to specify a default locale

Currently the cloud-init default locale (en_US.UTF-8) is set by
the base datasource class. This patch allows a distro to overide
the fallback value with one that's available in the distro but continues
to respect an image which has preconfigured a locale.

- Distro object now has a get_locale method which will return a
  preconfigure locale setting by checking the distros locale system
  configuration file. If not set or not present, return the default
  locale of en_US.UTF-8 which retains behavior of all previous cloud-init
  releases.
- Apply locale now handles regenerating locales or system configuration
  files as needed.
- Adjust apply_locale logic to skip locale-regen if the specified LANG
  value is C.UTF-8,C, or POSIX; they do not require regeneration.
- Further add unittests to exercise the default paths for Ubuntu and
  non-ubuntu paths to validate they get the LANG expected.

300e451... by Scott Moser

tests: fix two recently added tests for sles distro.

test_set_locale_sles and test_set_locale_sles_default were incorrectly
testing for truth of <distro_object>.uses_systemd rather than calling
that function and checking its result.

The error was only seen if the system running the tests was not using
systemd.

b931a64... by Chad Smith

url_helper: dynamically import oauthlib import from inside oauth_headers

oauth_headers is the only function which requires oauthlib, move the
import and ImportError handling inside this function to only attempt
loading at runtime if called. This will allow us to build on platforms
that don't have python-oauthlib installed by default. Add simple unittests
around the missing oauthlib dependencies to make sure the function
performs as intended and raises and NotImplementedError if oauthlib can't
be imported.

502082f... by Scott Moser

tox: make xenial environment run with python3.6

The pinned versions of python packages in xenial do not work with
python3.6. Currently, the failure can be seen with:
 $ tox -e xenial tests/unittests/test_merging.py
which ends up failing with in /usr/lib/python3.6/inspect.py with:
  ValueError: Function has keyword-only parameters or annotations, use
  getfullargspec() API which can support them

Instead of setting 'basepython' to 3.5 for the 'xenial', we just update
the one package that does not run correctly with python3.6. That allows
the developer to have either python3.5 or python3.6 installed and have
tox work as expected.

cbda576... by Robert Schweikert

suse: Add support for openSUSE and return SLES to a working state.

This gets initial opensuse and SLES support back to a working state.
Still missing is more complete network file writing and unit tests.

44529c1... by Scott Moser

GCE: Add a main to the GCE Datasource.

This just adds a main to the GCE datasource so that it is easily
callable: python3 -m cloudinit.sources.DataSourceGCE
It also adds a log of the time it took to crawl.

3c45330... by Chad Smith

ec2: Add IPv6 dhcp support to Ec2DataSource.

DataSourceEc2 now parses the metadata for each nic to determine if
configured for ipv6 and/or ipv4 addresses. In AWS for metadata version
2016-09-02, nics configured for ipv4 or ipv6 addresses will have non-zero
values stored in metadata at network/interfaces/macs/<MAC>/public-ipv4 or
ipv6s respectively. Those metadata files are only non-zero when an ipv4 or
ipv6 ip is associated to the specific nic. A new
DataSourceEc2.network_config property is added which parses the metadata
and renders a network version 1 dictionary representing both dhcp4 and
dhcp6 configuration for associated nics.

The network configuration returned from the datasource will also 'pin' the
nic name to the name presented on the instance for each nic.

LP: #1639030