~kgarloff/cloud-init:detect_otc_as_openstack_ds

Last commit made on 2018-03-25
Get this branch:
git clone -b detect_otc_as_openstack_ds https://git.launchpad.net/~kgarloff/cloud-init
Only Kurt Garloff can upload to this branch. If you are Kurt Garloff please log in for upload directions.

Branch merges

Branch information

Name:
detect_otc_as_openstack_ds
Repository:
lp:~kgarloff/cloud-init

Recent commits

89abc06... by Kurt Garloff

Downgrade OpenStack DS to MAYBE is ConfigDrive2 is found.

The old code unconditionally disabled OpenStack DS when ConfigDrive2
was detected. However, we might not have ConfigDrive2 configured or
find it undesirable otr sable for some reason.

So change this to keep OpenStack as MAYBE DS that we can fall back
to if the user so desires.

OpenTelekomCloud provide a network OpenStack DS on BareMetal instances
in addition to the ConfigDrive DS provided there, so this patch
increases the options there.

Followup to LP: #1756471.

825db3a... by Kurt Garloff

Identify OpenTelekomCloud Xen as OpenStack DS.

Open Telekom Cloud gen1 (Xen) hosts do not provide nova product
names in DMI but Xen HVM domU. They can however be safely identified
by the OpenTelekomCloud Chassis asset tag. OpenTelekomCloud does
use the network OpenStack DataSource, so we better detect it.

This fixes LP: #1756471.

bdeec31... by Scott Moser

Enable IBMCloud datasource in settings.py.

This just got missed in the IBMCloud datasource addition.
Add it to the builtin list of datasources.

e0f644b... by Scott Moser

IBMCloud: Initial IBM Cloud datasource.

This adds a specific IBM Cloud datasource.
IBM Cloud is identified by:
 a.) running on xen
 b.) one of a LABEL=METADATA disk or a LABEL=config-2 disk with
     UUID=9796-932E

The datasource contains its own config-drive reader that reads
only the currently supported portion of config-drive needed for
ibm cloud.

During the provisioning boot, cloud-init is disabled.

See the docstring in DataSourceIBMCloud.py for more more information.

68d798b... by Scott Moser

tests: remove jsonschema from xenial tox environment.

Ubuntu 16.04 (xenial) does not have jsonschema installed by default. As
it is listed in requirements, the tox environment will always have it
installed.

Add the helper tools/pipremove that removes pip packages. Then use that
to remove jsonschema without noise of always running and ignoring a
'pip uninstall jsonschema'.

0c2f1ea... by Scott Moser

tests: Fix newly added schema unit tests to skip if no jsonschema.

The recently added snap and ubuntu_advantage modules had unit tests
that exercised jsonschema. Those throw error if jsonschema is
not present. Fix to skip in that scenario.

10065b1... by Scott Moser

ec2: Adjust ec2 datasource after exception_cb change.

The recent change to exception_cb missed this caller.
The result was a slow test.

2d618e2... by Douglas Jordan

Reduce AzurePreprovisioning HTTP timeouts.

Reducing timeout to 1 second as IMDS responds within a handful
of milliseconds. Also get rid of max_retries to prevent exiting
out of polling loop early due to IMDS outage / upgrade.

Reduce Azure PreProvisioning HTTP timeouts during polling to
avoid waiting an extra minute.

LP: #1752977

097a296... by Kurt Garloff

Revert the logic of exception_cb in read_url.

In commit e9e8616, there was an inversion of the logic of the
exception_cb return value meaning, breaking the (network) OpenStack
DataSource, which implemented exception_cb as should_retry_cb, returning
True when a retry should be done and False when the retry loop should
be broken and the exception reraised again immediately.

The OpenStack DS was the only user of this callback at the time and not
touched by the commit (nor did the commit message mention an intended
change), so this almost certainly happened by mistake.

These days, we have a second user of the callback in DataSourceScaleway.
It uses the new logic, so it needs change if we fix the meaning of the
return value.

This patch reverts the meaning of url_helper.read_url() execption_cb
to the old semantics. It updates the comment and adjusts the Scaleway
datasource.

The patch has been tested on Open Telekom Cloud (which uses the
OpenStack network Datasource) where previously a missing user_data
and network_data.json would be retried 6 times each despite them
not being present (they are optional!) and the server repsonding
with a correct 404. After the patch, boot times are 10s faster,
as we no longer pointlessly retry these files.

LP: #1702160
LP: #1298921

0d51e91... by Chad Smith

ubuntu-advantage: Add new config module to support ubuntu-advantage-tools

ubuntu-advantage-tools is a package for enabling and disabling extended
support services such as Extended Security Maintenance (ESM), Canonical
Livepatch and FIPS certified PPAs. Simplify Ubuntu Advantage setup on
machines by allowing users to provide a list of ubuntu-advantage commands
in cloud-config.