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 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: