ruby-terraform 0.65.0.pre.9 → 0.65.0.pre.10

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.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -1
  3. data/lib/ruby_terraform.rb +45 -1
  4. data/lib/ruby_terraform/commands.rb +29 -8
  5. data/lib/ruby_terraform/commands/apply.rb +14 -9
  6. data/lib/ruby_terraform/commands/base.rb +3 -3
  7. data/lib/ruby_terraform/commands/clean.rb +2 -2
  8. data/lib/ruby_terraform/commands/destroy.rb +17 -8
  9. data/lib/ruby_terraform/commands/force_unlock.rb +24 -0
  10. data/lib/ruby_terraform/commands/format.rb +11 -9
  11. data/lib/ruby_terraform/commands/get.rb +8 -5
  12. data/lib/ruby_terraform/commands/graph.rb +24 -0
  13. data/lib/ruby_terraform/commands/import.rb +15 -6
  14. data/lib/ruby_terraform/commands/init.rb +16 -6
  15. data/lib/ruby_terraform/commands/login.rb +20 -0
  16. data/lib/ruby_terraform/commands/logout.rb +20 -0
  17. data/lib/ruby_terraform/commands/output.rb +9 -7
  18. data/lib/ruby_terraform/commands/plan.rb +15 -6
  19. data/lib/ruby_terraform/commands/providers.rb +16 -0
  20. data/lib/ruby_terraform/commands/providers_lock.rb +28 -0
  21. data/lib/ruby_terraform/commands/providers_mirror.rb +24 -0
  22. data/lib/ruby_terraform/commands/providers_schema.rb +25 -0
  23. data/lib/ruby_terraform/commands/refresh.rb +19 -6
  24. data/lib/ruby_terraform/commands/remote_config.rb +4 -4
  25. data/lib/ruby_terraform/commands/show.rb +8 -6
  26. data/lib/ruby_terraform/commands/state_list.rb +20 -0
  27. data/lib/ruby_terraform/commands/state_move.rb +34 -0
  28. data/lib/ruby_terraform/commands/state_pull.rb +16 -0
  29. data/lib/ruby_terraform/commands/state_push.rb +24 -0
  30. data/lib/ruby_terraform/commands/state_remove.rb +32 -0
  31. data/lib/ruby_terraform/commands/state_replace_provider.rb +35 -0
  32. data/lib/ruby_terraform/commands/state_show.rb +24 -0
  33. data/lib/ruby_terraform/commands/taint.rb +35 -0
  34. data/lib/ruby_terraform/commands/untaint.rb +37 -0
  35. data/lib/ruby_terraform/commands/validate.rb +8 -9
  36. data/lib/ruby_terraform/commands/workspace_delete.rb +32 -0
  37. data/lib/ruby_terraform/commands/workspace_list.rb +24 -0
  38. data/lib/ruby_terraform/commands/workspace_new.rb +32 -0
  39. data/lib/ruby_terraform/commands/workspace_select.rb +24 -0
  40. data/lib/ruby_terraform/commands/workspace_show.rb +16 -0
  41. data/lib/ruby_terraform/options.rb +1 -0
  42. data/lib/ruby_terraform/options/common.rb +11 -0
  43. data/lib/ruby_terraform/options/factory.rb +1 -0
  44. data/lib/ruby_terraform/output.rb +7 -7
  45. data/lib/ruby_terraform/version.rb +1 -1
  46. metadata +24 -2
  47. data/lib/ruby_terraform/commands/workspace.rb +0 -26
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'base'
4
+ require_relative '../options/common'
5
+
6
+ module RubyTerraform
7
+ module Commands
8
+ class StateReplaceProvider < Base
9
+ include RubyTerraform::Options::Common
10
+
11
+ def subcommands
12
+ %w[state replace-provider]
13
+ end
14
+
15
+ def options
16
+ %w[
17
+ -auto-approve
18
+ -backup
19
+ -lock
20
+ -lock-timeout
21
+ -state
22
+ -ignore-remote-version
23
+ ] + super
24
+ end
25
+
26
+ def arguments(parameters)
27
+ [parameters[:from], parameters[:to]]
28
+ end
29
+
30
+ def parameter_overrides(parameters)
31
+ { backup: parameters[:no_backup] ? '-' : parameters[:backup] }
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'base'
4
+ require_relative '../options/common'
5
+
6
+ module RubyTerraform
7
+ module Commands
8
+ class StateShow < Base
9
+ include RubyTerraform::Options::Common
10
+
11
+ def subcommands
12
+ %w[state show]
13
+ end
14
+
15
+ def options
16
+ %w[-state] + super
17
+ end
18
+
19
+ def arguments(parameters)
20
+ [parameters[:address]]
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'base'
4
+ require_relative '../options/common'
5
+
6
+ module RubyTerraform
7
+ module Commands
8
+ class Taint < Base
9
+ include RubyTerraform::Options::Common
10
+
11
+ def subcommands
12
+ %w[taint]
13
+ end
14
+
15
+ def options
16
+ %w[
17
+ -allow-missing
18
+ -backup
19
+ -lock
20
+ -lock-timeout
21
+ -state -state-out
22
+ -ignore-remote-version
23
+ ] + super
24
+ end
25
+
26
+ def arguments(parameters)
27
+ [parameters[:address]]
28
+ end
29
+
30
+ def parameter_overrides(parameters)
31
+ { backup: parameters[:no_backup] ? '-' : parameters[:backup] }
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'base'
4
+ require_relative '../options/common'
5
+
6
+ module RubyTerraform
7
+ module Commands
8
+ class Untaint < Base
9
+ include RubyTerraform::Options::Common
10
+
11
+ def subcommands
12
+ %w[untaint]
13
+ end
14
+
15
+ def options
16
+ %w[
17
+ -allow-missing
18
+ -backup
19
+ -lock
20
+ -lock-timeout
21
+ -no-color
22
+ -state
23
+ -state-out
24
+ -ignore-remote-version
25
+ ] + super
26
+ end
27
+
28
+ def arguments(parameters)
29
+ [parameters[:name]]
30
+ end
31
+
32
+ def parameter_overrides(parameters)
33
+ { backup: parameters[:no_backup] ? '-' : parameters[:backup] }
34
+ end
35
+ end
36
+ end
37
+ end
@@ -1,23 +1,22 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative 'base'
4
+ require_relative '../options/common'
4
5
 
