ruby-terraform 0.65.0.pre.8 → 0.65.0.pre.13

Sign up to get free protection for your applications and to get access to all the features.
Files changed (68) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +2 -0
  3. data/Gemfile.lock +11 -6
  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 +61 -4
  8. data/lib/ruby_terraform/commands.rb +31 -8
  9. data/lib/ruby_terraform/commands/apply.rb +19 -12
  10. data/lib/ruby_terraform/commands/base.rb +32 -39
  11. data/lib/ruby_terraform/commands/clean.rb +4 -2
  12. data/lib/ruby_terraform/commands/destroy.rb +24 -13
  13. data/lib/ruby_terraform/commands/force_unlock.rb +24 -0
  14. data/lib/ruby_terraform/commands/format.rb +16 -12
  15. data/lib/ruby_terraform/commands/get.rb +13 -8
  16. data/lib/ruby_terraform/commands/graph.rb +24 -0
  17. data/lib/ruby_terraform/commands/import.rb +22 -11
  18. data/lib/ruby_terraform/commands/init.rb +21 -9
  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 +17 -15
  22. data/lib/ruby_terraform/commands/plan.rb +20 -9
  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 +23 -8
  28. data/lib/ruby_terraform/commands/remote_config.rb +8 -6
  29. data/lib/ruby_terraform/commands/show.rb +13 -9
  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 +14 -13
  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 +28 -3
  48. data/lib/ruby_terraform/options/common.rb +11 -0
  49. data/lib/ruby_terraform/options/definition.rb +170 -0
  50. data/lib/ruby_terraform/options/definitions.rb +103 -0
  51. data/lib/ruby_terraform/options/factory.rb +12 -101
  52. data/lib/ruby_terraform/options/name.rb +13 -19
  53. data/lib/ruby_terraform/options/types.rb +27 -0
  54. data/lib/ruby_terraform/options/types/base.rb +8 -13
  55. data/lib/ruby_terraform/options/types/flag.rb +3 -3
  56. data/lib/ruby_terraform/options/types/standard.rb +3 -27
  57. data/lib/ruby_terraform/options/values.rb +38 -0
  58. data/lib/ruby_terraform/options/values/base.rb +15 -0
  59. data/lib/ruby_terraform/options/values/boolean.rb +15 -11
  60. data/lib/ruby_terraform/options/values/complex.rb +19 -0
  61. data/lib/ruby_terraform/options/values/key_value.rb +21 -0
  62. data/lib/ruby_terraform/options/values/string.rb +17 -0
  63. data/lib/ruby_terraform/output.rb +9 -7
  64. data/lib/ruby_terraform/version.rb +3 -1
  65. data/ruby_terraform.gemspec +59 -0
  66. metadata +64 -6
  67. data/lib/ruby_terraform/commands/workspace.rb +0 -24
  68. data/lib/ruby_terraform/options/types/boolean.rb +0 -16
@@ -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,29 +1,44 @@
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
9
+ include RubyTerraform::Options::Common
10
+
11
+ def subcommands
12
+ %w[refresh]
13
+ end
14
+
15
+ def options # rubocop:disable Metrics/MethodLength
7
16
  %w[
17
+ -backup
18
+ -compact-warnings
8
19
  -input
20
+ -lock
21
+ -lock-timeout
9
22
  -no-color
23
+ -parallelism
10
24
  -state
25
+ -state-out
11
26
  -target
12
27
  -var
13
28
  -var-file
14
- ]
29
+ ] + super
15
30
  end
16
31
 
17
- def subcommands(_values)
18
- %w[refresh]
32
+ def arguments(parameters)
33
+ [parameters[:directory]]
19
34
  end
20
35
 
21
- def arguments(values)
22
- [values[:directory]]
36
+ def parameter_defaults(_parameters)
37
+ { vars: {}, var_files: [], targets: [] }
23
38
  end
24
39
 
25
- def option_default_values(_opts)
26
- { vars: {}, var_files: [], targets: [] }
40
+ def parameter_overrides(parameters)
41
+ { backup: parameters[:no_backup] ? '-' : parameters[:backup] }
27
42
  end
28
43
  end
29
44
  end
@@ -1,9 +1,15 @@
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
8
+ def subcommands
9
+ %w[remote config]
10
+ end
11
+
12
+ def options
7
13
  %w[
8
14
  -backend
9
15
  -backend-config
@@ -11,11 +17,7 @@ module RubyTerraform
11
17
  ]
12
18
  end
13
19
 
14
- def subcommands(_values)
15
- %w[remote config]
16
- end
17
-
18
- def option_default_values(_opts)
20
+ def parameter_defaults(_parameters)
19
21
  { backend_config: {} }
20
22
  end
21
23
  end
@@ -1,22 +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
9
+ include RubyTerraform::Options::Common
10
+
11
+ def subcommands
12
+ %w[show]
13
+ end
14
+
15
+ def options
7
16
  %w[
8
17
  -json
9
- -module-depth
10
18
  -no-color
11
- ]
12
- end
13
-
14
- def subcommands(_values)
15
- %w[show]
19
+ ] + super
16
20
  end
17
21
 
18
- def arguments(values)
19
- [values[:path] || values[:directory]]
22
+ def arguments(parameters)
23
+ [parameters[:path] || parameters[:directory]]
20
24
  end
21
25
  end
22
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