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

Sign up to get free protection for your applications and to get access to all the features.
Files changed (65) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +2 -0
  3. data/Gemfile.lock +8 -5
  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 +50 -3
  8. data/lib/ruby_terraform/commands.rb +31 -8
  9. data/lib/ruby_terraform/commands/apply.rb +29 -10
  10. data/lib/ruby_terraform/commands/base.rb +33 -30
  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 +28 -8
  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 +35 -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 +119 -0
  50. data/lib/ruby_terraform/options/name.rb +45 -0
  51. data/lib/ruby_terraform/{command_line/option → options/types}/base.rb +8 -6
  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/{command_line/option → options/types}/standard.rb +14 -11
  55. data/lib/ruby_terraform/{command_line/option/boolean_value.rb → options/values/boolean.rb} +7 -5
  56. data/lib/ruby_terraform/output.rb +10 -7
  57. data/lib/ruby_terraform/version.rb +3 -1
  58. data/ruby_terraform.gemspec +58 -0
  59. metadata +50 -13
  60. data/lib/ruby_terraform/command_line/builder.rb +0 -55
  61. data/lib/ruby_terraform/command_line/option/boolean.rb +0 -16
  62. data/lib/ruby_terraform/command_line/option/flag.rb +0 -16
  63. data/lib/ruby_terraform/command_line/option/switch.rb +0 -43
  64. data/lib/ruby_terraform/command_line/options_factory.rb +0 -79
  65. data/lib/ruby_terraform/commands/workspace.rb +0 -24
@@ -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 ForceUnlock < Base
9
+ include RubyTerraform::Options::Common
10
+
11
+ def subcommands
12
+ %w[force-unlock]
13
+ end
14
+
15
+ def options
16
+ %w[-force] + super
17
+ end
18
+
19
+ def arguments(parameters)
20
+ [parameters[:lock_id]]
21
+ end
22
+ end
23
+ end
24
+ end
@@ -1,18 +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 Format < Base
6
- def switches
7
- %w[-list -write -diff -check -recursive -no-color]
9
+ include RubyTerraform::Options::Common
10
+
11
+ def subcommands
12
+ %w[fmt]
8
13
  end
9
14
 
10
- def sub_commands(_values)
11
- 'fmt'
15
+ def options
16
+ %w[
17
+ -list
18
+ -write
19
+ -diff
20
+ -check
21
+ -recursive
22
+ ] + super
12
23
  end
13
24
 
14
- def arguments(values)
15
- values[:directory]
25
+ def arguments(parameters)
26
+ [parameters[:directory]]
16
27
  end
17
28
  end
18
29
  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 Get < Base
6
- def switches
7
- %w[-update -no-color]
9
+ include RubyTerraform::Options::Common
10
+
11
+ def subcommands
12
+ %w[get]
8
13
  end
9
14
 
10
- def sub_commands(_values)
11
- 'get'
15
+ def options
16
+ %w[
17
+ -no-color
18
+ -update
19
+ ] + super
12
20
  end
13
21
 
14
- def arguments(values)
15
- values[:directory]
22
+ def arguments(parameters)
23
+ [parameters[:directory]]
16
24
  end
17
25
  end
18
26
  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 Graph < Base
9
+ include RubyTerraform::Options::Common
10
+
11
+ def subcommands
12
+ %w[graph]
13
+ end
14
+
15
+ def options
16
+ %w[
17
+ -draw-cycles
18
+ -type
19
+ -module-depth
20
+ ] + super
21
+ end
22
+ end
23
+ end
24
+ end
@@ -1,26 +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 Import < Base
6
- def switches
7
- %w[-config -backup -input -no-color -state -var -var-file]
9
+ include RubyTerraform::Options::Common
10
+
11
+ def subcommands
12
+ %w[import]
8
13
  end
9
14
 
10
- def sub_commands(_values)
11
- 'import'
15
+ def options # rubocop:disable Metrics/MethodLength
16
+ %w[
17
+ -config
18
+ -backup
19
+ -input
20
+ -lock
21
+ -lock-timeout
22
+ -no-color
23
+ -parallelism
24
+ -provider
25
+ -state
26
+ -state-out
27
+ -var
28
+ -var-file
29
+ -ignore-remote-version
30
+ ] + super
12
31
  end
13
32
 
