diff --git a/files/debs/nova b/files/debs/nova index 58dad411a8..5e14aec836 100644 --- a/files/debs/nova +++ b/files/debs/nova @@ -10,7 +10,9 @@ iputils-arping kpartx libjs-jquery-tablesorter # Needed for coverage html reports libmysqlclient-dev -libvirt-bin # NOPRIME +libvirt-bin # dist:xenial NOPRIME +libvirt-clients # not:xenial NOPRIME +libvirt-daemon-system # not:xenial NOPRIME libvirt-dev # NOPRIME mysql-server # NOPRIME parted diff --git a/functions-common b/functions-common index ec68644757..a6b0ff13b2 100644 --- a/functions-common +++ b/functions-common @@ -1148,6 +1148,19 @@ function _parse_package_files { fi fi + # Look for # not:xxx in comment + if [[ $line =~ (.*)#.*not:([^ ]*) ]]; then + # We are using BASH regexp matching feature. + package=${BASH_REMATCH[1]} + distros=${BASH_REMATCH[2]} + # In bash ${VAR,,} will lowercase VAR + # Look for a match in the distro list + if [[ ${distros,,} =~ ${DISTRO,,} ]]; then + # If match then skip this package + inst_pkg=0 + fi + fi + if [[ $inst_pkg = 1 ]]; then echo $package fi @@ -1166,6 +1179,8 @@ function _parse_package_files { # - ``# NOPRIME`` defers installation to be performed later in `stack.sh` # - ``# dist:DISTRO`` or ``dist:DISTRO1,DISTRO2`` limits the selection # of the package to the distros listed. The distro names are case insensitive. +# - ``# not:DISTRO`` or ``not:DISTRO1,DISTRO2`` limits the selection +# of the package to the distros not listed. The distro names are case insensitive. function get_packages { local xtrace xtrace=$(set +o | grep xtrace) diff --git a/lib/nova_plugins/functions-libvirt b/lib/nova_plugins/functions-libvirt index 0369b7596b..47605af991 100644 --- a/lib/nova_plugins/functions-libvirt +++ b/lib/nova_plugins/functions-libvirt @@ -62,7 +62,11 @@ function install_libvirt { if is_ubuntu; then install_package qemu-system - install_package libvirt-bin libvirt-dev + if [[ ${DISTRO} == "xenial" ]]; then + install_package libvirt-bin libvirt-dev + else + install_package libvirt-clients libvirt-daemon-system libvirt-dev + fi pip_install_gr libvirt-python #pip_install_gr elif is_fedora || is_suse; then