Age | Commit message (Collapse) | Author |
|
Previously the usage of the yaml_dumps module was causing
any python unicode key and value to show up as:
'item': !!python/unicode "some string"
This was not very pretty...
Fix this by using safe_dumps (which is also a good thing to
use and allow_unicode=True). Also create a tiny helper function
in the cc_debug module that does not include the yaml start and
end footers (since this module has its own footers and headers).
Also includes a basic sanity test for this module.
|
|
This fix handles '=' as a delimiter in SSH config and
adds appropriate test methods to ensure this functionality
continues to work correctly.
|
|
|
|
Add the following adjustments to the chef template and module:
- Make it so that the chef directories can be provided (defaults
to the existing directories)
- Make the params much more configurable, and if a parameter is
provided in the chef configuration it will override existing template
parameters.
- Make the template skip lines if the values are None in the configuration
so that template lines can be removed if/when this is desirable.
- Allow the firstboot json path to be configurable (defaults to the
existing location).
- Adds a basic set of tests to ensure that good things are happening.
- Make a helper function to tell if already installed.
- Have the install routine not run chef after installed but have it instead
return a result to tell the caller to run the chef program once completed.
- Use the generated_by() utility function to give the ruby template a
better header comment.
- Set special parameters after selecting the basic chef parameters.
- Allow for the running after install and run arguments to be configured.
- Allow the omnibus url fetching retries to be configurable.
- Move the chef running to its own helper function
- Add module docs
|
|
|
|
The digital ocean datasource test is using assertIs which
is only created/existent on py2.7, so for the older py2.6
we need to add similar logic so that the test works correctly
there.
|
|
To make it so that cloud-init is installable in a virtualenv
where it can be tested in an isolated scenario we need to avoid
using and including datafiles (which won't be written into the
virtualenv) and also avoid using our initsys helper class which
also adds on its own files when we are being ran from a virtualenv.
|
|
sources.list was where this showed itself, but all rendered files
would have their newline stripped.
LP: #1355343
|
|
As requested by harlowja.
|
|
|
|
This also adds mock as a test dependency, as we are looking to migrate
away from mocker.
|
|
The digital ocean datasource test is using assertIs which
is only created/existent on py2.7, so for the older py2.6
we need to add similar logic so that the test works correctly
there.
|
|
To make it so that cloud-init is installable in a virtualenv
where it can be tested in an isolated scenario we need to avoid
using and including datafiles (which won't be written into the
virtualenv) and also avoid using our initsys helper class which
also adds on its own files when we are being ran from a virtualenv.
|
|
Add the basics of docs that can be extracted from the code itself (also
impose a initial format that will be useful for further modules to
follow). In this initial addition modify the cc_debug.py and
cc_ubuntu_init_switch.py to use this new style.
LP: #1383510
|
|
|
|
This busted logic causes 'output' to not be paid any attention
to, and thus output is not written to /var/log/cloud-init-output.log.
LP: #1387340
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This adds a DataSource for DigitalOcean's metadata service. The service is
documented at https://developers.digitalocean.com/metadata/ .
|
|
|
|
|
|
Previously the usage of the yaml_dumps module was causing
any python unicode key and value to show up as:
'item': !!python/unicode "some string"
This was not very pretty...
Fix this by using safe_dumps (which is also a good thing to
use and allow_unicode=True). Also create a tiny helper function
in the cc_debug module that does not include the yaml start and
end footers (since this module has its own footers and headers).
Also includes a basic sanity test for this module.
|
|
|
|
|
|
|
|
|
|
Without this change the tests are currently failing on rhel7
since a location where a hostname file is written no longer
exists at that location when systemd is active. To avoid this
allow the test to inspect if the distro has systemd enabled
and avoid testing the file when systemd is being used so the
test passes.
We likely need to figure out a better way to test features
that no longer exist as files but exist as commands with
systemd in general.
|
|
|
|
Defaulting to only trying once.
|
|
|
|
The DigitalOcean metadata service is an AWS-style service available
over HTTP via the link local address 169.254.169.254. The specifics
of the API are documented at:
https://developers.digitalocean.com/metadata/
|
|
|
|
|
|
For those who run chef in non-daemon mode, they would like to delete
the validation.pem file if chef finishes as expected to remove that file
from existing in an easy to read manner.
|
|
The keys 'server_url' and 'validation_name' were
previously mandatory, we should retain that behavior
for now.
|
|
|
|
Standardize on using the chef_cfg key 'exec' which can be used
when installing to tell the caller to run the chef client or can
also be used if the client is already installed and its requested
to be ran.
To retain existing behavior 'exec' does not by default assume to
be true, unless explicitly provided or a gems mode install is
requested.
|
|
|
|
|
|
When the template provides a path, make sure that before the
template is written that the path that is now in the template
has the associated directory created (if not already created).
|
|
|
|
|
|
|
|
|
|
Instead of only running the client when installed from gems, allow it
to be ran from other install modes as well (if configured) and allow the
arguments that are passed to the client when ran to be altered (if so
desired).
|