class Construqt::Flavour::Ubuntu::Device

end

Public Class Methods

add_address(host, ifname, iface, lines, writer) click to toggle source
# File lib/construqt/flavour/ubuntu/flavour_ubuntu.rb, line 36
def self.add_address(host, ifname, iface, lines, writer)
  if iface.address.nil?
    Firewall.create(host, ifname, iface)
    return
  end

  writer.header.dhcpv4 if iface.address.dhcpv4?
  writer.header.dhcpv6 if iface.address.dhcpv6?
  writer.header.mode(EtcNetworkInterfaces::Entry::Header::MODE_LOOPBACK) if iface.address.loopback?
  lines.add(iface.flavour) if iface.flavour
  iface.address.ips.each do |ip|
    lines.up("ip addr add #{ip.to_string} dev #{ifname}")
    lines.down("ip addr del #{ip.to_string} dev #{ifname}")
  end

  iface.address.routes.each do |route|
    if route.metric
      metric = " metric #{route.metric}"
    else
      metric = ""
    end
    lines.up("ip route add #{route.dst.to_string} via #{route.via.to_s}#{metric}")
    lines.down("ip route del #{route.dst.to_string} via #{route.via.to_s}#{metric}")
  end

  Firewall.create(host, ifname, iface)
end
add_services(host, ifname, iface, writer) click to toggle source
# File lib/construqt/flavour/ubuntu/flavour_ubuntu.rb, line 68
def self.add_services(host, ifname, iface, writer)
  iface.services && iface.services.each do |service|
    Services.get_renderer(service).interfaces(host, ifname, iface, writer)
  end
end
build_config(host, iface) click to toggle source
# File lib/construqt/flavour/ubuntu/flavour_ubuntu.rb, line 74
def self.build_config(host, iface)
  #      binding.pry
  writer = host.result.etc_network_interfaces.get(iface)
  writer.header.protocol(EtcNetworkInterfaces::Entry::Header::PROTO_INET4)
  #binding.pry #unless iface.delegate
  writer.lines.add(iface.delegate.flavour) if iface.delegate.flavour
  ifname = writer.header.get_interface_name
  #      ifaces.header.mode(Result::EtcNetworkInterfaces::Entry::Header::MODE_DHCP4) if iface.address.dhcpv4?
  #      ifaces.header.mode(Result::EtcNetworkInterfaces::Entry::Header::MODE_LOOOPBACK) if iface.address.loopback?
  writer.lines.up("ip link set mtu #{iface.delegate.mtu} dev #{ifname} up")
  writer.lines.down("ip link set dev #{ifname} down")
  add_address(host, ifname, iface.delegate, writer.lines, writer) #unless iface.address.nil? || iface.address.ips.empty?
  add_services(host, ifname, iface.delegate, writer)
  host.ipsecs.find do |ipsec|
    if ipsec.left.remote.interface == iface || ipsec.right.remote.interface == iface
      writer.lines.up("STARTED_BY_CONSTRUQT=yes /etc/init.d/racoon start")
      writer.lines.down("STARTED_BY_CONSTRUQT=yes /etc/init.d/racoon restart")
      true
    else
      false
    end
  end
end
new(cfg) click to toggle source
Calls superclass method
# File lib/construqt/flavour/ubuntu/flavour_ubuntu.rb, line 32
def initialize(cfg)
  super(cfg)
end

Public Instance Methods

build_config(host, iface) click to toggle source
# File lib/construqt/flavour/ubuntu/flavour_ubuntu.rb, line 64
def build_config(host, iface)
  self.class.build_config(host, iface)
end