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,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'base'
4
+ require_relative '../options/common'
5
+
6
+ module RubyTerraform
7
+ module Commands
8
+ class Login < Base
9
+ include RubyTerraform::Options::Common
10
+
11
+ def subcommands
12
+ %w[login]
13
+ end
14
+
15
+ def arguments(parameters)
16
+ [parameters[:hostname]]
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'base'
4
+ require_relative '../options/common'
5
+
6
+ module RubyTerraform
7
+ module Commands
8
+ class Logout < Base
9
+ include RubyTerraform::Options::Common
10
+
11
+ def subcommands
12
+ %w[logout]
13
+ end
14
+
15
+ def arguments(parameters)
16
+ [parameters[:hostname]]
17
+ end
18
+ end
19
+ end
20
+ end
@@ -2,28 +2,30 @@
2
2
 
3
3
  require 'stringio'
4
4
  require_relative 'base'
5
+ require_relative '../options/common'
5
6
 
6
7
  module RubyTerraform
7
8
  module Commands
8
9
  class Output < Base
10
+ include RubyTerraform::Options::Common
11
+
9
12
  def initialize_command
10
13
  return if defined?(@stdout) && @stdout.respond_to?(:string)
11
14
 
12
15
  @stdout = StringIO.new
13
16
  end
14
17
 
18
+ def subcommands
19
+ %w[output]
20
+ end
21
+
15
22
  def options
16
23
  %w[
17
24
  -json
18
- -module
19
- -no-color
20
25
  -raw
26
+ -no-color
21
27
  -state
22
- ]
23
- end
24
-
25
- def subcommands(_parameters)
26
- %w[output]
28
+ ] + super
27
29
  end
28
30
 
29
31
  def arguments(parameters)
@@ -1,25 +1,34 @@
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 Plan < Base
8
- def options
9
+ include RubyTerraform::Options::Common
10
+
11
+ def subcommands
12
+ %w[plan]
13
+ end
14
+
15
+ def options # rubocop:disable Metrics/MethodLength
9
16
  %w[
17
+ -compact-warnings
10
18
  -destroy
19
+ -detailed-exitcode
11
20
  -input
21
+ -lock
22
+ -lock-timeout
12
23
  -no-color
13
24
  -out
25
+ -parallelism
26
+ -refresh
14
27
  -state
15
28
  -target
16
29
  -var
17
30
  -var-file
18
- ]
19
- end
20
-
21
- def subcommands(_parameters)
22
- %w[plan]
31
+ ] + super
23
32
  end
24
33
 
25
34
  def arguments(parameters)
@@ -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 Providers < Base
9
+ include RubyTerraform::Options::Common
10
+
11
+ def subcommands
12
+ %w[providers]
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'base'
4
+ require_relative '../options/common'
5
+
6
+ module RubyTerraform
7
+ module Commands
8
+ class ProvidersLock < Base
9
+ include RubyTerraform::Options::Common
10
+
11
+ def subcommands
12
+ %w[providers lock]
13
+ end
14
+
15
+ def options
16
+ %w[
17
+ -fs-mirror
18
+ -net-mirror
19
+ -platform
20
+ ] + super
21
+ end
22
+
23
+ def arguments(parameters)
24
+ [parameters[:providers]]
25
+ end
26
+ end
27
+ end
28
+ 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 ProvidersMirror < Base
9
+ include RubyTerraform::Options::Common
10
+
11
+ def subcommands
12
+ %w[providers mirror]
13
+ end
14
+
15
+ def options
16
+ %w[-platform] + super
17
+ end
18
+
19
+ def arguments(parameters)
20
+ [parameters[:directory]]
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'base'
4
+ require_relative '../options/common'
5
+
6
+ module RubyTerraform
7
+ module Commands
8
+ class ProvidersSchema < Base
9
+ include RubyTerraform::Options::Common
10
+
11
+ def subcommands
12
+ %w[providers schema]
13
+ end
14
+
15
+ def options
16
+ %w[-json] + super
17
+ end
18
+
19
+ def parameter_overrides(_parameters)
20
+ # Terraform 0.15 - at this time, the -json flag is a required option.
21
+ { json: true }
22
+ end
23
+ end
24
+ end
25
+ end
@@ -1,23 +1,32 @@
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 Refresh < Base
8
- def options
9
+ include RubyTerraform::Options::Common
10
+
11
+ def subcommands
12
+ %w[refresh]
13
+ end
14
+
15
+ def options # rubocop:disable Metrics/MethodLength
9
16
  %w[
17
+ -backup
18
+ -compact-warnings
10
19
  -input
20
+ -lock
21
+ -lock-timeout
11
22
  -no-color
23
+ -parallelism
12
24
  -state
25
+ -state-out
13
26
  -target
14
27
  -var
15
28
  -var-file
16
- ]
17
- end
18
-
19
- def subcommands(_parameters)
20
- %w[refresh]
29
+ ] + super
21
30
  end
