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

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -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]
8
- end
9
+ include RubyTerraform::Options::Common
9
10
 
10
- def sub_commands(_values)
11
+ def subcommands
11
12
  %w[fmt]
12
13
  end
13
14
 
14
- def arguments(values)
15
- [values[:directory]]
15
+ def options
16
+ %w[
17
+ -list
18
+ -write
19
+ -diff
20
+ -check
21
+ -recursive
22
+ ] + super
23
+ end
24
+
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]
8
- end
9
+ include RubyTerraform::Options::Common
9
10
 
10
- def sub_commands(_values)
11
+ def subcommands
11
12
  %w[get]
12
13
  end
13
14
 
14
- def arguments(values)
15
- [values[:directory]]
15
+ def options
16
+ %w[
17
+ -no-color
18
+ -update
19
+ ] + super
20
+ end
21
+
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]
8
- end
9
+ include RubyTerraform::Options::Common
9
10
 
10
- def sub_commands(_values)
11
+ def subcommands
11
12
  %w[import]
12
13
  end
13
14
 
14
- def arguments(values)
15
- [values[:address], values[:id]]
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
31
+ end
32
+
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
- end
9
+ include RubyTerraform::Options::Common
10
10
 
11
- def sub_commands(_values)
11
+ def subcommands
12
12
  %w[init]
13
13
  end
14
14
 
15
- def arguments(values)
16
- [values[:path]]
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
32
+ end
33
+
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
- %w[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,21 +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 Plan < Base
6
- def switches
7
- %w[-destroy -input -no-color -out -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[plan]
12
13
  end
13
14
 
14
- def arguments(values)
15
- [values[:directory]]
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
32
+ end
33
+
34
+ def arguments(parameters)
35
+ [parameters[:directory]]
16
36
  end
17
37
 
18
- def option_default_values(_opts)
38
+ def parameter_defaults(_parameters)
19
39
  { vars: {}, var_files: [], targets: [] }
20
40
  end
21
41
  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
@@ -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