← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1689944] Re: util.system_is_snappy needs additional checks

 

This bug was fixed in the package cloud-init - 0.7.9-153-g16a7302f-
0ubuntu1~17.04.1

---------------
cloud-init (0.7.9-153-g16a7302f-0ubuntu1~17.04.1) zesty-proposed; urgency=medium

  * New upstream snapshot.
    - net: fix reading and rendering addresses in cidr format.
      [Dimitri John Ledkov] (LP: #1689346, #1684349)
    - disk_setup: udev settle before attempting partitioning or fs creation.
      (LP: #1692093)
    - GCE: Update the attribute used to find instance SSH keys.
      [Daniel Watkins] (LP: #1693582)
    - nplan: For bonds, allow dashed or underscore names of keys.
      [Dimitri John Ledkov] (LP: #1690480)
    - tests: python2.6: fix unit tests usage of assertNone and format.
    - tests: update docstring on test_configured_list_with_none
    - fix tools/ds-identify to not write None twice.
    - tox/build: do not package depend on style requirements.
    - tests: ntp: Restructure cc_ntp unit tests. [Chad Smith]
    - flake8: move the pinned version of flake8 up to 3.3.0
    - tests: Apply workaround for snapd bug in test case. [Joshua Powers]
    - RHEL/CentOS: Fix dual stack IPv4/IPv6 configuration.  [Andreas Karis]
    - disk_setup: fix several issues with gpt disk partitions. (LP: #1692087)
    - function spelling & docstring update [Joshua Powers]
    - tests: Fix unittest bug in ntp tests. [Joshua Powers]
    - tox: move pylint target to 1.7.1
    - Fix get_interfaces_by_mac for empty macs (LP: #1692028)
    - DigitalOcean: remove routes except for the public interface.
      [Ben Howard] (LP: #1681531.)
    - netplan: pass macaddress, when specified, for vlans
      [Dimitri John Ledkov] (LP: #1690388)
    - doc: various improvements for the docs on cc_users_groups.
      [Felix Dreissig]
    - cc_ntp: write template before installing and add service restart
      [Ryan Harper] (LP: #1645644)
    - tests: fix cloudstack unit tests to avoid accessing
      /var/lib/NetworkManager [Lars Kellogg-Stedman]
    - tests: fix hardcoded path to mkfs.ext4 [Joshua Powers] (LP: #1691517)
    - Actually skip warnings when .skip file is present.
      [Chris Brinker] (LP: #1691551)
    - netplan: fix netplan render_network_state signature.
      [Dimitri John Ledkov] (LP: #1685944)
    - Azure: fix reformatting of ephemeral disks on resize to large types.
      (LP: #1686514)
    - make deb: Add devscripts dependency for make deb.
      Cleanup packages/bddeb. [Chad Smith] (LP: #1685935)
    - openstack: fix log message copy/paste typo in _get_url_settings
      [Lars Kellogg-Stedman]
    - unittests: fix unittests run on centos [Joshua Powers]
    - Improve detection of snappy to include os-release and kernel cmdline.
      (LP: #1689944)
    - Add address to config entry generated by _klibc_to_config_entry.
      [Julien Castets] (LP: #1691135)
    - sysconfig: Raise ValueError when multiple default gateways are present.
      [Chad Smith] (LP: #1687485)
    - FreeBSD: improvements and fixes for use on Azure
      [Hongjiang Zhang] (LP: #1636345)
    - Add unit tests for ds-identify, fix Ec2 bug found.
    - fs_setup: if cmd is specified, use shell interpretation.
      [Paul Meyer] (LP: #1687712)
    - doc: document network configuration defaults policy and formats.
      [Ryan Harper]
    - doc: Fix name of "uri" key in docs for "cc_apt_configure" module
      [Felix Dreissig]
    - tests: Enable artful in integration tests [Joshua Powers]

 -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 26 May 2017 16:14:09 -0400

** Changed in: cloud-init (Ubuntu Zesty)
       Status: Fix Committed => Fix Released

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to cloud-init.
https://bugs.launchpad.net/bugs/1689944

Title:
  util.system_is_snappy needs additional checks

Status in cloud-init:
  Fix Committed
Status in cloud-init package in Ubuntu:
  Fix Released
Status in cloud-init source package in Xenial:
  Fix Released
Status in cloud-init source package in Yakkety:
  Fix Released
Status in cloud-init source package in Zesty:
  Fix Released

Bug description:
  === Begin SRU Template ===
  [Impact]
  Cloud-init when running in Ubuntu core does not recognize it is
  running on a 'snappy.  As a result the snappy specific code paths are not
  taken.

  [Test Case]
  There are fairly extensive unit tests added to cover the code path
  that has been added to detect when system is snappy.  See the upstream
  commit link below for that.  Those tests run on package build, so
  the fact that this is in the archive means those have run.

  In addition to that we will:
  a.) boot an instance of Ubuntu in lxd with cloud-init from proposed
      to verify it is not regressed.
  b.) craft an lxd instance with /etc/os-release that appears to be snappy.
      and then verify via log inspection that it thinks it is.

  The test is admittedly superficial, the real end test is having cloud-init
  inside a ubuntu core image and it recognizing that it is snappy there.
  That test is much more involved.

  ## launch an instance
  $ release=xenial
  $ ref=$release-proposed
  $ lxc-proposed-snapshot --proposed --publish $release $ref
  $ lxc launch $ref $name
  $ lxc exec $name

  ## let it boot
  $ sleep 10
  ## check log for warnings
  $ lxc exec $name -- cat /run/cloud-init/result.json
  {
   "v1": {
    "datasource": "DataSourceNoCloud [seed=/var/lib/cloud/seed/nocloud-net][dsmode=net]",
    "errors": []
   }
  }

  $ lxc exec $name -- grep WARN /var/log/cloud-init.log || echo no warnings
  no warnings

  
  ## write to /etc/os-release so it thinks it is Ubuntu core.
  $ lxc exec $name -- sh -c 'echo ID=ubuntu-core >> /etc/os-release'
  $ lxc exec $name -- sh -c 'd=/etc/system-image; mkdir -p $d; cd $d; echo ubuntu-core > channel.ini'

  ## Now clear the instance state so it thinks it is first boot.
  $ lxc exec $name -- sh -c 'rm -Rf /var/log/cloud-init*'
  $ lxc exec $name -- sh -xec 'cd /var/lib/cloud; mv seed .x; rm -Rf *; mv .x seed'
  + cd /var/lib/cloud
  + mv seed .x
  + rm -Rf data handlers instance instances scripts sem
  + mv .x seed

  $ lxc restart $name
  $ sleep 10
  $ lxc exec $name -- grep "running on snappy" /var/log/cloud-init.log
  2017-06-01 20:53:24,346 - cc_apt_configure.py[DEBUG]: Nothing to do: No apt config and running on snappy

  [Regression Potential] 
  The regression potential would be
  a.) cloud-init falsely identifies it is running on snappy when it is not.
  b.) cloud-init does not recognize it is on snappy when it is.

  [Other Info]
  Upstream commit at
    https://git.launchpad.net/cloud-init/commit/?id=4bcc947301b

  lxc-proposed-snapshot is
    https://git.launchpad.net/~smoser/cloud-init/+git/sru-info/tree/bin/lxc-proposed-snapshot
  It publishes an image to lxd with proposed enabled and cloud-init upgraded.

  === End SRU Template ===

  Recent core snap images (edge channel revision 1886) do not contain
  the previously known files used to detect that a system is ubuntu
  core.

  In this bug, we should collect as many known paths/files/commands so
  we're hopefully defensive against further changes.

  Ubuntu Core 16
  --------------
  % cat etc/os-release
  NAME="Ubuntu Core"
  VERSION="16"
  ID=ubuntu-core
  PRETTY_NAME="Ubuntu Core 16"
  VERSION_ID="16"
  HOME_URL="http://www.snapcraft.io/";
  BUG_REPORT_URL="http://bugs.launchpad.net/snappy/";

  % snap version
  snap    2.24+201704201952.git.2ba71ec~ubuntu16.04.1
  snapd   2.24+201704201952.git.2ba71ec~ubuntu16.04.1
  series  16
  kernel  4.4.0-59-generic

  % lsb_release -rd
  bash: lsb_release: command not found

  % test -e /writable/system-data/var/lib/snapd; echo $?
  0

  Ubuntu 16.04 (Classic)
  -----------------------
   % cat /etc/os-release
  NAME="Ubuntu"
  VERSION="16.04.2 LTS (Xenial Xerus)"
  ID=ubuntu
  ID_LIKE=debian
  PRETTY_NAME="Ubuntu 16.04.2 LTS"
  VERSION_ID="16.04"
  HOME_URL="http://www.ubuntu.com/";
  SUPPORT_URL="http://help.ubuntu.com/";
  BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/";
  VERSION_CODENAME=xenial
  UBUNTU_CODENAME=xenial

  % snap version
  snap    unknown
  snapd   2.24.1
  series  16
  ubuntu  16.04
  kernel  4.4.0-75-generic

  % lsb_release -rd
  Description:	Ubuntu 16.04.2 LTS
  Release:	16.04

  % test -e /writable/system-data/var/lib/snapd; echo $?
  1

To manage notifications about this bug go to:
https://bugs.launchpad.net/cloud-init/+bug/1689944/+subscriptions