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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -1
  3. data/lib/ruby_terraform.rb +45 -1
  4. data/lib/ruby_terraform/commands.rb +29 -8
  5. data/lib/ruby_terraform/commands/apply.rb +14 -9
  6. data/lib/ruby_terraform/commands/base.rb +3 -3
  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 +9 -7
  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 +35 -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 +1 -0
  42. data/lib/ruby_terraform/options/common.rb +11 -0
  43. data/lib/ruby_terraform/options/factory.rb +1 -0
  44. data/lib/ruby_terraform/output.rb +7 -7
  45. data/lib/ruby_terraform/version.rb +1 -1
  46. metadata +24 -2
  47. data/lib/ruby_terraform/commands/workspace.rb +0 -26
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d49c234d709a37f69ac311de2f0beb7123e88a70053af2a30955d28ffa712b54
4
- data.tar.gz: 5cc7e8f312bc8217e4fc3e0fdcb28a44911580c93893ccb82b1e11d6e999f026
3
+ metadata.gz: 94caa2aca97f42de2c9ebf6b4924b89af8d39482d49ee2e3d1603cac201e910e
4
+ data.tar.gz: 6b6f5cfdfa183a6189f9cc796e7acdc49461ce34250a414d3e0d654159cb3840
5
5
  SHA512:
6
- metadata.gz: 6abdb8f924a32c688c32b56e7908debfb9ebf1dd089b1ecab345239e15dca795d1cf722e3b0c66b2d8014f32e3a55acea945ff8fb6d52b2e0bb57fd5f64b0282
7
- data.tar.gz: 543a406f62b65901a6b62479b919784774c7ced3bf1a4d1bae1c5f218367ecae8fc0bd4a16470a73addbc0e69033fd833c85fa41ae774448147aa62839adf809
6
+ metadata.gz: 5256f952dc7b3d11762ce57563588e39b94ff0f33c20bfbb1f3587bc43b05b493a9a236d824e4b4a8929fe596e20a4b6f7448d6cc97c4636529ea7282ce39c1d
7
+ data.tar.gz: 714db0266dcb2b1c6a52598b4913151a17abd4d9a8f31649680879f362d7778f48525d177c826086b69eaf56595346574b432c8f422cab5b826269f75e456412
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ruby-terraform (0.65.0.pre.9)
4
+ ruby-terraform (0.65.0.pre.10)
5
5
  lino (>= 2.3)
6
6
 
7
7
  GEM
@@ -29,21 +29,65 @@ module RubyTerraform
29
29
  clean: RubyTerraform::Commands::Clean,
30
30
  destroy: RubyTerraform::Commands::Destroy,
31
31
  format: RubyTerraform::Commands::Format,
32
+ force_unlock: RubyTerraform::Commands::ForceUnlock,
32
33
  get: RubyTerraform::Commands::Get,
34
+ graph: RubyTerraform::Commands::Graph,
33
35
  import: RubyTerraform::Commands::Import,
34
36
  init: RubyTerraform::Commands::Init,
37
+ login: RubyTerraform::Commands::Login,
38
+ logout: RubyTerraform::Commands::Logout,
35
39
  output: RubyTerraform::Commands::Output,
36
40
  plan: RubyTerraform::Commands::Plan,
41
+ providers: RubyTerraform::Commands::Providers,
42
+ providers_lock: RubyTerraform::Commands::ProvidersLock,
43
+ providers_mirror: RubyTerraform::Commands::ProvidersMirror,
44
+ providers_schema: RubyTerraform::Commands::ProvidersSchema,
37
45
  refresh: RubyTerraform::Commands::Refresh,
38
46
  remote_config: RubyTerraform::Commands::RemoteConfig,
39
47
  show: RubyTerraform::Commands::Show,
48
+ state_list: RubyTerraform::Commands::StateList,
49
+ state_mv: RubyTerraform::Commands::StateMove,
50
+ state_pull: RubyTerraform::Commands::StatePull,
51
+ state_push: RubyTerraform::Commands::StatePush,
52
+ state_replace_provider: RubyTerraform::Commands::StateReplaceProvider,
53
+ state_rm: RubyTerraform::Commands::StateRemove,
54
+ state_show: RubyTerraform::Commands::StateShow,
55
+ taint: RubyTerraform::Commands::Taint,
56
+ untaint: RubyTerraform::Commands::Untaint,
40
57
  validate: RubyTerraform::Commands::Validate,
41
- workspace: RubyTerraform::Commands::Workspace
58
+ workspace_list: RubyTerraform::Commands::WorkspaceList,
59
+ workspace_select: RubyTerraform::Commands::WorkspaceSelect,
60
+ workspace_new: RubyTerraform::Commands::WorkspaceNew,
61
+ workspace_delete: RubyTerraform::Commands::WorkspaceDelete,
62
+ workspace_show: RubyTerraform::Commands::WorkspaceShow
42
63
  }.each do |method, command_class|
43
64
  define_method(method) do |parameters = {}|
44
65
  command_class.new.execute(parameters)
45
66
  end
46
67
  end
