summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2014-03-19Azure: pep8 and pylint cleanups from previous commit.Scott Moser
2014-03-19Azure: re-format ephemeral disk if necessaryScott Moser
On azure, the ephemeral disk may be destroyed and replaced with a fresh ephemeral disk on any reboot or stop and start cycle. This makes the datasource able to detect that by presence of an unformatted and specifically labeled NTFS filesystem with no files on it. LP: #1292648
2014-03-19change to unmount then check to address possible raceScott Moser
2014-03-19minor changes: be more careful about umount and warn on failScott Moser
2014-03-18Windows Azure defines the ephemeral0 mount as being a per-boot instead ofBen Howard
per instance. Under a variety of circumstances, the ephemeral device may be presented as a default device. This patch detects when that situation happens and triggers CC modules disk-setup and mounts to run again. Details of changes for cloudinit/sources/DataSourceAzure.py: - auto-detect the location of ephemeral0 - check each boot if ephemeral0 is new - done via NTFS w/ label of "Temporary Storage" w/ no files on it - if device is mounted, datasource will unmount it - if is new, change mounts and disk-setup to always for that boot only
2014-03-12final_message: allow replacement of capital name keys.Scott Moser
documentation of final_message in doc/examples/cloud-config-final-message.txt showed '$UPTIME' and '$TIMESTAMP' would be available, but only the lower case versions of these strings were available. This change just makes all lower case and upper case keys available here to avoid breaking anyone who used the functional-but-not-correctly-documented lower case names. LP: #1286164
2014-03-04seed_random: do not capture command output, provide env RANDOM_SEED_FILEScott Moser
call the command without capturing output, and provide RANDOM_SEED_FILE to the environment that it is run in.
2014-03-04merge from trunkScott Moser
2014-03-04CloudSigma: support user-data being base64 encodedKiril Vladimiroff
This adds the ability to read a 'base64_fields' entry in the metadata, and if cloud-init-userdata is listed in that, then content will be base64 decoded first.
2014-03-03write status to /run/cloud-init/ for external consumptionScott Moser
This populates and maintains status.json and result.json with json formated data about cloud-init's errors and datasource. It is intended to be consumed by other programs that want to wait until cloud-init is done, or know its success. LP: #1284439
2014-03-03version space (v1:) result_path json alsoScott Moser
2014-03-03seed_random: support a 'command' to seed /dev/randomDustin Kirkland
This extends 'random_seed' top level entry to include a 'command' entry, that has the opportunity to then seed the random number generator. Example config: #cloud-config random_seed: command: ['dd', 'if=/dev/zero', 'of=/dev/random', 'bs=1M', 'count=10'] LP: #1286316
2014-03-03allow random command's output to go throughScott Moser
by default we call 'pollinate -q' which is nice and quiet. if the user wants to be noisy, let them.
2014-03-03cc_seed_random: fix bug and support pollinate commandScott Moser
there was a bug that prevented seeding of /dev/urandom from metadata provided by the datasource unless the user provided random_seed config. This should, instead, be the default behavior.
2014-02-28distros/freebsd.py: fix regression due to previous pylint cleanupScott Moser
2014-02-28tools/make-tarball: add ability to include uncommited changesScott Moser
if you have UNCOMMITTED=1 in environment then the tree will contain uncommitted changes.
2014-02-27test_altcloud: fix altcloud tests when running on armScott Moser
Similar test-hack as the SmartOS one. Here we just pretend that we're running on x86_64 so as to avoid re-writing the tests to expect otherwise on arm.
2014-02-27AltCloud: fix test failures related to new arm-specific behaviorOleg Strikov
2014-02-27AltCloud: to not run dmidecode on arm systems.Scott Moser
As with SmartOS change earlier, running dmidecode on arm will crash kvm. So instead of doing that, just return UNKNOWN which will cause this data source to not activate. LP: #1285686
2014-02-27AltCloud: do not run dmidecode on arm32/arm64 because it leads to kvm crashOleg Strikov
See LP1243287 for more information
2014-02-26pep8 and pylintScott Moser
2014-02-26SmartOS: do not run on arm as dmidecode causes problemsScott Moser
See LP: #1243287 for more information, but the easiest thing to do here is just not run smartos on arm. LP: #1243287
2014-02-26netinfo.py: fix regression causing ubuntu to show 'addr:v.x.y.z'Scott Moser
after freebsd merge, ubuntu shows addr:v.x.y.z instead of v.x.y.z for the ipv4 address. This should fix that by just skipping the 'inet' (or inet6) token if the next token starts with 'addr:'. LP: #1285185
2014-02-25be atomic when writing status filesScott Moser
2014-02-24fix write_json callScott Moser
2014-02-24minor cleanupsScott Moser
2014-02-24fix end/start in docScott Moser
2014-02-24add doc/status.txtScott Moser
2014-02-24ConfigDrive: trim trailing newlines in previous-instance-idScott Moser
When cloud-init writes previous-instance-id, it does so with a trailing '\n'. This isn't ideal, as other readers also have to know that this will have a trailing '\n' on it, but here we just trim that off.
2014-02-24DataSourceOpenStack: debug, not warn on non-ideal version. do not use latest.Scott Moser
do not search 'latest', as that would be assuming the versioned api would never break. Also, instead of warning when we use something else, just debug.
2014-02-24Reduce OSds LOG levels when detecting and use HAVANA instead of latestJoshua Harlow
2014-02-24Ensure we strip the previous_iid file contentsJoshua Harlow
The instance-id file contains the instance id and a newline, to compare correctly make sure we strip the newline before further usage.
2014-02-24fixes from testing, force symlinkScott Moser
2014-02-24possibly functional start testingScott Moser
2014-02-24merge from trunkScott Moser
2014-02-24test_smartos: remove bad test caseScott Moser
This test case isn't really valid any more as we've changed the way this works.
2014-02-20initial commit for statusScott Moser
2014-02-19Read encoded with base64 user dataKiril Vladimiroff
This allows users of CloudSigma's VM to encode their user data with base64. In order to do that thet have to add the ``cloudinit-user-data`` field to the ``base64_fields``. The latter is a comma-separated field with all the meta fields whit base64 encoded values.
2014-02-18NoCloud: fix broken seed from external imageScott Moser
2014-02-18CloudSigma: remove 'WARN' in not found caseScott Moser
The CloudSigma datasource would attempt to read /dev/ttyS1 and if not found would warn (which gets logged to stdout by default). Better to just debug.
2014-02-14DataSourceGCE: fix 'is_resolvable', remove unnecessary WARNScott Moser
2014-02-14DataSourceOpenStack: allow vendor-data to be a dict with 'cloud-init' insideScott Moser
There might be multiple things to put inside a vendor-data. So, if it is a dict and that dict has 'cloud-init', assume that the whole thing was not meant for cloud-init, and set vendordata_raw to the specific item.
2014-02-14smartos: fix bug in previous commitScott Moser
The code in the previous commit was creating /var/lib/cloud/instance/ when it should not have. This is better handled now by using /var/lib/cloud/instances/<instance-id>, and then letting the link get created by cloud-init elsewhere.
2014-02-14The symlink of /var/lib/cloud/instance is not created at the time that theBen Howard
datasource for SmartOS runs. This patch creates the instance's directory.
2014-02-14re-work vendor-data and smartosScott Moser
This reduces how much cloud-init is explicitly involved in what "vendor-data" could accomplish. The goal of vendor-data was to provide the vendor with a channel to run arbitrary code that accomodate for their specific platform. Much of those accomodations are currently being done in cloud-init. However, this now moves some of those things to default "vendor-data", instead of cloud-init proper. Basically, now we have an 'sdc:vendor-data' key in the metadata. If that does not exist, then cloud-init will use the default. The default, provides a boothook. That boothook writes a file into /var/lib/cloud/per-boot/ . That file will be both written on every boot and then executed at rc.local time frame (by 'scripts-per-boot'). It will then execute /var/lib/cloud/instance/data/user-script and /var/lib/cloud/instance/data/operator-script if they exist. So, the things that cloud-init is now doing outside of the default vendor-data that I would rather be done in vendor-data is: * managing the population of instance/data/user-script and instance/data/operator-script. These could very easily be done from the boothook, but doing them in cloud-init removes the necessity for having a 'mdata-get' command in the image (or some other way for the boothook script to query the datasource). * managing the LEGACY things.
2014-02-13re-work vendor-data and smartosScott Moser
This reduces how much cloud-init is explicitly involved in what "vendor-data" could accomplish. The goal of vendor-data was to provide the vendor with a channel to run arbitrary code that accomodate for their specific platform. Much of those accomodations are currently being done in cloud-init. However, this now moves some of those things to default "vendor-data", instead of cloud-init proper. Basically, now we have an 'sdc:vendor-data' key in the metadata. If that does not exist, then cloud-init will use the default. The default, provides a boothook. That boothook writes a file into /var/lib/cloud/per-boot/ . That file will be both written on every boot and then executed at rc.local time frame (by 'scripts-per-boot'). It will then execute /var/lib/cloud/instance/data/user-script and /var/lib/cloud/instance/data/operator-script if they exist. So, the things that cloud-init is now doing outside of the default vendor-data that I would rather be done in vendor-data is: * managing the population of instance/data/user-script and instance/data/operator-script. These could very easily be done from the boothook, but doing them in cloud-init removes the necessity for having a 'mdata-get' command in the image (or some other way for the boothook script to query the datasource). * managing the LEGACY things.
2014-02-13merge from trunkScott Moser
2014-02-13GCE: add some tests, some small fixesScott Moser
2014-02-13some style changes, some pylint, be less noisyScott Moser
this changes url_map to a list and adds 'required' information. * If we've not already found an entry, and this is required, then debug log (ie, this is just not GCE). * if we already found an entry and this is required: warn split the keys fixing out of the loop.
2014-02-13Define default vendordata for SmartOS. In absence of a vendordata, use aBen Howard
default #cloud-config that writes per-boot script that fetches subsequent sdc:operator-scripts and executes it.