Permalink
Switch branches/tags
ubuntu/17.2-1-g4089e20c-0ubuntu1 ubuntu/17.1-60-ga30a3bb5-0ubuntu1 ubuntu/17.1-58-g703241a3-0ubuntu1 ubuntu/17.1-53-ga5dc0f42-0ubuntu1 ubuntu/17.1-51-g05b2308a-0ubuntu1 ubuntu/17.1-46-g7acc9e68-0ubuntu1_17.10.1 ubuntu/17.1-46-g7acc9e68-0ubuntu1_17.04.1 ubuntu/17.1-46-g7acc9e68-0ubuntu1_16.04.1 ubuntu/17.1-46-g7acc9e68-0ubuntu1 ubuntu/17.1-41-g76243487-0ubuntu1_17.10.1 ubuntu/17.1-41-g76243487-0ubuntu1_17.04.1 ubuntu/17.1-41-g76243487-0ubuntu1_16.04.1 ubuntu/17.1-41-g76243487-0ubuntu1 ubuntu/17.1-27-geb292c18-0ubuntu1_17.10.1 ubuntu/17.1-27-geb292c18-0ubuntu1_17.04.1 ubuntu/17.1-27-geb292c18-0ubuntu1_16.04.1 ubuntu/17.1-27-geb292c18-0ubuntu1 ubuntu/17.1-25-g17a15f9e-0ubuntu1_17.10.1 ubuntu/17.1-25-g17a15f9e-0ubuntu1_17.04.1 ubuntu/17.1-25-g17a15f9e-0ubuntu1_16.04.1 ubuntu/17.1-25-g17a15f9e-0ubuntu1 ubuntu/17.1-18-gd4f70470-0ubuntu1_17.04.2 ubuntu/17.1-18-gd4f70470-0ubuntu1_17.04.1 ubuntu/17.1-18-gd4f70470-0ubuntu1_16.04.2 ubuntu/17.1-18-gd4f70470-0ubuntu1_16.04.1 ubuntu/17.1-18-gd4f70470-0ubuntu1 ubuntu/17.1-17-g45d361cb-0ubuntu1_17.04.1 ubuntu/17.1-17-g45d361cb-0ubuntu1_16.04.1 ubuntu/17.1-17-g45d361cb-0ubuntu1 ubuntu/17.1-13-g7fd04255-0ubuntu1 ubuntu/17.1-0ubuntu1 ubuntu/0.7.9-283-g7eb3460b-0ubuntu1 ubuntu/0.7.9-281-g10f067d8-0ubuntu1 ubuntu/0.7.9-280-ge626966e-0ubuntu1 ubuntu/0.7.9-267-g922c3c5c-0ubuntu1 ubuntu/0.7.9-259-g7e76c57b-0ubuntu1 ubuntu/0.7.9-243-ge74d775-0ubuntu1 ubuntu/0.7.9-233-ge586fe35-0ubuntu1_17.04.2 ubuntu/0.7.9-233-ge586fe35-0ubuntu1_17.04.1 ubuntu/0.7.9-233-ge586fe35-0ubuntu1_16.04.2 ubuntu/0.7.9-233-ge586fe35-0ubuntu1_16.04.1 ubuntu/0.7.9-231-g80bf98b9-0ubuntu1 ubuntu/0.7.9-221-g7e41b2a7-0ubuntu3 ubuntu/0.7.9-221-g7e41b2a7-0ubuntu2 ubuntu/0.7.9-221-g7e41b2a7-0ubuntu1 ubuntu/0.7.9-212-g865e941f-0ubuntu1 ubuntu/0.7.9-210-ge80517ae-0ubuntu1 ubuntu/0.7.9-199-g4d9f24f5-0ubuntu1 ubuntu/0.7.9-197-gebc9ecbc-0ubuntu1 ubuntu/0.7.9-153-g16a7302f-0ubuntu1_17.04.2 ubuntu/0.7.9-153-g16a7302f-0ubuntu1_17.04.1 ubuntu/0.7.9-153-g16a7302f-0ubuntu1_16.10.2 ubuntu/0.7.9-153-g16a7302f-0ubuntu1_16.10.1 ubuntu/0.7.9-153-g16a7302f-0ubuntu1_16.04.2 ubuntu/0.7.9-153-g16a7302f-0ubuntu1_16.04.1 ubuntu/0.7.9-153-g16a7302f-0ubuntu1 ubuntu/0.7.9-144-g2825a917-0ubuntu1 ubuntu/0.7.9-113-g513e99e0-0ubuntu1_17.04.1 ubuntu/0.7.9-113-g513e99e0-0ubuntu1_16.10.1 ubuntu/0.7.9-113-g513e99e0-0ubuntu1_16.04.1 ubuntu/0.7.9-90-g61eb03fe-0ubuntu1.16.10.1 ubuntu/0.7.9-90-g61eb03fe-0ubuntu1 ubuntu/0.7.9-89-gbf7723e8-0ubuntu1 ubuntu/0.7.9-87-gd23543eb-0ubuntu1 ubuntu/0.7.9-82-g0e2030ca-0ubuntu1 ubuntu/0.7.9-77-g4a2b2f87-0ubuntu1 ubuntu/0.7.9-68-gef18b8ac-0ubuntu1 ubuntu/0.7.9-66-g5beecdf8-0ubuntu1 ubuntu/0.7.9-48-g1c795b9-0ubuntu1.16.10.1 ubuntu/0.7.9-48-g1c795b9-0ubuntu1.16.04.1 ubuntu/0.7.9-48-g1c795b9-0ubuntu1 ubuntu/0.7.9-47-gc81ea53-0ubuntu1.16.10.1 ubuntu/0.7.9-47-gc81ea53-0ubuntu1 ubuntu/0.7.9-38-g83606ae-0ubuntu1 ubuntu/0.7.9-30-gf4e8eb0-0ubuntu1 ubuntu/0.7.9-26-g1cd8cfa-0ubuntu1 ubuntu/0.7.9-25-g65529b6-0ubuntu1 ubuntu/0.7.9-23-g0df21b6-0ubuntu1 ubuntu/0.7.9-21-g7372a10-0ubuntu1 ubuntu/0.7.9-19-ge987092-0ubuntu2 ubuntu/0.7.9-19-ge987092-0ubuntu1 ubuntu/0.7.9-0ubuntu2 ubuntu/0.7.9-0ubuntu1.16.10.1 ubuntu/0.7.9-0ubuntu1.16.04.2 ubuntu/0.7.9-0ubuntu1.16.04.1 ubuntu/0.7.8-68-gca3ae67-0ubuntu1.16.10.1 ubuntu/0.7.8-68-gca3ae67-0ubuntu1 ubuntu/0.7.8-67-gc9c9197-0ubuntu1 ubuntu/0.7.8-61-g2d2ec70-0ubuntu1.16.10.1 ubuntu/0.7.8-61-g2d2ec70-0ubuntu1 ubuntu/0.7.8-49-g9e904bb-0ubuntu1_16.04.4 ubuntu/0.7.8-49-g9e904bb-0ubuntu1.16.04.1 ubuntu/0.7.8-49-g9e904bb-0ubuntu1 ubuntu/0.7.8-48-g9d826b8-0ubuntu1 ubuntu/0.7.8-47-gb6561a1-0ubuntu1.16.04.1 ubuntu/0.7.8-45-g584b843-0ubuntu1.16.04.1 ubuntu/0.7.8-45-g584b843-0ubuntu1 ubuntu/0.7.8-35-gc24187e-0ubuntu1 ubuntu/0.7.8-34-ga1cdebd-0ubuntu1 ubuntu/0.7.8-28-gf7a5756-0ubuntu1
Nothing to show
Commits on Jan 9, 2018
  1. tests: update apt sources list test

    powersj committed with smoser Jan 8, 2018
    Due to additional platforms getting added this test was not taking into
    account platform specific mirrors nor was it checking that no additional
    entries were added.
  2. tests: clean up image properties

    powersj committed with smoser Jan 8, 2018
    This fixes the incorrectly named 'family' value for images as 'os'.
    Families are already defined in util.py:OS_FAMILY_MAPPING and a family
    is a collection of OSes.
    
    This makes the properties function part of the super class of image as
    it is only overrided by the lxd backend.
  3. tests: rename test ssh keys to avoid appearance of leaking private keys.

    powersj committed with smoser Jan 8, 2018
    While the generated ssh keys are throw away keys, generating SSH keys
    with the default name (e.g. id_rsa) can trigger security scanners or
    draw unnecessary attention.
    
    The change here simply renames 'id_rsa' to 'cloud_init_rsa' to avoid
    a false positive reported by a scanning tool.
