class Tinet::Command::Down

Public Instance Methods

run() click to toggle source
# File lib/tinet/command/down.rb, line 6
def run
  exec_pre_cmd
  exec_pre_down

  nodes.each do |node|
    node.interfaces.each do |interface|
      if interface.type == :phys
        detach_physnet_from_docker("#{namespaced(node.name)}", interface.name)
      end
    end
  end

  nodes.each do |node|
    case node.type
    when :docker
      sudo "docker stop #{namespaced(node.name)}"
    when :netns
      sudo "ip netns del #{namespaced(node.name)}"
    end
  end

  switches.each do |switch|
    sudo "ovs-vsctl del-br #{namespaced(switch.name)}"
  end

  exec_post_down
end

Private Instance Methods

detach_physnet_from_docker(container, ifname) click to toggle source
# File lib/tinet/command/down.rb, line 36
def detach_physnet_from_docker(container, ifname)
  mount_docker_netns(container, container)
  sudo "ip netns exec #{container} ip link set #{ifname} netns 1"
  sudo "ip netns del #{container}"
end