22
31
 
23
32
  def arguments(parameters)
@@ -27,6 +36,10 @@ module RubyTerraform
27
36
  def parameter_defaults(_parameters)
28
37
  { vars: {}, var_files: [], targets: [] }
29
38
  end
39
+
40
+ def parameter_overrides(parameters)
41
+ { backup: parameters[:no_backup] ? '-' : parameters[:backup] }
42
+ end
30
43
  end
31
44
  end
32
45
  end
@@ -5,6 +5,10 @@ require_relative 'base'
5
5
  module RubyTerraform
6
6
  module Commands
7
7
  class RemoteConfig < Base
8
+ def subcommands
9
+ %w[remote config]
10
+ end
11
+
8
12
  def options
9
13
  %w[
10
14
  -backend
@@ -13,10 +17,6 @@ module RubyTerraform
13
17
  ]
14
18
  end
15
19
 
16
- def subcommands(_parameters)
17
- %w[remote config]
18
- end
19
-
20
20
  def parameter_defaults(_parameters)
21
21
  { backend_config: {} }
22
22
  end
@@ -1,20 +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 Show < Base
9
+ include RubyTerraform::Options::Common
10
+
11
+ def subcommands
12
+ %w[show]
13
+ end
14
+
8
15
  def options
9
16
  %w[
10
17
  -json
11
- -module-depth
12
18
  -no-color
13
- ]
14
- end
15
-
16
- def subcommands(_parameters)
17
- %w[show]
19
+ ] + super
18
20
  end
19
21
 
20
22
  def arguments(parameters)
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'base'
4
+ require_relative '../options/common'
5
+
6
+ module RubyTerraform
7
+ module Commands
8
+ class StateList < Base
9
+ include RubyTerraform::Options::Common
10
+
11
+ def subcommands
12
+ %w[state list]
13
+ end
14
+
15
+ def arguments(parameters)
16
+ [parameters[:address]]
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'base'
4
+ require_relative '../options/common'
5
+
6
+ module RubyTerraform
7
+ module Commands
8
+ class StateMove < Base
9
+ include RubyTerraform::Options::Common
10
+
11
+ def subcommands
12
+ %w[state mv]
13
+ end
14
+
15
+ def options
16
+ %w[
17
+ -backup
18
+ -backup-out
19
+ -state
20
+ -state-out
21
+ -ignore-remote-version
22
+ ] + super
23
+ end
24
+
25
+ def arguments(parameters)
26
+ [parameters[:source], parameters[:destination]]
27
+ end
28
+
29
+ def parameter_overrides(parameters)
30
+ { backup: parameters[:no_backup] ? '-' : parameters[:backup] }
31
+ end
32
+ end
33
+ end
34
+ 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 StatePull < Base
9
+ include RubyTerraform::Options::Common
10
+
11
+ def subcommands
12
+ %w[state pull]
13
+ end
14
+ end
15
+ end
16
+ 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 StatePush < Base
9
+ include RubyTerraform::Options::Common
10
+
11
+ def subcommands
12
+ %w[state push]
13
+ end
14
+
15
+ def options
16
+ %w[-ignore-remote-version] + super
17
+ end
18
+
19
+ def arguments(parameters)
20
+ [parameters[:path]]
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 StateRemove < Base
9
+ include RubyTerraform::Options::Common
10
+
11
+ def subcommands
12
+ %w[state rm]
13
+ end
14
+
15
+ def options
16
+ %w[
17
+ -backup
18
+ -state
19
+ -ignore-remote-version
20
+ ] + super
21
+ end
22
+
23
+ def arguments(parameters)
24
+ [parameters[:address]]
25
+ end
26
+
27
+ def parameter_overrides(parameters)
28
+ { backup: parameters[:no_backup] ? '-' : parameters[:backup] }
29
+ end
30
+ end
31
+ end
32
+ end