summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2016-05-26Move sdc:nics to a JSON map. Add unittest for sdc:nicsRyan Harper
2016-05-26fix is_new_instance() to work betterScott Moser
2016-05-26hide the instance_id file in /run/cloud-init by using .instance_idScott Moser
i dont want to expose this as i'd rather have some json there or write to /run/cloud-init/status.json . would also like to indicate 'first_boot' somewhere.
2016-05-26Add smartos sdc:nics converter and network_config property for smartos ↵Ryan Harper
configdrive
2016-05-26fix logic in is_new_instanceScott Moser
2016-05-26fixes. seemingly working first boot on config driveScott Moser
bigger things here: * fix the checking for stop_files. the check for no-net actually checked the size of the file and the implementation was just touching it. so it never would have been found. no-net is valid only in upstart anyway. do not stop early on presense of the obj_pkl but check it. this is required since we write the obj_pkl on exit when local mode finds a datasource but found in network mode. * use 'mode' rather than checking args.local. set mode to be sources.DSMODE_NETWORK or sources.DSMODE_LOCAL for easier / more consistent checking. * log exit paths.
2016-05-26fix typos in namesScott Moser
2016-05-26compare instance id to get_instance_id() not the function itself.Scott Moser
2016-05-26merge with trunkScott Moser
2016-05-26fix usage of instance-id to instance_id in runpath, update cache on instancifyScott Moser
the fix for instance_id is clear and necessary. making instancify write the cache is required for how we are having the local datasource be relevant.
2016-05-26cloudinit/helpers.py: _get_path raise KeyError if input is bad.Scott Moser
previously, if you did: paths.get_ipath("bogus") it would silenetly hand you back just the directory. now it will fail, which seems much more sane.
2016-05-26config drive: log where network config came fromScott Moser
2016-05-26clarify a commentScott Moser
2016-05-26packages/bddeb: update to know package mappings for flake8 and hackingScott Moser
packages/bddeb failed to work after flake8 and hacking were added to test-requirements.txt. The necessary fix is just to know about the debian package names for those pypi packages.
2016-05-26kernel command line: override all local settingsScott Moser
settings on the kernel command line (cc:) were documented to override all local settings, but a bug in implementation meant they would only override those that are in /etc/cloud/cloud.cfg, not any found in /etc/cloud/cloud.cfg.d. LP: #1582323
2016-05-25fix bring_upScott Moser
2016-05-25fix ./tools/bddebScott Moser
2016-05-25packages/bddeb: fix to know about packages flake8 and hackingScott Moser
2016-05-25commit to push for fear of loss.Scott Moser
== background == DataSource Mode (dsmode) is present in many datasources in cloud-init. dsmode was originally added to cloud-init to specify when this datasource should be 'realized'. cloud-init has 4 stages of boot. a.) cloud-init --local . network is guaranteed not present. b.) cloud-init (--network). network is guaranteed present. c.) cloud-config d.) cloud-init final 'init_modules' [1] are run "as early as possible". And as such, are executed in either 'a' or 'b' based on the datasource. However, executing them means that user-data has been fully consumed. User-data and vendor-data may have '#include http://...' which then rely on the network being present. boothooks are an example of the things run in init_modules. The 'dsmode' was a way for a user to indicate that init_modules should run at 'a' (dsmode=local) or 'b' (dsmode=net) directly. Things were further confused when a datasource could provide networking configuration. Then, we needed to apply the networking config at 'a' but if the user had provided boothooks that expected networking, then the init_modules would need to be executed at 'b'. The config drive datasource hacked its way through this and applies networking if *it* detects it is a new instance. == Suggested Change == The plan is to 1. incorporate 'dsmode' into DataSource superclass 2. make all existing datasources default to network 3. apply any networking configuration from a datasource on first boot only apply_networking will always rename network devices when it runs. for bug 1579130. 4. run init_modules at cloud-init (network) time frame unless datasource is 'local'. 5. Datasources can provide a 'first_boot' method that will be called when a new instance_id is found. This will allow the config drive's write_files to be applied once. Over all, this will very much simplify things. We'll no longer have 2 sources like DataSourceNoCloud and DataSourceNoCloudNet, but would just have one source with a dsmode. == Concerns == Some things have odd reliance on dsmode. For example, OpenNebula's get_hostname uses it to determine if it should do a lookup of an ip address. == Bugs to fix here == http://pad.lv/1577982 ConfigDrive: cloud-init fails to configure network from network_data.json http://pad.lv/1579130 need to support systemd.link renaming of devices in container http://pad.lv/1577844 Drop unnecessary blocking of all net udev rules
2016-05-25fix logic error in ec2 get_instance_userdata and slow testsScott Moser
The change to get_instance_userdata is to fix an issue that was causing retry in the test when it was not desired. if user_data returned 404 it means "there was no user-data", so dont bother retrying. However, _skip_retry_on_codes was returning False indicating that readurl should retry. test_merging was creating 2500 random tests, shrink that down to 100. test_seed_runs is still on my system the slowest test, but taking < .5 seconds where it was taking > 3.
2016-05-25remove debug print statementsScott Moser
2016-05-25fix inline doc of test_apt_src_longkeyid_realChristian Ehrhardt
2016-05-25make test_apt_srcl_custom independent to where it is executedChristian Ehrhardt
2016-05-24update changelogScott Moser
2016-05-24fix logic error in ec2 get_instance_userdata and slow testsScott Moser
The change to get_instance_userdata is to fix an issue that was causing retry in the test when it was not desired. if user_data returned 404 it means "there was no user-data", so dont bother retrying. However, _skip_retry_on_codes was returning False indicating that readurl should retry. test_merging was creating 2500 random tests, shrink that down to 100. test_seed_runs is still on my system the slowest test, but taking < .5 seconds where it was taking > 3.
2016-05-24fix up tests that take too long due to retries and timeoutsScott Moser
2016-05-24Make the usage of 'nose-timer' optionalJoshua Harlow
2016-05-24add test for the now isolated convert_to_new_format functionChristian Ehrhardt
2016-05-24pacify pep8 regarding the new changesChristian Ehrhardt
2016-05-24integrate further smaller review feedbackChristian Ehrhardt
2016-05-24rebased with upstream and reolved merge conflictsChristian Ehrhardt
2016-05-24improve examples of ap_sourceChristian Ehrhardt
2016-05-24fix typo in examples docChristian Ehrhardt
2016-05-23final pep8 check fixupsChristian Ehrhardt
2016-05-23modify cloud-config examples to match the new apt_source formatChristian Ehrhardt
2016-05-23add test_apt_src_replace_dict_triChristian Ehrhardt
This includes a test for the weird but valid case in the new dictionary syntax that one sets a key (which is the filename) but overwrites the filename value inside of it.
2016-05-23shorten method names to follow python rulesChristian Ehrhardt
2016-05-23make sure we only handle list or dict apt_sources and bail out for othersChristian Ehrhardt
2016-05-23unify basic triple check and add test_apt_src_basic_dict_triple based on itChristian Ehrhardt
2016-05-23add test_apt_source_basic_dictChristian Ehrhardt
This is the basic testcase but in the new dictionary format
2016-05-23fix issue with dictionary style apt_sources handling filenamesChristian Ehrhardt
2016-05-23add triple test for ppa addingChristian Ehrhardt
2016-05-23make checkers happy about unused loop indexChristian Ehrhardt
2016-05-23add triple case for test_apt_source_keyid_triple incl triple key checkChristian Ehrhardt
2016-05-23testcases with multiple source list entriesChristian Ehrhardt
2016-05-23fix function names in inline docChristian Ehrhardt
2016-05-23warn about multiple colliding apt_source without filenamesChristian Ehrhardt
2016-05-23support apt_sources to be a dictionaryChristian Ehrhardt
key is the filename, and "old" input shall be handled as it was all the time. For compatibility this will (continue to) overwrite the file of multiple options that did not specify an output file (they all get the same default). Yet it will process them all - as it always did - e.g. to add the keys of all of them. Any users of the new format won't have these issues, as they will always have a key.
2016-05-23extend test_apt_source_key by nofn caseChristian Ehrhardt
2016-05-23put fallbackfn to initChristian Ehrhardt
This was now used by multiple methods, no need to duplicate code.