Commits on Jan 6, 2018
  1. tests: Enable AWS EC2 Integration Testing

    powersj committed with smoser Dec 7, 2017
    This enables integration tests to utilize AWS EC2 as a testing platform by
    utilizing the boto3 Python library.
    
    Usage will create and delete a custom VPC for every run. All resources
    will be tagged with the ec2 tag, 'cii', and the date (e.g.
    cii-20171220-102452).  The VPC is setup with both IPv4 and IPv6
    capabilities, but will only hand out IPv4 addresses by default. Instances
    will have complete Internet access and have full ingress and egress access
    (i.e. no firewall).
    
    SSH keys are generated with each run of the integration tests with the key
    getting uploaded to AWS at the start of tests and deleted on exit.  To
    enable creation when the platform is setup the SSH generation code is
    moved to be completed by the platform setup and not during image setup.
    The nocloud-kvm platform was updated with this change.
    
    Creating a custom image will utilize the same clean script,
    boot_clean_script, that the LXD platform uses as well. The custom AMI is
    generated, used, and de-registered after a test run.
    
    The default instance type is set to t2.micro. This is one of the smallest
    instance types and is free tier eligible.
    
    The default timeout for ec2 was increased to 300 from 120 as many tests
    hit up against the 2 minute timeout and depending on region load can
    go over.
    
    Documentation for the AWS platform was added with the expected
    configuration files for the platform to be used. There are some
    additional whitespace changes included as well.
    
    pylint exception was added for paramiko and simplestreams. In the past
    these were not already flagged due to no __init__.py in the subdirectories
    of files that used these. boto3 was added to the list of dependencies in
    the tox ci-test runner.
    
    In order to grab console logs on EC2 the harness will now shut down an
    instance before terminating and before collecting the console log.  This
    is to address a behavior of EC2 where the console log is refreshed very
    infrequently, but one point when it is refreshed is after shutdown.
