terraforming 0.4.0 → 0.5.0
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/CHANGELOG.md +7 -1
- data/README.md +1 -0
- data/lib/terraforming.rb +1 -0
- data/lib/terraforming/cli.rb +5 -0
- data/lib/terraforming/resource/route_table.rb +57 -0
- data/lib/terraforming/template/tf/route_table.erb +30 -0
- data/lib/terraforming/version.rb +1 -1
- data/terraforming.gemspec +1 -1
- metadata +8 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 838cb35c9f3ccaf96a07929407282dd25620a2ce
|
4
|
+
data.tar.gz: 2c81b7c5a24cc7e19e3679ec6c5341eac4ef18c0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 43f07b3a3fe4953da6c189b946cb628bb9b73ae9b8474c026bca836d61aace8f63f16dd1b73b4e971265cb9093ead75077bd082ae65df49292f6842925d9c234
|
7
|
+
data.tar.gz: 6e469450a3de21eb142db4fe9263e7546c173b78f5adc7d666b199ace5927c048e23192f65e20dacb96ae89c24612e3e9b34138cae7cb492c74097d41642ad37
|
data/CHANGELOG.md
CHANGED
@@ -1,4 +1,10 @@
|
|
1
|
-
# [v0.
|
1
|
+
# [v0.5.0](https://github.com/dtan4/terraforming/releases/tag/v0.5.0) (2015-11-20)
|
2
|
+
|
3
|
+
## Resource
|
4
|
+
|
5
|
+
- AWS Route Table #137 (thanks @k1LoW)
|
6
|
+
|
7
|
+
# [v0.4.0](https://github.com/dtan4/terraforming/releases/tag/v0.4.0) (2015-11-10)
|
2
8
|
|
3
9
|
## New feature
|
4
10
|
|
data/README.md
CHANGED
data/lib/terraforming.rb
CHANGED
@@ -32,6 +32,7 @@ require "terraforming/resource/iam_user_policy"
|
|
32
32
|
require "terraforming/resource/network_acl"
|
33
33
|
require "terraforming/resource/network_interface"
|
34
34
|
require "terraforming/resource/rds"
|
35
|
+
require "terraforming/resource/route_table"
|
35
36
|
require "terraforming/resource/route53_record"
|
36
37
|
require "terraforming/resource/route53_zone"
|
37
38
|
require "terraforming/resource/s3"
|
data/lib/terraforming/cli.rb
CHANGED
@@ -120,6 +120,11 @@ module Terraforming
|
|
120
120
|
execute(Terraforming::Resource::RDS, options)
|
121
121
|
end
|
122
122
|
|
123
|
+
desc "rt", "Route Table"
|
124
|
+
def rt
|
125
|
+
execute(Terraforming::Resource::RouteTable, options)
|
126
|
+
end
|
127
|
+
|
123
128
|
desc "s3", "S3"
|
124
129
|
def s3
|
125
130
|
execute(Terraforming::Resource::S3, options)
|
@@ -0,0 +1,57 @@
|
|
1
|
+
module Terraforming
|
2
|
+
module Resource
|
3
|
+
class RouteTable
|
4
|
+
include Terraforming::Util
|
5
|
+
|
6
|
+
def self.tf(client: Aws::EC2::Client.new)
|
7
|
+
self.new(client).tf
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.tfstate(client: Aws::EC2::Client.new)
|
11
|
+
self.new(client).tfstate
|
12
|
+
end
|
13
|
+
|
14
|
+
def initialize(client)
|
15
|
+
@client = client
|
16
|
+
end
|
17
|
+
|
18
|
+
def tf
|
19
|
+
apply_template(@client, "tf/route_table")
|
20
|
+
end
|
21
|
+
|
22
|
+
def tfstate
|
23
|
+
route_tables.inject({}) do |resources, route_table|
|
24
|
+
attributes = {
|
25
|
+
"id" => route_table.route_table_id,
|
26
|
+
"route.#" => routes_of(route_table).length.to_s,
|
27
|
+
"tags.#" => route_table.tags.length.to_s,
|
28
|
+
"vpc_id" => route_table.vpc_id,
|
29
|
+
}
|
30
|
+
resources["aws_route_table.#{module_name_of(route_table)}"] = {
|
31
|
+
"type" => "aws_route_table",
|
32
|
+
"primary" => {
|
33
|
+
"id" => route_table.route_table_id,
|
34
|
+
"attributes" => attributes
|
35
|
+
}
|
36
|
+
}
|
37
|
+
|
38
|
+
resources
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
private
|
43
|
+
|
44
|
+
def routes_of(route_table)
|
45
|
+
route_table.routes
|
46
|
+
end
|
47
|
+
|
48
|
+
def module_name_of(route_table)
|
49
|
+
normalize_module_name(name_from_tag(route_table, route_table.route_table_id))
|
50
|
+
end
|
51
|
+
|
52
|
+
def route_tables
|
53
|
+
@client.describe_route_tables.route_tables
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
<% route_tables.each do |route_table| -%>
|
2
|
+
resource "aws_route_table" "<%= module_name_of(route_table) %>" {
|
3
|
+
vpc_id = "<%= route_table.vpc_id %>"
|
4
|
+
|
5
|
+
<% routes_of(route_table).each do |route| -%>
|
6
|
+
route {
|
7
|
+
cidr_block = "<%= route.destination_cidr_block %>"
|
8
|
+
<% if route.gateway_id -%>
|
9
|
+
gateway_id = "<%= route.gateway_id %>"
|
10
|
+
<% end -%>
|
11
|
+
<% if route.instance_id -%>
|
12
|
+
instance_id = "<%= route.instance_id %>"
|
13
|
+
<% end -%>
|
14
|
+
<% if route.vpc_peering_connection_id -%>
|
15
|
+
vpc_peering_connection_id = "<%= route.vpc_peering_connection_id %>"
|
16
|
+
<% end -%>
|
17
|
+
<% if route.network_interface_id -%>
|
18
|
+
network_interface_id = "<%= route.network_interface_id %>"
|
19
|
+
<% end -%>
|
20
|
+
}
|
21
|
+
|
22
|
+
<% end -%>
|
23
|
+
tags {
|
24
|
+
<% route_table.tags.each do |tag| -%>
|
25
|
+
"<%= tag.key %>" = "<%= tag.value %>"
|
26
|
+
<% end -%>
|
27
|
+
}
|
28
|
+
}
|
29
|
+
|
30
|
+
<% end -%>
|
data/lib/terraforming/version.rb
CHANGED
data/terraforming.gemspec
CHANGED
@@ -19,7 +19,7 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
20
20
|
spec.require_paths = ["lib"]
|
21
21
|
|
22
|
-
spec.add_dependency "aws-sdk", "~> 2.
|
22
|
+
spec.add_dependency "aws-sdk", "~> 2.2.0"
|
23
23
|
spec.add_dependency "oj"
|
24
24
|
spec.add_dependency "ox"
|
25
25
|
spec.add_dependency "thor"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: terraforming
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daisuke Fujita
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-11-
|
11
|
+
date: 2015-11-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 2.
|
19
|
+
version: 2.2.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 2.
|
26
|
+
version: 2.2.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: oj
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -208,6 +208,7 @@ files:
|
|
208
208
|
- lib/terraforming/resource/rds.rb
|
209
209
|
- lib/terraforming/resource/route53_record.rb
|
210
210
|
- lib/terraforming/resource/route53_zone.rb
|
211
|
+
- lib/terraforming/resource/route_table.rb
|
211
212
|
- lib/terraforming/resource/s3.rb
|
212
213
|
- lib/terraforming/resource/security_group.rb
|
213
214
|
- lib/terraforming/resource/subnet.rb
|
@@ -235,6 +236,7 @@ files:
|
|
235
236
|
- lib/terraforming/template/tf/rds.erb
|
236
237
|
- lib/terraforming/template/tf/route53_record.erb
|
237
238
|
- lib/terraforming/template/tf/route53_zone.erb
|
239
|
+
- lib/terraforming/template/tf/route_table.erb
|
238
240
|
- lib/terraforming/template/tf/s3.erb
|
239
241
|
- lib/terraforming/template/tf/security_group.erb
|
240
242
|
- lib/terraforming/template/tf/subnet.erb
|
@@ -264,8 +266,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
264
266
|
version: '0'
|
265
267
|
requirements: []
|
266
268
|
rubyforge_project:
|
267
|
-
rubygems_version: 2.4.
|
269
|
+
rubygems_version: 2.4.8
|
268
270
|
signing_key:
|
269
271
|
specification_version: 4
|
270
272
|
summary: Export existing AWS resources to Terraform style (tf, tfstate)
|
271
273
|
test_files: []
|
274
|
+
has_rdoc:
|