miam 0.2.1 → 0.2.2.beta

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: f5a472cbe4cbf198885901737f30186772f19673
4
- data.tar.gz: 0ec7339ac40a0cc16914c64789f33e7475d1ef41
3
+ metadata.gz: fe963fe6fae509bed4854e4e671692fcc18c4107
4
+ data.tar.gz: 231af89b949cdddf357961cdf89e80958c4d5f41
5
5
  SHA512:
6
- metadata.gz: 24fa717bce2368efcc859c25d3cf0b860ae37eca5a74b8557a6d3fcea7b8285b6146e9900054e90e2ad9f4df63396a1638c41e40f528c45fb694879e5f9af989
7
- data.tar.gz: dee9775236db618dadead669da2c7b022beb5436f34e60bdd755cb9a485ced042f7d90ccb15001f8271b69997f70cd8e20fca66d60ec1830a1059d20f96d3d7e
6
+ metadata.gz: a83c3befa251be6948f7e44de4a29905661c65a251f7eb4198894ff3e84b62438809caf75179d9f8aaa79370a824b49e3e294e7bba6bf22066a1ffb8b0b322da
7
+ data.tar.gz: 3c527e428ab28af26051c578c9e526573ad381669480e118e43bc06ef8fb152a004d3f84f19b3c48382e803b91a2ec98143ae0adb6587485dc3866002aee1370
@@ -9,6 +9,7 @@ require 'aws-sdk-core'
9
9
  require 'ruby-progressbar'
10
10
  require 'parallel'
11
11
  require 'term/ansicolor'
12
+ require 'diffy'
12
13
 
13
14
  module Miam; end
14
15
  require 'miam/logger'
@@ -133,7 +133,7 @@ class Miam::Client
133
133
  @driver.delete_login_profile(user_name)
134
134
  updated = true
135
135
  elsif expected_login_profile != actual_login_profile
136
- @driver.update_login_profile(user_name, expected_login_profile)
136
+ @driver.update_login_profile(user_name, expected_login_profile, actual_login_profile)
137
137
  updated = true
138
138
  end
139
139
 
@@ -257,7 +257,7 @@ class Miam::Client
257
257
  updated = false
258
258
 
259
259
  if expected_assume_role_policy != actual_assume_role_policy
260
- @driver.update_assume_role_policy(role_name, expected_assume_role_policy)
260
+ @driver.update_assume_role_policy(role_name, expected_assume_role_policy, actual_assume_role_policy)
261
261
  updated = true
262
262
  end
263
263
 
@@ -367,7 +367,7 @@ class Miam::Client
367
367
  updated = false
368
368
 
369
369
  if expected_path != actual_path
370
- @driver.update_path(type, user_or_group_name, expected_path)
370
+ @driver.update_path(type, user_or_group_name, expected_path, actual_path)
371
371
  updated = true
372
372
  end
373
373
 
@@ -400,7 +400,7 @@ class Miam::Client
400
400
  updated = false
401
401
 
402
402
  if expected_document != actual_document
403
- @driver.update_policy(type, user_or_group_name, policy_name, expected_document)
403
+ @driver.update_policy(type, user_or_group_name, policy_name, expected_document, actual_document)
404
404
  updated = true
405
405
  end
406
406
 
@@ -91,12 +91,12 @@ class Miam::Driver
91
91
  end
92
92
  end
93
93
 
94
- def update_login_profile(user_name, attrs)
94
+ def update_login_profile(user_name, attrs, old_attrs)
95
95
  log_attrs = attrs.dup
96
96
  log_attrs.delete(:password)
97
97
 
98
98
  log(:info, "Update User `#{user_name}`", :color => :green)
99
- log(:info, " update login profile: #{log_attrs.inspect}", :color => :green)
99
+ log(:info, " login profile:\n".green + Miam::Utils.diff(old_attrs, attrs, :color => @options[:color], :indent => ' '), :color => false)
100
100
 
101
101
  unless_dry_run do
102
102
  @iam.update_login_profile(attrs.merge(:user_name => user_name))
@@ -226,9 +226,9 @@ class Miam::Driver
226
226
  end
227
227
  end
228
228
 
229
- def update_assume_role_policy(role_name, policy_document)
229
+ def update_assume_role_policy(role_name, policy_document, old_policy_document)
230
230
  log(:info, "Update Role `#{role_name}` > AssumeRolePolicy", :color => :green)
231
- log(:info, " #{policy_document.pretty_inspect.gsub("\n", "\n ").strip}", :color => :green)
231
+ log(:info, Miam::Utils.diff(old_policy_document, policy_document, :color => @options[:color]), :color => false)
232
232
 
