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
| ... | ... |
@@ -599,8 +599,12 @@ VIRT_DRIVER=${VIRT_DRIVER:-$DEFAULT_VIRT_DRIVER}
|
| 599 | 599 |
case "$VIRT_DRIVER" in |
| 600 | 600 |
ironic|libvirt) |
| 601 | 601 |
LIBVIRT_TYPE=${LIBVIRT_TYPE:-kvm}
|
| 602 |
- if [[ "$os_VENDOR" =~ (Debian) ]]; then |
|
| 603 |
- LIBVIRT_GROUP=libvirt |
|
| 602 |
+ if [[ "$os_VENDOR" =~ (Debian|Ubuntu) ]]; then |
|
| 603 |
+ # The groups change with newer libvirt. Older Ubuntu used |
|
| 604 |
+ # 'libvirtd', but now uses libvirt like Debian. Do a quick check |
|
| 605 |
+ # to see if libvirtd group already exists to handle grenade's case. |
|
| 606 |
+ LIBVIRT_GROUP=$(cut -d ':' -f 1 /etc/group | grep 'libvirtd$' || true) |
|
| 607 |
+ LIBVIRT_GROUP=${LIBVIRT_GROUP:-libvirt}
|
|
| 604 | 608 |
else |
| 605 | 609 |
LIBVIRT_GROUP=libvirtd |
| 606 | 610 |
fi |
| ... | ... |
@@ -67,6 +67,33 @@ else |
| 67 | 67 |
echo_summary "WARNING: unable to reserve keystone ports" |
| 68 | 68 |
fi |
| 69 | 69 |
|
| 70 |
+# Ubuntu Cloud Archive |
|
| 71 |
+#--------------------- |
|
| 72 |
+# We've found that Libvirt on Xenial is flaky and crashes enough to be |
|
| 73 |
+# a regular top e-r bug. Opt into Ubuntu Cloud Archive if on Xenial to |
|
| 74 |
+# get newer Libvirt. |
|
| 75 |
+if [[ "$DISTRO" = "xenial" ]]; then |
|
| 76 |
+ # This pulls in apt-add-repository |
|
| 77 |
+ install_package "software-properties-common" |
|
| 78 |
+ # Use UCA for newer libvirt. Should give us libvirt 2.5.0. |
|
| 79 |
+ if [[ -f /etc/ci/mirror_info.sh ]] ; then |
|
| 80 |
+ # If we are on a nodepool provided host and it has told us about where |
|
| 81 |
+ # we can find local mirrors then use that mirror. |
|
| 82 |
+ source /etc/ci/mirror_info.sh |
|
| 83 |
+ |
|
| 84 |
+ sudo apt-add-repository -y "deb $NODEPOOL_UCA_MIRROR xenial-updates/ocata main" |
|
| 85 |
+ |
|
| 86 |
+ # Disable use of libvirt wheel here as presence of mirror implies |
|
| 87 |
+ # presence of cached wheel build against older libvirt binary. |
|
| 88 |
+ # TODO(clarkb) figure out how to use wheel again. |
|
| 89 |
+ sudo bash -c 'echo "no-binary = libvirt-python" >> /etc/pip.conf' |
|
| 90 |
+ else |
|
| 91 |
+ # Otherwise use upstream UCA |
|
| 92 |
+ sudo add-apt-repository -y cloud-archive:ocata |
|
| 93 |
+ fi |
|
| 94 |
+ sudo apt-get update |
|
| 95 |
+fi |
|
| 96 |
+ |
|
| 70 | 97 |
|
| 71 | 98 |
# Python Packages |
| 72 | 99 |
# --------------- |