ruby-terraform 0.65.0.pre.11 → 1.0.0.pre.1

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 +25 -17
  3. data/README.md +148 -414
  4. data/Rakefile +25 -0
  5. data/lib/ruby_terraform.rb +1371 -42
  6. data/lib/ruby_terraform/commands.rb +0 -2
  7. data/lib/ruby_terraform/commands/apply.rb +78 -4
  8. data/lib/ruby_terraform/commands/base.rb +21 -15
  9. data/lib/ruby_terraform/commands/destroy.rb +71 -4
  10. data/lib/ruby_terraform/commands/force_unlock.rb +33 -3
  11. data/lib/ruby_terraform/commands/format.rb +45 -2
  12. data/lib/ruby_terraform/commands/get.rb +35 -2
  13. data/lib/ruby_terraform/commands/graph.rb +48 -2
  14. data/lib/ruby_terraform/commands/import.rb +98 -3
  15. data/lib/ruby_terraform/commands/init.rb +84 -3
  16. data/lib/ruby_terraform/commands/login.rb +26 -2
  17. data/lib/ruby_terraform/commands/logout.rb +23 -2
  18. data/lib/ruby_terraform/commands/output.rb +36 -6
  19. data/lib/ruby_terraform/commands/plan.rb +72 -3
  20. data/lib/ruby_terraform/commands/providers.rb +30 -2
  21. data/lib/ruby_terraform/commands/providers_lock.rb +72 -3
  22. data/lib/ruby_terraform/commands/providers_mirror.rb +44 -2
  23. data/lib/ruby_terraform/commands/providers_schema.rb +21 -2
  24. data/lib/ruby_terraform/commands/refresh.rb +70 -3
  25. data/lib/ruby_terraform/commands/show.rb +26 -3
  26. data/lib/ruby_terraform/commands/state_list.rb +54 -3
  27. data/lib/ruby_terraform/commands/state_move.rb +64 -6
  28. data/lib/ruby_terraform/commands/state_pull.rb +24 -2
  29. data/lib/ruby_terraform/commands/state_push.rb +49 -3
  30. data/lib/ruby_terraform/commands/state_remove.rb +55 -7
  31. data/lib/ruby_terraform/commands/state_replace_provider.rb +39 -6
  32. data/lib/ruby_terraform/commands/state_show.rb +26 -2
  33. data/lib/ruby_terraform/commands/taint.rb +63 -2
  34. data/lib/ruby_terraform/commands/untaint.rb +55 -2
  35. data/lib/ruby_terraform/commands/validate.rb +51 -6
  36. data/lib/ruby_terraform/commands/workspace_delete.rb +29 -7
  37. data/lib/ruby_terraform/commands/workspace_list.rb +21 -6
  38. data/lib/ruby_terraform/commands/workspace_new.rb +28 -7
  39. data/lib/ruby_terraform/commands/workspace_select.rb +23 -7
  40. data/lib/ruby_terraform/commands/workspace_show.rb +17 -2
  41. data/lib/ruby_terraform/options.rb +26 -4
  42. data/lib/ruby_terraform/options/definition.rb +174 -0
  43. data/lib/ruby_terraform/options/definitions.rb +112 -0
  44. data/lib/ruby_terraform/options/factory.rb +10 -102
  45. data/lib/ruby_terraform/options/{common.rb → global.rb} +2 -1
  46. data/lib/ruby_terraform/options/name.rb +11 -19
  47. data/lib/ruby_terraform/options/types.rb +26 -0
  48. data/lib/ruby_terraform/options/types/flag.rb +8 -6
  49. data/lib/ruby_terraform/options/types/standard.rb +17 -29
  50. data/lib/ruby_terraform/options/values.rb +38 -0
  51. data/lib/ruby_terraform/options/values/base.rb +15 -0
  52. data/lib/ruby_terraform/options/values/boolean.rb +13 -11
  53. data/lib/ruby_terraform/options/values/complex.rb +19 -0
  54. data/lib/ruby_terraform/options/values/key_value.rb +21 -0
  55. data/lib/ruby_terraform/options/values/string.rb +17 -0
  56. data/lib/ruby_terraform/version.rb +1 -1
  57. data/ruby_terraform.gemspec +3 -1
  58. metadata +43 -11
  59. data/lib/ruby_terraform/commands/clean.rb +0 -26
  60. data/lib/ruby_terraform/commands/remote_config.rb +0 -25
  61. data/lib/ruby_terraform/options/types/base.rb +0 -26
  62. data/lib/ruby_terraform/options/types/boolean.rb +0 -18
@@ -1,26 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'fileutils'
4
-
5
- module RubyTerraform
6
- module Commands
7
- class Clean
8
- attr_reader :logger
9
-
10
- def initialize(directory: nil, logger: nil)
11
- @directory = directory || '.terraform'
12
- @logger = logger || RubyTerraform.configuration.logger
13
- end
14
-
15
- def execute(parameters = {})
16
- directory = parameters[:directory] || @directory
17
- begin
18
- logger.info "Cleaning terraform directory '#{directory}'."
19
- FileUtils.rm_r(directory, secure: true)
20
- rescue Errno::ENOENT => e
21
- logger.error "Couldn't clean '#{directory}': #{e.message}"
22
- end
23
- end
24
- end
25
- end
26
- end
@@ -1,25 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative 'base'
4
-
5
- module RubyTerraform
6
- module Commands
7
- class RemoteConfig < Base
8
- def subcommands
9
- %w[remote config]
10
- end
11
-
12
- def options
13
- %w[
14
- -backend
15
- -backend-config
16
- -no-color
17
- ]
18
- end
19
-
20
- def parameter_defaults(_parameters)
21
- { backend_config: {} }
22
- end
23
- end
24
- end
25
- end
@@ -1,26 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module RubyTerraform
4
- module Options
5
- module Types
6
- class Base
7
- def initialize(name, value)
8
- @name = name
9
- coerce_value(value)
10
- end
11
-
12
- def apply(_builder)
13
- raise 'not implemented'
14
- end
15
-
16
- private
17
-
18
- attr_reader :name, :value
19
-
20
- def coerce_value(value)
21
- @value = value
22
- end
23
- end
24
- end
25
- end
26
- end
@@ -1,18 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative 'base'
4
- require_relative '../values/boolean'
5
-
6
- module RubyTerraform
7
- module Options
8
- module Types
9
- class Boolean < Base
10
- include Values::Boolean
11
-
12
- def apply(builder)
13
- builder.with_option(name, value)
14
- end
15
- end
16
- end
17
- end
18
- end