233
233
  unless_dry_run do
234
234
  @iam.update_assume_role_policy(
@@ -266,13 +266,13 @@ class Miam::Driver
266
266
 
267
267
  def update_name(type, user_or_group_name, new_name)
268
268
  log(:info, "Update #{Miam::Utils.camelize(type.to_s)} `#{user_or_group_name}`", :color => :green)
269
- log(:info, " set name=#{new_name}", :color => :green)
269
+ log(:info, " name:\n".green + Miam::Utils.diff(user_or_group_name, new_name, :color => @options[:color], :indent => ' '), :color => false)
270
270
  update_user_or_group(type, user_or_group_name, "new_#{type}_name".to_sym => new_name)
271
271
  end
272
272
 
273
- def update_path(type, user_or_group_name, new_path)
273
+ def update_path(type, user_or_group_name, new_path, old_path)
274
274
  log(:info, "Update #{Miam::Utils.camelize(type.to_s)} `#{user_or_group_name}`", :color => :green)
275
- log(:info, " set path=#{new_path}", :color => :green)
275
+ log(:info, " path:\n".green + Miam::Utils.diff(old_path, new_path, :color => @options[:color], :indent => ' '), :color => false)
276
276
  update_user_or_group(type, user_or_group_name, :new_path => new_path)
277
277
  end
278
278
 
@@ -289,9 +289,9 @@ class Miam::Driver
289
289
  put_policy(type, user_or_group_name, policy_name, policy_document)
290
290
  end
291
291
 
292
- def update_policy(type, user_or_group_name, policy_name, policy_document)
292
+ def update_policy(type, user_or_group_name, policy_name, policy_document, old_policy_document)
293
293
  log(:info, "Update #{Miam::Utils.camelize(type.to_s)} `#{user_or_group_name}` > Policy `#{policy_name}`", :color => :green)
294
- log(:info, " #{policy_document.pretty_inspect.gsub("\n", "\n ").strip}", :color => :green)
294
+ log(:info, Miam::Utils.diff(old_policy_document, policy_document, :color => @options[:color]), :color => false)
295
295
  put_policy(type, user_or_group_name, policy_name, policy_document)
296
296
  end
297
297
 
@@ -15,5 +15,17 @@ class Miam::Utils
15
15
  str.length
16
16
  end
17
17
  end
18
- end
18
+
19
+ def diff(obj1, obj2, options = {})
20
+ diffy = Diffy::Diff.new(
21
+ obj1.pretty_inspect,
22
+ obj2.pretty_inspect,
23
+ :diff => '-u'
24
+ )
25
+
26
+ out = diffy.to_s(options[:color] ? :color : :text).gsub(/\s+\z/m, '')
27
+ out.gsub!(/^/, options[:indent]) if options[:indent]
28
+ out
29
+ end
30
+ end # of class methods
19
31
  end
@@ -1,3 +1,3 @@
1
1
  module Miam
2
- VERSION = '0.2.1'
2
+ VERSION = '0.2.2.beta'
3
3
  end
@@ -24,6 +24,7 @@ Gem::Specification.new do |spec|
24
24
  spec.add_dependency 'ruby-progressbar'
25
25
  spec.add_dependency 'parallel'
26
26
  spec.add_dependency 'term-ansicolor'
27
+ spec.add_dependency 'diffy'
27
28
  spec.add_development_dependency 'bundler'
28
29
  spec.add_development_dependency 'rake'
29
30
  spec.add_development_dependency 'rspec', '>= 3.0.0'
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.2.1
4
+ version: 0.2.2.beta
5
5
  platform: ruby
6
6
  authors:
7
7
  - Genki Sugawara
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-07-04 00:00:00.000000000 Z
11
+ date: 2015-09-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-core
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - '>='
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: diffy
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: bundler
71
85
  requirement: !ruby/object:Gem::Requirement
@@ -190,12 +204,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
190
204
  version: '0'
191
205
  required_rubygems_version: !ruby/object:Gem::Requirement
192
206
  requirements:
193
- - - '>='
207
+ - - '>'
194
208
  - !ruby/object:Gem::Version
195
- version: '0'
209
+ version: 1.3.1
196
210
  requirements: []
197
211
  rubyforge_project:
198
- rubygems_version: 2.0.14
212
+ rubygems_version: 2.0.14.1
199
213
  signing_key:
200
214
  specification_version: 4
201
215
  summary: Miam is a tool to manage IAM.