ruby-terraform 0.65.0.pre.6 → 0.65.0.pre.11

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 (64) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +2 -0
  3. data/Gemfile.lock +4 -1
  4. data/Rakefile +7 -3
  5. data/bin/console +1 -0
  6. data/lib/ruby-terraform.rb +2 -0
  7. data/lib/ruby_terraform.rb +56 -3
  8. data/lib/ruby_terraform/commands.rb +31 -8
  9. data/lib/ruby_terraform/commands/apply.rb +28 -9
  10. data/lib/ruby_terraform/commands/base.rb +24 -26
  11. data/lib/ruby_terraform/commands/clean.rb +4 -2
  12. data/lib/ruby_terraform/commands/destroy.rb +29 -9
  13. data/lib/ruby_terraform/commands/force_unlock.rb +24 -0
  14. data/lib/ruby_terraform/commands/format.rb +17 -6
  15. data/lib/ruby_terraform/commands/get.rb +14 -6
  16. data/lib/ruby_terraform/commands/graph.rb +24 -0
  17. data/lib/ruby_terraform/commands/import.rb +28 -9
  18. data/lib/ruby_terraform/commands/init.rb +27 -8
  19. data/lib/ruby_terraform/commands/login.rb +20 -0
  20. data/lib/ruby_terraform/commands/logout.rb +20 -0
  21. data/lib/ruby_terraform/commands/output.rb +18 -8
  22. data/lib/ruby_terraform/commands/plan.rb +27 -7
  23. data/lib/ruby_terraform/commands/providers.rb +16 -0
  24. data/lib/ruby_terraform/commands/providers_lock.rb +28 -0
  25. data/lib/ruby_terraform/commands/providers_mirror.rb +24 -0
  26. data/lib/ruby_terraform/commands/providers_schema.rb +25 -0
  27. data/lib/ruby_terraform/commands/refresh.rb +29 -7
  28. data/lib/ruby_terraform/commands/remote_config.rb +11 -5
  29. data/lib/ruby_terraform/commands/show.rb +14 -6
  30. data/lib/ruby_terraform/commands/state_list.rb +20 -0
  31. data/lib/ruby_terraform/commands/state_move.rb +34 -0
  32. data/lib/ruby_terraform/commands/state_pull.rb +16 -0
  33. data/lib/ruby_terraform/commands/state_push.rb +24 -0
  34. data/lib/ruby_terraform/commands/state_remove.rb +32 -0
  35. data/lib/ruby_terraform/commands/state_replace_provider.rb +35 -0
  36. data/lib/ruby_terraform/commands/state_show.rb +24 -0
  37. data/lib/ruby_terraform/commands/taint.rb +36 -0
  38. data/lib/ruby_terraform/commands/untaint.rb +37 -0
  39. data/lib/ruby_terraform/commands/validate.rb +15 -7
  40. data/lib/ruby_terraform/commands/workspace_delete.rb +32 -0
  41. data/lib/ruby_terraform/commands/workspace_list.rb +24 -0
  42. data/lib/ruby_terraform/commands/workspace_new.rb +32 -0
  43. data/lib/ruby_terraform/commands/workspace_select.rb +24 -0
  44. data/lib/ruby_terraform/commands/workspace_show.rb +16 -0
  45. data/lib/ruby_terraform/errors.rb +2 -0
  46. data/lib/ruby_terraform/errors/execution_error.rb +2 -0
  47. data/lib/ruby_terraform/options.rb +8 -0
  48. data/lib/ruby_terraform/options/common.rb +11 -0
  49. data/lib/ruby_terraform/options/factory.rb +70 -67
  50. data/lib/ruby_terraform/options/{switch.rb → name.rb} +11 -7
  51. data/lib/ruby_terraform/options/types/base.rb +26 -0
  52. data/lib/ruby_terraform/options/types/boolean.rb +18 -0
  53. data/lib/ruby_terraform/options/types/flag.rb +18 -0
  54. data/lib/ruby_terraform/options/types/standard.rb +43 -0
  55. data/lib/ruby_terraform/options/values/boolean.rb +2 -0
  56. data/lib/ruby_terraform/output.rb +9 -7
  57. data/lib/ruby_terraform/version.rb +3 -1
  58. data/ruby_terraform.gemspec +58 -0
  59. metadata +46 -8
  60. data/lib/ruby_terraform/commands/workspace.rb +0 -24
  61. data/lib/ruby_terraform/options/base.rb +0 -22
  62. data/lib/ruby_terraform/options/boolean.rb +0 -14
  63. data/lib/ruby_terraform/options/flag.rb +0 -14
  64. data/lib/ruby_terraform/options/standard.rb +0 -39