Commits on Jan 3, 2018
  1. cli: cloud-init clean handles symlinks

    blackboxsw committed Jan 3, 2018
    Fix cloud-init clean subcommand to unlink symlinks instead of calling
    del_dir.
    
    LP: #1741093
Commits on Dec 21, 2017
  1. SUSE: Add a basic test of network config rendering.

    rjschwei committed with smoser Nov 15, 2017
    This simply increases test coverage in rendering of network config
    for SUSE and SLES.
  2. Azure: Only bounce network when necessary.

    blackboxsw committed with smoser Dec 20, 2017
    This fixes a traceback when attempting to bounce the network after
    hostname resets.
    
    In artful and bionic ifupdown package is no longer installed in default
    cloud images. As such, Azure can't use those tools to bounce the network
    informing DDNS about hostname changes. This doesn't affect DDNS updates
    though because systemd-networkd is now watching hostname deltas and with
    default behavior to SendHostname=True over dhcp for all hostname updates
    which publishes DDNS for us.
    
    LP: #1722668
Commits on Dec 15, 2017
  1. lint: Fix lints seen by pylint version 1.8.1.

    blackboxsw committed Dec 15, 2017
    This branch resolves lints seen by pylint revision 1.8.1 and updates our
    pinned tox pylint dependency used by our tox pylint target.
  2. cli: Fix error in cloud-init modules --mode=init.

    blackboxsw committed Dec 15, 2017
    The cli help docs and argument parser allow the 'init' mode value
    which caused a traceback.
    
    Fix the cli to support 'init', 'config' and 'final' modes for the
    cloud-init modules subcommand.
    
    Add a check in the cli to raise a ValueError if a new
    subcommand ends up allowing an unsupported/unimplemented modes.
    
    Drive by unit test additions for a bit better coverage of error
    handling.
    
    LP: #1736600
