** 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
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs