cfhighlander 0.2.1.alpha.23 → 0.2.1.alpha.27

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/cfndsl_ext/sg.rb +29 -2
  3. metadata +22 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4a7d7d97f9d94570594d6c075bd489aa6ae3058d6ce7c096a532ea65288c9de0
4
- data.tar.gz: 19df3d0459ef71885b3f9e85f7067e2bcf73d7fc9e612af579d72a0fe59f1ad3
3
+ metadata.gz: cc0e66ec10442d67a675f046539b949e2b2a1a2d77b777a469015c889173020d
4
+ data.tar.gz: de465ad3600e11b5147f8c888d6e59d908acc10a2996cfcbb300e73f6821da96
5
5
  SHA512:
6
- metadata.gz: 32eefcd197e05029a8d176dffef997238aa794fdd51684d31e9099d919e0bba9fe42ec7182f87c74437d074b91c0e3d4ab261b8624c8057e33c0595f960e473b
7
- data.tar.gz: c3521f255a7f6509524b2df2e8a72289d6912375fd13a98e7270c38858db4dbcb9b0d08a723cff1603102fdf621ffa11c741c2f3a65d0af22f765390f272a309
6
+ metadata.gz: 3a935570dbe5ccc7e506a5a1467aef5b2c1233a3a8b7e362f1b7a29283d54574f8cba53d1a91ac54a72c46c9416d0945594b59ebdfc86933814f84d9d78997e0
7
+ data.tar.gz: 882d53c4237694d3d3cf89f971fcbb1aa57dd0202d80dbe3ab659b8ecf054d6fda8d246460efa8968a0cbc4bf08ef0a6e3d0d48bb259166937d2305d857ad3f7
data/cfndsl_ext/sg.rb CHANGED
@@ -1,3 +1,4 @@
1
+ require 'netaddr'
1
2
 
2
3
  def sg_create_rules (x, ip_blocks={})
3
4
  rules = []
@@ -15,12 +16,38 @@ end
15
16
 
16
17
 
17
18
  def lookup_ips_for_sg (ips, ip_block_name={})
19
+ cidr = []
18
20
  if ip_block_name == 'stack'
19
21
  cidr = [FnJoin( "", [ "10.", Ref('StackOctet'), ".", "0.0/16" ] )]
20
22
  elsif ips.has_key? ip_block_name
21
- cidr = ips[ip_block_name]
23
+ ips[ip_block_name].each do |ip|
24
+ if (ips.include?(ip) || ip_block_name == 'stack')
25
+ cidr += lookup_ips_for_sg(ips, ip) unless ip == ip_block_name
26
+ else
27
+ if ip == 'stack'
28
+ cidr << [FnJoin( "", [ "10.", Ref('StackOctet'), ".", "0.0/16" ] )]
29
+ elsif(isCidr(ip))
30
+ cidr << ip
31
+ else
32
+ STDERR.puts("WARN: ip #{ip} is not a valid CIDR. Ignoring IP")
33
+ end
34
+ end
35
+ end
22
36
  else
23
- cidr = [ip_block_name]
37
+ if isCidr(ip_block_name)
38
+ cidr = [ip_block_name]
39
+ else
40
+ STDERR.puts("WARN: ip #{ip_block_name} is not a valid CIDR. Ignoring IP")
41
+ end
24
42
  end
25
43
  cidr
26
44
  end
45
+
46
+ def isCidr(block)
47
+ begin
48
+ NetAddr::CIDR.create(block)
49
+ return block.include?('/')
50
+ rescue NetAddr::ValidationError
51
+ return false
52
+ end
53
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cfhighlander
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1.alpha.23
4
+ version: 0.2.1.alpha.27
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nikola Tosic
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2018-05-30 00:00:00.000000000 Z
12
+ date: 2018-06-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: highline
@@ -191,6 +191,26 @@ dependencies:
191
191
  - - "<"
192
192
  - !ruby/object:Gem::Version
193
193
  version: '2'
194
+ - !ruby/object:Gem::Dependency
195
+ name: netaddr
196
+ requirement: !ruby/object:Gem::Requirement
197
+ requirements:
198
+ - - "~>"
199
+ - !ruby/object:Gem::Version
200
+ version: '1.5'
201
+ - - ">="
202
+ - !ruby/object:Gem::Version
203
+ version: 1.5.1
204
+ type: :runtime
205
+ prerelease: false
206
+ version_requirements: !ruby/object:Gem::Requirement
207
+ requirements:
208
+ - - "~>"
209
+ - !ruby/object:Gem::Version
210
+ version: '1.5'
211
+ - - ">="
212
+ - !ruby/object:Gem::Version
213
+ version: 1.5.1
194
214
  - !ruby/object:Gem::Dependency
195
215
  name: rspec
196
216
  requirement: !ruby/object:Gem::Requirement