summaryrefslogtreecommitdiff
path: root/cloudinit
AgeCommit message (Collapse)Author
2012-12-19DataSourceCloudStack: use virtual router rather than default routeGerard Dethier
In CloudStack's documentation, it is stated that meta/user-data can be retrieved from CloudStack's Virtual Router [1]. However, cloud-init retrieves these information from default gateway. VR and default gateway may be the same machine (i.e. have the same address) in some cases, but that is not be always true (actually, in my case, it is not). This change searches the lease files in /var/lib/dhclient to pick out the dhcp-server-identifier. It admittedly does make this specific to dhclient. -- [1] http://incubator.apache.org/cloudstack/docs/en-US/Apache_CloudStack/4.0.0-incubating/html/Admin_Guide/user-data-and-meta-data.html). LP: #1089989
2012-12-19cloudinit/handlers/upstart_job.py: pep8 / trailing whitespaceScott Moser
2012-12-17tell upstart to reload configuration after writing an upstart jobScott Moser
Invoking 'initctl reload-configuration' is only required if inotify does not work. overlayroot does not support inotify. So, we just call initctl always, which wont hurt anything. LP: #1080841
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-13Provide a mechanism for puppet to be conditionally installed.Craig Tracey
2012-12-12add 'omnibus' as an install type for chef.Scott Moser
Thanks to Anatoliy Dobrosynets
2012-12-06cloudinit/stages.py: separate _read_base_cfg() into static functionScott Moser
The Init._read_base_cfg() was really a static function, this just moves it to its own static function. Its not used anywhere else at the moment.
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-20pep8 and pylintScott Moser
2012-11-15Raise a type error when a sudoers rule is not an accepted type.Joshua Harlow
2012-11-14Fix sudoers being written multiple times when strings are used.Joshua Harlow
LP: #1079002
2012-11-14Bump the version to 0.7.2Joshua Harlow
2012-11-13Only attempt to read the previous hostname file if it exists.Scott Moser
- Instead of always reading the previous hostname file even if it did not exist lets only read it if it is a valid variable and is actually a existent file instead of just attempting to read it always. - Also update the logging that is done when a previous file does not exist. LP: #1078452
2012-11-13Update how errors are handled when writing and reading hostnames.Joshua Harlow
2012-11-13Only attempt to read the previous hostname file if it exists.Joshua Harlow
Instead of always reading the previous hostname file even if it did not exist lets only read it if it is a valid variable and is actually a existent file instead of just attempting to read it always. LP: #1078452
2012-11-13check for a marker file by the normal name alsoScott Moser
This check is a waste of a stat any time after the migrator module had run. As it would take care of moving markers. However, if the user runs: sudo cloud-init modules --mode final after an upgrade, they'd otherwise run any module that had a '-' in its name again. To avoid that, we just return true in that case, and inform the user how to run the migrator themselves.
2012-11-13make migrator walk the "cloud" path alsoScott Moser
the migrator was not renaming items in the "cloud" semaphore path. Those were items that would run once only. Now we just check both ipath('sem') and cpath('sem')
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-13use os.devnull [trivial]Scott Moser
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-13add sleep, allow errno '3' (ESRCH) on the open of /proc/pid/cmdlineScott Moser
The sleep is added here simply to not completely spin cpu on waiting for the parent pid to die. the allowing of errno 3 is because I was getting this. I dont have a perfect explanation, but I suspect that the 'open' was actually getting this back from the /proc filesystem after the pid had died. Possibly in the window between when the 'open' was done and the 'read()' was done.
2012-11-13Even when using boto < 2.6 force the unlazying to occurJoshua Harlow
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-13clean up exit to single function callScott Moser
2012-11-13fix read of /proc/cmdlineScott Moser
2012-11-13implement power_state with tests.Scott Moser
2012-11-13pep8 and pylintScott Moser
2012-11-13rename module 'finalcmd' to power-state-changeScott Moser
2012-11-13merge from trunkScott Moser
2012-11-12Remove these lines which are not needed.Joshua Harlow
2012-11-12Pylint and pep8 cleanups.Joshua Harlow
2012-11-12Fix variable.Joshua Harlow
2012-11-12Rebased with HEAD and resolved conflicts.Joshua Harlow
2012-11-12pass execmd a list, not tuple or stringScott Moser
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-12pylint and pep8 fixesScott Moser
2012-11-12Cleanup of /etc/hosts ordering and pep8/pylint adjustments.Joshua Harlow
Fix how the comparison of a fqdn and its aliases was done via sorting instead of existence checking which is the better way to check if a alias already exists as well as cleanup the new files pep8/pylint issues. LP: #1078097
2012-11-12change the "null datasource" for stages.py to NoneScott Moser
Previous commit set up an object for checking "None" in the stages class. Here, change that to be None. The benefit of the DataSourceNone was so that the stages was generally functional even with that "None" object. The negative affect of that is that you could go down the error path much longer when using it. If we use None type, then self.datasource.<something> will fail immediately and loudly.
2012-11-12stages.py: fix issue that resulted in broken data source searchingScott Moser
This just replaces the portions of stages.py that were checking or setting self.datasource to a DataSourceNone to use a static/global datasource. And then, check for None is done against that.
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-12pep8 and pylint fixupsScott Moser
2012-11-12REVERT revno 714: config-drive-v2: populate metadata['public-keys'] from ↵Scott Moser
'public_keys'
2012-11-12add comment to get_instance_userdata reguarding empty/un-provided userdataScott Moser
2012-11-12merge from trunkScott Moser
2012-11-11config-drive-v2: populate metadata['public-keys'] from 'public_keys'Scott Moser
other datasources populate 'public-keys' rather than 'public_keys' and there is a more complete handler in the base DataSource. So, to take advantage of that, have DataSourceConfigDrive copy public_keys to public-keys, and remove the 'get_public_ssh_keys' from the DataSourcEConfigDrive. LP: #1077700
2012-11-10whitespace / indentation cleanupsScott Moser
These changes were pulled out of the previous merge (cc_yum_add_repo) as they were unrelated there. Re-applying them here.
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-101 pep8 and 1 pylint fixScott Moser
2012-11-10revert unrelated whitespace changes that creeped in.Scott Moser