@@ -1,23 +1,45 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'base'
4
+ require_relative '../options/common'
2
5
 
3
6
  module RubyTerraform
4
7
  module Commands
5
8
  class Refresh < Base
6
- def switches
7
- %w[-input -no-color -state -target -var -var-file]
8
- end
9
+ include RubyTerraform::Options::Common
9
10
 
10
- def sub_commands(_values)
11
+ def subcommands
11
12
  %w[refresh]
12
13
  end
13
14
 
14
- def arguments(values)
15
- [values[:directory]]
15
+ def options # rubocop:disable Metrics/MethodLength
16
+ %w[
17
+ -backup
18
+ -compact-warnings
19
+ -input
20
+ -lock
21
+ -lock-timeout
22
+ -no-color
23
+ -parallelism
24
+ -state
25
+ -state-out
26
+ -target
27
+ -var
28
+ -var-file
29
+ ] + super
30
+ end
31
+
32
+ def arguments(parameters)
33
+ [parameters[:directory]]
16
34
  end
17
35
 
18
- def option_default_values(_opts)
36
+ def parameter_defaults(_parameters)
19
37
  { vars: {}, var_files: [], targets: [] }
20
38
  end
39
+
40
+ def parameter_overrides(parameters)
41
+ { backup: parameters[:no_backup] ? '-' : parameters[:backup] }
42
+ end
21
43
  end
22
44
  end
23
45
  end
@@ -1,17 +1,23 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'base'
2
4
 
3
5
  module RubyTerraform
4
6
  module Commands
5
7
  class RemoteConfig < Base
6
- def switches
7
- %w[-backend -backend-config -no-color]
8
+ def subcommands
9
+ %w[remote config]
8
10
  end
9
11
 
10
- def sub_commands(_values)
11
- %w[remote config]
12
+ def options
13
+ %w[
14
+ -backend
15
+ -backend-config
16
+ -no-color
17
+ ]
12
18
  end
13
19
 
14
- def option_default_values(_opts)
20
+ def parameter_defaults(_parameters)
15
21
  { backend_config: {} }
16
22
  end
17
23
  end
@@ -1,18 +1,26 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'base'
4
+ require_relative '../options/common'
2
5
 
3
6
  module RubyTerraform
4
7
  module Commands
5
8
  class Show < Base
6
- def switches
7
- %w[-json -no-color -module-depth]
8
- end
9
+ include RubyTerraform::Options::Common
9
10
 
10
- def sub_commands(_values)
11
+ def subcommands
11
12
  %w[show]
12
13
  end
13
14
 
14
- def arguments(values)
15
- [values[:path] || values[:directory]]
15
+ def options
16
+ %w[
17
+ -json
18
+ -no-color
19
+ ] + super
20
+ end
21
+
22
+ def arguments(parameters)
23
+ [parameters[:path] || parameters[:directory]]
16
24
  end
17
25
  end
18
26
  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 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
@@ -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,36 @@
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
22
+ -state-out
23
+ -ignore-remote-version
24
+ ] + super
25
+ end
26
+
27
+ def arguments(parameters)
28
+ [parameters[:address]]
29
+ end
30
+
31
+ def parameter_overrides(parameters)
32
+ { backup: parameters[:no_backup] ? '-' : parameters[:backup] }
33
+ end
34
+ end
35
+ end
36
+ 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,21 +1,29 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'base'
4
+ require_relative '../options/common'
2
5
 
3
6
  module RubyTerraform
4
7
  module Commands
5
8
  class Validate < Base
6
- def switches
7
- %w[-json -no-color -var -var-file -state -check-variables] + super
8
- end
9
+ include RubyTerraform::Options::Common
9
10
 
10
- def sub_commands(_values)
11
+ def subcommands
11
12
  %w[validate]
12
13
  end
13
14
 
14
- def arguments(values)
15
- [values[:directory]]
15
+ def options
16
+ %w[
17
+ -json
18
+ -no-color
19
+ ] + super
20
+ end
21
+
22
+ def arguments(parameters)
23
+ [parameters[:directory]]
16
24
  end
17
25
 
18
- def option_default_values(_opts)
26
+ def parameter_defaults(_parameters)
19
27
  { vars: {}, var_files: [] }
20
28
  end
21
29
  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 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