construqt 0.0.5 → 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/construqt/addresses.rb +121 -10
- data/lib/construqt/bgps.rb +10 -12
- data/lib/construqt/firewalls.rb +115 -16
- data/lib/construqt/flavour/ciscian/ciscian.rb +73 -93
- data/lib/construqt/flavour/ciscian/deploy_template.rb +36 -0
- data/lib/construqt/flavour/ciscian/dialect_dlink-dgs15xx.rb +62 -114
- data/lib/construqt/flavour/ciscian/dialect_hp-2510g.rb +74 -14
- data/lib/construqt/flavour/delegates.rb +9 -0
- data/lib/construqt/flavour/mikrotik/flavour_mikrotik.rb +0 -3
- data/lib/construqt/flavour/mikrotik/flavour_mikrotik_bgp.rb +12 -1
- data/lib/construqt/flavour/mikrotik/flavour_mikrotik_interface.rb +32 -1
- data/lib/construqt/flavour/mikrotik/flavour_mikrotik_result.rb +2 -0
- data/lib/construqt/flavour/mikrotik/flavour_mikrotik_schema.rb +3 -3
- data/lib/construqt/flavour/plantuml/plantuml.rb +2 -2
- data/lib/construqt/flavour/ubuntu/flavour_ubuntu.rb +24 -13
- data/lib/construqt/flavour/ubuntu/flavour_ubuntu_bgp.rb +16 -7
- data/lib/construqt/flavour/ubuntu/flavour_ubuntu_dns.rb +5 -5
- data/lib/construqt/flavour/ubuntu/flavour_ubuntu_firewall.rb +218 -67
- data/lib/construqt/flavour/ubuntu/flavour_ubuntu_ipsec.rb +33 -17
- data/lib/construqt/flavour/ubuntu/flavour_ubuntu_opvn.rb +5 -5
- data/lib/construqt/flavour/ubuntu/flavour_ubuntu_result.rb +77 -14
- data/lib/construqt/flavour/ubuntu/flavour_ubuntu_services.rb +77 -29
- data/lib/construqt/flavour/ubuntu/flavour_ubuntu_vrrp.rb +18 -3
- data/lib/construqt/interfaces.rb +25 -6
- data/lib/construqt/ipsecs.rb +5 -3
- data/lib/construqt/rack.rb +51 -0
- data/lib/construqt/resource.rb +25 -3
- data/lib/construqt/reverse.rb +1 -0
- data/lib/construqt/services.rb +15 -29
- data/lib/construqt/tags.rb +21 -15
- data/lib/construqt/templates.rb +17 -0
- data/lib/construqt/users.rb +4 -0
- data/lib/construqt/util.rb +1 -1
- data/lib/construqt/version.rb +1 -1
- data/lib/construqt/vlans.rb +13 -2
- data/lib/construqt.rb +2 -1
- metadata +4 -2
data/lib/construqt/tags.rb
CHANGED
@@ -25,37 +25,43 @@ module Construqt
|
|
25
25
|
|
26
26
|
def self.find(tag, clazz = nil)
|
27
27
|
#binding.pry
|
28
|
-
ret = (@tags[tag] || []).select{|o| clazz.nil? || o.kind_of?(clazz) }
|
28
|
+
ret = (@tags[tag] || []).select{|o| clazz.nil? || o.instance_of?(clazz.class) || (clazz.kind_of?(Proc) && clazz.call(o)) }
|
29
29
|
Construqt.logger.warn("tag #{tag} #{clazz.inspect} empty result") if ret.empty?
|
30
30
|
ret
|
31
31
|
end
|
32
32
|
|
33
|
-
def self.
|
34
|
-
|
35
|
-
|
36
|
-
if obj.kind_of?(IPAddress)
|
33
|
+
def self.ips_adr(tag, family)
|
34
|
+
(@tags[tag]||[]).map do |obj|
|
35
|
+
if obj.kind_of?(IPAddress) || obj.kind_of?(Construqt::Addresses::CqIpAddress)
|
37
36
|
obj
|
38
37
|
elsif obj.respond_to? :ips
|
39
38
|
obj.ips
|
40
39
|
elsif obj.kind_of?(Construqt::Flavour::HostDelegate)
|
41
|
-
#binding.pry
|
42
40
|
res = obj.interfaces.values.map do |i|
|
43
41
|
i.delegate.address.ips.map do |a|
|
44
|
-
prefix = a.ipv4? ? 32 : 128
|
45
|
-
ret = IPAddress.parse("#{a.to_s}/#{prefix}")
|
46
|
-
|
47
|
-
|
42
|
+
#prefix = a.ipv4? ? 32 : 128
|
43
|
+
#ret = IPAddress.parse("#{a.to_s}/#{prefix}")
|
44
|
+
#ret
|
45
|
+
a
|
48
46
|
end
|
49
|
-
end
|
50
|
-
puts "HOST=>#{tag} #{res.map{|i| i.to_string }}"
|
47
|
+
end
|
48
|
+
#puts "HOST=>#{tag} #{res.map{|i| i.to_string }}"
|
51
49
|
res
|
52
50
|
else
|
53
51
|
nil
|
54
52
|
end
|
55
53
|
end.flatten.compact.select do |i|
|
56
|
-
(family==Construqt::Addresses::IPV4 && i.ipv4?) ||
|
57
|
-
|
58
|
-
end
|
54
|
+
(((family==Construqt::Addresses::IPV4||family==IPAddress::IPv4) && i.ipv4?) ||
|
55
|
+
((family==Construqt::Addresses::IPV6||family==IPAddress::IPv6) && i.ipv6?))
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
def self.ips_hosts(tag, family)
|
60
|
+
IPAddress.summarize(ips_adr(tag, family).map{|i| IPAddress.parse("#{i.to_s}/#{i.ipv4? ? 32 : 128}") })
|
61
|
+
end
|
62
|
+
|
63
|
+
def self.ips_net(tag, family)
|
64
|
+
IPAddress.summarize(ips_adr(tag, family).map{|i| i.network })
|
59
65
|
end
|
60
66
|
end
|
61
67
|
end
|
data/lib/construqt/templates.rb
CHANGED
@@ -18,6 +18,23 @@ module Construqt
|
|
18
18
|
|
19
19
|
throw "vlan with id #{vlan_id} not found in template #{self}"
|
20
20
|
end
|
21
|
+
|
22
|
+
def is_untagged?(vlan_id)
|
23
|
+
self.vlans.each do |vlan|
|
24
|
+
return vlan.untagged? if vlan.vlan_id == vlan_id
|
25
|
+
end
|
26
|
+
|
27
|
+
throw "vlan with id #{vlan_id} not found in template #{self}"
|
28
|
+
end
|
29
|
+
|
30
|
+
def is_nountagged?(vlan_id)
|
31
|
+
self.vlans.each do |vlan|
|
32
|
+
return vlan.nountagged? if vlan.vlan_id == vlan_id
|
33
|
+
end
|
34
|
+
|
35
|
+
throw "vlan with id #{vlan_id} not found in template #{self}"
|
36
|
+
end
|
37
|
+
|
21
38
|
end
|
22
39
|
|
23
40
|
def find(name)
|
data/lib/construqt/users.rb
CHANGED
data/lib/construqt/util.rb
CHANGED
@@ -128,7 +128,7 @@ module Construqt
|
|
128
128
|
ranges.join(",")
|
129
129
|
end
|
130
130
|
|
131
|
-
PORTS_DEF_REGEXP = "([^\\d\\s]*[\\d,-]+)+"
|
131
|
+
PORTS_DEF_REGEXP = "((?:[^\\d\\s]*[\\d,-]+)+)"
|
132
132
|
PORT_NAME_REGEXP="^(.*?)(\\d+)$"
|
133
133
|
def self.expandRangeDefinition(list_str)
|
134
134
|
ports = list_str.strip.split(",").map do |range_def|
|
data/lib/construqt/version.rb
CHANGED
data/lib/construqt/vlans.rb
CHANGED
@@ -13,20 +13,31 @@ module Construqt
|
|
13
13
|
end
|
14
14
|
|
15
15
|
def tagged?
|
16
|
-
@tagged
|
16
|
+
!@nountagged && @tagged
|
17
17
|
end
|
18
18
|
|
19
19
|
def tagged
|
20
20
|
@tagged=true
|
21
|
+
@nountagged=false
|
21
22
|
self
|
22
23
|
end
|
23
24
|
|
24
25
|
def untagged?
|
25
|
-
!@tagged
|
26
|
+
!@nountagged && !@tagged
|
26
27
|
end
|
27
28
|
|
28
29
|
def untagged
|
29
30
|
@tagged = false
|
31
|
+
@nountagged=false
|
32
|
+
self
|
33
|
+
end
|
34
|
+
|
35
|
+
def nountagged?
|
36
|
+
@nountagged
|
37
|
+
end
|
38
|
+
|
39
|
+
def nountagged
|
40
|
+
@nountagged=true
|
30
41
|
self
|
31
42
|
end
|
32
43
|
end
|
data/lib/construqt.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: construqt
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Meno Abels
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-12-
|
11
|
+
date: 2014-12-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: construqt-ipaddress
|
@@ -51,6 +51,7 @@ files:
|
|
51
51
|
- lib/construqt/cables.rb
|
52
52
|
- lib/construqt/firewalls.rb
|
53
53
|
- lib/construqt/flavour/ciscian/ciscian.rb
|
54
|
+
- lib/construqt/flavour/ciscian/deploy_template.rb
|
54
55
|
- lib/construqt/flavour/ciscian/dialect_dlink-dgs15xx.rb
|
55
56
|
- lib/construqt/flavour/ciscian/dialect_hp-2510g.rb
|
56
57
|
- lib/construqt/flavour/delegates.rb
|
@@ -77,6 +78,7 @@ files:
|
|
77
78
|
- lib/construqt/interfaces.rb
|
78
79
|
- lib/construqt/ipsecs.rb
|
79
80
|
- lib/construqt/networks.rb
|
81
|
+
- lib/construqt/rack.rb
|
80
82
|
- lib/construqt/regions.rb
|
81
83
|
- lib/construqt/resource.rb
|
82
84
|
- lib/construqt/reverse.rb
|