Xenial autopkgtest was re-run and passes https://objectstorage.prodstack4-5.canonical.com/v1/AUTH_77e2ada1e7a84929a74ba3b87153c0ac /autopkgtest-xenial/xenial/armhf/u/update- manager/20201227_203731_ce794@/log.gz
** Description changed: [Impact] Changes to wording regarding the ESM support available for Trusty. Additionally, reorder command output after UX review. [Test Case] test_motd.py has unit tests for all of the combinations of upgrade types possible. It's also possible to run "/usr/lib/update-notifier/apt-check --human-readable" on a system with ESM configured (enabled or disabled). #!/bin/bash + + + #!/bin/bash # # SRU Verification update-notifier + ubuntu=advantage-tools # Test procedure: # - launch container Trusty, Xenial or Bionic # - Install ubuntu-advantage-tools from https://launchpad.net/~ua-client/+archive/ubuntu/proposed which supports esm on trusty, xenial, bionic, and focal # - Attach container to UA subscription (which activates the ESM APT repos # - run apt_check --human-readable to assert ESM pkg counts ARE NOT reported # - Upgrade update-notifier to -proposed # - re-run apt_check --human-readable to assert ESM pkg counts ARE reported set -e UA_TOKEN=$1 if [ -z "$1" ]; then echo "Usage: $0 <contractTOKEN>" exit 1 fi - # sources: - # ua.proposed: - # source: deb http://ppa.launchpad.net/canonical-server/ua-client-daily/ubuntu \$RELEASE main - # keyid: 94E187AD53A59D1847E4880F8A295C4FB8B190B7 - cat > test-uru.yaml <<EOF + cat > test-un.yaml <<EOF #cloud-config ssh_import_id: [chad.smith] package_update: true package_upgrade: true apt: sources: - ua.proposed: deb http://ppa.launchpad.net/ua-client/proposed/ubuntu \$RELEASE main - keyid: 6E34E7116C0BC933 + ua.proposed: + source: deb http://ppa.launchpad.net/ua-client/staging/ubuntu \$RELEASE main + keyid: 6E34E7116C0BC933 EOF - - - cat > setup_proposed.sh <<EOF - #/bin/bash - mirror=http://archive.ubuntu.com/ubuntu + cat > setup_proposed.sh <<EOF + #/bin/bash + mirror=http://archive.ubuntu.com/ubuntu echo deb \$mirror \$(lsb_release -sc)-proposed main | tee /etc/apt/sources.list.d/proposed.list - apt-get update -q - apt-get install -qy update-notifier - EOF + apt-get update -q + apt-get install -qy update-notifier-common + EOF wait_for_boot() { local vm=$1 release=$2 echo "--- Wait for cloud-init to finish" sleep 5 - lxc exec ${vm} -- cloud-init status --wait --long + lxc exec ${vm} -- cloud-init status --wait --long } - for release in xenial bionic focal; do + for release in xenial bionic; do echo "--- BEGIN $release update-notifier testing" vm=test-sru-$release echo "--- Launch cloud-init with ppa:ua-client/proposed enabled" lxc launch ubuntu-daily:${release} ${vm} -c user.user-data="$(cat test-un.yaml)" wait_for_boot ${vm} ${release} echo "--- Attach Ubuntu-Advantage, enabling services" lxc exec ${vm} -- ua attach ${UA_TOKEN} - echo "--- Check Original MOTD output from apt_check before upgrade" - lxc exec ${vm} -- /usr/lib/update-notifier/apt-check --human-readable + case "$release" in + xenial) + UPGRADE_MATCH="0 updates are security updates"; + downrev_pkg="libkrad0=1.13.2+dfsg-5";; + bionic) + UPGRADE_MATCH="1 update is a security update" + downrev_pkg="libkrad0=1.16-2build1";; + focal) + UPGRADE_MATCH="0 updates are security updates" + downrev_pkg="hello=2.10-2ubuntu2";; + groovy) + UPGRADE_MATCH="1 of these updates is a security update" + downrev_pkg="apport-retrace=2.20.11-0ubuntu50";; + esac + echo "-- Downgrading package to stable ubuntu release $downrev_pkg" + lxc exec ${vm} -- apt-get install $downrev_pkg --yes -q + lxc exec ${vm} -- dpkg-query --show update-notifier + if [ "$release" = "xenial" ]; then + # Xenial-updates have already included esm package updates. + # Drop the xenial-updates apt source so we can be sure we are seeing only + # available esm updates + lxc exec ${vm} -- sed -e "/xenial-updates/ s/^#*/#/" -i /etc/apt/sources.list + lxc exec ${vm} -- sed -e "/xenial-security/ s/^#*/#/" -i /etc/apt/sources.list + lxc exec ${vm} -- apt-get update + fi + MOTD=`lxc exec ${vm} -- /usr/lib/update-notifier/apt-check --human-readable` + echo ${MOTD} + POST_UPGRADE_MSG="UA Infra: Extended Security Maintenance (ESM) is enabled" + echo $MOTD | grep -q "${POST_UPGRADE_MSG}" && echo "FAILURE: found ${POST_UPGRADE_MSG}" || echo "SUCCESS: did not find ${POST_UPGRADE_MSG=}" + echo $MOTD | grep -q "${UPGRADE_MATCH}" && echo "SUCCESS: found ${UPGRADE_MATCH} security updates pre-upgrade" || echo "FAILURE: did not find expected ${UPGRADE_MATCH} ESM security updates" echo "--- Upgrade update-notifier from -proposed" lxc file push setup_proposed.sh ${vm}/ - lxc exec ${vm} -- bash /setup-proposed.sh | grep update-notifier - echo "--- Check upadate-notifier(-proposed) MOTD output from apt_check after upgrade" + lxc exec ${vm} -- bash /setup_proposed.sh | grep update-notifier + lxc exec ${vm} -- dpkg-query --show update-notifier + MOTD=`lxc exec ${vm} -- /usr/lib/update-notifier/apt-check --human-readable` + echo $MOTD | grep -q "${POST_UPGRADE_MSG}" && echo "SUCCESS: found ${POST_UPGRADE_MSG}" || echo "FAILURE: did not find ${POST_UPGRADE_MSG=}" + echo "--- Expect non-zero upgradable packages for MOTD from apt_check AFTER upgrade" lxc exec ${vm} -- /usr/lib/update-notifier/apt-check --human-readable + lxc exec ${vm} -- /usr/lib/update-notifier/apt-check --human-readable | grep '1 of these updates is a security update' && echo "SUCCESS: found 1 ESM security updates pre-upgrade" || echo "FAILURE: did not find expected 1 ESM security updates" done [Regression Potential] Only strings are changing in this update and this could be considered a follow up SRU to bug 1822340 which created no issues. [Notice] This is only being SRU'ed to Ubuntu 14.04 (as with the previous SRU) as Ubuntu 16.04 and Ubuntu 18.04 will have some additional changes. -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1842508 Title: motd messaging changes regarding apt updates To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/update-notifier/+bug/1842508/+subscriptions -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
