Module: Construqt::Flavour::Mikrotik
- Defined in:
- lib/construqt/flavour/mikrotik/flavour_mikrotik.rb,
lib/construqt/flavour/mikrotik/flavour_mikrotik_bgp.rb,
lib/construqt/flavour/mikrotik/flavour_mikrotik_ipsec.rb,
lib/construqt/flavour/mikrotik/flavour_mikrotik_result.rb,
lib/construqt/flavour/mikrotik/flavour_mikrotik_schema.rb,
lib/construqt/flavour/mikrotik/flavour_mikrotik_interface.rb
Defined Under Namespace
Classes: Bgp, Bond, Bridge, Device, Gre, Host, Interface, Ipsec, Ovpn, Result, Schema, Template, Vlan, Vrrp
Class Method Summary
collapse
Instance Method Summary
collapse
Class Method Details
.bgp ⇒ Object
374
375
376
|
# File 'lib/construqt/flavour/mikrotik/flavour_mikrotik.rb', line 374
def self.bgp
Bgp
end
|
.clazz(name) ⇒ Object
394
395
396
397
398
|
# 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 ⇒ Object
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
|
# 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,
"template" => Template,
}
end
|
.compress_address(val) ⇒ Object
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
|
# 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) ⇒ Object
416
417
418
|
# File 'lib/construqt/flavour/mikrotik/flavour_mikrotik.rb', line 416
def self.create_bgp(cfg)
Bgp.new(cfg)
end
|
.create_host(name, cfg) ⇒ Object
400
401
402
403
404
405
406
|
# 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) ⇒ Object
408
409
410
411
412
413
414
|
# 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) ⇒ Object
420
421
422
|
# File 'lib/construqt/flavour/mikrotik/flavour_mikrotik.rb', line 420
def self.create_ipsec(cfg)
Ipsec.new(cfg)
end
|
.ipsec ⇒ Object
370
371
372
|
# File 'lib/construqt/flavour/mikrotik/flavour_mikrotik.rb', line 370
def self.ipsec
Ipsec
end
|
.name ⇒ Object
13
14
15
|
# File 'lib/construqt/flavour/mikrotik/flavour_mikrotik.rb', line 13
def self.name
'mikrotik'
end
|
Instance Method Details
#set_ipv6_address(host, cfg) ⇒ Object
329
330
331
332
333
334
335
336
337
338
|
# 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
|