class Construqt::Addresses

Constants

DHCPV4
DHCPV6
IPV4
IPV6
LOOOPBACK
UNREACHABLE

Public Class Methods

new(network) click to toggle source
# File lib/construqt/addresses.rb, line 12
def initialize(network)
  @network = network
  @Addresses = []
end

Public Instance Methods

add_ip(ip, region = "") click to toggle source
# File lib/construqt/addresses.rb, line 292
def add_ip(ip, region = "")
  create.add_ip(ip, region)
end
add_route(dest, via = nil) click to toggle source
# File lib/construqt/addresses.rb, line 296
def add_route(dest, via = nil)
  create.add_route(dest, via)
end
all() click to toggle source
# File lib/construqt/addresses.rb, line 304
def all
  @Addresses
end
create() click to toggle source
# File lib/construqt/addresses.rb, line 282
def create
  ret = Address.new()
  @Addresses << ret
  ret
end
network() click to toggle source
# File lib/construqt/addresses.rb, line 17
def network
  @network
end
set_name(name) click to toggle source
# File lib/construqt/addresses.rb, line 300
def set_name(name)
  create.set_name(name)
end
tag(tag) click to toggle source
# File lib/construqt/addresses.rb, line 288
def tag(tag)
  create.tag(tag)
end
v4_default_route(tag = "") click to toggle source
# File lib/construqt/addresses.rb, line 308
def v4_default_route(tag = "")
  nets = [(1..9),(11..126),(128..168),(170..171),(173..191),(193..223)].map do |range|
    range.to_a.map{|i| "#{i}.0.0.0/8"}
  end.flatten
  nets += (0..255).to_a.select{|i| i!=254}.map{|i| "169.#{i}.0.0/16" }
  nets += (0..255).to_a.select{|i| !(16<=i&&i<31)}.map{|i| "172.#{i}.0.0/16" }
  nets += (0..255).to_a.select{|i| i!=168}.map{|i| "192.#{i}.0.0/16" }

  v4_default_route = self.create
  v4_default_route.set_name(tag).tag(tag) if tag && !tag.empty?
  IPAddress::IPv4::summarize(*(nets.map{|i| IPAddress::IPv4.new(i) })).each do |i|
    v4_default_route.add_ip(i.to_string)
  end
  v4_default_route
end