practice_terraforming 0.1.5 → 0.1.6

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: 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