summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-06-30networking: refactor is_physical from cloudinit.net (#457)Daniel Watkins
As the first refactor PR, this also includes the initial structure for tests. LP: #1884619
2020-06-30Enable use of the caplog fixture in pytest tests, and add a cc_final_message ↵Daniel Watkins
test using it (#461) caplog is only available in pytest itself from 3.0 onwards. In xenial, we only have pytest 2.8.7. However, in xenial we do have pytest-catchlog available (as python3-pytest-catchlog), so we use that where appropriate.
2020-06-29RbxCloud: Add support for FreeBSD (#464)Adam Dobrawy
Changes are made that simplify code and aim to properly support FreeBSD: - use `util.find_devs_with` instead call directly `blkid`, because on FreeBSD is not supported well and `util.find_devs_with` have solution for FreeBSD for that - introduction of an additional name on FAT file system, which is used in FreeBSD - drop shell to use default value, because FreeBSD – by default – does not have `/bin/bash`
2020-06-29Add schema for cc_chef module (#375)lucasmoura
Create a schema object for the chef module and validate this schema in the handle function of the module. Some of the config keys description, so I tried looking at the code and chef documentation to provide an information to the user. However, I don't know if I have the best description for all fields. For example, for the key show_time I could not find an accurate description of what it did, so I used what was in our code base to infer what it should do. LP: #1858888
2020-06-29test_util: add (partial) testing for util.mount_cb (#463)Daniel Watkins
2020-06-26.travis.yml: revert to installing ubuntu-dev-tools (#460)Daniel Watkins
My previous testing was insufficient: there is a branch of testing that requires mk-sbuild, which is shipped in ubuntu-dev-tools itself.
2020-06-26HACKING.rst: add details of net refactor tracking (#456)Daniel Watkins
2020-06-26.travis.yml: rationalise installation of dependencies in host (#449)Daniel Watkins
We build in a schroot using sbuild, so we don't need Build-Depends installed in the host; save some time (and manual maintenance when Build-Depends change) by dropping their installation and skipping the check for them when calling `bddeb`. We _do_ require debhelper to be installed to build the source package, so ensure it is installed. Additionally, while I was here, replace ubuntu-dev-tools with devscripts; we don't need everything that ubuntu-dev-tools pulls in.
2020-06-25Add dermotbradley as contributor. (#458)dermotbradley
2020-06-24net/networking: remove unused functions/methods (#453)Daniel Watkins
Namely, is_connected, is_wireless and is_present. None of these are used in the cloud-init codebase, so remove the dead code (instead of refactoring it).
2020-06-23distros.networking: initial implementation of layout (#391)Daniel Watkins
This commit introduces the initial structure for the "cloudinit.net -> cloudinit.distros.networking Hierarchy" refactor, as detailed in [0]. It also updates that section with some changes driven by this initial implementation, as well as adding a lot more specifics to it. [0] https://cloudinit.readthedocs.io/en/latest/topics/hacking.html#cloudinit-net-cloudinit-distros-networking-hierarchy
2020-06-23cloud-init.service.tmpl: use "rhel" instead of "redhat" (#452)Daniel Watkins
We use "rhel" consistently everywhere else.
2020-06-23Change from redhat to rhel in systemd generator tmpl (#450)Eduardo Otubo
The name `redhat' is not used but rather `rhel' to identify the distro. Signed-off-by: Eduardo Otubo <otubo@redhat.com>
2020-06-22Hetzner: support reading user-data that is base64 encoded. (#448)Scott Moser
Hetzner cloud only supports user-data as a string (presumably utf-8). In order to allow users on Hetzner to provide binary data to cloud-init, we will attempt to base64decode the userdata. The change here adds a 'maybe_b64decode' function that will decode data if and only if is base64 encoded. The reason for not using util.b64d is that we do not want the return value decoded to a string, and util.b64d will do that if it can. Additionally we call decode with validate=True which oddly is not the default. LP: #1884071
2020-06-22HACKING.rst: add strpath gotcha to testing gotchas section (#446)Daniel Watkins
Co-authored-by: Rick Harding <rharding@mitechie.com>
2020-06-22cc_final_message: don't create directories when writing boot-finished (#445)Daniel Watkins
If the instance symlink doesn't exist, then we shouldn't create a directory in its place, because that breaks future boots. LP: #1883903
2020-06-19.travis.yml: only store new schroot if something has changed (#440)Daniel Watkins
Prior to this change, the process of tarring up would mean that Travis would always detect that the cache had changed, and we would incur ~30s of packing/transferring at the end of every build. Instead, we now check if there was any change to the installed contents of the schroot, and only generate a new tarball if there were changes.
2020-06-19util: add ensure_dir_exists parameter to write_file (#443)Daniel Watkins
This allows us to disable the `ensure_dir` call when it isn't appropriate.
2020-06-19printing the error stream of the dhclient process before killing it (#369)Moustafa Moustafa
This introduces a way to log the dhclient error stream, and uses it for the Azure datasource (where we have a specific requirement for this data to be logged).
2020-06-19Fix link to the MAAS documentation (#442)Paride Legovini
LP: #1883666
2020-06-18RPM build: disable the dynamic mirror URLs when using a proxy (#437)Paride Legovini
When using an http proxy make sure to disable all the dynamic mirror URLs. In particular: - Uncomment the baseurl in /etc/yum.repos.d/*.repo. - Comment out the mirrorlist and metalink URLs in *.repo. - Replace the dynamic download.fedoraproject.org host with dl.fedoraproject.org, which is static. - Run the above as part of the MAYBE_RELIABLE_YUM_INSTALL command, as installing packages may add new repos (e.g. EPEL). - Stop disabling fastestmirror, not needed when doing the above.
2020-06-17util: rename write_file's copy_mode parameter to preserve_mode (#439)Daniel Watkins
When updating the docstring to include it, I realised that the current name is somewhat misleading; this makes it a little easier to understand, I think.
2020-06-16.travis.yml: use $TRAVIS_BUILD_DIR for lxd_image caching (#438)Daniel Watkins
This makes us more robust, as our caching won't start breaking if other parts of the Travis build change directory for us.
2020-06-12cli.rst: alphabetise devel subcommands and add net-convert to list (#430)Daniel Watkins
2020-06-12Default to UTF-8 in /var/log/cloud-init.log (#427)James Falcon
On a system with a non-utf8 default locale, the logger will silently not log anything if the message contains an unsupported character.
2020-06-12travis: cache the chroot we use for package builds (#429)Daniel Watkins
Prior to this change, we would debootstrap for every single integration test run in Travis. This changes that, so we will store the chroot created by debootstrap in Travis' cache, and use it if available. This saves 2-3 minutes, or ~1/3rd of the integration test run time (which is our longest run).
2020-06-10test: fix all flake8 E126 errors (#425)Joshua Powers
2020-06-09Fixes KeyError for bridge with no "parameters:" setting (#423)Brian Candler
Reason: commit ded1ec8 introduced a regression whereby a bridge with no "parameters:" setting caused a KeyError exception. LP: #1879673
2020-06-09When tools.conf does not exist, running cmd "vmware-toolbox-cmd config get ↵chengcheng-chcheng
deployPkg enable-custom-scripts", the return code will be EX_UNAVAILABLE(69), on this condition, it should not take it as error. (#413)
2020-06-09Document CloudStack data-server well-known hostname (#399)Gregor Riepl
* Document CloudStack data-server well-known hostname * Document fallback to default gateway * Add onitake to CLA signers list
2020-06-08test: move conftest.py to top-level, to cover tests/ also (#414)Daniel Watkins
* test_opennebula: convert TestParseShellConfig to a pytest test And allow it to run bash. (We aren't aiming to convert TestCase tests to pytest tests as a rule. In this case, I needed to change its implementation to limit subp usage, and I chose pytest over CiTestCase.) * test: move conftest.py to top-level, to cover tests/ also This gives us a single conftest.py which is shared by all tests in the project.
2020-06-08Replace cc_chef is_installed with use of subp.is_exe. (#421)Scott Moser
This was brought up in review of #416. Makes sense to remove the local copy of "is this executable file".
2020-06-08Move runparts to subp. (#420)Scott Moser
runparts (run a directory of scripts) seems to fit well in subp module. The request to move it there was raised in #416. Replace use of logexc with LOG.debug as logexc comes from util.
2020-06-08Move subp into its own module. (#416)Scott Moser
This was painful, but it finishes a TODO from cloudinit/subp.py. It moves the following from util to subp: ProcessExecutionError subp which target_path I moved subp_blob_in_tempfile into cc_chef, which is its only caller. That saved us from having to deal with it using write_file and temp_utils from subp (which does not import any cloudinit things now). It is arguable that 'target_path' could be moved to a 'path_utils' or something, but in order to use it from subp and also from utils, we had to get it out of utils.
2020-06-08readme: point at travis-ci.com (#417)Joshua Powers
2020-06-04New feature flag functionality and fix includes failing silently (#367)James Falcon
Build time feature flags are now defined in cloudinit/features.py. Feature flags can be added to toggle configuration options or deprecated features. Feature flag overrides can be placed in cloudinit/feature_overrides.py. Further documentation can be found in HACKING.rst. Additionally, updated default behavior to exit with an exception if #include can't retrieve resources as expected. This behavior can be toggled with a feature flag. LP: #1734939
2020-06-03Enhance poll imds logging (#365)Moustafa Moustafa
Improving the debugability of this code path by logging the thrown exception details for the non 404 exceptions. Retry IMDS on HTTP Error 404 and 410, re-run DHCP on other exceptions.
2020-06-02test: fix all flake8 E121 and E123 errors (#404)Joshua Powers
This fixes issues with closing brackets not matching the opening bracket's line and continuation line under-idented for hanging indent.
2020-06-02test: fix all flake8 E241 (#403)Joshua Powers
Remove extra spaces after a ','
2020-06-02test: ignore flake8 E402 errors in main.py (#402)Joshua Powers
This puts an ignore on the imports not at the top of the file errors. The reason for the ignore instead of fix is that the file is using imp to grab a lock and patch logging before further imports are completed.
2020-06-01cc_grub_dpkg: determine idevs in more robust manner with grub-probe (#358)Matthew Ruffell
Replace the hardcoded list of devices with a more robust way of determining the device which grub is installed to. We use grub-probe to fetch the underlying disk the /boot directory is located on, and attempt to match the disk with its /dev/disk/by-id value. If no such /dev/disk/by-id/ value exists, we fallback to the plain disk name. The changes are robust to unstable kernel device names and ordering, and use /dev/disk/by-id values to populate grub-pc/install_devices where possible. LP: #1877491
2020-06-01test: fix all flake8 E741 errors (#401)Joshua Powers
This removes the use of variables named ‘l’, ‘O’, or ‘I’. Generally these are used in list comprehension to read the line of lines.
2020-05-28tests: add groovy integration tests for ubuntu (#400)Chad Smith
2020-05-27Enable chef_license support for chef infra client (#389)Bipin Bachhao
Co-authored-by: Daniel Watkins <oddbloke@ubuntu.com>
2020-05-27testing: use flake8 again (#392)Joshua Powers
Instead of running pycodestyle and pyflakes seperately, use flake8 to get the benefits of pyflakes and also stylistic checks as well as the ability to configure the settings for the project.
2020-05-27enable Puppet, Chef mcollective in default config (#385)Mina Galić (deprecated: Igor Galić)
These config management things work on BSD, they also claim to work on all distros, so enabling them! LP: #1880279
2020-05-26HACKING.rst: introduce .net -> Networking refactor section (#384)Daniel Watkins
2020-05-25Travis: do not install python3-contextlib2 (dropped dependency) (#388)Paride Legovini
2020-05-22HACKING: mention that .github-cla-signers is alpha-sorted (#380)Daniel Watkins
Hopefully this will save some ~pointless round trips on CLA PRs.
2020-05-22Add bipinbachhao as contributor (#379)Bipin Bachhao