summaryrefslogtreecommitdiff
path: root/ChangeLog
AgeCommit message (Collapse)Author
2013-03-04upstart/cloud-init-nonet.conf: handle SIGTERM gracefullyScott Moser
this fixes a confusing message, most commonly found in /var/log/dmesg or seen on log screens: init: cloud-init-nonet main process (307) killed by TERM signal This was actually *expected* as the upstart job was supposed to block until networking came up, and the SIGTERM was sent by upstart. That said, the message was confusing. Now, instead we will see something like cloud-init-nonet[6.54]: waiting 10 seconds for network device cloud-init-nonet[12.13]: static networking is now up Which is much nicer. In the event that networking does not come up you'll see: cloud-init-nonet[X.Y]: gave up waiting for a network device. LP: #1015223
2013-03-01fix an issue where keys were not being parsed correctlyScott Moser
this fixes an issue where ssh keys were not being parsed correctly. The result was that keys were considered to have options that did not have options. Additionally, those options were being written rather than the disable_root options. LP: #1136343
2013-03-01Support resizing btrfs filesystems.Blair Zajac
The existing code has two issues with btrfs: 1) The command to resize a btrfs filesystem uses a path to the mount point, not the underlying device: $ btrfs filesystem resize max /dev/vda1 ERROR: unable to resize '/dev/vda1' - Inappropriate ioctl for device Resize '/dev/vda1' of 'max' $ btrfs filesystem resize max / Resize '/' of 'max' 2) The code that is given a path and finds the ID of the device where the path is mounted doesn't work for btrfs: Use /proc/$$/mountinfo to find the device where path is mounted. This is done because with a btrfs filesystem using os.stat(path) does not return the ID of the device. Here, / has a device of 18 (decimal). $ stat / File: '/' Size: 234 Blocks: 0 IO Block: 4096 directory Device: 12h/18d Inode: 256 Links: 1 Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2013-01-13 07:31:04.358011255 +0000 Modify: 2013-01-13 18:48:25.930011255 +0000 Change: 2013-01-13 18:48:25.930011255 +0000 Birth: - Find where / is mounted: $ mount | grep ' / ' /dev/vda1 on / type btrfs (rw,subvol=@,compress=lzo) And the device ID for /dev/vda1 is not 18: $ ls -l /dev/vda1 brw-rw---- 1 root disk 253, 1 Jan 13 08:29 /dev/vda1 So use /proc/$$/mountinfo to find the device underlying the input path.
2013-02-21Few patches to make life on Debian 6 stable happier:Vlastimil Holer
* Added arguments to packages/bddeb: -d pass through '-d' to debuild --no-cloud-utils don't depend on cloud-utils package (default: False) These are essential for building on Debian 6, because there are no python-mocker (build dependency) and cloud-utils (install dependency) in squeeze and squeeze-backports. * SysVinit startup scripts modified to run both on RHEL and Debian, * (Unfortunately) New option INIT_SYSTEM=sysvinit_deb for Debian /etc/init.d/ directory * Make separate Ubuntu and Debian APT source template (cc_apt_configure) I'm now generating working Debian 6 package following way: INIT_SYSTEM=sysvinit_deb packages/bddeb -us -uc --no-cloud-utils -d
2013-02-07DataSourceNoCloud: allow setting user-data and meta-data in configScott Moser
This allows a single file to declare and activate this data source. This could come from: * cloud-config-url on kernel cmdline * /etc/cloud/cloud.cfg.d * debian preseed of 'cloud-init/local-cloud-config' Also here is * some tests * a small fix to parse_cmdline_data found when writing those tests. LP: #1115833
2013-01-31upstart/cloud-init-container.conf: ensure /run/network existsScott Moser
ifquery will exit failure if there is no /run/network directory. normally that would get created by one of network-interface.conf or networking.conf. But, it is possible that we're running before either of those have.
2013-01-31Changelog: reformat to limit to 80 chars wideScott Moser
2013-01-31doc: fix example in cloud-config-write-files.txtScott Moser
The write_files documentation incorrectly used 'perms' rather than 'permissions'. LP: #1111205
2013-01-30Adding package versioning logic to package installation.Joshua Harlow
This change adds the ability to provide specific package versions to Distro.install_packages and subsequently Distro.package_command. In order to effectively use Distro.install_packages, one is now able to pass a variety of formats in order to easily manage package requirements. These are examples of what can be passed: - "package" - ["package1","package2"] - ("package",) - ("package", "version") - [("package1",)("package2",)] - [("package1", "version1"),("package2","version2")] This change also adds the option to install a specific version for the puppet configuration module. This is especially important here as successful puppet deployments are highly reliant on specific puppet versions.
2013-01-29Fix broken cc_update_etc_hostsharlowja
Right now, all distros but ubuntu will fail to manage /etc/hosts. This is due to the fact that the templates are named: - hosts.ubuntu.tmpl - hosts.redhat.tmpl The config handler is specifically looking for a template with the given distro name. This change addresses this issue.
2013-01-28add entries to ChangeLogScott Moser
2013-01-16DataSourceConfigDrive: consider CD rom as valid config-drive source.Scott Moser
previously, there was an attempt in the config drive source to limit the source device to a "full block device" rather than a partition. This was done by a simplistic approach of checking that the last character of the name was not a number. That was filtering out CD-rom devices (sr0). Now, we have a bit more sophisticated approach to that same problem. We filter out block devices that have a 'partition' entry in /sys/class/block/DEVICE_NAME/partition . LP: #1100545
2013-01-07Allow 'sr0' to be specified as a device for mountsVlastimil Holer
Previously cloud-config to get a '/dev/sr0' entry written to /etc/fstab would have had to have the full /dev/sr0. This change allows cloud-config to reference it without the '/dev/' prefix. Like: | mounts: | - [ sr0, /media/sr0 ]
2013-01-07DataSourceCloudStack: fallback to default route if no virtual router foundGerard Dethier
Changes in revision 753 broke cloud-init on ubuntu, as it has a different dhclient directory than Fedora where the change was developed and tested. This change does 2 things: * searches multiple directories (including /var/lib/dhcp) for the lease files. * adds a fallback to the old code path of choosing the default route as the virtual router if there were no virtual routers found in the lease files. LP: #1089989
2013-01-07fix 'lock_password' for cloud-config user setupScott Moser
This simiplifies the logic, by just making it independent of 'system'. LP: #1096423
2013-01-07fix redaction of password field in log (LP: #1096417)Joshua Harlow
We were trying to avoid the user's password being written to the log, but that was looking for the wrong option. LP: #1096417
2012-12-19add ChangeLog entry for previous commitScott Moser
2012-12-17ensure a datasource's 'distro' and sys_cfg are updatedJoshua Harlow
After parsing and merging datasource's config, the changes in were not making it into the datasource's 'distro. The end result was that the when a config module was called, it's 'cloud' argument would be updated in 'cloud.distro', but not in 'cloud.datasource.distro'. This path was required for getting mirror settings to take affect, because they include information from the datasource. Ie: cc_apt_configure had mirror_info = cloud.datasource.get_package_mirror_info() the datasource then used *its* copy of sys_cfg to call self.distro.get_package_mirror_info and *that* distro's sys_cfg had not been updated. LP: #1090482
2012-12-15Add 'omnibus' install mode for chefScott Moser
This adds 'omnibus' to the values supported for chef's "omnibus_url" config option. It also: * makes 'omnibus_url' configurable in cloud-config. * adds a 'force_install' flag, to allow the install code to act even if /usr/bin/chef-client is already present.
2012-12-14Provide a mechanism for puppet to be conditionally installed.Craig Tracey
Instead of always installing puppet give users the ability to opt-out. LP: #1090205
2012-12-12add 'omnibus' as an install type for chef.Scott Moser
Thanks to Anatoliy Dobrosynets
2012-12-04write-ssh-key-fingerprints: use logger -s rather than --stderrJoshua Harlow
--stderr would be preferred for readability, but older versions of logger do not support the long form. Use the short form for compatibility. LP: #1083715
2012-12-03ChangeLog: mention fix of lp:1079002Scott Moser
2012-12-01make sure no blank lines before cloud-init entry in ca-certificates.confScott Moser
when /etc/ca-certificates.conf is read by update-ca-certificates lines after a blank line get ignored. Here, ensure that there are no blank lines, and no duplicate entries for cloud-init are added. LP: #1077020
2012-11-20fix "resize_root: noblock"Scott Moser
resize_root: noblock has been broken in the 0.7.0 series. Using it would disable resizing. LP: #1080985
2012-11-19add 'sudo' entry for default user in default config/cloud.cfgScott Moser
LP: #1080717
2012-11-14add debian watchScott Moser
2012-11-14open 0.7.2Scott Moser
2012-11-13support 'power_state' cloud-config for specifying shutdownScott Moser
this adds 'power-state-change' config module that allows the user to specify in cloud-config syntax that a system reboot or shutdown should occur after cloud-init is done.
2012-11-13Even when using boto < 2.6 force the unlazying to occurScott Moser
It seems like its possible that boto 2.5.2 and below have the lazy loading metadata dictionary so as a precaution we will always take the hit of unlazying the metadata dictionary by traversing it which in the non-lazy dictionary case has no effect (its marginal). This also removes the need to check the boto version and the dependency on setup tools just for this case.
2012-11-13merge from trunkScott Moser
2012-11-13add dependency for 'pkg_resources'Scott Moser
2012-11-13implement power_state with tests.Scott Moser
2012-11-13merge from trunkScott Moser
2012-11-13Use a set of helper/parsing classes to perform system configurationJoshua Harlow
Previously file modification of system configuration was done in a functional and hard to test manner. Now instead this patch allows for a manner that provides a nice object oriented interface to those objects as well as makes it possible to test those parsing entities without having to invoke distro class code. - Created parsers for: - /etc/sysconfig - /etc/hostname - resolv.conf - /etc/hosts Moved duplicated functionality into the root level distro class including: - apply_hostname - set_hostname - *various shared configuration file names/paths*
2012-11-12Update the changelog with functions moved.Joshua Harlow
2012-11-12Rebased with HEAD and resolved conflicts.Joshua Harlow
2012-11-12Remove dup and un-needed entries.Joshua Harlow
2012-11-12add 'finalcmd' module for running code after cloud-init-finalScott Moser
This allows the user to easily run stuff even after cloud-init-final has finished. The initial reason for it is to be able to run /sbin/poweroff and not have cloud-init complain loudly that it is being killed. LP: #1064665
2012-11-12Append changelog additions.Joshua Harlow
LP: #1078097
2012-11-12Update changelog for previous commits.Joshua Harlow
Add in entry for LP: 1068801 and LP: 1075756 as well as LP: 1077245 and add in reason why we are switching back to using 'None' as the initial datasource value.
2012-11-12mark changelog entry for lp:1075980Scott Moser
2012-11-12config-drive-v2: support public keysScott Moser
This does a couple things: * separates out the 'normalize_public_keys' from the DataSource's get_public_ssh_keys * uses that from config-drive datasource * supports config drive v1 or v2 public-keys * adds a test. LP: #1077700
2012-11-12wrap boto.utils.get_instance_metadata to ensure non-lazy loadingScott Moser
newer versions of boto lazily load the metadata from the ec2 metadata service. Here, we: 1. Add a ec2_utils module that checks which version of boto is being used and under the right versions the metadata dictionary will be expanded. 2. Use this new ec2_utils module in the cloudstack and ec2 datasources as there entrypoints into boto. 3. Add a dependency on python-pkg-resources (from pkg_resources import parse_version) to determine the boto version. LP: #1068801
2012-11-12add ChangeLog entryScott Moser
2012-11-10add yum_add_repo configuration moduleScott Moser
Add in a configuration module that can write out the yum.repo format for those that want to hook into different repos for installing.
2012-11-10update ChangeLogScott Moser
LP: #1076811
2012-11-07test and path cleanups.Joshua Harlow
1. Remove the usage of the path.join function now that all code should be going through the util file methods (and they can be mocked out as needed). 2. Adjust all occurences of the above join function to either not use it or replace it with the standard os.path.join (which can also be mocked out as needed) 3. Fix pylint from complaining about the tests folder 'helpers.py' not being found. 4. Add a pylintrc file that is used instead of the options hidden in the 'run_pylint' tool.
2012-11-07merge from trunkScott Moser
2012-11-07add ChangeLog entry Scott Moser