module Havox::RouteFlow
Constants
- ENTRY_REGEX
Public Class Methods
fetch(vm_name, protocol = nil)
click to toggle source
# File lib/havox/modules/routeflow.rb, line 34 def self.fetch(vm_name, protocol = nil) result = run(cmd.show_ip_route(vm_name, protocol)) result = parse(result) result = Havox::RouteFiller.new(result).filled_routes result end
ribs(vm_names, opts = {})
click to toggle source
# File lib/havox/modules/routeflow.rb, line 41 def self.ribs(vm_names, opts = {}) routes = [] vm_names.each do |vm_name| raw_routes = fetch(vm_name) routes += raw_routes.map { |rr| Havox::Route.new(rr, vm_name, opts) } end routes end
run(command)
click to toggle source
# File lib/havox/modules/routeflow.rb, line 28 def self.run(command) output = nil ssh_connection { |ssh| output = ssh.exec!(command) } output end
Private Class Methods
cmd()
click to toggle source
# File lib/havox/modules/routeflow.rb, line 12 def cmd Havox::Command end
config()
click to toggle source
# File lib/havox/modules/routeflow.rb, line 8 def config Havox.configuration end
parse(output)
click to toggle source
# File lib/havox/modules/routeflow.rb, line 22 def parse(output) result = output.each_line.map { |l| l.match(ENTRY_REGEX) }.compact result.map(&:to_s) end
ssh_connection() { |ssh| ... }
click to toggle source
# File lib/havox/modules/routeflow.rb, line 16 def ssh_connection Net::SSH.start(config.rf_host, config.rf_user, password: config.rf_password) do |ssh| yield(ssh) end end