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

Sign up to get free protection for your applications and to get access to all the features.
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)