miam 0.2.1 → 0.2.2.beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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.