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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 83e52a2077dcb82f839069ae413d1a634262cf7bc44990d679edf0061cceb1c3
4
- data.tar.gz: 22d850535b3352819ef926b57a9bd3424f0561e526d6984e626a09a6e2cb16ec
3
+ metadata.gz: 298d27c010e58c96ac88fe3c07359d3ea776ee1a419024f7b47207affe29da85
4
+ data.tar.gz: 52cbf7c77b84eea98dce29462fde23fb5928925739d28870a484c60b30e53353
5
5
  SHA512:
6
- metadata.gz: 2d14a6e67f93125a4da114a3d1f3eae84e40f8fa36a464cd6ac60f2666cb97c17a75aad320b240e6783d1ed8debd014a7b9745f295ceebe7f34f18bfa9e403d7
7
- data.tar.gz: f01bc72f115d317e235b0afca7c2e10deed4bd20953f92f0c5305152748c1b535476b234a74fda95a5dc55df63f502d25e001a7de185a8d72378e802729b3f2b
6
+ metadata.gz: 281296ae423a4a8d67067387a12ec2ea652a6cb9ac0121134d3ace2570f3b67b00b1127137559dd35431cb1c32b516287db67f5408d2f1884814f3eee2618e71
7
+ data.tar.gz: df6c0d66c07bf01f41bb1e9e2a22d019db9b0e6189d207584c9c45ed509d66b0255c478bdbd616509635436d9fb115d5282ca461b1638a02bc5d9cdec0f7db79
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ruby-terraform (0.57.0.pre.1)
4
+ ruby-terraform (0.60.0)
5
5
  lino (>= 1.1, < 2)
6
6
 
7
7
  GEM
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
@@ -0,0 +1,3 @@
1
+ # Enable `require 'ruby-terraform'`, to match the gem name
2
+
3
+ require_relative 'ruby_terraform.rb'
@@ -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
@@ -1,3 +1,3 @@
1
1
  module RubyTerraform
2
- VERSION = "0.57.0.pre.1"
2
+ VERSION = "0.60.0"
3
3
  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.57.0.pre.1
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-05-25 00:00:00.000000000 Z
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: 1.3.1
216
+ version: '0'
214
217
  requirements: []
215
218
  rubygems_version: 3.0.1
216
219
  signing_key: