** Description changed:

+ === 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 
+ % 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 
+  % 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 
+ % lsb_release -rd
  Description:  Ubuntu 16.04.2 LTS
  Release:      16.04
  
  % test -e /writable/system-data/var/lib/snapd; echo $?
  1

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1689944

Title:
  util.system_is_snappy needs additional checks

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

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to