miam 0.2.0.beta2 → 0.2.0.beta3

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: 2b4746d43e2426cfba92bc734aefcb601afaca48
4
- data.tar.gz: 97b169346e842f94b37dff744b8fd6bf8056a759
3
+ metadata.gz: 02ea3a9eccf5a34002ed0775537a780f4084bdb4
4
+ data.tar.gz: 12e7a9bb92969303b5655486a404d74247bfda51
5
5
  SHA512:
6
- metadata.gz: 295c3b5fdc15a5d900e95414fb1d59daf7b3c07fd755ff1413ab64eed6027bf9b3a457dc03e31bd7f405ff747117811b2d1831fedbf08988cd2980aa702ae63a
7
- data.tar.gz: e78da7de7c8bd646bb2558a0787fa7d20a048deea465b6beb3e772aef95d19eb5459380ee8962f9f25abdffbe57abd735d9fe327baa812c53e826eab27b2122d
6
+ metadata.gz: ba2d9553831f37ebb328b76cddfab99ba150772bfddb9ac3f52922ab448a5be4cd2b7e97b123d1aa83013319746f8855793c222802d387d75a5f7e31f5db9415
7
+ data.tar.gz: fc93bbd87a16930836fa06d94c0b04157325e6fa0da3a7a083d9efd75f356b11c89ede4dff1512585f6f2ee095fc7fe733d61b026f186155c94ae957f88d5f02
data/README.md CHANGED
@@ -12,7 +12,6 @@ It defines the state of IAM using DSL, and updates IAM according to DSL.
12
12
 
13
13
  * `>= 0.2.0`
