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

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +18 -10
  3. data/lib/ruby_terraform.rb +131 -4
  4. data/lib/ruby_terraform/commands.rb +29 -8
  5. data/lib/ruby_terraform/commands/apply.rb +85 -6
  6. data/lib/ruby_terraform/commands/base.rb +21 -18
  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 +10 -10
  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 +36 -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 +26 -3
  42. data/lib/ruby_terraform/options/common.rb +12 -0
  43. data/lib/ruby_terraform/options/definition.rb +172 -0
  44. data/lib/ruby_terraform/options/definitions.rb +103 -0
  45. data/lib/ruby_terraform/options/factory.rb +10 -101
  46. data/lib/ruby_terraform/options/name.rb +11 -19
  47. data/lib/ruby_terraform/options/types.rb +27 -0
  48. data/lib/ruby_terraform/options/types/base.rb +6 -13
  49. data/lib/ruby_terraform/options/types/flag.rb +1 -3
  50. data/lib/ruby_terraform/options/types/standard.rb +1 -27
  51. data/lib/ruby_terraform/options/values.rb +38 -0
  52. data/lib/ruby_terraform/options/values/base.rb +15 -0
  53. data/lib/ruby_terraform/options/values/boolean.rb +13 -11
  54. data/lib/ruby_terraform/options/values/complex.rb +19 -0
  55. data/lib/ruby_terraform/options/values/key_value.rb +21 -0
  56. data/lib/ruby_terraform/options/values/string.rb +17 -0
  57. data/lib/ruby_terraform/output.rb +7 -7
  58. data/lib/ruby_terraform/version.rb +1 -1
  59. data/ruby_terraform.gemspec +3 -1
  60. metadata +63 -6
  61. data/lib/ruby_terraform/commands/workspace.rb +0 -26
  62. data/lib/ruby_terraform/options/types/boolean.rb +0 -18
@@ -12,8 +12,8 @@ module RubyTerraform
12
12
  @logger = logger || RubyTerraform.configuration.logger
13
13
  end
14
14
 
15
- def execute(opts = {})
16
- directory = opts[:directory] || @directory
15
+ def execute(parameters = {})
16
+ directory = parameters[:directory] || @directory
17
17
  begin
18
18
  logger.info "Cleaning terraform directory '#{directory}'."
19
19
  FileUtils.rm_r(directory, secure: true)
@@ -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 Destroy < Base
8
- def options
9
+ include RubyTerraform::Options::Common
10
+
11
+ def subcommands
12
+ %w[destroy]
13
+ end
14
+
15
+ def options # rubocop:disable Metrics/MethodLength
9
16
  %w[
10
- -auto-approve
11
17
  -backup
12
- -force
18
+ -compact-warnings
19
+ -lock
20
+ -lock-timeout
21
+ -input
22
+ -auto-approve
13
23
  -no-color
24
+ -parallelism
25
+ -refresh
14
26
  -state
27
+ -state-out
15
28
  -target
16
29
  -var
17
30
  -var-file
18
- ]
19
- end
20
-
21
- def subcommands(_parameters)
22
- %w[destroy]
31
+ ] + super
23
32
  end
24
33
 
25
34
  def arguments(parameters)
@@ -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,23 +1,25 @@
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 Format < Base
9
+ include RubyTerraform::Options::Common
10
+
11
+ def subcommands
12
+ %w[fmt]
13
+ end
14
+
8
15
  def options
9
16
  %w[
10
- -check
11
- -diff
12
17
  -list
13
- -no-color
14
- -recursive
15
18
  -write
16
- ]
17
- end
18
-
19
- def subcommands(_parameters)
20
- %w[fmt]
19
+ -diff
20
+ -check
21
+ -recursive
22
+ ] + super
21
23
  end
22
24
 
23
25
  def arguments(parameters)
@@ -1,19 +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 Get < Base
9
+ include RubyTerraform::Options::Common
10
+
11
+ def subcommands
12
+ %w[get]
13
+ end
14
+
8
15
  def options
9
16
  %w[
10
17
  -no-color
11
18
  -update
12
- ]
13
- end
14
-
15
- def subcommands(_parameters)
16
- %w[get]
19
+ ] + super
17
20
  end
18
21
 
19
22
  def arguments(parameters)
@@ -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,24 +1,33 @@
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 Import < Base
8
- def options
9
+ include RubyTerraform::Options::Common
10
+
11
+ def subcommands
12
+ %w[import]
13
+ end
14
+
15
+ def options # rubocop:disable Metrics/MethodLength
9
16
  %w[
10
17
  -config
11
18
  -backup
12
19
  -input
20
+ -lock
21
+ -lock-timeout
13
22
  -no-color
23
+ -parallelism
24
+ -provider
14
25
  -state
26
+ -state-out
15
27
  -var
16
28
  -var-file
17
- ]
18
- end
19
-
20
- def subcommands(_parameters)
21
- %w[import]
29
+ -ignore-remote-version
30
+ ] + super
22
31
  end
23
32
 
24
33
  def arguments(parameters)
@@ -1,24 +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 Init < Base
8
- def options
9
+ include RubyTerraform::Options::Common
10
+
11
+ def subcommands
12
+ %w[init]
13
+ end
14
+
15
+ def options # rubocop:disable Metrics/MethodLength
9
16
  %w[
10
17
  -backend
11
18
  -backend-config
12
19
  -force-copy
13
20
  -from-module
14
21
  -get
22
+ -get-plugins
23
+ -input
24
+ -lock
25
+ -lock-timeout
15
26
  -no-color
16
27
  -plugin-dir
17
- ]
18
- end
19
-
20
- def subcommands(_parameters)
21
- %w[init]
28
+ -reconfigure
29
+ -upgrade
30
+ -verify-plugins
31
+ ] + super
22
32
  end
23
33
 
24
34
  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 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,28 @@
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
9
- def initialize_command
10
- return if defined?(@stdout) && @stdout.respond_to?(:string)
10
+ include RubyTerraform::Options::Common
11
11
 
12
- @stdout = StringIO.new
12
+ def stdout
13
+ @stdout.respond_to?(:string) ? @stdout : (@stdout = StringIO.new)
14
+ end
15
+
16
+ def subcommands
17
+ %w[output]
13
18
  end
14
19
 
15
20
  def options
16
21
  %w[
17
22
  -json
18
- -module
19
- -no-color
20
23
  -raw
24
+ -no-color
21
25
  -state
22
- ]
23
- end
24
-
25
- def subcommands(_parameters)
26
- %w[output]
26
+ ] + super
27
27
  end
28
28
 
29
29
  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