ruby-terraform 0.57.0.pre.1 → 0.60.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/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:
|