ruby-terraform 0.57.0.pre.1 → 0.60.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/README.md +74 -0
- data/lib/ruby-terraform.rb +3 -0
- data/lib/ruby_terraform.rb +8 -0
- data/lib/ruby_terraform/commands.rb +2 -0
- data/lib/ruby_terraform/commands/format.rb +31 -0
- data/lib/ruby_terraform/commands/import.rb +46 -0
- data/lib/ruby_terraform/version.rb +1 -1
- metadata +7 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 298d27c010e58c96ac88fe3c07359d3ea776ee1a419024f7b47207affe29da85
|
4
|
+
data.tar.gz: 52cbf7c77b84eea98dce29462fde23fb5928925739d28870a484c60b30e53353
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 281296ae423a4a8d67067387a12ec2ea652a6cb9ac0121134d3ace2570f3b67b00b1127137559dd35431cb1c32b516287db67f5408d2f1884814f3eee2618e71
|
7
|
+
data.tar.gz: df6c0d66c07bf01f41bb1e9e2a22d019db9b0e6189d207584c9c45ed509d66b0255c478bdbd616509635436d9fb115d5282ca461b1638a02bc5d9cdec0f7db79
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -48,7 +48,9 @@ Currently, there is partial support for the following commands:
|
|
48
48
|
* `RubyTerraform::Commands::Destroy`: executes `terraform destroy`
|
49
49
|
* `RubyTerraform::Commands::Output`: executes `terraform output`
|
50
50
|
* `RubyTerraform::Commands::Refresh`: executes `terraform refresh`
|
51
|
+
* `RubyTerraform::Commands::Import`: executes `terraform import`
|
51
52
|
* `RubyTerraform::Commands::RemoteConfig`: executes `terraform remote config`
|
53
|
+
* `RubyTerraform::Commands::Format`: executes `terraform fmt`
|
52
54
|
* `RubyTerraform::Commands::Validate`: executes `terraform validate`
|
53
55
|
* `RubyTerraform::Commands::Workspace`: executes `terraform workspace`
|
54
56
|
|
@@ -311,6 +313,47 @@ The refresh command supports the following options passed as keyword arguments:
|
|
311
313
|
defaults to `false`.
|
312
314
|
|
313
315
|
|
316
|
+
### RubyTerraform::Commands::Import
|
317
|
+
|
318
|
+
The import command imports existing infrastructure into your terraform state.
|
319
|
+
It can be called in the following ways:
|
320
|
+
|
321
|
+
```ruby
|
322
|
+
RubyTerraform.import(
|
323
|
+
directory: 'infra/networking',
|
324
|
+
address: 'a.resource.address',
|
325
|
+
id: 'a-resource-id',
|
326
|
+
vars: {
|
327
|
+
region: 'eu-central'
|
328
|
+
}))
|
329
|
+
RubyTerraform::Commands::Import.new.execute(
|
330
|
+
directory: 'infra/networking',
|
331
|
+
address: 'a.resource.address',
|
332
|
+
id: 'a-resource-id',
|
333
|
+
vars: {
|
334
|
+
region: 'eu-central'
|
335
|
+
}))
|
336
|
+
```
|
337
|
+
|
338
|
+
The import command supports the following options passed as keyword arguments:
|
339
|
+
* `directory`: the directory containing terraform configuration; required.
|
340
|
+
* `address`: a valid resource address; required.
|
341
|
+
* `id`: id of resource being imported; required.
|
342
|
+
* `vars`: a map of vars to be passed in to the terraform configuration.
|
343
|
+
* `var_file`: the path to a terraform var file; if both `var_file` and
|
344
|
+
`var_files` are provided, all var files will be passed to terraform.
|
345
|
+
* `var_files`: an array of paths to terraform var files; if both `var_file` and
|
346
|
+
`var_files` are provided, all var files will be passed to terraform.
|
347
|
+
* `input`: when `false`, will not ask for input for variables not directly set;
|
348
|
+
defaults to `true`.
|
349
|
+
* `state`: the path to the state file containing the current state; defaults to
|
350
|
+
terraform.tfstate in the working directory or the remote state if configured.
|
351
|
+
* `no_backup`: when `true`, no backup file will be written; defaults to `false`.
|
352
|
+
* `backup`: the path to the backup file in which to store the state backup.
|
353
|
+
* `no_color`: whether or not the output from the command should be in color;
|
354
|
+
defaults to `false`.
|
355
|
+
|
356
|
+
|
314
357
|
### RubyTerraform::Commands::RemoteConfig
|
315
358
|
|
316
359
|
The remote config command configures storage of state using a remote backend. It
|
@@ -342,7 +385,38 @@ arguments:
|
|
342
385
|
* `no_color`: whether or not the output from the command should be in color;
|
343
386
|
defaults to `false`.
|
344
387
|
|
388
|
+
### RubyTerraform::Commands::Format
|
389
|
+
|
390
|
+
The format command formats the terraform directory specified. It can be called in the following ways:
|
345
391
|
|
392
|
+
```ruby
|
393
|
+
RubyTerraform.format(
|
394
|
+
directory: 'infra/networking',
|
395
|
+
vars: {
|
396
|
+
region: 'eu-central'
|
397
|
+
})
|
398
|
+
RubyTerraform::Commands::Format.new.execute(
|
399
|
+
directory: 'infra/networking',
|
400
|
+
vars: {
|
401
|
+
region: 'eu-central'
|
402
|
+
})
|
403
|
+
```
|
404
|
+
|
405
|
+
The format command supports the following options passed as keyword arguments:
|
406
|
+
* `directory`: the directory containing terraform configuration to be formatted; required.
|
407
|
+
* `recursive`: Processes files in subdirectories;
|
408
|
+
defaults to `false`.
|
409
|
+
* `list`: Don't list files whose formatting differs;
|
410
|
+
defaults to `false`.
|
411
|
+
* `write`: Don't write to source files;
|
412
|
+
defaults to `false`.
|
413
|
+
* `check`: Checks if the input is formatted, exit status will be 0 if all input is properly formatted and non zero otherwise;
|
414
|
+
defaults to `false`.
|
415
|
+
* `diff`: Displays a diff of the formatting changes;
|
416
|
+
defaults to `false`.
|
417
|
+
* `no_color`: whether or not the output from the command should be in color;
|
418
|
+
defaults to `false`.
|
419
|
+
|
346
420
|
### RubyTerraform::Commands::Validate
|
347
421
|
|
348
422
|
The validate command validates terraform configuration in the provided terraform
|
data/lib/ruby_terraform.rb
CHANGED
@@ -68,6 +68,14 @@ module RubyTerraform
|
|
68
68
|
def workspace(opts = {})
|
69
69
|
Commands::Workspace.new.execute(opts)
|
70
70
|
end
|
71
|
+
|
72
|
+
def import(opts = {})
|
73
|
+
Commands::Import.new.execute(opts)
|
74
|
+
end
|
75
|
+
|
76
|
+
def format(opts = {})
|
77
|
+
Commands::Format.new.execute(opts)
|
78
|
+
end
|
71
79
|
end
|
72
80
|
extend ClassMethods
|
73
81
|
|
@@ -10,6 +10,8 @@ require_relative 'commands/refresh'
|
|
10
10
|
require_relative 'commands/remote_config'
|
11
11
|
require_relative 'commands/show'
|
12
12
|
require_relative 'commands/workspace'
|
13
|
+
require_relative 'commands/import'
|
14
|
+
require_relative 'commands/format'
|
13
15
|
|
14
16
|
module RubyTerraform
|
15
17
|
module Commands
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'lino'
|
4
|
+
require_relative 'base'
|
5
|
+
|
6
|
+
module RubyTerraform
|
7
|
+
module Commands
|
8
|
+
class Format < Base
|
9
|
+
def configure_command(builder, opts)
|
10
|
+
directory = opts[:directory]
|
11
|
+
check = opts[:check]
|
12
|
+
diff = opts[:diff]
|
13
|
+
list = opts[:list]
|
14
|
+
no_color = opts[:no_color]
|
15
|
+
recursive = opts[:recursive]
|
16
|
+
write = opts[:write]
|
17
|
+
|
18
|
+
builder.with_subcommand('fmt') do |sub|
|
19
|
+
sub = sub.with_option('-list', list) if list
|
20
|
+
sub = sub.with_option('-write', write) if write
|
21
|
+
|
22
|
+
sub = sub.with_flag('-check') if check
|
23
|
+
sub = sub.with_flag('-diff') if diff
|
24
|
+
sub = sub.with_flag('-no-color') if no_color
|
25
|
+
sub = sub.with_flag('-recursive') if recursive
|
26
|
+
sub
|
27
|
+
end.with_argument(directory)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'lino'
|
4
|
+
require_relative 'base'
|
5
|
+
|
6
|
+
module RubyTerraform
|
7
|
+
module Commands
|
8
|
+
class Import < Base
|
9
|
+
def configure_command(builder, opts)
|
10
|
+
directory = opts[:directory]
|
11
|
+
vars = opts[:vars] || {}
|
12
|
+
var_file = opts[:var_file]
|
13
|
+
var_files = opts[:var_files] || []
|
14
|
+
no_color = opts[:no_color]
|
15
|
+
no_backup = opts[:no_backup]
|
16
|
+
backup = no_backup ? '-' : opts[:backup]
|
17
|
+
state = opts[:state]
|
18
|
+
input = opts[:input]
|
19
|
+
address = opts[:address]
|
20
|
+
id = opts[:id]
|
21
|
+
|
22
|
+
builder
|
23
|
+
.with_subcommand('import') do |sub|
|
24
|
+
sub = sub.with_option('-config', directory)
|
25
|
+
vars.each do |key, value|
|
26
|
+
var_value = value.is_a?(String) ? value : JSON.generate(value)
|
27
|
+
sub = sub.with_option(
|
28
|
+
'-var', "'#{key}=#{var_value}'", separator: ' '
|
29
|
+
)
|
30
|
+
end
|
31
|
+
sub = sub.with_option('-var-file', var_file) if var_file
|
32
|
+
var_files.each do |file|
|
33
|
+
sub = sub.with_option('-var-file', file)
|
34
|
+
end
|
35
|
+
sub = sub.with_option('-state', state) if state
|
36
|
+
sub = sub.with_option('-input', input) if input
|
37
|
+
sub = sub.with_option('-backup', backup) if backup
|
38
|
+
sub = sub.with_flag('-no-color') if no_color
|
39
|
+
sub
|
40
|
+
end
|
41
|
+
.with_argument(address)
|
42
|
+
.with_argument(id)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-terraform
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.60.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Toby Clemson
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-09-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: lino
|
@@ -166,13 +166,16 @@ files:
|
|
166
166
|
- config/secrets/github/config.yaml
|
167
167
|
- config/secrets/rubygems/credentials
|
168
168
|
- go
|
169
|
+
- lib/ruby-terraform.rb
|
169
170
|
- lib/ruby_terraform.rb
|
170
171
|
- lib/ruby_terraform/commands.rb
|
171
172
|
- lib/ruby_terraform/commands/apply.rb
|
172
173
|
- lib/ruby_terraform/commands/base.rb
|
173
174
|
- lib/ruby_terraform/commands/clean.rb
|
174
175
|
- lib/ruby_terraform/commands/destroy.rb
|
176
|
+
- lib/ruby_terraform/commands/format.rb
|
175
177
|
- lib/ruby_terraform/commands/get.rb
|
178
|
+
- lib/ruby_terraform/commands/import.rb
|
176
179
|
- lib/ruby_terraform/commands/init.rb
|
177
180
|
- lib/ruby_terraform/commands/output.rb
|
178
181
|
- lib/ruby_terraform/commands/plan.rb
|
@@ -208,9 +211,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
208
211
|
version: '2.6'
|
209
212
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
210
213
|
requirements:
|
211
|
-
- - "
|
214
|
+
- - ">="
|
212
215
|
- !ruby/object:Gem::Version
|
213
|
-
version:
|
216
|
+
version: '0'
|
214
217
|
requirements: []
|
215
218
|
rubygems_version: 3.0.1
|
216
219
|
signing_key:
|