From c9a9e415b9a955525a407b78650f93e9193c8117 Mon Sep 17 00:00:00 2001 From: Clark Boylan Date: Wed, 29 Mar 2017 10:28:55 -0700 Subject: [PATCH] Test using UCA for libvirt 2.5.0 We have had issues with libvirt 1.3.1 which is stock on Xenial. Try using 2.5.0 from UCA instead. Related-Bug: 1643911 Related-Bug: 1646779 Related-Bug: 1638982 Change-Id: Ia4434541c71f050fe1ffb54f4c4c1e302391d00b --- stackrc | 8 ++++++-- tools/fixup_stuff.sh | 27 +++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/stackrc b/stackrc index b53f791380..fc03f49f29 100644 --- a/stackrc +++ b/stackrc @@ -599,8 +599,12 @@ VIRT_DRIVER=${VIRT_DRIVER:-$DEFAULT_VIRT_DRIVER} case "$VIRT_DRIVER" in ironic|libvirt) LIBVIRT_TYPE=${LIBVIRT_TYPE:-kvm} - if [[ "$os_VENDOR" =~ (Debian) ]]; then - LIBVIRT_GROUP=libvirt + if [[ "$os_VENDOR" =~ (Debian|Ubuntu) ]]; then + # The groups change with newer libvirt. Older Ubuntu used + # 'libvirtd', but now uses libvirt like Debian. Do a quick check + # to see if libvirtd group already exists to handle grenade's case. + LIBVIRT_GROUP=$(cut -d ':' -f 1 /etc/group | grep 'libvirtd$' || true) + LIBVIRT_GROUP=${LIBVIRT_GROUP:-libvirt} else LIBVIRT_GROUP=libvirtd fi diff --git a/tools/fixup_stuff.sh b/tools/fixup_stuff.sh index 4dec95eb4d..6f680b860e 100755 --- a/tools/fixup_stuff.sh +++ b/tools/fixup_stuff.sh @@ -67,6 +67,33 @@ else echo_summary "WARNING: unable to reserve keystone ports" fi +# Ubuntu Cloud Archive +#--------------------- +# We've found that Libvirt on Xenial is flaky and crashes enough to be +# a regular top e-r bug. Opt into Ubuntu Cloud Archive if on Xenial to +# get newer Libvirt. +if [[ "$DISTRO" = "xenial" ]]; then + # This pulls in apt-add-repository + install_package "software-properties-common" + # Use UCA for newer libvirt. Should give us libvirt 2.5.0. + if [[ -f /etc/ci/mirror_info.sh ]] ; then + # If we are on a nodepool provided host and it has told us about where + # we can find local mirrors then use that mirror. + source /etc/ci/mirror_info.sh + + sudo apt-add-repository -y "deb $NODEPOOL_UCA_MIRROR xenial-updates/ocata main" + + # Disable use of libvirt wheel here as presence of mirror implies + # presence of cached wheel build against older libvirt binary. + # TODO(clarkb) figure out how to use wheel again. + sudo bash -c 'echo "no-binary = libvirt-python" >> /etc/pip.conf' + else + # Otherwise use upstream UCA + sudo add-apt-repository -y cloud-archive:ocata + fi + sudo apt-get update +fi + # Python Packages # ---------------