summaryrefslogtreecommitdiff
path: root/cloudinit/helpers.py
AgeCommit message (Collapse)Author
2015-01-27Remove some unused code.Barry Warsaw
2015-01-21Largely merge lp:~harlowja/cloud-init/py2-3 albeit manually because it seemedBarry Warsaw
to be behind trunk. `tox -e py27` passes full test suite. Now to work on replacing mocker.
2014-01-17remove unused mergedvendoruserScott Moser
2014-01-08Significant re-working of the userdata handling and introduction ofBen Howard
vendordata. Vendordata is a datasource provided userdata-like blob that is parsed similiarly to userdata, execept at the user's pleasure. cloudinit/config/cc_scripts_vendor.py: added vendor script cloud config cloudinit/config/cc_vendor_scripts_per_boot.py: added vendor per boot cloud config cloudinit/config/cc_vendor_scripts_per_instance.py: added vendor per instance vendor cloud config cloudinit/config/cc_vendor_scripts_per_once.py: added per once vendor cloud config script doc/examples/cloud-config-vendor-data.txt: documentation of vendor-data examples doc/vendordata.txt: documentation of vendordata for vendors (RENAMED) tests/unittests/test_userdata.py => tests/unittests/test_userdata.py TO: tests/unittests/test_userdata.py => tests/unittests/test_data.py: userdata test cases are not expanded to confirm superiority over vendor data. bin/cloud-init: change instances of 'consume_userdata' to 'consume_data' cloudinit/handlers/cloud_config.py: Added vendor script handling to default cloud-config modules cloudinit/handlers/shell_script.py: Added ability to change the path key to support vendor provided 'vendor-scripts'. Defaults to 'script'. cloudinit/helpers.py: - Changed ConfigMerger to include handling of vendordata. - Changed helpers to include paths for vendordata. cloudinit/sources/__init__.py: Added functions for helping vendordata - get_vendordata_raw(): returns vendordata unprocessed - get_vendordata(): returns vendordata through userdata processor - has_vendordata(): indicator if vendordata is present - consume_vendordata(): datasource directive for indicating explict user approval of vendordata consumption. Defaults to 'false' cloudinit/stages.py: Re-jiggered for handling of vendordata - _initial_subdirs(): added vendor script definition - update(): added self._store_vendordata() - [ADDED] _store_vendordata(): store vendordata - _get_default_handlers(): modified to allow for filtering which handlers will run against vendordata - [ADDED] _do_handlers(): moved logic from consume_userdata to _do_handlers(). This allows _consume_vendordata() and _consume_userdata() to use the same code path. - [RENAMED] consume_userdata() to _consume_userdata() - [ADDED] _consume_vendordata() for handling vendordata - run after userdata to get user cloud-config - uses ConfigMerger to get the configuration from the instance perspective about whether or not to use vendordata - [ADDED] consume_data() to call _consume_{user,vendor}data cloudinit/util.py: - [ADDED] get_nested_option_as_list() used by cc_vendor* for getting a nested value from a dict and returned as a list - runparts(): added 'exe_prefix' for running exe with a prefix, used by cc_vendor* config/cloud.cfg: Added vendor script execution as default tests/unittests/test_runs/test_merge_run.py: changed consume_userdata() to consume_data() tests/unittests/test_runs/test_simple_run.py: changed consume_userdata() to consume_data()
2013-07-24Remove the old register_defaults function.Joshua Harlow
2013-07-24Use the same method for registering custom vs default.Joshua Harlow
Instead of having a register default handler and a register custom handler, just use the same function to do both but provide a parameter to affect how overwritting of previously existing content-types (which default handlers use to not overwrite custom ones).
2013-07-21Just use an initialized array.Joshua Harlow
2013-07-20Also handle custom handlers correctly.Joshua Harlow
LP: #1203368
2013-06-19fix and cleanup usage of util.logexcJuerg Haefliger
2013-03-06Continue working on merging code.Joshua Harlow
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-101 pep8 and 1 pylint fixScott Moser
2012-11-07Start adding a 'migrator' moduleJoshua Harlow
that can be used to aid in the moving of older versions of cloud-inits data to newer versions of cloud-inits data. 1. Move the semaphores for the current instance to there canonicalized names and use the canonicalized in the file 'locking' code
2012-10-27Helpful cleanups.harlowja
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-07-09Return a more useful name for the file lock (which shows what file is being ↵Joshua Harlow
locked).
2012-06-29Don't show the args but show the name and lock that is being used.Joshua Harlow
2012-06-231. Use a common config merging class now in helpersharlowja
that will be the central point of config fetching for both the 'init' stage and the 'module' stages a. This helps those who want to understand exactly what configs are fetched and how the merging occurs.
2012-06-211. Update comment about ipath returning None when no datasource is activeJoshua Harlow
2. Fix pylint warning on set method of config parser.
2012-06-211. Move all info() logging methods to debug() harlowja
2. Adjust comment on sources list from depends 3. For the /etc/timezone 'writing', add a header that says created by cloud-init
2012-06-201. Add a dummy lock object + a file lock objectJoshua Harlow
2. Use this object when returning semaphores 3. Adjust the debug statement to show this object
2012-06-20Massive pylint + pep8 fixups!Joshua Harlow
2012-06-20Move the configparser helper to here since it being in a cfg.py is Joshua Harlow
confusing when there is also a directory named 'config'
2012-06-20Show the lock object name and the lock value - useful for debuggingharlowja
2012-06-19More path joinings found + update in logging of when we translate a pathJoshua Harlow
2012-06-19Make most of all the places use the paths join() function so that testing ↵Joshua Harlow
with non-real read/write paths is easier.
2012-06-19Initial add of read and write roots, this should cover a large set of cases ↵Joshua Harlow
that use the path object. 1. This basically allows configuration to specify 'read_root' which will be used for read operations, right now just templates and a 'write_root' via config that will be used for non read operations (ie 'var/lib/cloud' operations where most of the writing now happens)
2012-06-191. When running, return the function results as well as a boolean that ↵Joshua Harlow
stated if it ran.
2012-06-16Add comment as to why we need to check for none/empty later when fetching an ↵Joshua Harlow
ipath.
2012-06-16Content handlers does not need the paths variable anymore so removed that.Joshua Harlow
2012-06-161. Remove content handler iid param, not used.Joshua Harlow
2. Ensure if iid is found that it is converted to a string before path joining.
2012-06-15Fixups to ensure that pylint does not find anything major wrong.Joshua Harlow
2012-06-151. Handle returning values from handlers better.Joshua Harlow
2. Throw lock specific exception when semaphores can't be obtained 3. Make the paths constructor config variable named better to its actual usage.
2012-06-11Rename sem class to file sem class, add clear_all methods, add empty methods ↵Joshua Harlow
to dummy sem class.
2012-06-11Fix log statement.Joshua Harlow
2012-06-11Move paths to here, since it also qualifies.Joshua Harlow
2012-06-11All main stage helpers go here, ie semaphores, handler registrys, runners...Joshua Harlow