module Construqt::Flavour::Mikrotik

Public Class Methods

bgp() click to toggle source
# File lib/construqt/flavour/mikrotik/flavour_mikrotik.rb, line 374
def self.bgp
  Bgp
end
clazz(name) click to toggle source
# File lib/construqt/flavour/mikrotik/flavour_mikrotik.rb, line 394
def self.clazz(name)
  ret = self.clazzes[name]
  throw "class not found #{name}" unless ret
  ret
end
clazzes() click to toggle source
# File lib/construqt/flavour/mikrotik/flavour_mikrotik.rb, line 378
def self.clazzes
  {
    "opvn" => Ovpn,
    "gre" => Gre,
    "host" => Host,
    "device"=> Device,
    "vrrp" => Vrrp,
    "bridge" => Bridge,
    "bond" => Bond,
    "vlan" => Vlan,
    #"result" => Result,
    "template" => Template,
    #"bgp" => Ipsec,
    #"ipsec" => Bgp
  }
end
compress_address(val) click to toggle source
# File lib/construqt/flavour/mikrotik/flavour_mikrotik.rb, line 350
def self.compress_address(val)
  return val.compressed if val.ipv4?
  found = 0
  val.groups.map do |i|
    if found > 0 && i != 0
      found = -1
    end

    if found == 0 && i == 0
      found += 1
      ""
    elsif found > 0 && i == 0
      found += 1
      nil
    else
      i.to_s 16
    end
  end.compact.join(":").sub(/:+$/, '::')
end
create_bgp(cfg) click to toggle source
# File lib/construqt/flavour/mikrotik/flavour_mikrotik.rb, line 413
def self.create_bgp(cfg)
  Bgp.new(cfg)
end
create_host(name, cfg) click to toggle source
# File lib/construqt/flavour/mikrotik/flavour_mikrotik.rb, line 400
def self.create_host(name, cfg)
  cfg['name'] = name
  cfg['result'] = nil
  host = Host.new(cfg)
  host.result = Result.new(host)
  host
end
create_interface(name, cfg) click to toggle source
# File lib/construqt/flavour/mikrotik/flavour_mikrotik.rb, line 408
def self.create_interface(name, cfg)
  cfg['name'] = name
  clazz(cfg['clazz']).new(cfg)
end
create_ipsec(cfg) click to toggle source
# File lib/construqt/flavour/mikrotik/flavour_mikrotik.rb, line 417
def self.create_ipsec(cfg)
  Ipsec.new(cfg)
end
ipsec() click to toggle source
# File lib/construqt/flavour/mikrotik/flavour_mikrotik.rb, line 370
def self.ipsec
  Ipsec
end
name() click to toggle source
# File lib/construqt/flavour/mikrotik/flavour_mikrotik.rb, line 13
def self.name
  'mikrotik'
end

Public Instance Methods

set_ipv6_address(host, cfg) click to toggle source
# File lib/construqt/flavour/mikrotik/flavour_mikrotik.rb, line 329
def set_ipv6_address(host, cfg)
  default = {
    "address"=>Schema.network.required,
    "interface"=>Schema.identifier.required,
    "comment" => Schema.string.required.key,
    "advertise"=>Schema.boolean.default(false)
  }
  cfg['comment'] = "#{cfg['interface']}-#{cfg['address']}"
  host.result.render_mikrotik(default, cfg, "ipv6", "address")
end