From db0655b77c9d1c6254d86111ea50b734d579fa91 Mon Sep 17 00:00:00 2001 From: Daniel Clavijo Coca Date: Tue, 21 Sep 2021 10:41:39 -0500 Subject: [PATCH] B OpenNebula/one#3058: Apply fix for LXC (#1471) --- src/vmm_mad/remotes/lib/lxc/container.rb | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/vmm_mad/remotes/lib/lxc/container.rb b/src/vmm_mad/remotes/lib/lxc/container.rb index c68521ad97..547aef6f82 100644 --- a/src/vmm_mad/remotes/lib/lxc/container.rb +++ b/src/vmm_mad/remotes/lib/lxc/container.rb @@ -115,6 +115,11 @@ class Container def reboot rc = @client.stop(@one.vm_name) + # Remove nic from ovs-switch if needed + @one.get_nics.each do |nic| + del_bridge_port(nic) # network driver matching implemented here + end + return false unless rc @client.start(@one.vm_name) @@ -161,4 +166,18 @@ class Container @client.info(@one.vm_name)['State'] == STATES[:running] end + def del_bridge_port(nic) + return true unless /ovswitch/ =~ nic['VN_MAD'] + + cmd = 'sudo -n ovs-vsctl --if-exists del-port '\ + "#{nic['BRIDGE']} #{nic['TARGET']}" + + rc, _o, e = Command.execute(cmd, false) + + return true if rc.zero? + + OpenNebula.log_error "#{__method__}: #{e}" + false + end + end