construqt 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/lib/construqt/addresses.rb +121 -10
  3. data/lib/construqt/bgps.rb +10 -12
  4. data/lib/construqt/firewalls.rb +115 -16
  5. data/lib/construqt/flavour/ciscian/ciscian.rb +73 -93
  6. data/lib/construqt/flavour/ciscian/deploy_template.rb +36 -0
  7. data/lib/construqt/flavour/ciscian/dialect_dlink-dgs15xx.rb +62 -114
  8. data/lib/construqt/flavour/ciscian/dialect_hp-2510g.rb +74 -14
  9. data/lib/construqt/flavour/delegates.rb +9 -0
  10. data/lib/construqt/flavour/mikrotik/flavour_mikrotik.rb +0 -3
  11. data/lib/construqt/flavour/mikrotik/flavour_mikrotik_bgp.rb +12 -1
  12. data/lib/construqt/flavour/mikrotik/flavour_mikrotik_interface.rb +32 -1
  13. data/lib/construqt/flavour/mikrotik/flavour_mikrotik_result.rb +2 -0
  14. data/lib/construqt/flavour/mikrotik/flavour_mikrotik_schema.rb +3 -3
  15. data/lib/construqt/flavour/plantuml/plantuml.rb +2 -2
  16. data/lib/construqt/flavour/ubuntu/flavour_ubuntu.rb +24 -13
  17. data/lib/construqt/flavour/ubuntu/flavour_ubuntu_bgp.rb +16 -7
  18. data/lib/construqt/flavour/ubuntu/flavour_ubuntu_dns.rb +5 -5
  19. data/lib/construqt/flavour/ubuntu/flavour_ubuntu_firewall.rb +218 -67
  20. data/lib/construqt/flavour/ubuntu/flavour_ubuntu_ipsec.rb +33 -17
  21. data/lib/construqt/flavour/ubuntu/flavour_ubuntu_opvn.rb +5 -5
  22. data/lib/construqt/flavour/ubuntu/flavour_ubuntu_result.rb +77 -14
  23. data/lib/construqt/flavour/ubuntu/flavour_ubuntu_services.rb +77 -29
  24. data/lib/construqt/flavour/ubuntu/flavour_ubuntu_vrrp.rb +18 -3
  25. data/lib/construqt/interfaces.rb +25 -6
  26. data/lib/construqt/ipsecs.rb +5 -3
  27. data/lib/construqt/rack.rb +51 -0
  28. data/lib/construqt/resource.rb +25 -3
  29. data/lib/construqt/reverse.rb +1 -0
  30. data/lib/construqt/services.rb +15 -29
  31. data/lib/construqt/tags.rb +21 -15
  32. data/lib/construqt/templates.rb +17 -0
  33. data/lib/construqt/users.rb +4 -0
  34. data/lib/construqt/util.rb +1 -1
  35. data/lib/construqt/version.rb +1 -1
  36. data/lib/construqt/vlans.rb +13 -2
  37. data/lib/construqt.rb +2 -1
  38. metadata +4 -2
@@ -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.ips_net(tag, family)
34
- ip_module = family==Construqt::Addresses::IPV4 ? IPAddress::IPv4: IPAddress::IPv6
35
- IPAddress::IPv4::summarize(*(@tags[tag]||[]).map do |obj|
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
- puts "ADR=#{tag} #{ret.to_string} #{a.to_s}"
47
- ret
42
+ #prefix = a.ipv4? ? 32 : 128
43
+ #ret = IPAddress.parse("#{a.to_s}/#{prefix}")
44
+ #ret
45
+ a
48
46
  end
49
- end.flatten
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
- (family==Construqt::Addresses::IPV6 && i.ipv6?)
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
@@ -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)
@@ -12,6 +12,10 @@ module Construqt
12
12
  @users[name] = OpenStruct.new(cfg)
13
13
  end
14
14
 
15
+ def find(name)
16
+ @users[name]
17
+ end
18
+
15
19
  def all
16
20
  @users.values
17
21
  end
@@ -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|
@@ -1,3 +1,3 @@
1
1
  module Construqt
2
- VERSION = "0.0.5"
2
+ VERSION = "0.0.6"
3
3
  end
@@ -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
@@ -13,7 +13,8 @@ require 'securerandom'
13
13
  module Construqt
14
14
 
15
15
  @logger = Logger.new(STDOUT)
16
- @logger.level = Logger::DEBUG
16
+ @LOGLEVEL||=Logger::DEBUG
17
+ @logger.level = @LOGLEVEL
17
18
 
18
19
  def self.log_level(level)
19
20
  @logger.level = level
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.5
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-08 00:00:00.000000000 Z
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