aws_security_viz 0.1.5.pre.alpha.pre.133 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA256:
3
- metadata.gz: 17b549a859742751ebb0560457463892b17e82f3a64bdbaba43bf0456e0dd8cb
4
- data.tar.gz: ea28623d88295e15e27796823d21bcccb60dd44e09f64f41fb4c81f95b0c2390
2
+ SHA1:
3
+ metadata.gz: 013f7c6e5a7f2fd2984161c206560108439a7ba8
4
+ data.tar.gz: ca779e2929574efc55e771eff9397def34129c2e
5
5
  SHA512:
6
- metadata.gz: '024718029536d96ae0c92778ab363cb3d6df0e10e19694c9bd980a2f8541e40ca7c2da8f5d4181bbaa8e630b9e5e6bc9678f9dfae3dab45f684d62699799ef64'
7
- data.tar.gz: 80397effcb279de46e3dbe37b0b5796e073290eec8818ad17ae290fcd58241d77b420e726f83ab4ab8b0bbc224d7f92463304eeb87f8b6729657c81c53cffa05
6
+ metadata.gz: cb3b21be3cabf46b232145c55395ad293a5b977ac9dad72c03f43fe0f3cb06541feefd5ed39b552a3e40e87f553cebf4cb5b7c01ea13c4632f693185ec6c9701
7
+ data.tar.gz: 7d8cffdaf190807ed531fa9efa21b44875cff97ab275eb126ea702c396141ba86d6ff8d4ca43368e3542fcbda5fd26c671f6e7c4eb27cb40e6e79d5dc1a81559
@@ -3,7 +3,7 @@ language: ruby
3
3
  rvm:
4
4
  - 2.4.4
5
5
  - 2.3.4
6
- - 2.6.0
6
+ - 2.2.7
7
7
  - 2.5.1
8
8
 
9
9
  script: bundle exec rspec spec --tag '~integration'
