practice_terraforming 0.1.5 → 0.1.6

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: 0f5c1c6917cacde37c98cd92a4a0586a9a2a3d64
4
- data.tar.gz: afc1061b5d576f8ec3589dda72e173f1ba6df4a6
3
+ metadata.gz: 98ff43f8cc264e18b5ede9e0ef14d83b2b3f6407
4
+ data.tar.gz: 7768beac720f4fc06f7f38a922cee1a99075fdc2
5
5
  SHA512:
6
- metadata.gz: d731812e269872c606f6fc4dfbe0635ef2477c60d81d8af1429e54192aeae49a8305b9d55dec083e7430b374c864ab3774d13b9ff551319e4dab408621b00303
7
- data.tar.gz: 2c26afc9ea90d3d74be6a572495fa9b6041b3dfeecfa5663d20e3b85da699b2e9eb1ffe24fcf1c2a7d55ee232d8a933e48693e9afa74e5c1c9947020c6c54870
6
+ metadata.gz: d497200c61999b77882d41291ac56e62cb021e4706b383855f27bf78eda5eb60a8ab07c481c43e579866006ba8cd97ad972084c2a0855e976a5667b58398e0f6
7
+ data.tar.gz: f537949c2caf1b618d162ef1428e61e1153ba85bf96a6a9b0a74afc7dec89fb35b4e8119c61a8338959759ed95733e56dbfc1f255d1100c7893d7e18553f175b
data/.circleci/config.yml CHANGED
@@ -15,10 +15,8 @@ jobs:
15
15
  name: setup bundler
16
16
  command: |
17
17
  sudo gem update --system
18
- sudo gem uninstall bundler
19
- sudo rm /usr/local/bin/bundle
20
- sudo rm /usr/local/bin/bundler
21
- sudo gem install bundler
18
+ sudo gem uninstall -ax bundler
19
+ sudo gem install bundle
22
20
  - run:
23
21
  name: install
24
22
  command: bundle install --path vendor/bundle
data/README.md CHANGED
@@ -308,6 +308,7 @@ Done installing documentation for practice_terraforming after 0 seconds
308
308
  practice_terraforming
309
309
  Commands:
310
310
  practice_terraforming help [COMMAND] # Describe available commands or one specific command
311
+ practice_terraforming iamgpa # Iam Group Policy Attachment
311
312
  practice_terraforming iampa # Iam Policy Attachment
312
313
  practice_terraforming iamr # Iam Role
313
314
  practice_terraforming iamrpa # Iam Role Policy Attachment
@@ -18,6 +18,10 @@ module PracticeTerraforming
18
18
  execute(PracticeTerraforming::Resource::IAMRole, options)
19
19
  end
20
20
 
21
+ desc "iamu", "Iam User"
22
+ def iamu
23
+ execute(PracticeTerraforming::Resource::IAMUser, options)
24
+ end
21
25
  desc "s3", "S3"
22
26
  def s3
23
27
  execute(PracticeTerraforming::Resource::S3, options)
@@ -0,0 +1,61 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PracticeTerraforming
4
+ module Resource
5
+ class IAMUser
6
+ include PracticeTerraforming::Util
7
+
8
+ # TODO: Select appropriate Client class from here:
9
+ # http://docs.aws.amazon.com/sdkforruby/api/index.html
10
+ def self.tf(client: Aws::IAM::Client.new)
11
+ self.new(client).tf
12
+ end
13
+
14
+ # TODO: Select appropriate Client class from here:
15
+ # http://docs.aws.amazon.com/sdkforruby/api/index.html
16
+ def self.tfstate(client: Aws::IAM::Client.new)
17
+ self.new(client).tfstate
18
+ end
19
+
20
+ def initialize(client)
21
+ @client = client
22
+ end
23
+
24
+ def tf
25
+ apply_template(@client, "tf/iam_user")
26
+ end
27
+
28
+ def tfstate
29
+ iam_users.inject({}) do |resources, user|
30
+ attributes = {
31
+ "arn" => user.arn,
32
+ "id" => user.user_name,
33
+ "name" => user.user_name,
34
+ "path" => user.path,
35
+ "unique_id" => user.user_id,
36
+ "force_destroy" => "false"
37
+ }
38
+ resources["aws_iam_user.#{module_name_of(user)}"] = {
39
+ "type" => "aws_iam_user",
40
+ "primary" => {
41
+ "id" => user.user_name,
42
+ "attributes" => attributes
43
+ }
44
+ }
45
+
46
+ resources
47
+ end
48
+ end
49
+
50
+ private
51
+
52
+ def iam_users
53
+ @client.list_users.map(&:users).flatten
54
+ end
55
+
56
+ def module_name_of(user)
57
+ normalize_module_name(user.user_name)
58
+ end
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,7 @@
1
+ <% iam_users.each do |user| -%>
2
+ resource "aws_iam_user" "<%= module_name_of(user) %>" {
3
+ name = "<%= user.user_name %>"
4
+ path = "<%= user.path %>"
5
+ }
6
+
7
+ <% end -%>
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PracticeTerraforming
4
- VERSION = '0.1.5'
4
+ VERSION = '0.1.6'
5
5
  end
@@ -12,6 +12,7 @@ require 'practice_terraforming/version'
12
12
  require "practice_terraforming/cli"
13
13
  require "practice_terraforming/resource/iam_role"
14
14
  require "practice_terraforming/resource/iam_role_policy_attachment"
15
+ require "practice_terraforming/resource/iam_user"
15
16
  require "practice_terraforming/resource/iam_user_policy_attachment"
16
17
  require "practice_terraforming/resource/iam_group_policy_attachment"
17
18
  require "practice_terraforming/resource/iam_policy_attachment"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: practice_terraforming
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - masatonaka
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-12-15 00:00:00.000000000 Z
11
+ date: 2020-01-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-iam
@@ -162,12 +162,14 @@ files:
162
162
  - lib/practice_terraforming/resource/iam_policy_attachment.rb
163
163
  - lib/practice_terraforming/resource/iam_role.rb
164
164
  - lib/practice_terraforming/resource/iam_role_policy_attachment.rb
165
+ - lib/practice_terraforming/resource/iam_user.rb
165
166
  - lib/practice_terraforming/resource/iam_user_policy_attachment.rb
166
167
  - lib/practice_terraforming/resource/s3.rb
167
168
  - lib/practice_terraforming/template/tf/iam_group_policy_attachment.erb
168
169
  - lib/practice_terraforming/template/tf/iam_policy_attachment.erb
169
170
  - lib/practice_terraforming/template/tf/iam_role.erb
170
171
  - lib/practice_terraforming/template/tf/iam_role_policy_attachment.erb
172
+ - lib/practice_terraforming/template/tf/iam_user.erb
171
173
  - lib/practice_terraforming/template/tf/iam_user_policy_attachment.erb
172
174
  - lib/practice_terraforming/template/tf/s3.erb
173
175
  - lib/practice_terraforming/util.rb