14
14
  * Use [get_account_authorization_details](http://docs.aws.amazon.com/sdkforruby/api/Aws/IAM/Client.html#get_account_authorization_details-instance_method).
15
- * Remove progress bar.
16
15
 
17
16
  ## Installation
18
17
 
@@ -62,6 +61,7 @@ Usage: miam [options]
62
61
  --export-concurrency N
63
62
  --target REGEXP
64
63
  --no-color
64
+ --no-progress
65
65
  --debug
66
66
  ```
67
67
 
data/bin/miam CHANGED
@@ -46,6 +46,7 @@ ARGV.options do |opt|
46
46
  opt.on('' , '--export-concurrency N', Integer) {|v| options[:export_concurrency] = v }
47
47
  opt.on('' , '--target REGEXP') {|v| options[:target] = Regexp.new(v) }
48
48
  opt.on('' , '--no-color') { options[:color] = false }
49
+ opt.on('' , '--no-progress') { options[:no_progress] = true }
49
50
  opt.on('' , '--debug') { options[:debug] = true }
50
51
  opt.parse!
51
52
 
data/lib/miam.rb CHANGED
@@ -6,6 +6,7 @@ require 'singleton'
6
6
  require 'thread'
7
7
 
8
8
  require 'aws-sdk-core'
9
+ require 'ruby-progressbar'
9
10
  require 'parallel'
10
11
  require 'term/ansicolor'
11
12
 
data/lib/miam/exporter.rb CHANGED
@@ -1,3 +1,4 @@
1
+ # coding: utf-8
1
2
  class Miam::Exporter
2
3
  def self.export(iam, options = {})
3
4
  self.new(iam, options).export
@@ -20,6 +21,17 @@ class Miam::Exporter
20
21
  group_users = {}
21
22
  instance_profile_roles = {}
22
23
 
24
+ unless @options[:no_progress]
25
+ progress_total = users.length + groups.length + roles.length + instance_profiles.length
26
+
27
+ @progressbar = ProgressBar.create(
28
+ :format => ' %bᗧ%i %p%%',
29
+ :progress_mark => ' ',
30
+ :remainder_mark => '・',
31
+ :total => progress_total,
32
+ :output => $stderr)
33
+ end
34
+
23
35
  expected = {
24
36
  :users => export_users(users, group_users),
25
37
  :groups => export_groups(groups),
@@ -56,6 +68,8 @@ class Miam::Exporter
56
68
  if login_profile
57
69
  result[user_name][:login_profile] = login_profile
58
70
  end
71
+
72
+ progress
59
73
  end
60
74
  end
61
75
 
@@ -94,6 +108,8 @@ class Miam::Exporter
94
108
  :path => group.path,
95
109
  :policies => policies,
96
110
  }
111
+
112
+ progress
97
113
  end
98
114
  end
99
115
 
@@ -133,6 +149,8 @@ class Miam::Exporter
133
149
  :instance_profiles => instance_profiles,
134
150
  :policies => policies,
135
151
  }
152
+
153
+ progress
136
154
  end
137
155
  end
138
156
 
@@ -160,6 +178,8 @@ class Miam::Exporter
160
178
  result[instance_profile_name] = {
161
179
  :path => instance_profile.path,
162
180
  }
181
+
182
+ progress
163
183
  end
164
184
  end
165
185
 
@@ -175,6 +195,10 @@ class Miam::Exporter
175
195
  def get_account_authorization_details
176
196
  account_authorization_details = {}
177
197
 
198
+ unless @options[:no_progress]
199
+ progressbar = ProgressBar.create(:title => 'Loading', :total => nil, :output => $stderr)
200
+ end
201
+
178
202
  keys = [
179
203
  :user_detail_list,
180
204
  :group_detail_list,
@@ -188,9 +212,17 @@ class Miam::Exporter
188
212
  @iam.get_account_authorization_details.each do |resp|
189
213
  keys.each do |key|
190
214
  account_authorization_details[key].concat(resp[key])
215
+
216
+ unless @options[:no_progress]
217
+ progressbar.increment
218
+ end
191
219
  end
192
220
  end
193
221
 
194
222
  account_authorization_details
195
223
  end
224
+
225
+ def progress
226
+ @progressbar.increment if @progressbar
227
+ end
196
228
  end
@@ -19,7 +19,7 @@ module Seahorse
19
19
  private
20
20
 
21
21
  def add_GetAccountAuthorizationDetails_paginator(json)
22
- json["GetAccountAuthorizationDetails"] = {
22
+ json["pagination"]["GetAccountAuthorizationDetails"] = {
23
23
  "input_token" => "Marker",
24
24
  "output_token" => "Marker",
25
25
  "more_results" => "IsTruncated",
data/lib/miam/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Miam
2
- VERSION = '0.2.0.beta2'
2
+ VERSION = '0.2.0.beta3'
3
3
  end
data/miam.gemspec CHANGED
@@ -21,6 +21,7 @@ Gem::Specification.new do |spec|
21
21
  spec.require_paths = ['lib']
22
22
 
23
23
  spec.add_dependency 'aws-sdk-core', '~> 2.0.3'
24
+ spec.add_dependency 'ruby-progressbar'
24
25
  spec.add_dependency 'parallel'
25
26
  spec.add_dependency 'term-ansicolor'
26
27
  spec.add_development_dependency 'bundler', '~> 1.7'
data/spec/spec_helper.rb CHANGED
@@ -29,6 +29,7 @@ end
29
29
  def client(user_options = {})
30
30
  options = {
31
31
  logger: Logger.new('/dev/null'),
32
+ no_progress: true
32
33
  }
33
34
 
34
35
  options[:password_manager] = Miam::PasswordManager.new('/dev/null', options)
@@ -75,7 +76,7 @@ def apply(cli = client)
75
76
  end
76
77
 
77
78
  def export(options = {})
78
- options = {}.merge(options)
79
+ options = {no_progress: true}.merge(options)
79
80
  cli = options.delete(:client) || Aws::IAM::Client.new
80
81
  Miam::Exporter.export(cli, options)[0]
81
82
  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.2.0.beta2
4
+ version: 0.2.0.beta3
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-12-27 00:00:00.000000000 Z
11
+ date: 2014-12-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-core
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - ~>
25
25
  - !ruby/object:Gem::Version
26
26
  version: 2.0.3
27
+ - !ruby/object:Gem::Dependency
28
+ name: ruby-progressbar
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: parallel
29
43
  requirement: !ruby/object:Gem::Requirement