14
- def arguments(values)
15
- [values[:address], values[:id]]
33
+ def arguments(parameters)
34
+ [parameters[:address], parameters[:id]]
16
35
  end
17
36
 
18
- def option_default_values(_opts)
37
+ def parameter_defaults(_parameters)
19
38
  { vars: {}, var_files: [] }
20
39
  end
21
40
 
22
- def option_override_values(opts)
23
- { backup: opts[:no_backup] ? '-' : opts[:backup] }
41
+ def parameter_overrides(parameters)
42
+ { backup: parameters[:no_backup] ? '-' : parameters[:backup] }
24
43
  end
25
44
  end
26
45
  end
@@ -1,22 +1,41 @@
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 Init < Base
6
- def switches
7
- %w[-backend -backend-config -from-module -get -no-color -plugin-dir
8
- -force-copy]
9
+ include RubyTerraform::Options::Common
10
+
11
+ def subcommands
12
+ %w[init]
9
13
  end
10
14
 
11
- def sub_commands(_values)
12
- 'init'
15
+ def options # rubocop:disable Metrics/MethodLength
16
+ %w[
17
+ -backend
18
+ -backend-config
19
+ -force-copy
20
+ -from-module
21
+ -get
22
+ -get-plugins
23
+ -input
24
+ -lock
25
+ -lock-timeout
26
+ -no-color
27
+ -plugin-dir
28
+ -reconfigure
29
+ -upgrade
30
+ -verify-plugins
31
+ ] + super
13
32
  end
14
33
 
15
- def arguments(values)
16
- values[:path]
34
+ def arguments(parameters)
35
+ [parameters[:path]]
17
36
  end
18
37
 
19
- def option_default_values(_opts)
38
+ def parameter_defaults(_parameters)
20
39
  { backend_config: {} }
21
40
  end
22
41
  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 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
@@ -1,30 +1,40 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'stringio'
2
4
  require_relative 'base'
5
+ require_relative '../options/common'
3
6
 
4
7
  module RubyTerraform
5
8
  module Commands
6
9
  class Output < Base
10
+ include RubyTerraform::Options::Common
11
+
7
12
  def initialize_command
8
13
  return if defined?(@stdout) && @stdout.respond_to?(:string)
9
14
 
10
15
  @stdout = StringIO.new
11
16
  end
12
17
 
13
- def switches
14
- %w[-json -raw -no-color -state -module]
18
+ def subcommands
19
+ %w[output]
15
20
  end
16
21
 
17
- def sub_commands(_values)
18
- 'output'
22
+ def options
23
+ %w[
24
+ -json
25
+ -raw
26
+ -no-color
27
+ -state
28
+ ] + super
19
29
  end
20
30
 
21
- def arguments(values)
22
- values[:name]
31
+ def arguments(parameters)
32
+ [parameters[:name]]
23
33
  end
24
34
 
25
- def do_after(opts)
35
+ def do_after(parameters)
26
36
  result = stdout.string
27
- opts[:name] ? result.chomp : result
37
+ parameters[:name] ? result.chomp : result
28
38
  end
29
39
  end
30
40
  end
@@ -1,22 +1,42 @@
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 Plan < Base
6
- def switches
7
- %w[-destroy -input -no-color -out -state -target -var -var-file]
9
+ include RubyTerraform::Options::Common
10
+
11
+ def subcommands
12
+ %w[plan]
8
13
  end
9
14
 
10
- def sub_commands(_values)
11
- 'plan'
15
+ def options # rubocop:disable Metrics/MethodLength
16
+ %w[
17
+ -compact-warnings
18
+ -destroy
19
+ -detailed-exitcode
20
+ -input
21
+ -lock
22
+ -lock-timeout
23
+ -no-color
24
+ -out
25
+ -parallelism
26
+ -refresh
27
+ -state
28
+ -target
29
+ -var
30
+ -var-file
31
+ ] + super
12
32
  end
13
33
 
14
- def option_default_values(_opts)
15
- { vars: {}, var_files: [], targets: [] }
34
+ def arguments(parameters)
35
+ [parameters[:directory]]
16
36
  end
17
37
 
18
- def arguments(values)
19
- values[:directory]
38
+ def parameter_defaults(_parameters)
39
+ { vars: {}, var_files: [], targets: [] }
20
40
  end
21
41
  end
22
42
  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 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