Commits on Dec 14, 2017
  1. release 17.2

    smoser committed Dec 14, 2017
    Bump the version in cloudinit/version.py to be 17.2 and update ChangeLog.
Commits on Dec 12, 2017
  1. ds-identify: failure in NoCloud due to unset variable usage.

    smoser committed with blackboxsw Dec 12, 2017
    The previous OVF datasource change added a debug message that referenced
    an un-used variable. The failure path would be triggered if an image was
    booted with a iso9660 filesystem attached to a device that was not a
    cdrom.
    
    A unit test is added for the specific failure found.
    
    Additional safety to avoid 'cidata' labels is also added to the OVF
    checker.
    
    LP: #1737704
  2. tests: fix collect_console when not implemented

    powersj committed with blackboxsw Dec 12, 2017
    The exception was incorrectly creating a string and not a bytes object.
Commits on Dec 11, 2017
  1. ec2: Use instance-identity doc for region and instance-id

    ajorg-aws committed with smoser Nov 27, 2017
    The instance identity document is a better source for region information,
    partly because region isn't actually in meta-data at all, only
    availability-zone, which happens to be named similarly.
    
    Reviewed-by: Ethan Faust <efaust@amazon.com>
    Reviewed-by: Cyle Riggs <cyler@amazon.com>
    Reviewed-by: Tom Kirchner <tjk@amazon.com>
    Reviewed-by: Matt Nierzwicki <nierzwic@amazon.com>
    [ajorgens@amazon.com: rebase onto 0.7.9]
    [ajorgens@amazon.com: changes per merge proposal discussions]
  2. tests: remove leaked tmp files in config drive tests.

    smoser committed Dec 11, 2017
    Make sure that some temporary files used by the config drive tests get
    cleaned up properly.
  3. setup.py: Do not include rendered files in SOURCES.txt

    smoser committed Dec 1, 2017
    cloud-init renders template files during its run of setup.py.
    Those rendered files were in a temp dir and were making their
    way into the SOURCES.txt file.  That caused problems for SuSE's build
    system that desired for reproducible builds.
      https://reproducible-builds.org/
    
    We do not want to include those, so here we explicitly prune them out.
    
    The issue of SOURCES.txt containing tmp files was reproducible with:
      $ rm -Rf cloud_init.egg-info
      $ git clean --force
      $ rm -Rf ../root.d; python3 setup.py install --root=../root.d
      $ grep ^tmp cloud_init.egg-info/SOURCES.txt
    
    goo: http://bugzilla.opensuse.org/show_bug.cgi?id=1069635
  4. SUSE: remove delta in systemd local template for SUSE

    rjschwei committed with smoser Nov 19, 2017
    On openSUSE and SLES systemd is allowed to pull the default dependencies,
    thus setting "Before=basic.target" is incorrect and creates a cycle leading
    to the deletion of the cloud-init-local.service
  5. tests: move to using tox 1.7.5

    smoser committed Dec 11, 2017
    When we moved to having tox run on tests/ and tools/ we bumped tox
    to version 1.7.1.  That was an error on my part as I just checked the
    version I had locally and didn't go looking for what the newest upstream
    release was.
    
    The current version as of today is 1.7.5 and 'tox -e pylint' works with
    this version
