miam 0.1.3 → 0.1.4

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
2
  SHA1:
3
- metadata.gz: 13c8b98a22084e0152779c75ac4a225ebbb2d074
4
- data.tar.gz: 77c72fbcf76aebe82beb959467c1aeccbdd5a864
3
+ metadata.gz: a2f7fbc6d8f30d94ddf30434144c507f90a08a92
4
+ data.tar.gz: f4bec97bf208b21f044bb4089f29453e8236ee15
5
5
  SHA512:
6
- metadata.gz: 9d2f836c4a680e5a64d32c228108fbfdc8d9ea875be8f0047fe0954cc6571f93ac9534f2a2f0c9f3d90857a94423cbdea8cec399a5b3b5f4fb69f03f9e7215ee
7
- data.tar.gz: c7f686e2ad970edd5d461917c5e65f9877a9dbb17027dfb6d8b15b8ec216e8daef8f2b5e1e64748ec0987ee79165ceb37abdaf0feaab3d09dbf04c14609e59fb
6
+ metadata.gz: 79ab922dc36aaa76e8ed5cec329daad942ea06deda43fa80cc657547d056d341320871a97e9ffc7103a61f180b7d357f7265e64963f13b0c05869a809c219ed2
7
+ data.tar.gz: b98f1198e7c93184c5eedcebf1bb20dc45543e8d5800e58169eabffd065545db6a3c587447c93ec0e781ca1dad3afa8c1b6a29448baa5ae3da62d57f5ed3ebc2
data/README.md CHANGED
@@ -54,6 +54,7 @@ Usage: miam [options]
54
54
  --split
55
55
  --split-more
56
56
  --export-concurrency N
57
+ --target REGEXP
57
58
  --no-color
58
59
  --no-progress
59
60
  --debug
data/bin/miam CHANGED
@@ -44,6 +44,7 @@ ARGV.options do |opt|
44
44
  opt.on('' , '--split') { split = true }
45
45
  opt.on('' , '--split-more') { split = :more }
46
46
  opt.on('' , '--export-concurrency N', Integer) {|v| options[:export_concurrency] = v }
47
+ opt.on('' , '--target REGEXP') {|v| options[:target] = Regexp.new(v) }
47
48
  opt.on('' , '--no-color') { options[:color] = false }
48
49
  opt.on('' , '--no-progress') { options[:no_progress] = true }
49
50
  opt.on('' , '--debug') { options[:debug] = true }
data/lib/miam/client.rb CHANGED
@@ -59,6 +59,8 @@ class Miam::Client
59
59
  updated = scan_rename(:user, expected, actual, group_users)
60
60
 
61
61
  expected.each do |user_name, expected_attrs|
62
+ next unless target_matched?(user_name)
63
+
62
64
  actual_attrs = actual.delete(user_name)
63
65
 
64
66
  if actual_attrs
@@ -78,6 +80,8 @@ class Miam::Client
78
80
  end
79
81
 
80
82
  actual.each do |user_name, attrs|
83
+ next unless target_matched?(user_name)
84
+
81
85
  @driver.delete_user(user_name, attrs)
82
86
 
83
87
  group_users.each do |group_name, users|
@@ -147,6 +151,8 @@ class Miam::Client
147
151
  updated = scan_rename(:group, expected, actual, group_users)
148
152
 
149
153
  expected.each do |group_name, expected_attrs|
154
+ next unless target_matched?(group_name)
155
+
150
156
  actual_attrs = actual.delete(group_name)
151
157
 
152
158
  if actual_attrs
@@ -160,6 +166,8 @@ class Miam::Client
160
166
  end
161
167
 
162
168
  actual.each do |group_name, attrs|
169
+ next unless target_matched?(group_name)
170
+
163
171
  users_in_group = group_users.delete(group_name) || []
164
172
  @driver.delete_group(group_name, attrs, users_in_group)
165
173
 
@@ -181,6 +189,8 @@ class Miam::Client
181
189
  updated = false
182
190
 
183
191
  expected.each do |role_name, expected_attrs|