68
+
69
+ def workspace(parameters = {}) # rubocop:disable Metrics/MethodLength
70
+ case parameters[:operation]
71
+ when nil, 'list'
72
+ exec(RubyTerraform::Commands::WorkspaceList, parameters)
73
+ when 'select'
74
+ exec(RubyTerraform::Commands::WorkspaceSelect, parameters)
75
+ when 'new'
76
+ exec(RubyTerraform::Commands::WorkspaceNew, parameters)
77
+ when 'delete'
78
+ exec(RubyTerraform::Commands::WorkspaceDelete, parameters)
79
+ when 'show'
80
+ exec(RubyTerraform::Commands::WorkspaceShow, parameters)
81
+ else
82
+ raise "Invalid operation '#{parameters[:operation]}' supplied to workspace"
83
+ end
84
+ end
85
+
86
+ private
87
+
88
+ def exec(command_class, parameters)
89
+ command_class.new.execute(parameters)
90
+ end
47
91
  end
48
92
  extend ClassMethods
49
93
 
@@ -1,19 +1,40 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative 'commands/clean'
4
- require_relative 'commands/init'
5
- require_relative 'commands/get'
6
- require_relative 'commands/validate'
7
- require_relative 'commands/plan'
8
3
  require_relative 'commands/apply'
4
+ require_relative 'commands/clean'
9
5
  require_relative 'commands/destroy'
6
+ require_relative 'commands/force_unlock'
7
+ require_relative 'commands/format'
8
+ require_relative 'commands/get'
9
+ require_relative 'commands/graph'
10
+ require_relative 'commands/import'
11
+ require_relative 'commands/init'
12
+ require_relative 'commands/login'
13
+ require_relative 'commands/logout'
10
14
  require_relative 'commands/output'
15
+ require_relative 'commands/plan'
16
+ require_relative 'commands/providers'
17
+ require_relative 'commands/providers_lock'
18
+ require_relative 'commands/providers_mirror'
19
+ require_relative 'commands/providers_schema'
11
20
  require_relative 'commands/refresh'
12
21
  require_relative 'commands/remote_config'
13
22
  require_relative 'commands/show'
14
- require_relative 'commands/workspace'
15
- require_relative 'commands/import'
16
- require_relative 'commands/format'
23
+ require_relative 'commands/state_list'
24
+ require_relative 'commands/state_move'
25
+ require_relative 'commands/state_pull'
26
+ require_relative 'commands/state_push'
27
+ require_relative 'commands/state_replace_provider'
28
+ require_relative 'commands/state_remove'
29
+ require_relative 'commands/state_show'
30
+ require_relative 'commands/taint'
31
+ require_relative 'commands/untaint'
32
+ require_relative 'commands/validate'
33
+ require_relative 'commands/workspace_delete'
34
+ require_relative 'commands/workspace_list'
35
+ require_relative 'commands/workspace_new'
36
+ require_relative 'commands/workspace_select'
37
+ require_relative 'commands/workspace_show'
17
38
 
18
39
  module RubyTerraform
19
40
  module Commands
@@ -1,33 +1,38 @@
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 Apply < Base
8
- def subcommands(_values)
9
+ include RubyTerraform::Options::Common
10
+
11
+ def subcommands
9
12
  %w[apply]
10
13
  end
11
14
 
12
- # rubocop:disable Metrics/MethodLength
13
- def options
15
+ def options # rubocop:disable Metrics/MethodLength
14
16
  %w[
15
- -auto-approve
16
17
  -backup
17
- -input
18
+ -compact-warnings
18
19
  -lock
19
20
  -lock-timeout
21
+ -input
22
+ -auto-approve
20
23
  -no-color
24
+ -parallelism
25
+ -refresh
21
26
  -state
27
+ -state-out
22
28
  -target
23
29
  -var
24
30
  -var-file
25
- ]
31
+ ] + super
26
32
  end
27
- # rubocop:enable Metrics/MethodLength
28
33
 
29
- def arguments(values)
30
- [values[:plan] || values[:directory]]
34
+ def arguments(parameters)
35
+ [parameters[:plan] || parameters[:directory]]
31
36
  end
32
37
 
33
38
  def parameter_defaults(_parameters)
@@ -63,7 +63,7 @@ module RubyTerraform
63
63
  .with_options_after_subcommands
64
64
  .with_option_separator('=')
65
65
  .with_appliables(Options::Factory.from(options, parameters))
66
- .with_subcommands(subcommands(parameters))
66
+ .with_subcommands(subcommands)
67
67
  .with_arguments(arguments(parameters))
68
68
  .build
69
69
  end
@@ -82,7 +82,7 @@ module RubyTerraform
82
82
  {}
83
83
  end
84
84
 
85
- def subcommands(_values)
85
+ def subcommands
86
86
  []
87
87
  end
88
88
 
@@ -90,7 +90,7 @@ module RubyTerraform
90
90
  []
91
91
  end
92
92
 
93
- def arguments(_values)
93
+ def arguments(_parameters)
94
94
  []
95
95
  end
96
96
  end
@@ -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)