summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2014-02-07Add a bunch of new testsJoshua Harlow
2014-02-07Remerged with trunkJoshua Harlow
2014-02-01Don't forget the rest of the files!Joshua Harlow
2014-02-01Add a openstack specific datasourceJoshua Harlow
Openstack has a unique derivative datasource that is gaining usage. Previously the config drive datasource provided part of this functionality as well as the ec2 datasource, but since new functionality is being added to openstack is seems benefical to combine the used parts into one datasource just made for handling openstack deployments. This patch factors out the common logic shared between the config drive and the openstack metadata datasource and places that in a shared helper file and then creates a new openstack datasource that readers from the openstack metadata service and refactors the config drive datasource to use this common logic.
2014-01-29DataSourceNoCloud: support reading vendor-data Scott Moser
Here we add the ability to read vendor-data from a file named vendor-data at the same location as the user-data and meta-data files. At the moment, vendor-data is not read at all from 'seedfrom'.
2014-01-29merge from trunkScott Moser
2014-01-29add 2 tests for vendordata Scott Moser
2014-01-28util.is_ipv4: realize that 0 is a valid number in a ipv4 address.Vlastimil Holer
Due to bug in function "cloudinit.util.is_ipv4" an IPv4 address with zero (0) at any component wasn't evaluated as IPv4 address. E.g.: having local datasource with 192.168.0.1 in meta-data/local-hostname. The correct behaviour would be to generate ip-192-168-0-1 hostname. With this bug, the hostname (with IPv4) was considered as FQDN (no IPv4 inside) and just first component (supposed to be hostname there) was taken. It generated hostname "192". Fixes for SmartOS datasource 1. fixed conflation of user-data and cloud-init user-data. Cloud-init user-data is now namespaced as 'cloud-init:user-data'. 2. user-scripts (not user-data) are now fetched from the meta-data service each boot and executed as in the scripts directory 3. datacenter name is now namespaced as sdc:datacenter 4. user-scripts will now have '#!/bin/bash' magically prepended if the 'file' thinks its plain text and it does not start with '#!' read_file_or_url: raise UrlError with 404 on ENOENT This makes it easier to call read_file_or_url and handle file or url errors. Now read_file_or_url will raise a UrlError in either case on errors.
2014-01-28cloudinit/util.py: fix pylint complaintsScott Moser
2014-01-28DataSourceNoCloud: support reading vendor-data Scott Moser
Here we add the ability to read vendor-data from a file named vendor-data at the same location as the user-data and meta-data files. At the moment, vendor-data is not read at all from 'seedfrom'.
2014-01-28Allow zeros when detecting IPv4 address (e.g. 192.168.0.1)Vlastimil Holer
2014-01-27add 'pathprefix2dict' utility for use by DataSourceNoCloudScott Moser
2014-01-27populate_dir: only makedir if it doesn't existScott Moser
2014-01-24read_file_or_url: raise UrlError with 404 on ENOENTScott Moser
This makes it easier to call read_file_or_url and handle file or url errors. Now read_file_or_url will raise a UrlError in either case on errors.
2014-01-24Don't try to create members if group creation failsJoshua Harlow
2014-01-24Fix logexc usage in freebsd distroJoshua Harlow
- There appeared to be a few logexc calls that did not pass the logger in, fix those locations where this occured. - When a group member adding fails, log the error and try the next member instead of failing adding any more members
2014-01-24Fixes for SmartOS datasourceScott Moser
1. fixed conflation of user-data and cloud-init user-data. Cloud-init user-data is now namespaced as 'cloud-init:user-data'. 2. user-scripts (not user-data) are now fetched from the meta-data service each boot and executed as in the scripts directory 3. datacenter name is now namespaced as sdc:datacenter 4. user-scripts will now have '#!/bin/bash' magically prepended if the 'file' thinks its plain text and it does not start with '#!' LP: #1272115
2014-01-24minor changes for pylint, write_boot_content improvement.Scott Moser
if write_boot_content is given somethign that starts with #!, then there isn't a reason to invoke 'file' to tell us that it starts with shebang. This way, we only run file in 2 cases: a.) binary content (don't really know if that is supported or not) b.) magic "user meant to run this with /bin/bash but couldn't be bothered to type that"
2014-01-24Log failure to restore backup locale fileJoshua Harlow
2014-01-24Freebsd cleanupsJoshua Harlow
- Remove direct usage of open() and use the corresponding helpers instead. - Fix the non-existence of the copyfile routine and just use the ones that do exist in the utils module to do the file backup. - Use class level constants for the various file names read, this matches the same usage in the other distro types.
2014-01-24Make SmartOS script handling self-contained in datasource.Ben Howard
2014-01-24Rebasing on trunkBen Howard
2014-01-24pylint and long line fixes.Scott Moser
This fixes up many long lines to be < 80 chars and some other pylint issues. pylint 1.1 (in trusty) is now complaining about the lazy logging, so I'll clean that up when I touch things.
2014-01-24add --dummy-variables-rgx= param when calling pylintScott Moser
new pylint in trusty complains about '_' variables if we don't do this. This seems to be ok in older versions of pylint also.
2014-01-24Fixed flip-flopped commentBen Howard
2014-01-24pep8/pylint fixesScott Moser
tools/run-pep8 wasn't checking all python files. tools/run-pylint wasnt checking bin/cloud-init fixed resultant pep8 issues after finding them.
2014-01-24Fixes for SmartOS datasource (LP: #1272115):Ben Howard
1. fixed conflation of user-data and cloud-init user-data. Cloud-init user-data is now namespaced as 'cloud-init:user-data'. 2. user-scripts are now fetched from the meta-data service each boot and executed as in the scripts directory 3. datacenter name is now namespaced as sdc:datacenter 4. user-scripts should be shebanged if there is no file magic
2014-01-24url_helper: call exception_cb with the UrlError exceptionScott Moser
previously, we were calling with the exception that was caught rather than the UrlException, which meant the exception callback couldn't be assured there would be a status_code.
2014-01-23Use the right exceptionJoshua Harlow
2014-01-23Skip retry and continued fetch of userdata when NOT_FOUNDScott Moser
When a 404 http code comes back from the fetching of ec2 data, instead of retrying immediately stop the fetching process and in the userdata fetching function handle this case as a special case of no userdata being fetched (an empty string in this case).
2014-01-23Remove pylint warning about unused request_argsJoshua Harlow
2014-01-23Skip retry and continued fetch of userdata when NOT_FOUNDJoshua Harlow
When a 404 http code comes back from the fetching of ec2 data, instead of retrying immediatly stop the fetching process and in the userdata fetching function handle this case as a special case of no userdata being fetched (an empty string in this case).
2014-01-23fix util.which if PATH is not in environmentScott Moser
This fixes a test case that failed because PATH was unset in the os.environ.
2014-01-23Add freebsd sysvinit scriptsJoshua Harlow
2014-01-23Initial Freebsd supportHarm Weites
This gets initial support for freebsd.
2014-01-23fix freebsd new file headerScott Moser
2014-01-23pep8/tab to 8 spacesScott Moser
2014-01-23pep8, use which rather than hard coded pathScott Moser
2014-01-23pep8Scott Moser
2014-01-23fix broken consumption of /proc/mountsScott Moser
this was checking that the lenghth of the mount line from /proc/mounts was 6, not the number of tokens.
2014-01-23merge from trunkScott Moser
2014-01-23pep8Scott Moser
2014-01-23Consider partitions as sources for configdrive if labelled correctlyPaul Querna
This change removes the filtering of partitions from potential ConfigDrive sources, if the LABEL of the partition is set to "config-2". This is useful for a bare metal device. It may not have a separate device for ConfigDrive, but instead have a ConfigDrive available on a partition.
2014-01-23Split net-parsing into own moduleJoshua Harlow
The ubuntu/debian networking file parsing function really is more generic than just a rhel utility function and can be used by others that want to use this functionality for there own purposes (say in writing down a freebsd network format instead) so moving this to its own module to encourage its usage outside of rhel.
2014-01-23remove some white spaceScott Moser
2014-01-22cc_resizefs: figure out what /dev/root means via kernel cmdlineScott Moser
If mount_info says that the root filesystem is on /dev/root and /dev/root does not exist, then we'll try to glean that information from the linux kernel cmdline. This situation occurs at least when you boot without an initramfs for the current ppc64el cloud images: qemu-system-ppc64 ... -kernel my.kernel -append 'root=/dev/sda' When doing that, /proc/1/mountinfo will say '/dev/root' for '/'.
2014-01-22Add a new lineJoshua Harlow
2014-01-22Add comments as to format with example in/outJoshua Harlow
2014-01-22Split net-parsing into own moduleJoshua Harlow
The ubuntu/debian networking file parsing function really is more generic than just a rhel utility function and can be used by others that want to use this functionality for there own purposes (say in writing down a freebsd network format instead) so moving this to its own module to encourage its usage outside of rhel.
2014-01-22tools/read-dependencies tools/read-version: rewrite in pythonScott Moser
This just does python rewrites of these tools that were shell or sed or grep. Clearly the user of cloud-init has python, but it turns out that getting sane versions of sed or grep on different unixes is less than simple.