5
6
  module RubyTerraform
6
7
  module Commands
7
8
  class Validate < Base
9
+ include RubyTerraform::Options::Common
10
+
11
+ def subcommands
12
+ %w[validate]
13
+ end
14
+
8
15
  def options
9
16
  %w[
10
- -check-variables
11
17
  -json
12
18
  -no-color
13
- -state
14
- -var
15
- -var-file
16
- ]
17
- end
18
-
19
- def subcommands(_parameters)
20
- %w[validate]
19
+ ] + super
21
20
  end
22
21
 
23
22
  def arguments(parameters)
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'base'
4
+ require_relative '../options/common'
5
+
6
+ module RubyTerraform
7
+ module Commands
8
+ class WorkspaceDelete < Base
9
+ include RubyTerraform::Options::Common
10
+
11
+ def subcommands
12
+ %w[workspace delete]
13
+ end
14
+
15
+ def options
16
+ %w[
17
+ -force
18
+ -lock
19
+ -lock-timeout
20
+ ] + super
21
+ end
22
+
23
+ def arguments(parameters)
24
+ [parameters[:workspace], parameters[:directory]]
25
+ end
26
+
27
+ def parameter_defaults(_parameters)
28
+ { directory: nil }
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'base'
4
+ require_relative '../options/common'
5
+
6
+ module RubyTerraform
7
+ module Commands
8
+ class WorkspaceList < Base
9
+ include RubyTerraform::Options::Common
10
+
11
+ def subcommands
12
+ %w[workspace list]
13
+ end
14
+
15
+ def arguments(parameters)
16
+ [parameters[:directory]]
17
+ end
18
+
19
+ def parameter_defaults(_parameters)
20
+ { directory: nil }
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'base'
4
+ require_relative '../options/common'
5
+
6
+ module RubyTerraform
7
+ module Commands
8
+ class WorkspaceNew < Base
9
+ include RubyTerraform::Options::Common
10
+
11
+ def subcommands
12
+ %w[workspace new]
13
+ end
14
+
15
+ def options
16
+ %w[
17
+ -lock
18
+ -lock-timeout
19
+ -state
20
+ ] + super
21
+ end
22
+
23
+ def arguments(parameters)
24
+ [parameters[:workspace], parameters[:directory]]
25
+ end
26
+
27
+ def parameter_defaults(_parameters)
28
+ { directory: nil }
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'base'
4
+ require_relative '../options/common'
5
+
6
+ module RubyTerraform
7
+ module Commands
8
+ class WorkspaceSelect < Base
9
+ include RubyTerraform::Options::Common
10
+
11
+ def subcommands
12
+ %w[workspace select]
13
+ end
14
+
15
+ def arguments(parameters)
16
+ [parameters[:workspace], parameters[:directory]]
17
+ end
18
+
19
+ def parameter_defaults(_parameters)
20
+ { directory: nil }
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'base'
4
+ require_relative '../options/common'
5
+
6
+ module RubyTerraform
7
+ module Commands
8
+ class WorkspaceShow < Base
9
+ include RubyTerraform::Options::Common
10
+
11
+ def subcommands
12
+ %w[workspace show]
13
+ end
14
+ end
15
+ end
16
+ end
@@ -5,3 +5,4 @@ require_relative 'options/types/flag'
5
5
  require_relative 'options/types/boolean'
6
6
  require_relative 'options/types/standard'
7
7
  require_relative 'options/factory'
8
+ require_relative 'options/common'
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RubyTerraform
4
+ module Options
5
+ module Common
6
+ def options
7
+ %w[-chdir]
8
+ end
9
+ end
10
+ end
11
+ end
@@ -14,6 +14,7 @@ module RubyTerraform
14
14
  -var