192
+ next unless target_matched?(role_name)
193
+
184
194
  actual_attrs = actual.delete(role_name)
185
195
 
186
196
  if actual_attrs
@@ -193,6 +203,8 @@ class Miam::Client
193
203
  end
194
204
 
195
205
  actual.each do |role_name, attrs|
206
+ next unless target_matched?(role_name)
207
+
196
208
  instance_profile_names = []
197
209
 
198
210
  instance_profile_roles.each do |instance_profile_name, roles|
@@ -261,6 +273,8 @@ class Miam::Client
261
273
  updated = false
262
274
 
263
275
  expected.each do |instance_profile_name, expected_attrs|
276
+ next unless target_matched?(instance_profile_name)
277
+
264
278
  actual_attrs = actual.delete(instance_profile_name)
265
279
 
266
280
  if actual_attrs
@@ -273,6 +287,8 @@ class Miam::Client
273
287
  end
274
288
 
275
289
  actual.each do |instance_profile_name, attrs|
290
+ next unless target_matched?(instance_profile_name)
291
+
276
292
  roles_in_instance_profile = instance_profile_roles.delete(instance_profile_name) || []
277
293
  @driver.delete_instance_profile(instance_profile_name, attrs, roles_in_instance_profile)
278
294
 
@@ -384,4 +400,12 @@ class Miam::Client
384
400
  raise TypeError, "can't convert #{file} into File"
385
401
  end
386
402
  end
403
+
404
+ def target_matched?(name)
405
+ if @options[:target]
406
+ name =~ @options[:target]
407
+ else
408
+ true
409
+ end
410
+ end
387
411
  end
@@ -21,8 +21,9 @@ class Miam::DSL::Converter
21
21
 
22
22
  def output_users(users)
23
23
  users.each.sort_by {|k, v| k }.map {|user_name, attrs|
24
+ next unless target_matched?(user_name)
24
25
  output_user(user_name, attrs)
25
- }.join("\n")
26
+ }.select {|i| i }.join("\n")
26
27
  end
27
28
 
28
29
  def output_user(user_name, attrs)
@@ -60,8 +61,9 @@ end
60
61
 
61
62
  def output_groups(groups)
62
63
  groups.each.sort_by {|k, v| k }.map {|group_name, attrs|
64
+ next unless target_matched?(group_name)
63
65
  output_group(group_name, attrs)
64
- }.join("\n")
66
+ }.select {|i| i }.join("\n")
65
67
  end
66
68
 
67
69
  def output_group(group_name, attrs)
@@ -76,8 +78,9 @@ end
76
78
 
77
79
  def output_roles(roles)
78
80
  roles.each.sort_by {|k, v| k }.map {|role_name, attrs|
81
+ next unless target_matched?(role_name)
79
82
  output_role(role_name, attrs)
80
- }.join("\n")
83
+ }.select {|i| i }.join("\n")
81
84
  end
82
85
 
83
86
  def output_role(role_name, attrs)
@@ -107,8 +110,9 @@ end
107
110
 
108
111
  def output_instance_profiles(instance_profiles)
109
112
  instance_profiles.each.sort_by {|k, v| k }.map {|instance_profile_name, attrs|
113
+ next unless target_matched?(instance_profile_name)
110
114
  output_instance_profile(instance_profile_name, attrs)
111
- }.join("\n")
115
+ }.select {|i| i }.join("\n")
112
116
  end
113
117
 
114
118
  def output_assume_role_policy_document(assume_role_policy_document)
@@ -150,4 +154,12 @@ instance_profile #{instance_profile_name.inspect}, #{Miam::Utils.unbrace(instanc
150
154
  end
151
155
  EOS
152
156
  end
157
+
158
+ def target_matched?(name)
159
+ if @options[:target]
160
+ name =~ @options[:target]
161
+ else
162
+ true
163
+ end
164
+ end
153
165
  end
data/lib/miam/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Miam
2
- VERSION = '0.1.3'
2
+ VERSION = '0.1.4'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: miam
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Genki Sugawara
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-21 00:00:00.000000000 Z
11
+ date: 2014-10-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-core