Commits on Dec 8, 2017
  1. OVF: improve ds-identify to support finding OVF iso transport.

    smoser committed Dec 7, 2017
    Previously the OVF transport would not be identified except for when
    config files set 'ovf_vmware_guest_customization'.  It would also
    return DS_MAYBE almost always.
    
    The change here is to add support to ds-identify for storing the
    iso9660 filesystems that it finds (ISO9660_DEVS). Then the OVF check
    will check that the iso9660 filesystem has ovf-env.xml on it. The least
    wonderful part of this is that the check is done by 'grep' for case
    insensitive ovf-env.xml.
    
    Future improvement would be to identify VMware's OVF by label or UUID
    so we could avoid the grep.
    
    LP: #1731868
  2. VMware: Support for user provided pre and post-customization scripts

    msaikia committed with blackboxsw Dec 8, 2017
    In the VMware customization workflow, we have some options for the user
    to upload scripts for additional customization. Based on user request,
    those custom scripts can be either run before regular customization or
    after. For post customization scripts, we decide whether to run the scripts
    just after customization or post system reboot.
  3. citest: In NoCloudKVM provide keys via metadata not userdata.

    smoser committed Dec 5, 2017
    The NoCloudKVM platform was inserting ssh keys via user-data
    rather than through meta-data like it is done on other platforms.
    This way we are not forced to change the user-data provided.
    
    Also, provide meta-data including a uuid as the instance-id.
  4. pylint: Update pylint to 1.7.1, run on tests/ and tools and fix compl…

    raharper committed with smoser Dec 6, 2017
    …aints.
    
    The motivation for this is that
     a.) 1.7.1 runs with python 3.6 (bionic)
     b.) we want to run pylint on tests/ and tools for the same reasons
         that we want to run it on cloudinit/
    
    The changes are described below.
    - Update tox.ini to invoke pylint v1.7.1.
    - Modify .pylintrc generated-members ignore mocked object members (m_.*)
    - Replace "dangerous" params defaulting to {}
    - Fix up cloud_tests use of platforms
    - Cast some instance objects to with dict()
    - Handle python2.7 vs 3+ ConfigParser use of readfp (deprecated)
    - Update use of assertEqual(<boolean>, value) to assert<Boolean>(value)
    - replace depricated assertRegexp -> assertRegex
    - Remove useless test-class calls to super class
    - Assign class property accessors a result and use it
    - Fix missing class member in CepkoResultTests
    - Fix Cheetah test import
Commits on Dec 5, 2017
  1. Datasources: Formalize DataSource get_data and related properties.

    blackboxsw committed Dec 5, 2017
    Each DataSource subclass must define its own get_data method. This branch
    formalizes our DataSource class to require that subclasses define an
    explicit dsname for sourcing cloud-config datasource configuration.
    Subclasses must also override the _get_data method or a
    NotImplementedError is raised.
    
    The branch also writes /run/cloud-init/instance-data.json. This file
    contains all meta-data, user-data and vendor-data and a standardized set
    of metadata keys in a json blob which other utilities with root-access
    could make use of. Because some meta-data or user-data is potentially
    sensitive the file is only readable by root.
    
    Generally most metadata content types should be json serializable. If
    specific keys or values are not serializable, those specific values will
    be base64encoded and the key path will be listed under the top-level key
    'base64-encoded-keys' in instance-data.json. If json writing fails due to
    other TypeErrors or UnicodeDecodeErrors, a warning log will be emitted to
    /var/log/cloud-init.log and no instance-data.json will be created.
  2. cli: Add clean and status subcommands

    blackboxsw committed Dec 5, 2017
    The 'cloud-init clean' command allows a user or script to clear cloud-init
    artifacts from the system so that cloud-init sees the system as
    unconfigured upon reboot. Optional parameters can be provided to remove
    cloud-init logs and reboot after clean.
    
    The 'cloud-init status' command allows the user or script to check whether
    cloud-init has finished all configuration stages and whether errors
    occurred. An optional --wait argument will poll on a 0.25 second interval
    until cloud-init configuration is complete. The benefit here is scripts
    can block on cloud-init completion before performing post-config tasks.
  3. tests: consolidate platforms into specific dirs

    smoser committed Dec 5, 2017
    This groups up each test platform into its own directory rather
    than having files spread between four different directories for
    one platform. Platforms tend to be worked on one at a time and
    so having the platforms together makes more sense than apart.
Commits on Dec 1, 2017
  1. ec2: Fix sandboxed dhclient background process cleanup.

    blackboxsw committed with smoser Nov 30, 2017
    There is a race condition where our sandboxed dhclient properly writes a
    lease file but has not yet written a pid file. If the sandbox temporary
    directory is torn down before the dhclient subprocess writes a pidfile
    DataSourceEc2Local gets a traceback and the instance will fallback to
    DataSourceEc2 in the init-network stage. This wastes boot cycles we'd
    rather not spend.
    
    Fix handling of sandboxed dhclient to wait for both pidfile and leasefile
    before proceding. If either file doesn't show in 5 seconds, log a warning
    and return empty lease results {}.
    
    LP: #1735331
