diff --git a/devstack/plugin.sh b/devstack/plugin.sh index e38a5834bf..42f6b827be 100644 --- a/devstack/plugin.sh +++ b/devstack/plugin.sh @@ -100,48 +100,42 @@ function iniset_conditional { } -# tweak_nova() - update the nova hypervisor configuration if possible -function tweak_nova { +# configure_nova_kvm() - update the nova hypervisor configuration if possible +function configure_nova_kvm { + cpu="unknown" + if [ -e /sys/module/kvm_*/parameters/nested ]; then reconfigure_nova="F" if [ -e /sys/module/kvm_intel/parameters/nested ]; then + cpu="Intel" if [[ "$(cat /sys/module/kvm_*/parameters/nested)" == "Y" ]]; then reconfigure_nova="Y" - else - echo_summary "Found Intel with no support for nested KVM." fi elif [ -e /sys/module/kvm_amd/parameters/nested ]; then + cpu="AMD" if [[ "$(cat /sys/module/kvm_*/parameters/nested)" == "1" ]]; then reconfigure_nova="Y" - else - echo_summary "Found AMD with no support for nested KVM." fi fi if [ "${reconfigure_nova}" == "Y" ]; then - echo_summary "Configuring Nova to use KVM." - NOVA_CONF_DIR=${NOVA_CONF_DIR:-/etc/nova} NOVA_CONF=${NOVA_CONF:-${NOVA_CONF_DIR}/nova.conf} iniset $NOVA_CONF libvirt cpu_mode "none" iniset $NOVA_CONF libvirt virt_type "kvm" - else - virt_type=$(iniget $NOVA_CONF libvirt virt_type) - echo_summary "Nested hypervisor not supported, using ${virt_type}." fi - else - virt_type=$(iniget $NOVA_CONF libvirt virt_type) - echo_summary "Unable to configure Nova to use KVM, using ${virt_type}." - echo "Unable to configure Nova to use KVM, using ${virt_type}." fi + + virt_type=$(iniget $NOVA_CONF libvirt virt_type) + echo "configure_nova_kvm: using virt_type: ${virt_type} for cpu: ${cpu}." } # configure_trove() - Set config files, create data dirs, etc function configure_trove { setup_develop $TROVE_DIR - tweak_nova + configure_nova_kvm # Create the trove conf dir and cache dirs if they don't exist sudo install -d -o $STACK_USER ${TROVE_CONF_DIR} ${TROVE_AUTH_CACHE_DIR}