summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2014-01-24Fixes gentoo sysvinit orderingNate House nathan.house@rackspace.com
2014-01-24init_cmd distro unique supports gentoo init scriptsNate House nathan.house@rackspace.com
2014-01-23Package manager install / update fixes and service restart fooNate House nathan.house@rackspace.com
2014-01-23Initial add Gentoo distroNate House nathan.house@rackspace.com
2014-01-21cloud-config-landscape.txt: improve documentationScott Moser
2014-01-20merge requirement changesJoshua Harlow
This splits up 'Requires' into requirements.txt and test-requirements.txt to differenciate the build dependencies and runtime dependencies. one sticky thing still exists in that the packages/bddeb doesn't: - list any Build-Depends - address versions in the requirements.txt
2014-01-19Add output when starting to run testsJoshua Harlow
2014-01-19Phony not phoneJoshua Harlow
2014-01-17Run pyc cleaning before running testsJoshua Harlow
2014-01-17Update makefile to install from updated requirements filesJoshua Harlow
2014-01-17more boto removal. move httpretty from 'Requires'Scott Moser
the Requires would get that string rendered into the package's Depends/Requires (rather than BuildDepends/BuildRequires). We should have BuildDepends/BuildRequires too, but since trunk's package builds do not run 'make test', this isn't a big deal. This also adds 'test-requires' for httpretty.
2014-01-17Add 'Requires' or 'Recommends' on sudo in packaging files.Vlastimil Holer
2014-01-17drop requirement on boto for its boto.utils.get_instance_metadata()Scott Moser
We had a requirement on boto only to use boto.utils.get_instance_metadata(). That had actually caused some pain in the past. This removes a Requires and also one that wasn't python3.
2014-01-17initial vendordata supportScott Moser
This adds the ability for a datasource to provide "vendordata". The difference here is that vendordata is from the vendor (cloud provider) where user-data is from the user. By enabling this channel, the vendor can have input on how the instance is set up without modifying or needing to understand the user-data. vendordata is generally consumed exactly like user-data, but the user has the ability to disable its consumption. The only datasource supporting this at the moment is SmartOS.
2014-01-17remove creation of some vestigial dirsScott Moser
2014-01-17merge from trunkScott Moser
2014-01-17remove unused mergedvendoruserScott Moser
2014-01-17doc improvementsScott Moser
2014-01-17remove support for resizing via 'parted resizepart'Scott Moser
This was previously broken anyway. It doesn't seem like there was an easy way to actually support it, so for now I'm removing it entirely. growpart works well enough.
2014-01-17fix pep8 (trailing ';')Scott Moser
2014-01-17pep8 and pylint fixes; typo fix for documentationBen Howard
2014-01-17Fix tstsBen Howard
2014-01-16DataSourceOpenNebula:parse_shell_config skip 'SECONDS' var if seenScott Moser
SECONDS is a special variable in bash, it gets set to the time the shell has been alive. This would cause us to fail randomly (if the process happened to take more than 1 second, then SECONDS would be defined).
2014-01-16Fixed typosBen Howard
2014-01-16simplify consume_vendordata, move exclusion, consume_vendordata per instanceScott Moser
this simplifies consume_vendordata a bit, changes consume_vendordata to be by default "PER_INSTANCE" (like userdata). The other thing we do here is move the exlusion to be handled when walking the data. The benefit of doing it then is that we can exclude part-handlers. Without the ability to exlude part handlers, exclusion is basically useless (since part-handlers could accomplish anything they wanted).
2014-01-16DataSource: remove has_vendordata and consume_vendordata, drop filtersScott Moser
remove apply_filter from get_vendordata. I can't think of a good reason to filter vendor-data per instance-id. remove has_vendordata and consume_vendordata. has vendordata is always "true", whether or not there is something to operate is determined by: if ds.vendordata_raw() consume_vendordata is based on config entirely.
2014-01-16cloudinit/settings.py: add vendor_data to built in configScott Moser
2014-01-15replace get_nested_option_as_list with get_cfg_by_path, improve rupartsScott Moser
this makes runparts take exe_prefix and do string to list conversion inside. that means we don't have to do it in cc_scripts_vendor. Also, get_nested_option_as_list was essentially get_cfg_by_path anyway.
2014-01-15remove vendor-scripts-per-{boot,instance,once}Scott Moser
I don't see a real need for these. The intent of the 'per-boot' or 'per-instance' or 'per-once' config modules is to handle running scripts that were already inserted into the instance. If the vendor is doing that, then there is value in vendor-data. Ie, they'd already modified the image, they might as well have just put the stuff in that they wanted.
2014-01-15config/cloud.cfg: fix typoScott Moser
2014-01-15header, comment cleanupScott Moser
2014-01-15merge from trunkScott Moser
2014-01-15Require sudo package.Vlastimil Holer
2014-01-14provide default 'output' setting to log to /var/log/cloud-init-output.logScott Moser
This has been "best practice" for quite some time, and its a common request of "where is the output of my user-data programs". http://askubuntu.com/questions/345344/where-are-the-logs-for-my-user-data-script-cloud-init
2014-01-10Updated non-json messageJoshua Harlow
2014-01-10Only check for json objects instead of also arraysJoshua Harlow
2014-01-10Add a maybe_json helper functionJoshua Harlow
2014-01-10Add ec2 utils tests and httpretty requirement for http mockingJoshua Harlow
2014-01-10Bring back the ec2 utils, non-boto userdata/metadata readingJoshua Harlow
This replacement uses our own userdata/metadata ec2 webservice parser that we can easily modify, it also automatically allows for reading the ec2 userdata/metdata from files and also brings in the usage of requests instead of boto's usage of urllib which did not support ssl properly.
2014-01-09Azure: minor changes for filename as strings and logging.Scott Moser
We were passing a unicode string to 'runcmd' in the path to the .crt file. That is because the keyname was coming from ovf file as unicode. Ie: u'/var/lib/waagent/6BE7A7C3C8A8F4B123CCA5D0C2F1BE4CA7B63ED7.crt' Then, logging was extending not appending errors.
2014-01-09Added vendordata to SmartOSBen Howard
2014-01-09Merge with upstream sourcesBen Howard
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()
2014-01-07SeLinuxGuard: Cast file path to string.James Slagle
Before passing a path into selinux.matchpathcon, it needs to be casted to a string, since the path could be unicode and selinux.matchpathcon does not support unicode. LP: #1260072
2013-12-14support calling apt with eatmydata, enable by default if available.Scott Moser
This allows a general config option to prefix apt-get commands via 'apt_get_wrapper'. By default, the command is set to 'eatmydata', and the mode set to 'auto'. That means if eatmydata is available (via which), it will use it. The 'command' can be either a array or a string. LP: #1236531
2013-12-14packages/debian/control.in: remove 'python:Depends'Scott Moser
remove python:Depends macro from the control.in file. This seemed to be overriding my 'python-json-patch | python-jsonpatch' with whichever one was installed. So, we're not getting automatic dependencies on trunk, which is honestly fine. We'll manage them this way.
2013-12-13packages/bddeb: accept python-json-patch or python-jsonpatchScott Moser
debian bug 717916 renames python-json-patch to python-jsonpatch, so ubuntu cloud-images with cloud-init may not have python-json-patch. Just accept either one.
2013-12-13Cast file path to string.James Slagle
Before passing a path into selinux.matchpathcon, it needs to be casted to a string, since the path could be unicode and selinux.matchpathcon does not support unicode. Closes-Bug: #1260072 LP: #1260072
2013-12-12fix 'make yaml'.Scott Moser
2013-12-12add 'debug' module for printing debug output.Shraddha Pandhe
This adds a debug module for printing debug output. It does not enable it by default (by putting it in in cloud_config_modules or elsewhere). Thats fine, as it is still quite useful for the user to run: sudo cloud-init single --frequency=always --name=debug ci-debug.txt