Commits on Nov 29, 2017
  1. tests: NoCloudKVMImage do not modify the original local cache image.

    smoser committed Nov 29, 2017
    The NoCloudKVMImage.execute() would modify the image in /srv/citest
    that meant that after the first time you ran a test, the image was
    dirty.
    
    The change here is to make the image operate on a qcow backed image.
    
    Also modify Snapshot to then copy the qcow rather
    than creating another chained qcow. The reason being that the image
    might go away or change after the snapshot has been returned.
    
    Also
     * drop use of 'override_templates' which was only relevant to LXD.
     * NoCloudKVM.create_image() returned an instance before
       now it has create_instance which creates an instance.
     * NoCloudKVMInstance has a 'disk' attribute separate from 'name'
Commits on Nov 22, 2017
Commits on Nov 21, 2017
  1. tests: Use apt-get to install a deb so that depends get resolved.

    smoser committed Nov 21, 2017
    Instead of using 'dpkg -i' to install a package and then running
    apt-get -f install, to hope that it would install needed dependencies
    we can just use 'apt-get' directly to do the install.
    
    The 'dpkg/apt-get -f' path was a problem if the installed deb was
    older than the available deb. In that case it would get replaced.
  2. sysconfig: Correctly render dns and dns search info.

    ryan-mccabe committed with smoser Nov 20, 2017
    Currently when dns and dns search info is provided, it is not rendered
    when outputting to sysconfig format.
    
    This patch causes the DNS and DOMAIN lines to be written out rendering
    sysconfig.
    
    LP: #1705804
Commits on Nov 20, 2017
  1. integration test: replace curtin test ppa with cloud-init test ppa.

    smoser committed Nov 20, 2017
    Cloud-init integration tests should not depend on a curtin test ppa.
    We already had a cloud-init test ppa for explicitly this purpose.
    Just use it instead.
  2. EC2: Fix bug using fallback_nic and metadata when restoring from cache.

    smoser committed Nov 20, 2017
    If user upgraded to new cloud-init and attempted to run 'cloud-init init'
    without rebooting, cloud-init restores the datasource object from pickle.
    The older version pickled datasource object had no value for
    _network_config or fallback_nic. This caused the Ec2 datasource to attempt
    to reconfigure networking with a None fallback_nic. The pickled object
    also cached an older version of ec2 metadata which didn't contain network
    information.
    
    This branch does two things:
     - Add a fallback_interface property to DatasourceEC2 to support reading the
       old .fallback_nic attribute if it was set. New versions will
       call net.find_fallback_nic() if there has not been one found.
     - Re-crawl metadata if we are on Ec2 and don't have a 'network' key in
       metadata
    
    LP: #1732917
Commits on Nov 19, 2017
  1. EC2: Kill dhclient process used in sandbox dhclient.

    smoser committed with blackboxsw Nov 19, 2017
    dhclient runs, obtains a address and then backgrounds itself.
    cloud-init did not take care to kill it after it was done with it.
    After it has run and created the leases, we can kill it.
    
    LP: #1732964
Commits on Nov 17, 2017
  1. ntp: fix configuration template rendering for openSUSE and SLES

    blackboxsw committed Nov 17, 2017
    Add opensuse distro support to cc_ntp module.
    
    LP: #1726572
  2. centos: Provide the failed #include url in error messages

    blackboxsw committed Nov 17, 2017
    On python 2.7 and earlier (CentOS 6 & 7), UrlErrors raised by requests do
    not report the url which failed.  In such cases, append the url if not
    present in the error message.
    
    This fixes nightly CI failures at
    https://jenkins.ubuntu.com/server/view/cloud-init/.
Commits on Nov 13, 2017
  1. Catch UrlError when #include'ing URLs

    ajorg-aws committed with smoser Mar 6, 2014
    Without this the entire stage can fail, which will leave an instance
    unaccessible.
    
    Reviewed-by: Tom Kirchner <tjk@amazon.com>
    Reviewed-by: Matt Nierzwicki <nierzwic@amazon.com>
    Reviewed-by: Ben Cressey <bcressey@amazon.com>