summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-03-31Fix cloud-init ignoring some misdeclared mimetypes in user-data.Kurt Garloff
On some platforms (old heat on OpenTelekomCloud), the user-data mime part is mislabeled x-shellscript. cloud-init would not accept this unexpected mime-type in multipart user-data. Cloud-init will now run find_ctype() on the content of the mime-part to check if it matches known include types. This patch is from Ryan Harper (inspired by my bug report and a suggestion from Scott Moser) from the discussion on PR #234. Signed-off-by: Kurt Garloff <kurt@garloff.de>
2020-03-30net: ubuntu focal prioritize netplan over eni even if both present (#267)Chad Smith
On Focal and later, Ubuntu will prioritize netplan renderer over eni, even if ifupdown and netplan are both installed. ENI on Focal and later is considered an unsupported configuration so cloud-init should generally prefer netplan. On many cloud images, the /etc/network/interfaces config file does not include the dir /etc/network/interfaces.d thereby ignoring cloud-init's /etc/network/interfaces.d/50-cloud-init.cfg file. LP: #1867029
2020-03-30cloudinit: refactor util.is_ipv4 to net.is_ipv4_address (#292)Daniel Watkins
This also simplifies the implementation to rely on the stdlib, instead of our own NIH checking.
2020-03-30net/cmdline: replace type comments with annotations (#294)Daniel Watkins
2020-03-30HACKING.rst: add Type Annotations design section (#293)Daniel Watkins
2020-03-27net: introduce is_ip_address function (#288)Daniel Watkins
This will be required for the mirror URL sanitisation work,
2020-03-27CiTestCase: remove now-unneeded parse_and_read helper method (#286)Daniel Watkins
(And sort some imports where I was changing them.)
2020-03-27.travis.yml: allow 30 minutes of inactivity in cloud tests (#287)Daniel Watkins
We're seeing CI failures currently because a LXD image takes more than 10 minutes to download if the transatlantic link to Canonical's DC is heavily contested. This uses a helper provided by Travis[0] to avoid cancellation due to lack of output for 30 minutes, which should be sufficient to download an image even at the lowest speeds we've been seeing. [0] https://docs.travis-ci.com/user/common-build-problems/#build-times-out-because-no-output-was-received
2020-03-27sources/tests/test_init: drop use of deprecated inspect.getargspec (#285)Daniel Watkins
2020-03-27setup.py: drop NIH check_output implementation (#282)Daniel Watkins
We no longer need to support versions which don't have subprocess.check_output, so we can rely on its presence in the stdlib.
2020-03-26Identify SAP Converged Cloud as OpenStackSilvio Knizek
add SAP Converged Cloud as cloud provider
2020-03-26add Openbsd support (#147)Gonéri Le Bouder
- tested on OpenBSD 6.6 - tested on OpenStack without config drive, and NoCloud with ISO config drive
2020-03-26HACKING.rst: add examples of the two test class types (#278)Daniel Watkins
2020-03-26VMWware: support to update guest info gc status if enabled (#261)xiaofengw-vmware
2020-03-26lp-to-git-users: adding killermoehre (#281)Silvio Knizek
Mapped from killermoehre
2020-03-26Add lp-to-git mapping for kgarloff (#279)Ryan Harper
Map lp user kgarloff to github garloff
2020-03-25set_passwords: avoid chpasswd on BSD (#268)Gonéri Le Bouder
Avoid chpasswd on all the BSD variants.
2020-03-25HACKING.rst: add Unit Testing design section (#277)Daniel Watkins
2020-03-25util: read_cc_from_cmdline handle urlencoded yaml content (#275)Ryan Harper
Add support for additional escaping of formatting characters in the YAML content between the 'cc:' and 'end_cc' tokens. On s390x legacy terminals the use of square brackets [] are not available limiting the ability to indicate lists of values in yaml content. Using #5B and #5D, [ and ] respectively enables s390x users to pass list yaml content into cloud-init via command line interface.
2020-03-25distros/tests/test_init: add tests for _get_package_mirror_info (#272)Daniel Watkins
2020-03-24HACKING.rst: add links to new Code Review Process doc (#276)Daniel Watkins
Co-authored-by: Joshua Powers <josh.powers@canonical.com>
2020-03-24freebsd: ensure package update works (#273)Gonéri Le Bouder
Currently, `cc_package_update_upgrade_install.py` fails because `package_command()` does not know how to do an update on FreeBSD. ``` 2020-03-23 20:01:53,995 - util.py[DEBUG]: Package update failed Traceback (most recent call last): File "/usr/local/lib/python3.7/site-packages/cloud_init-20.1-py3.7.egg/cloudinit/config/cc_package_update_upgrade_install.py", line 85, in handle cloud.distro.update_package_sources() File "/usr/local/lib/python3.7/site-packages/cloud_init-20.1-py3.7.egg/cloudinit/distros/freebsd.py", line 158, in update_package_sources ["update"], freq=PER_INSTANCE) File "/usr/local/lib/python3.7/site-packages/cloud_init-20.1-py3.7.egg/cloudinit/helpers.py", line 185, in run results = functor(*args) File "/usr/local/lib/python3.7/site-packages/cloud_init-20.1-py3.7.egg/cloudinit/distros/bsd.py", line 102, in package_command cmd.extend(pkglist) UnboundLocalError: local variable 'cmd' referenced before assignment ``` This commit defines a new `pkg_cmd_update_prefix` key. If it's empty, we don't do any update, otherwise we use the value to update the package manager.
2020-03-24doc: introduce Code Review Process documentation (#160)Daniel Watkins
2020-03-24tools: use python3 (#274)Ryan Harper
* tools: use python3 Switch tools/ to use python3 instead of python. At minimum this fixes building deb on python3 only releases like Focal. Applied via shell commands: $ grep 'usr/bin/.*python' tools/* 2>/dev/null | \ grep -v python3 | awk -F':' '{print $1}' | \ xargs -i sed -i -e '0,/python/s/python/python3/' {} * Use /usr/bin/env python3 to be virtualenv friendly
2020-03-23cc_disk_setup: fix RuntimeError (#270)Daniel Watkins
Addresses "Runtime Error: dictionary keys changed during iteration". Co-authored-by: Noah Meyerhans <noahm@debian.org> LP: #1868327
2020-03-23cc_apt_configure/util: combine search_for_mirror implementations (#271)Daniel Watkins
These two implementations had drifted away from one another very slightly. Reconcile them and then remove the one in cc_apt_configure.
2020-03-23bsd: boottime does not depend on the libc soname (#269)Gonéri Le Bouder
On NetBSD and OpenBSD, the libc soname and location are different. There is no reason to be to specific. Python is able to propely open the share library by itself.
2020-03-20test_oracle,DataSourceOracle: sort imports (#266)Daniel Watkins
* test_oracle: sort imports * DataSourceOracle: sort imports
2020-03-19DataSourceOracle: update .network_config docstring (#257)Daniel Watkins
Bring it into line with the current state of the code (by dropping the now-untrue caveat).
2020-03-19cloudinit/tests: remove unneeded with_logs configuration (#263)Daniel Watkins
These classes don't use `self.logs` anywhere in their body, so we can remove the `with_logs = True` setting from them. These instances were found using astpath[0], with the following invocation: astpath "//Name[@id='with_logs' and not(ancestor::ClassDef//Attribute[@attr='logs'])]" [0] https://github.com/hchasestevens/astpath
2020-03-19.travis.yml: drop stale comment (#255)Daniel Watkins
Co-authored-by: Chad Smith <chad.smith@canonical.com>
2020-03-18.gitignore: add more common directories (#258)Daniel Watkins
2020-03-18ec2: render network on all NICs and add secondary IPs as static (#114)Chad Smith
Add support for rendering secondary static IPv4/IPv6 addresses on any NIC attached to the machine. In order to see secondary IP addresses in Ec2 IMDS network config, cloud-init now reads metadata version 2018-09-24. Metadata services which do not support the Ec2 API version will not get secondary IP addresses configured. In order to discover secondary IP address config, cloud-init now relies on metadata API Parse local-ipv4s, ipv6s, subnet-ipv4-cidr-block and subnet-ipv6-cidr-block metadata keys to determine additional IPs and appropriate subnet prefix to set for a nic. Also add the datasource config option apply_full_imds_netork_config which defaults to true to allow cloud-init to automatically configure secondary IP addresses. Setting this option to false will tell cloud-init to avoid setting up secondary IP addresses. Also in this branch: - Shift Ec2 datasource to emit network config v2 instead of v1. LP: #1866930
2020-03-18ec2 json validation: fix the reference to the 'merged_cfg' key (#256)Paride Legovini
The 'merged_cfg' key introduced in 71af48d was incorrectly referenced to as 'ci_cfg' in the json validation test for ec2.
2020-03-18releases.yaml: quote the Ubuntu version numbers (#254)Paride Legovini
Quote the Ubuntu version numbers in releases.yaml to make sure they're treated as strings and not as floats.
2020-03-17cloudinit: remove six from packaging/tooling (#253)Daniel Watkins
2020-03-14util/netbsd: drop six usage (#252)Daniel Watkins
Drop remaining python six usage
2020-03-13workflows: introduce stale pull request workflow (#125)Daniel Watkins
This workflow will label pull requests with "stale-pr" if they haven't seen activity for 14 days. It will then close them out after a further 7 days of inactivity.
2020-03-13cc_resolv_conf: introduce tests and stabilise output across Python versions ↵Daniel Watkins
(#251) This is a follow-up to #144 which fixed the rendering behaviour. While writing the tests, CI failed due to dict iteration differences across Python versions, so this also sorts output so that we will produce the same output across Python versions.
2020-03-12fix minor issue with resolv_conf template (#144)andreaf74
2020-03-12doc: CloudInit also support NetBSD (#250)Gonéri Le Bouder
Since 94838def772349387e16cc642b3642020e22deda, CloudInit supports NetBSD too.
2020-03-12Add Netbsd support (#62)Gonéri Le Bouder
Add support for the NetBSD Operating System. Features in this branch: * Add BSD distro parent class from which NetBSD and FreeBSD can specialize * Add *bsd util functions to cloudinit.net and cloudinit.net.bsd_utils * subclass cloudinit.distro.freebsd.Distro from bsd.Distro * Add new cloudinit.distro.netbsd and cloudinit.net.renderer for netbsd * Add lru_cached util.is_NetBSD functions * Add NetBSD detection for ConfigDrive and NoCloud datasources This branch has been tested with: - NoCloud and OpenStack (with and without config-drive) - NetBSD 8.1. and 9.0 - FreeBSD 11.2 and 12.1 - Python 3.7 only, because of the dependency oncrypt.METHOD_BLOWFISH. This version is available in NetBSD 7, 8 and 9 anyway
2020-03-11tox.ini: avoid substition syntax that causes a traceback on xenial (#245)Daniel Watkins
See the added comment for details.
2020-03-11Add pub_key_ed25519 to cc_phone_home (#237)Daniel Hensby
2020-03-11Introduce and use of a list of GitHub usernames that have signed CLA (#244)Daniel Watkins
The list so far is partial.
2020-03-10workflows/cla.yml: use correct username for CLA check (#243)Daniel Watkins
Instead of using the username that triggered the action (which, in the case of a committer merging master into a PR branch will be the committer), always use the username of the submitter of the pull request.
2020-03-10tox.ini: use xenial version of jsonpatch in CI (#242)Daniel Watkins
Now that we can distinguish between CI xenial dependencies and needed-to-run-on-dev-machine xenial depedencies, we can return to testing with the correct jsonpatch version.
2020-03-10workflows: CLA validation altered to fail status on pull_request (#164)Chad Smith
Github api doesn't allow read-write access to labels or comments when running from a pull_request fork during CI. This restriction results in an API error message: "Resource not accessible by integration" If we want to run this action per pull_request, we need to convert the action to fail the PR status check and emit the required steps to sign the CLA to the console on the PR's failed status tab.
2020-03-10tox.ini: bump pyflakes version to 2.1.1 (#239)Daniel Watkins
pyflakes versions older than 2.1.0 are incompatible with Python 3.8 (which is the Python version in the current Ubuntu development release). See https://github.com/PyCQA/pyflakes/issues/367 for details. 2.1.1 is the latest version ATM, so bump to that.
2020-03-10cloudinit: move to pytest for running tests (#211)Daniel Watkins
As the nose docs[0] themselves note, it has been in maintenance mode for the past several years. pytest is an actively developed, featureful and popular alternative that the nose docs themselves recommend. See [1] for more details about the thinking here. (This PR also removes stale tox definitions, instead of modifying them.) [0] https://nose.readthedocs.io/en/latest/ [1] https://lists.launchpad.net/cloud-init/msg00245.html