diff --git a/src/vmm_mad/remotes/kvm/cancel b/src/vmm_mad/remotes/kvm/cancel index 204d39b98e..86e7e6379a 100755 --- a/src/vmm_mad/remotes/kvm/cancel +++ b/src/vmm_mad/remotes/kvm/cancel @@ -32,8 +32,8 @@ function destroy_and_monitor virsh --connect $LIBVIRT_URI destroy $deploy_id - # Destroy vGPU - sudo /var/tmp/one/vgpu "DELETE" "$DATASTORE/vm.xml" + # Destroy vGPU (only if suported by node) + (sudo -l | grep -q vgpu) && sudo /var/tmp/one/vgpu "DELETE" "$DATASTORE/vm.xml" virsh --connect $LIBVIRT_URI --readonly dominfo $deploy_id > /dev/null 2>&1 [ "x$?" != "x0" ] diff --git a/src/vmm_mad/remotes/kvm/deploy b/src/vmm_mad/remotes/kvm/deploy index 6a3d4b51e7..b71f91d732 100755 --- a/src/vmm_mad/remotes/kvm/deploy +++ b/src/vmm_mad/remotes/kvm/deploy @@ -37,7 +37,8 @@ if [ -n "${nvram}" ]; then fi # Create vGPU following NVIDIA official guide: https://docs.nvidia.com/grid/latest/pdf/grid-vgpu-user-guide.pdf -sudo /var/tmp/one/vgpu "CREATE" "$DEP_FILE_LOCATION/vm.xml" +# Only if supported by node +(sudo -l | grep -q vgpu) && sudo /var/tmp/one/vgpu "CREATE" "$DEP_FILE_LOCATION/vm.xml" DATA=`virsh --connect $LIBVIRT_URI create $DEP_FILE` diff --git a/src/vmm_mad/remotes/kvm/shutdown b/src/vmm_mad/remotes/kvm/shutdown index fb4452b60a..ac778cc646 100755 --- a/src/vmm_mad/remotes/kvm/shutdown +++ b/src/vmm_mad/remotes/kvm/shutdown @@ -73,8 +73,8 @@ retry $TIMEOUT monitor force_shutdown "$deploy_id" \ "virsh --connect $LIBVIRT_URI destroy $deploy_id" -# Destroy vGPU -sudo /var/tmp/one/vgpu "DELETE" "$DATASTORE/vm.xml" +# Destroy vGPU. Only if supported by node +(sudo -l | grep -q vgpu) && sudo /var/tmp/one/vgpu "DELETE" "$DATASTORE/vm.xml" # Compact memory if [ "x$CLEANUP_MEMORY_ON_STOP" = "xyes" ]; then diff --git a/src/vnm_mad/remotes/lib/command.rb b/src/vnm_mad/remotes/lib/command.rb index 075eaace12..f5d79382be 100644 --- a/src/vnm_mad/remotes/lib/command.rb +++ b/src/vnm_mad/remotes/lib/command.rb @@ -37,6 +37,16 @@ module VNMMAD :ipset => 'sudo -n ipset' } + # Adjust :ip[6]tables commands to work with legacy version + stdout = Open3.capture3('iptables --version')[0] + regex = /.*v(?\d+.\d+.\d+)/ + iptables_version = Gem::Version.new(stdout.match(regex)[:version]) + + if Gem::Version.new('1.6.1') > iptables_version + COMMANDS[:iptables] = 'sudo -n iptables -w 3' + COMMANDS[:ip6tables] = 'sudo -n ip6tables -w 3' + end + # Represents an Array of commands to be executed by the networking # drivers # The commands class Commands < Array