15
15
  -target
16
16
  -var-file
17
+ -platform
17
18
  ]
18
19
  ).freeze
19
20
 
@@ -3,18 +3,18 @@
3
3
  module RubyTerraform
4
4
  class Output
5
5
  class << self
6
- def for(opts)
7
- Dir.chdir(create_config_directory(opts)) do
8
- RubyTerraform.init(backend_config: opts[:backend_config])
9
- RubyTerraform.output(name: opts[:name])
6
+ def for(parameters)
7
+ Dir.chdir(create_config_directory(parameters)) do
8
+ RubyTerraform.init(backend_config: parameters[:backend_config])
9
+ RubyTerraform.output(name: parameters[:name])
10
10
  end
11
11
  end
12
12
 
13
13
  private
14
14
 
15
- def create_config_directory(opts)
16
- source_directory = opts[:source_directory]
17
- work_directory = opts[:work_directory]
15
+ def create_config_directory(parameters)
16
+ source_directory = parameters[:source_directory]
17
+ work_directory = parameters[:work_directory]
18
18
 
19
19
  configuration_directory = File.join(work_directory, source_directory)
20
20
  FileUtils.mkdir_p File.dirname(configuration_directory)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RubyTerraform
4
- VERSION = '0.65.0.pre.9'
4
+ VERSION = '0.65.0.pre.10'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-terraform
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.65.0.pre.9
4
+ version: 0.65.0.pre.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Toby Clemson
@@ -257,20 +257,42 @@ files:
257
257
  - lib/ruby_terraform/commands/base.rb
258
258
  - lib/ruby_terraform/commands/clean.rb
259
259
  - lib/ruby_terraform/commands/destroy.rb
260
+ - lib/ruby_terraform/commands/force_unlock.rb
260
261
  - lib/ruby_terraform/commands/format.rb
261
262
  - lib/ruby_terraform/commands/get.rb
263
+ - lib/ruby_terraform/commands/graph.rb
262
264
  - lib/ruby_terraform/commands/import.rb
263
265
  - lib/ruby_terraform/commands/init.rb
266
+ - lib/ruby_terraform/commands/login.rb
267
+ - lib/ruby_terraform/commands/logout.rb
264
268
  - lib/ruby_terraform/commands/output.rb
265
269
  - lib/ruby_terraform/commands/plan.rb
270
+ - lib/ruby_terraform/commands/providers.rb
271
+ - lib/ruby_terraform/commands/providers_lock.rb
272
+ - lib/ruby_terraform/commands/providers_mirror.rb
273
+ - lib/ruby_terraform/commands/providers_schema.rb
266
274
  - lib/ruby_terraform/commands/refresh.rb
267
275
  - lib/ruby_terraform/commands/remote_config.rb
268
276
  - lib/ruby_terraform/commands/show.rb
277
+ - lib/ruby_terraform/commands/state_list.rb
278
+ - lib/ruby_terraform/commands/state_move.rb
279
+ - lib/ruby_terraform/commands/state_pull.rb
280
+ - lib/ruby_terraform/commands/state_push.rb
281
+ - lib/ruby_terraform/commands/state_remove.rb
282
+ - lib/ruby_terraform/commands/state_replace_provider.rb
283
+ - lib/ruby_terraform/commands/state_show.rb
284
+ - lib/ruby_terraform/commands/taint.rb
285
+ - lib/ruby_terraform/commands/untaint.rb
269
286
  - lib/ruby_terraform/commands/validate.rb
270
- - lib/ruby_terraform/commands/workspace.rb
287
+ - lib/ruby_terraform/commands/workspace_delete.rb
288
+ - lib/ruby_terraform/commands/workspace_list.rb
289
+ - lib/ruby_terraform/commands/workspace_new.rb
290
+ - lib/ruby_terraform/commands/workspace_select.rb
291
+ - lib/ruby_terraform/commands/workspace_show.rb
271
292
  - lib/ruby_terraform/errors.rb
272
293
  - lib/ruby_terraform/errors/execution_error.rb
273
294
  - lib/ruby_terraform/options.rb
295
+ - lib/ruby_terraform/options/common.rb
274
296
  - lib/ruby_terraform/options/factory.rb
275
297
  - lib/ruby_terraform/options/name.rb
276
298
  - lib/ruby_terraform/options/types/base.rb
@@ -1,26 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative 'base'
4
-
5
- module RubyTerraform
6
- module Commands
7
- class Workspace < Base
8
- def subcommands(parameters)
9
- commands = ['workspace', parameters[:operation]]
10
- if parameters[:workspace] && parameters[:operation] != 'list'
11
- commands << parameters[:workspace]
12
- else
13
- commands
14
- end
15
- end
16
-
17
- def arguments(parameters)
18
- [parameters[:directory]]
19
- end
20
-
21
- def parameter_defaults(_parameters)
22
- { directory: nil, operation: 'list', workspace: nil }
23
- end
24
- end
25
- end
26
- end