class OVSImager::LinuxBridge

Public Class Methods

new(ns=[]) click to toggle source
# File lib/ovsimager/linuxbridge.rb, line 5
def initialize(ns=[])
  brctl_out = exec_brtcl
  @br = parse brctl_out
  ns.each do |n|
    brctl_out = exec_brtcl(n)
    @br = @br.merge parse(brctl_out, ns)
  end
end

Public Instance Methods

exec_brtcl(ns=nil) click to toggle source
# File lib/ovsimager/linuxbridge.rb, line 18
def exec_brtcl(ns=nil)
  ns_prefix = ns ? "ip netns exec #{ns} " : ''
  Utils.execute(ns_prefix + 'brctl show', !!ns)
end
to_hash() click to toggle source
# File lib/ovsimager/linuxbridge.rb, line 14
def to_hash()
  return @br
end

Private Instance Methods

parse(str, ns=:root) click to toggle source
# File lib/ovsimager/linuxbridge.rb, line 24
def parse(str, ns=:root)
  params = {}
  str.split(/\n(?=\S)/)[1..-1].map do |br|
    data = br.split
    params[data[0]] = {
      :name => data[0],
      :id => data[1],
      :stp => data[2],
      :interfaces => [data[0]] + data[3..-1],
      :ns => ns,
    }
  end
  params
end