From 993e87e8f81b82fc40d0f068e971a0897393fcb0 Mon Sep 17 00:00:00 2001 From: "Ruben S. Montero" Date: Wed, 14 Apr 2021 16:46:07 +0200 Subject: [PATCH] M #-: Improve bridge delete condition (cherry picked from commit f4562df95dd61ffa4fcb50171f93a97226f1feaf) --- src/vnm_mad/remotes/lib/no_vlan.rb | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/vnm_mad/remotes/lib/no_vlan.rb b/src/vnm_mad/remotes/lib/no_vlan.rb index cc7e8d6dce..824b297f11 100644 --- a/src/vnm_mad/remotes/lib/no_vlan.rb +++ b/src/vnm_mad/remotes/lib/no_vlan.rb @@ -39,11 +39,11 @@ module VNMMAD create_bridge(@nic) # Return if vlan device is already in the bridge. - next if !nic[:phydev] || @bridges[@nic[:bridge]].include? @nic[:phydev] + next if !@nic[:phydev] || @bridges[@nic[:bridge]].include? @nic[:phydev] # Add phydev device to the bridge. OpenNebula.exec_and_log("#{command(:ip)} link set " \ - "#{@nic[:phydev]} master #{@nic[:bridge]}") + "#{@nic[:phydev]} master #{@nic[:bridge]}") @bridges[@nic[:bridge]] << @nic[:phydev] end @@ -78,9 +78,16 @@ module VNMMAD next if @nic[:conf][:keep_empty_bridge] # Return if the phydev device is not the only left device in - # the bridge. - next if (@bridges[@nic[:bridge]].length > 1) || + # the bridge.A + if @nic[:phydev].nil? + keep = !@bridges[@nic[:bridge]].empty? + else + + keep = @bridges[@nic[:bridge]].length > 1 || !@bridges[@nic[:bridge]].include?(@nic[:phydev]) + end + + next if keep # Delete the bridge. OpenNebula.exec_and_log("#{command(:ip)} link delete"\