~paul-meyer/cloud-init:fix-raw-ephemeral-disk

Last commit made on 2016-08-26
Get this branch:
git clone -b fix-raw-ephemeral-disk https://git.launchpad.net/~paul-meyer/cloud-init
Only Paul Meyer can upload to this branch. If you are Paul Meyer please log in for upload directions.

Branch merges

Branch information

Name:
fix-raw-ephemeral-disk
Repository:
lp:~paul-meyer/cloud-init

Recent commits

1e410c7... by Paul Meyer

Allow ephemeral drive to be unpartitioned

If device has no partition table, the first line of output from `sgdisk
-p <device>` will be "Creating new GPT entries.", instead of something
like "Disk /dev/sdb: 266338304 sectors, 127.0 GiB".

6fce6db... by Joshua Harlow

Add a module that can configure spacewalk.

Spacewalk is used by some peopel to manage connections into redhat package
management systems and kickstart and various other tasks, so having a
system be able to do the needed tasks on first boot to integrate with that
system would be very useful (to some).

See: https://fedorahosted.org/spacewalk/

3f1373a... by Matthew Thode

add install option for openrc

Adds an install option for for OpenRC init scripts.
I've also restricted installing tests more correctly.
Also, don't hardcode the path to ip (/bin/ip on gentoo).

6a8aa46... by Scott Moser

Generate a dummy bond name for OpenStack

The OpenStack network_data.json does not provide a name for bond links.
This change makes it so a dummy one is generated and used instead
to satisfy cloud-init which does require one.

In order to write the correct link (underlying 'link' names)
for the bonds, we maintain a list of info by ids so we can easily
get the right device name.

Also:
  * add a vlan test case that similarly references an id rather than name.
  * make bond interfaces auto

LP: #1605749

40a2f62... by Scott Moser

network: fix get_interface_mac for bond slave, read_sys_net for ENOTDIR

When using get_interface_mac, on a system with bond slaves, it would
return the bond_master's address. That isn't expected, and causes
problems in a caller like get_interfaces_by_mac which would then seem to
find duplicate macs on the system.

Additionally, in read_sys_net catch a errno.ENOTDIR error as ENOENT.

Opening a path as a file that has <existing_file>/anything will will raise
ENOTDIR rather than ENOENT. This handles that case in read_sys_net as a
if the file did not exist.

64522ef... by Scott Moser

azure dhclient-hook cleanups

This adds some function to the generator to maintain the presense of a
flag file '/run/cloud-init/enabled' indicating that cloud-init is enabled.

Then, only run the dhclient hooks if on Azure and cloud-init is enabled.
The test for is_azure currently only checks to see that the board vendor
is Microsoft, not actually that we are on azure. Running should not be
harmful anywhere, other than slowing down dhclient.

The value of this additional code is that then dhclient having run
does not task the system with the load of cloud-init.

Additionally, some changes to config are done here.
 * rename 'dhclient_leases' to 'dhclient_lease_file'
 * move that to the datasource config (datasource/Azure/dhclient_lease_file)

Also, it removes the config in config/cloud.cfg that set agent_command
to __builtin__. This means that by default cloud-init still needs
the agent installed. The suggested follow-on improvement is to
use __builtin__ if there is no walinux-agent installed.

685ffd4... by Scott Moser

Minor cleanups to atomic_helper and add unit tests.

Change atomic_helper.write_file to have same same signature as write_file.
Add some simple unit tests for atomic_helper.

1f8b37e... by Matthew Thode

Fix Gentoo net config generation

This gets Gentoo work on simple configs with static IPs or
DHCP on physical interfaces. This gets Gentoo bootable again.

41271bd... by Andrew Jorgensen

distros: fix get_primary_arch method use of os.uname

os.uname is a method, not a property.

d861415... by Christian Ehrhardt 

Apt: add new apt configuration format

This adds an improved apt configuration format that is fully backwards
compatible with previous behavior. This is mostly copied from curtin's
implementation.

It does:
 * clean up and centralizes many of the top level 'apt_*' values that
   previously existed into a single top level 'apt'key.
 * support a 'source' in apt/sources/entry that has only a key
 * documents new features and adds tests.

See the added doc/examples/cloud-config-apt.txt for more information.