@@ -3,23 +3,6 @@ All notable changes to this project will be documented in this file.
3
3
  This project adheres to [Semantic Versioning](http://semver.org/).
4
4
 
5
5
  ## [Unreleased]
6
- ### Changed
7
- - Replaced fog gem with aws-sdk-ec2
8
- - Upgrade bundler to 2.x
9
- - Removed unused dependencies
10
-
11
- ### Fixed
12
- - Issue with --color=true failing with exception due to change in Graphviz library.
13
-
14
- ## [0.1.5] - 2018-10-10
15
- ### Added
16
- - Filter by VPC id
17
- - Support for AWS session token
18
- - Use rankdir with graphviz to improve layout
19
-
20
- ### Changed
21
- - Dependent trollop gem renamed to optimist
22
- - Switched from ruby-graphviz to graphviz gem
23
6
 
24
7
  ## [0.1.4] - 2017-02-03
25
8
  ### Added
data/README.md CHANGED
@@ -49,17 +49,6 @@ To generate a web view
49
49
  * The json file name needs to be passed in as a html fragment identifier.
50
50
  * The generated graph can be viewed in a webserver e.g. http://localhost:3000/view.html#aws.json by using `python -m SimpleHTTPServer 3000` (python2) or `python -m http.server 3000` (python3)
51
51
 
52
- ## DOCKER USAGE
53
-
54
- If you don't want to install the dependencies and ruby libs you can execute aws-security-viz inside a docker container. To do so, follow these steps:
55
-
56
- 1. Clone this repository, open it in a console.
57
- 2. Build the docker container: `sudo docker build -t sec-viz .`
58
- 3. Run the container: `sudo docker run -i --rm -t -p 3000:3000 --name sec-viz sec-viz` (Description: `-i` interactive shell, `--rm` remove the container after usage, `-t` attach this terminal to it, `-p 3000:3000` we expose port 3000 for the HTTP server, `-name sec-viz` the container will have the same name as the image we will start)
59
- 4. Now you can use the tool as described in [usage](#USAGE). Make sure that you use the commands with `bundler exec ` as prefix. For example: `bundler exec aws_security_viz -a your_aws_key -s your_aws_secret_key -f aws.json`.
60
- 5. To start the web view, execute `python -m SimpleHTTPServer 3000` in the container. You can open it with your local browser at `http://0.0.0.0:3000/`. There you can view the generated images and the graph. Use `Ctrl+C` to close the HTTP server.
61
- 6. Terminate the docker container by typing `exit` in the console.
62
-
63
52
  ### Help
64
53
 
65
54
  ```
@@ -21,15 +21,17 @@ Gem::Specification.new do |s|
21
21
  s.test_files = s.files.grep(%r{^(test|spec|features)/})
22
22
  s.require_paths = ['lib']
23
23
 
24
- s.add_development_dependency 'bundler', '~> 2.0.1'
24
+ s.add_development_dependency 'bundler', '~> 1.15'
25
25
  s.add_development_dependency 'rake', '~> 12.0', '>= 12.0.0'
26
26
  s.add_development_dependency 'rspec', '~> 3.5', '>= 3.5.0'
27
27
 
28
28
  s.add_runtime_dependency 'graphviz', '~> 1.1', '>= 1.1.0'
29
+ s.add_runtime_dependency 'fog-aws', '~> 2.0', '>= 2.0.1'
30
+ s.add_runtime_dependency 'unf', '~> 0.1.4'
31
+ s.add_runtime_dependency 'json', '~> 2.1', '>= 2.1.0'
29
32
  s.add_runtime_dependency 'optimist', '~> 3.0.0'
30
33
  s.add_runtime_dependency 'organic_hash', '~> 1.0', '>= 1.0.2'
31
34
  s.add_runtime_dependency 'rgl', '~> 0.5.3'
32
- s.add_runtime_dependency 'aws-sdk-ec2', '~> 1.65.0'
33
35
 
34
36
  s.required_ruby_version = '>= 2.0.0'
35
37
  end
@@ -7,7 +7,7 @@ class ColorPicker
7
7
  end
8
8
  class NodeColors
9
9
  def color(index, ingress)
10
- ColorPicker::COLORS[index % ColorPicker::COLORS.length]
10
+ GraphViz::Utils::Colors::COLORS.keys[index]
11
11
  end
12
12
  end
13
13
  class DefaultColors
@@ -15,231 +15,4 @@ class ColorPicker
15
15
  ingress ? :blue : :red
16
16
  end
17
17
  end
18
-
19
- COLORS = %w(
20
- #00004c
21
- #000080
22
- #0000fb
23
- #003a52
24
- #0040cd
25
- #0050b2
26
- #005390
27
- #007800
28
- #007eff
29
- #0096D8
30
- #009917
31
- #00B4AB
32
- #00a6a6
33
- #00cafe
34
- #012456
35
- #0298c3
36
- #02f88c
37
- #04133b
38
- #0579aa
39
- #078193
40
- #0aa0ff
41
- #0db7ed
42
- #0e60e3
43
- #101F1F
44
- #118f9e
45
- #120F14
46
- #14253c
47
- #178600
48
- #185619
49
- #198CE7
50
- #199f4b
51
- #1C3552
52
- #1D222D
53
- #1F1F1F
54
- #1ac620
55
- #1e4aec
56
- #22228f
57
- #244776
58
- #28431f
59
- #2ACCA8
60
- #2F2530
61
- #2b7489
62
- #2c3e50
63
- #302B6D
64
- #315665
65
- #341708
66
- #348a34
67
- #3572A5
68
- #358a5b
69
- #375eab
70
- #37775b
71
- #3A4E3A
72
- #3D6117
73
- #3F3F3F
74
- #3F85AF
75
- #3ac486
76
- #3be133
77
- #3d3c6e
78
- #3d9970
79
- #3fb68b
80
- #403a40
81
- #40d47e
82
- #427819
83
- #42f1f4
84
- #438eff
85
- #447265
86
- #44a51c
87
- #46390b
88
- #499886
89
- #4A76B8
90
- #4B6BEF
91
- #4B6C4B
92
- #4C3023
93
- #4F5D95
94
- #4d41b1
95
- #5232e7
96
- #555555
97
- #563d7c
98
- #596706
99
- #5A8164
100
- #5B2063
101
- #5a6986
102
- #5c7611
103
- #5e5086
104
- #60B5CC
105
- #62A8D6
106
- #636746
107
- #646464
108
- #64C800
109
- #64b970
110
- #652B81
111
- #6594b9
112
- #6600cc
113
- #665a4e
114
- #6866fb
115
- #6E4C13
116
- #6a40fd
117
- #6c616e
118
- #6e4a7e
119
- #701516
120
- #7055b5
121
- #74283c
122
- #747faa
123
- #7582D1
124
- #776791
125
- #7790B2
126
- #77d9fb
127
- #79aa7a
128
- #7b9db4
129
- #7e7eff
130
- #7fa2a7
131
- #800000
132
- #814CCC
133
- #82937f
134
- #843179
135
- #878787
136
- #87AED7
137
- #882B0F
138
- #88562A
139
- #88ccff
140
- #89e051
141
- #8a1267
142
- #8dc63f
143
- #8f0f8d
144
- #8f14e9
145
- #8fb200
146
- #913960
147
- #945db7
148
- #946d57
149
- #94B0C7
150
- #990000
151
- #999999
152
- #99DA07
153
- #9DC3FF
154
- #9EEDFF
155
- #9d5200
156
- #A0AA87
157
- #AA6746
158
- #B0CE4E
159
- #B34936
160
- #B5314C
161
- #B83998
162
- #B9D9FF
163
- #C1F12E
164
- #C76F5B
165
- #C7D7DC
166
- #DA5B0B
167
- #DAE1C2
168
- #DBCA00
169
- #E3F171
170
- #E4E6F3
171
- #E6EFBB
172
- #E8274B
173
- #EB8CEB
174
- #F18E33
175
- #FEFE00
176
- #FF5000
177
- #FFF4F3
178
- #a270ba
179
- #a3522f
180
- #a54c4d
181
- #a78649
182
- #a9188d
183
- #a957b0
184
- #aa2afe
185
- #adb2cb
186
- #b07219
187
- #b0b77e
188
- #b2011d
189
- #b2b7f8
190
- #b30000
191
- #b7e1f4
192
- #b845fc
193
- #ba595e
194
- #c065db
195
- #c22d40
196
- #c4a79c
197
- #c7a938
198
- #c9df40
199
- #cabbff
200
- #cc0000
201
- #cc0088
202
- #cc9900
203
- #cca760
204
- #ccccff
205
- #ccce35
206
- #cd6400
207
- #cdd0e3
208
- #cf142b
209
- #d4bec1
210
- #d80074
211
- #da291c
212
- #dad8d8
213
- #db5855
214
- #db901e
215
- #dbb284
216
- #dc566d
217
- #dce200
218
- #dea584
219
- #df7900
220
- #dfa535
221
- #e16737
222
- #e34c26
223
- #e4cc98
224
- #e69f56
225
- #ecdebe
226
- #ed2cd6
227
- #f0a9f0
228
- #f1e05a
229
- #f34b7d
230
- #f3ca0a
231
- #f50000
232
- #f7ede0
233
- #f97732
234
- #fab738
235
- #fb855d
236
- #fbe5cd
237
- #fcd7de
238
- #ff0c5a
239
- #ff2b2b
240
- #ff6375
241
- #ff7f7f
242
- #ffac45
243
- #fffaa0
244
- )
245
18
  end
@@ -1,21 +1,25 @@
1
- require 'aws-sdk-ec2'
1
+ require 'fog/aws'
2
2
 
3
3
  class Ec2Provider
4
4
 
5
5
  def initialize(options)
6
6
  @options = options
7
7
  conn_opts = {
8
- region: options[:region],
9
- access_key_id: options[:access_key],
10
- secret_access_key: options[:secret_key],
11
- session_token: options[:session_token]
12
- }.delete_if {|k,v| v.nil?}
8
+ region: options[:region]
9
+ }
10
+
11
+ conn_opts[:aws_access_key_id] = options[:access_key]
12
+ conn_opts[:aws_secret_access_key] = options[:secret_key]
13
+
14
+ if options[:session_token]
15
+ conn_opts[:aws_session_token] = options[:session_token]
16
+ end
13
17
 
14
- @client = Aws::EC2::Client.new(conn_opts)
18
+ @compute = Fog::Compute::AWS.new conn_opts
15
19
  end
16
20
 
17
21
  def security_groups
18
- @client.describe_security_groups.security_groups.reject { |sg|
22
+ @compute.security_groups.reject { |sg|
19
23
  @options[:vpc_id] && sg.vpc_id != @options[:vpc_id]
20
24
  }.collect { |sg|
21
25
  Ec2::SecurityGroup.new(sg)
@@ -31,10 +35,6 @@ module Ec2
31
35
  @sg = sg
32
36
  end
33
37
 
34
- def name
35
- @sg.group_name
36
- end
37
-
38
38
  def ip_permissions
39
39
  @sg.ip_permissions.collect { |ip|
40
40
  Ec2::IpPermission.new(ip)
@@ -54,25 +54,25 @@ module Ec2
54
54
  end
55
55
 
56
56
  def protocol
57
- @ip['ip_protocol']
57
+ @ip['ipProtocol']
58
58
  end
59
59
 
60
60
  def from
61
- @ip['from_port']
61
+ @ip['fromPort']
62
62
  end
63
63
 
64
64
  def to
65
- @ip['to_port']
65
+ @ip['toPort']
66
66
  end
67
67
 
68
68
  def ip_ranges
69
- @ip['ip_ranges'].collect {|gp|
69
+ @ip['ipRanges'].collect {|gp|
70
70
  Ec2::IpPermissionRange.new(gp)
71
71
  }
72
72
  end
73
73
 
74
74
  def groups
75
- @ip['user_id_group_pairs'].collect {|gp|
75
+ @ip['groups'].collect {|gp|
76
76
  Ec2::IpPermissionGroup.new(gp)
77
77
  }
78
78
  end
@@ -84,7 +84,7 @@ module Ec2
84
84
  end
85
85
 
86
86
  def cidr_ip
87
- @range['cidr_ip']
87
+ @range['cidrIp']
88
88
  end
89
89
 
90
90
  def to_str
@@ -98,7 +98,7 @@ module Ec2
98
98
  end
99
99
 
100
100
  def name
101
- @gp['group_name'] || @gp['group_id']
101
+ @gp['groupName'] || @gp['groupId']
102
102
  end
103
103
  end
104
104
 
@@ -7,23 +7,18 @@ require File.expand_path(File.dirname(__FILE__) + "/../config/boot")
7
7
  Dir[File.dirname(__FILE__) + "/support/**/*.rb"].each {|f| require f}
8
8
 
9
9
  def group name, *ingress
10
- {group_name: name, group_id: 'some group', ip_permissions: ingress, ip_permissions_egress: []}
10
+ group = double("Group")
11
+ allow(group).to receive(:ip_permissions).and_return(ingress)
12
+ allow(group).to receive(:ip_permissions_egress).and_return([])
13
+ allow(group).to receive(:name).and_return(name)
14
+ allow(group).to receive(:group_id).and_return('some group')
15
+ group
11
16
  end
12
17
 
13
18
  def group_ingress port, name
14
- {user_id_group_pairs:[{user_id: "userId", group_id: "sg-groupId", group_name: name}], ip_ranges:[], ip_protocol: "tcp", from_port: port, to_port: port}
19
+ {"groups"=>[{"userId"=>"userId", "groupId"=>"sg-groupId", "groupName"=>name}], "ipRanges"=>[], "ipProtocol"=>"tcp", "fromPort"=>port, "toPort"=>port}
15
20
  end
16
21
 
17
22
  def cidr_ingress port, cidr_ip
18
- {ip_ranges:[{cidr_ip: cidr_ip}], ip_protocol: "tcp", from_port: port, to_port: port}
23
+ {"groups"=>[], "ipRanges"=>[{"cidrIp"=> cidr_ip}], "ipProtocol"=>"tcp", "fromPort"=>port, "toPort"=>port}
19
24
  end
20
-
21
- def stub_security_groups groups
22
- Aws.config[:ec2] = {
23
- stub_responses: {
24
- describe_security_groups: {
25
- security_groups: groups
26
- }
27
- }
28
- }
29
- end
@@ -17,11 +17,16 @@ class DummyRenderer
17
17
  end
18
18
 
19
19
  describe VisualizeAws do
20
+ before do
21
+ @ec2 = double(Fog::Compute)
22
+ allow(Fog::Compute::AWS).to receive(:new).and_return(@ec2)
23
+ end
24
+
20
25
  let(:visualize_aws) { VisualizeAws.new(AwsConfig.new) }
21
26
  let(:renderer) { DummyRenderer.new }
22
27
 
23
- it 'should add nodes, edges for each security group' do
24
- stub_security_groups([group('Remote ssh', group_ingress(22, 'My machine')), group('My machine')])
28
+ it 'should add nodes, edges for each security group' do
29
+ expect(@ec2).to receive(:security_groups).and_return([group('Remote ssh', group_ingress('22', 'My machine')), group('My machine')])
25
30
  graph = visualize_aws.build
26
31
 
27
32
  expect(graph.output(renderer)).to contain_exactly(
@@ -33,7 +38,7 @@ describe VisualizeAws do
33
38
 
34
39
  context 'groups' do
35
40
  it 'should add nodes for external security groups defined through ingress' do
36
- stub_security_groups([group('Web', group_ingress(80, 'ELB'))])
41
+ expect(@ec2).to receive(:security_groups).and_return([group('Web', group_ingress('80', 'ELB'))])
37
42
  graph = visualize_aws.build
38
43
 
39
44
  expect(graph.output(renderer)).to contain_exactly(
@@ -44,11 +49,11 @@ describe VisualizeAws do
44
49
  end
45
50
 
46
51
  it 'should add an edge for each security ingress' do
47
- stub_security_groups(
52
+ expect(@ec2).to receive(:security_groups).and_return(
48
53
  [
49
- group('App', group_ingress(80, 'Web'), group_ingress(8983, 'Internal')),
50
- group('Web', group_ingress(80, 'External')),
51
- group('Db', group_ingress(7474, 'App'))
54
+ group('App', group_ingress('80', 'Web'), group_ingress('8983', 'Internal')),
55
+ group('Web', group_ingress('80', 'External')),
56
+ group('Db', group_ingress('7474', 'App'))
52
57
  ])
53
58
  graph = visualize_aws.build
54
59
 
@@ -70,10 +75,10 @@ describe VisualizeAws do
70
75
  context 'cidr' do
71
76
 
72
77
  it 'should add an edge for each cidr ingress' do
73
- stub_security_groups(
78
+ expect(@ec2).to receive(:security_groups).and_return(
74
79
  [
75
- group('Web', group_ingress(80, 'External')),
76
- group('Db', group_ingress(7474, 'App'), cidr_ingress(22, '127.0.0.1/32'))
80
+ group('Web', group_ingress('80', 'External')),
81
+ group('Db', group_ingress('7474', 'App'), cidr_ingress('22', '127.0.0.1/32'))
77
82
  ])
78
83
  graph = visualize_aws.build
79
84
 
@@ -91,10 +96,10 @@ describe VisualizeAws do
91
96
  end
92
97
 
93
98
  it 'should add map edges for cidr ingress' do
94
- stub_security_groups(
99
+ expect(@ec2).to receive(:security_groups).and_return(
95
100
  [
96
- group('Web', group_ingress(80, 'External')),
97
- group('Db', group_ingress(7474, 'App'), cidr_ingress(22, '127.0.0.1/32'))
101
+ group('Web', group_ingress('80', 'External')),
102
+ group('Db', group_ingress('7474', 'App'), cidr_ingress('22', '127.0.0.1/32'))
98
103
  ])
99
104
  mapping = {'127.0.0.1/32' => 'Work'}
100
105
  mapping = CidrGroupMapping.new([], mapping)
@@ -116,9 +121,9 @@ describe VisualizeAws do
116
121
  end
117
122
 
118
123
  it 'should group mapped duplicate edges for cidr ingress' do
119
- stub_security_groups(
124
+ expect(@ec2).to receive(:security_groups).and_return(
120
125
  [
121
- group('ssh', cidr_ingress(22, '192.168.0.1/32'), cidr_ingress(22, '127.0.0.1/32'))
126
+ group('ssh', cidr_ingress('22', '192.168.0.1/32'), cidr_ingress('22', '127.0.0.1/32'))
122
127
  ])
123
128
  mapping = {'127.0.0.1/32' => 'Work', '192.168.0.1/32' => 'Work'}
124
129
  mapping = CidrGroupMapping.new([], mapping)
@@ -136,10 +141,10 @@ describe VisualizeAws do
136
141
 
137
142
  context "filter" do
138
143
  it 'include cidr which do not match the pattern' do
139
- stub_security_groups(
144
+ expect(@ec2).to receive(:security_groups).and_return(
140
145
  [
141
- group('Web', cidr_ingress(22, '127.0.0.1/32')),
142
- group('Db', cidr_ingress(22, '192.0.1.1/32'))
146
+ group('Web', cidr_ingress('22', '127.0.0.1/32')),
147
+ group('Db', cidr_ingress('22', '192.0.1.1/32'))
143
148
  ])
144
149
 
145
150
  opts = {:exclude => ['127.*']}
@@ -154,10 +159,10 @@ describe VisualizeAws do
154
159
  end
155
160
 
156
161
  it 'include groups which do not match the pattern' do
157
- stub_security_groups(
162
+ expect(@ec2).to receive(:security_groups).and_return(
158
163
  [
159
- group('Web', group_ingress(80, 'External')),
160
- group('Db', group_ingress(7474, 'App'), cidr_ingress(22, '127.0.0.1/32'))
164
+ group('Web', group_ingress('80', 'External')),
165
+ group('Db', group_ingress('7474', 'App'), cidr_ingress('22', '127.0.0.1/32'))
161
166
  ])
162
167
 
163
168
  opts = {:exclude => ['D.*b', 'App']}
@@ -171,10 +176,10 @@ describe VisualizeAws do
171
176
  end
172
177
 
173
178
  it 'include derived groups which do not match the pattern' do
174
- stub_security_groups(
179
+ expect(@ec2).to receive(:security_groups).and_return(
175
180
  [
176
- group('Web', group_ingress(80, 'External')),
177
- group('Db', group_ingress(7474, 'App'), cidr_ingress(22, '127.0.0.1/32'))
181
+ group('Web', group_ingress('80', 'External')),
182
+ group('Db', group_ingress('7474', 'App'), cidr_ingress('22', '127.0.0.1/32'))
178
183
  ])
179
184
 
180
185
  opts = {:exclude => ['App']}
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws_security_viz
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5.pre.alpha.pre.133
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anay Nayak
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-01-13 00:00:00.000000000 Z
11
+ date: 2018-10-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -16,74 +16,128 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 2.0.1
19
+ version: '1.15'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 2.0.1
26
+ version: '1.15'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: 12.0.0
34
31
  - - "~>"
35
32
  - !ruby/object:Gem::Version
36
33
  version: '12.0'
34
+ - - ">="
35
+ - !ruby/object:Gem::Version
36
+ version: 12.0.0
37
37
  type: :development
38
38
  prerelease: false
39
39
  version_requirements: !ruby/object:Gem::Requirement
40
40
  requirements:
41
- - - ">="
42
- - !ruby/object:Gem::Version
43
- version: 12.0.0
44
41
  - - "~>"
45
42
  - !ruby/object:Gem::Version
46
43
  version: '12.0'
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: 12.0.0
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rspec
49
49
  requirement: !ruby/object:Gem::Requirement
50
50
  requirements:
51
- - - ">="
52
- - !ruby/object:Gem::Version
53
- version: 3.5.0
54
51
  - - "~>"
55
52
  - !ruby/object:Gem::Version
56
53
  version: '3.5'
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: 3.5.0
57
57
  type: :development
58
58
  prerelease: false
59
59
  version_requirements: !ruby/object:Gem::Requirement
60
60
  requirements:
61
- - - ">="
62
- - !ruby/object:Gem::Version
63
- version: 3.5.0
64
61
  - - "~>"
65
62
  - !ruby/object:Gem::Version
66
63
  version: '3.5'
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: 3.5.0
67
67
  - !ruby/object:Gem::Dependency
68
68
  name: graphviz
69
69
  requirement: !ruby/object:Gem::Requirement
70
70
  requirements:
71
+ - - "~>"
72
+ - !ruby/object:Gem::Version
73
+ version: '1.1'
71
74
  - - ">="
72
75
  - !ruby/object:Gem::Version
73
76
  version: 1.1.0
77
+ type: :runtime
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
74
81
  - - "~>"
75
82
  - !ruby/object:Gem::Version
76
83
  version: '1.1'
84
+ - - ">="
85
+ - !ruby/object:Gem::Version
86
+ version: 1.1.0
87
+ - !ruby/object:Gem::Dependency
88
+ name: fog-aws
89
+ requirement: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - "~>"
92
+ - !ruby/object:Gem::Version
93
+ version: '2.0'
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: 2.0.1
77
97
  type: :runtime
78
98
  prerelease: false
79
99
  version_requirements: !ruby/object:Gem::Requirement
80
100
  requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '2.0'
81
104
  - - ">="
82
105
  - !ruby/object:Gem::Version
83
- version: 1.1.0
106
+ version: 2.0.1
107
+ - !ruby/object:Gem::Dependency
108
+ name: unf
109
+ requirement: !ruby/object:Gem::Requirement
110
+ requirements:
84
111
  - - "~>"
85
112
  - !ruby/object:Gem::Version
86
- version: '1.1'
113
+ version: 0.1.4
114
+ type: :runtime
115
+ prerelease: false
116
+ version_requirements: !ruby/object:Gem::Requirement
117
+ requirements:
118
+ - - "~>"
119
+ - !ruby/object:Gem::Version
120
+ version: 0.1.4
121
+ - !ruby/object:Gem::Dependency
122
+ name: json
123
+ requirement: !ruby/object:Gem::Requirement
124
+ requirements:
125
+ - - "~>"
126
+ - !ruby/object:Gem::Version
127
+ version: '2.1'
128
+ - - ">="
129
+ - !ruby/object:Gem::Version
130
+ version: 2.1.0
131
+ type: :runtime
132
+ prerelease: false
133
+ version_requirements: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - "~>"
136
+ - !ruby/object:Gem::Version
137
+ version: '2.1'
138
+ - - ">="
139
+ - !ruby/object:Gem::Version
140
+ version: 2.1.0
87
141
  - !ruby/object:Gem::Dependency
88
142
  name: optimist
89
143
  requirement: !ruby/object:Gem::Requirement
@@ -132,20 +186,6 @@ dependencies:
132
186
  - - "~>"
133
187
  - !ruby/object:Gem::Version
134
188
  version: 0.5.3
135
- - !ruby/object:Gem::Dependency
136
- name: aws-sdk-ec2
137
- requirement: !ruby/object:Gem::Requirement
138
- requirements:
139
- - - "~>"
140
- - !ruby/object:Gem::Version
141
- version: 1.65.0
142
- type: :runtime
143
- prerelease: false
144
- version_requirements: !ruby/object:Gem::Requirement
145
- requirements:
146
- - - "~>"
147
- - !ruby/object:Gem::Version
148
- version: 1.65.0
149
189
  description: Provides a quick mechanism to visualize your EC2 security groups in multiple
150
190
  formats
151
191
  email: anayak007+rubygems@gmail.com
@@ -158,7 +198,6 @@ files:
158
198
  - ".travis.yml"
159
199
  - CHANGELOG.md
160
200
  - CODE_OF_CONDUCT.md
161
- - Dockerfile
162
201
  - Gemfile
163
202
  - LICENSE.md
164
203
  - README.md
@@ -186,7 +225,6 @@ files:
186
225
  - lib/renderer/graphviz.rb
187
226
  - lib/renderer/json.rb
188
227
  - lib/version.rb
189
- - spec/color_picker_spec.rb
190
228
  - spec/graph_filter_spec.rb
191
229
  - spec/integration/aws_expected.json
192
230
  - spec/integration/dummy.dot
@@ -210,16 +248,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
210
248
  version: 2.0.0
211
249
  required_rubygems_version: !ruby/object:Gem::Requirement
212
250
  requirements:
213
- - - ">"
251
+ - - ">="
214
252
  - !ruby/object:Gem::Version
215
- version: 1.3.1
253
+ version: '0'
216
254
  requirements: []
217
- rubygems_version: 3.0.2
255
+ rubyforge_project:
256
+ rubygems_version: 2.5.2.3
218
257
  signing_key:
219
258
  specification_version: 4
220
259
  summary: Visualize your aws security groups
221
260
  test_files:
222
- - spec/color_picker_spec.rb
223
261
  - spec/graph_filter_spec.rb
224
262
  - spec/integration/aws_expected.json
225
263
  - spec/integration/dummy.dot
data/Dockerfile DELETED
@@ -1,9 +0,0 @@
1
- FROM ubuntu:latest
2
- RUN apt-get update
3
- # RUN gem install aws_security_viz # use bundler instead because nokogiri makes problems
4
- RUN apt-get install -y git ruby-dev ruby graphviz libxml2-dev g++ zlib1g-dev python
5
- RUN git clone https://github.com/anaynayak/aws-security-viz.git
6
- WORKDIR /aws-security-viz
7
- RUN gem install bundler --no-document
8
- RUN bundle install
9
- ENTRYPOINT ["/bin/sh"]
@@ -1,20 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe ColorPicker do
4
- context 'default picker' do
5
- let(:picker) { ColorPicker.new(false) }
6
-
7
- it 'should add default colors for edges' do
8
- expect(picker.color(0, true)).to eq(:blue)
9
- expect(picker.color(0, false)).to eq(:red)
10
- end
11
- end
12
- context 'color picker' do
13
- let(:picker) { ColorPicker.new(true) }
14
-
15
- it 'should add default colors for edges' do
16
- expect(picker.color(0, 'ignore')).to eq('#00004c')
17
- expect(picker.color(10000, 'ignore')).to eq('#C76F5B')
18
- end
19
- end
20
- end