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 +4 -4
- data/.circleci/config.yml +2 -4
- data/README.md +1 -0
- data/lib/practice_terraforming/cli.rb +4 -0
- data/lib/practice_terraforming/resource/iam_user.rb +61 -0
- data/lib/practice_terraforming/template/tf/iam_user.erb +7 -0
- data/lib/practice_terraforming/version.rb +1 -1
- data/lib/practice_terraforming.rb +1 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 98ff43f8cc264e18b5ede9e0ef14d83b2b3f6407
|
4
|
+
data.tar.gz: 7768beac720f4fc06f7f38a922cee1a99075fdc2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
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
|
@@ -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.
|
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:
|
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
|