awsec 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. data/bin/awsec +1 -1
  2. data/lib/aw_sec/core.rb +12 -2
  3. data/lib/version.rb +1 -1
  4. metadata +41 -74
data/bin/awsec CHANGED
@@ -35,7 +35,7 @@ else
35
35
 
36
36
  defaults[:whilelist] = ask('Default comma separated IP whitelist? []')
37
37
 
38
- File.write(config_path, JSON.dump(defaults))
38
+ File.open(config_path, 'w') { |file| file.write(JSON.dump(defaults)) }
39
39
  say('Configuration saved')
40
40
  end
41
41
 
@@ -26,6 +26,7 @@ module AwSec
26
26
  puts "Connecting AWS..."
27
27
  groups = get_groups(group_names)
28
28
  groups.each do |group|
29
+ next if group.nil?
29
30
  puts "Configuring #{group.name}"
30
31
  granted_ips = list_ips(group) || []
31
32
  puts "Existing IPs with access to port #{port}: #{granted_ips.join(',')}"
@@ -62,7 +63,12 @@ module AwSec
62
63
 
63
64
  def get_groups(group_names)
64
65
  groups = []
65
- group_names.each do |group_name|
66
+ if group_names.is_a? String
67
+ to_loop = [group_names]
68
+ else
69
+ to_loop = group_names
70
+ end
71
+ to_loop.each do |group_name|
66
72
  groups << conn.security_groups.get(group_name)
67
73
  end
68
74
 
@@ -79,7 +85,11 @@ module AwSec
79
85
  begin
80
86
  group.authorize_port_range(port..port, :cidr_ip => ip)
81
87
  rescue => exc
82
- puts "Failed #{exc.message}"
88
+ if exc.message =~ /InvalidPermission.Duplicate/
89
+ puts "#{ip} already has access"
90
+ else
91
+ puts "Failed #{exc.message}"
92
+ end
83
93
  end
84
94
  end
85
95
  end
@@ -13,7 +13,7 @@ module AwSec
13
13
  # Defines the minor version
14
14
  # PATCH:
15
15
  # Defines the patch version
16
- MAJOR, MINOR, PATCH = 0, 1, 2
16
+ MAJOR, MINOR, PATCH = 0, 1, 3
17
17
 
18
18
  #ie. PRERELEASE_MODIFIER = 'beta1'
19
19
  PRERELEASE_MODIFIER = nil
metadata CHANGED
@@ -1,79 +1,56 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: awsec
3
- version: !ruby/object:Gem::Version
4
- hash: 31
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.3
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 1
9
- - 2
10
- version: 0.1.2
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Cloud 66
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2013-02-25 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
12
+ date: 2013-04-28 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
21
15
  name: json
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &70364927949480 !ruby/object:Gem::Requirement
24
17
  none: false
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- hash: 9
29
- segments:
30
- - 1
31
- - 6
32
- - 3
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
33
21
  version: 1.6.3
34
22
  type: :runtime
35
- version_requirements: *id001
36
- - !ruby/object:Gem::Dependency
37
- name: fog
38
23
  prerelease: false
39
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: *70364927949480
25
+ - !ruby/object:Gem::Dependency
26
+ name: fog
27
+ requirement: &70364927947940 !ruby/object:Gem::Requirement
40
28
  none: false
41
- requirements:
42
- - - ">="
43
- - !ruby/object:Gem::Version
44
- hash: 7
45
- segments:
46
- - 1
47
- - 4
48
- - 0
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
49
32
  version: 1.4.0
50
33
  type: :runtime
51
- version_requirements: *id002
52
- - !ruby/object:Gem::Dependency
53
- name: highline
54
34
  prerelease: false
55
- requirement: &id003 !ruby/object:Gem::Requirement
35
+ version_requirements: *70364927947940
36
+ - !ruby/object:Gem::Dependency
37
+ name: highline
38
+ requirement: &70364927946860 !ruby/object:Gem::Requirement
56
39
  none: false
57
- requirements:
58
- - - ">="
59
- - !ruby/object:Gem::Version
60
- hash: 25
61
- segments:
62
- - 1
63
- - 6
64
- - 11
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
65
43
  version: 1.6.11
66
44
  type: :runtime
67
- version_requirements: *id003
45
+ prerelease: false
46
+ version_requirements: *70364927946860
68
47
  description: Open and close AWS Security Group from the terminal for more secure operations
69
48
  email: khash@cloud66.com
70
- executables:
49
+ executables:
71
50
  - awsec
72
51
  extensions: []
73
-
74
52
  extra_rdoc_files: []
75
-
76
- files:
53
+ files:
77
54
  - lib/version.rb
78
55
  - lib/aw_sec.rb
79
56
  - lib/aw_sec/core.rb
@@ -83,36 +60,26 @@ files:
83
60
  - bin/awsec
84
61
  homepage: https://github.com/cloud66/awsec
85
62
  licenses: []
86
-
87
63
  post_install_message:
88
64
  rdoc_options: []
89
-
90
- require_paths:
65
+ require_paths:
91
66
  - lib
92
- required_ruby_version: !ruby/object:Gem::Requirement
67
+ required_ruby_version: !ruby/object:Gem::Requirement
93
68
  none: false
94
- requirements:
95
- - - ">="
96
- - !ruby/object:Gem::Version
97
- hash: 3
98
- segments:
99
- - 0
100
- version: "0"
101
- required_rubygems_version: !ruby/object:Gem::Requirement
69
+ requirements:
70
+ - - ! '>='
71
+ - !ruby/object:Gem::Version
72
+ version: '0'
73
+ required_rubygems_version: !ruby/object:Gem::Requirement
102
74
  none: false
103
- requirements:
104
- - - ">="
105
- - !ruby/object:Gem::Version
106
- hash: 3
107
- segments:
108
- - 0
109
- version: "0"
75
+ requirements:
76
+ - - ! '>='
77
+ - !ruby/object:Gem::Version
78
+ version: '0'
110
79
  requirements: []
111
-
112
80
  rubyforge_project:
113
- rubygems_version: 1.8.12
81
+ rubygems_version: 1.8.15
114
82
  signing_key:
115
83
  specification_version: 3
116
84
  summary: AWS Security Toolbelt
117
85
  test_files: []
118
-