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
@@ -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,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 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 -state-out
22
+ -ignore-remote-version
23
+ ] + super
24
+ end
25
+
26
+ def arguments(parameters)
27
+ [parameters[:address]]
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,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'base'
4
+ require_relative '../options/common'
5
+
6
+ module RubyTerraform
7
+ module Commands
8
+ class Untaint < Base
9
+ include RubyTerraform::Options::Common
10
+
11
+ def subcommands
12
+ %w[untaint]
13
+ end
14
+
15
+ def options
16
+ %w[
17
+ -allow-missing
18
+ -backup
19
+ -lock
20
+ -lock-timeout
21
+ -no-color
22
+ -state
23
+ -state-out
24
+ -ignore-remote-version
25
+ ] + super
26
+ end
27
+
28
+ def arguments(parameters)
29
+ [parameters[:name]]
30
+ end
31
+
32
+ def parameter_overrides(parameters)
33
+ { backup: parameters[:no_backup] ? '-' : parameters[:backup] }
34
+ end
35
+ end
36
+ end
37
+ end
@@ -1,23 +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 Validate < Base
9
+ include RubyTerraform::Options::Common
10
+
11
+ def subcommands
12
+ %w[validate]
13
+ end
14
+
8
15
  def options
9
16
  %w[
10
- -check-variables
11
17
  -json
12
18
  -no-color
13
- -state
14
- -var
15
- -var-file
16
- ]
17
- end
18
-
19
- def subcommands(_parameters)
20
- %w[validate]
19
+ ] + super
21
20
  end
22
21
 
23
22
  def arguments(parameters)
@@ -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 WorkspaceDelete < Base
9
+ include RubyTerraform::Options::Common
10
+
11
+ def subcommands
12
+ %w[workspace delete]
13
+ end
14
+
15
+ def options
16
+ %w[
17
+ -force
18
+ -lock
19
+ -lock-timeout
20
+ ] + super
21
+ end
22
+
23
+ def arguments(parameters)
24
+ [parameters[:workspace], parameters[:directory]]
25
+ end
26
+
27
+ def parameter_defaults(_parameters)
28
+ { directory: nil }
29
+ end
30
+ end
31
+ end
32
+ 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 WorkspaceList < Base
9
+ include RubyTerraform::Options::Common
10
+
11
+ def subcommands
12
+ %w[workspace list]
13
+ end
14
+
15
+ def arguments(parameters)
16
+ [parameters[:directory]]
17
+ end
18
+
19
+ def parameter_defaults(_parameters)
20
+ { directory: nil }
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 WorkspaceNew < Base
9
+ include RubyTerraform::Options::Common
10
+
11
+ def subcommands
12
+ %w[workspace new]
13
+ end
14
+
15
+ def options
16
+ %w[
17
+ -lock
18
+ -lock-timeout
19
+ -state
20
+ ] + super
21
+ end
22
+
23
+ def arguments(parameters)
24
+ [parameters[:workspace], parameters[:directory]]
25
+ end
26
+
27
+ def parameter_defaults(_parameters)
28
+ { directory: nil }
29
+ end
30
+ end
31
+ end
32
+ 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 WorkspaceSelect < Base
9
+ include RubyTerraform::Options::Common
10
+
11
+ def subcommands
12
+ %w[workspace select]
13
+ end
14
+
15
+ def arguments(parameters)
16
+ [parameters[:workspace], parameters[:directory]]
17
+ end
18
+
19
+ def parameter_defaults(_parameters)
20
+ { directory: nil }
21
+ end
22
+ end
23
+ end
24
+ 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 WorkspaceShow < Base
9
+ include RubyTerraform::Options::Common
10
+
11
+ def subcommands
12
+ %w[workspace show]
13
+ end
14
+ end
15
+ end
16
+ end
@@ -5,3 +5,4 @@ require_relative 'options/types/flag'
5
5
  require_relative 'options/types/boolean'
6
6
  require_relative 'options/types/standard'
7
7
  require_relative 'options/factory'
8
+ require_relative 'options/common'
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RubyTerraform
4
+ module Options
5
+ module Common
6
+ def options
7
+ %w[-chdir]
8
+ end
9
+ end
10
+ end
11
+ end
@@ -14,6 +14,7 @@ module RubyTerraform
14
14
  -var
15
15
  -target
16
16
  -var-file
17
+ -platform
17
18
  ]
18
19
  ).freeze
19
20
 
@@ -3,18 +3,18 @@
3
3
  module RubyTerraform
4
4
  class Output
5
5
  class << self
6
- def for(opts)
7
- Dir.chdir(create_config_directory(opts)) do
8
- RubyTerraform.init(backend_config: opts[:backend_config])
9
- RubyTerraform.output(name: opts[:name])
6
+ def for(parameters)
7
+ Dir.chdir(create_config_directory(parameters)) do
8
+ RubyTerraform.init(backend_config: parameters[:backend_config])
9
+ RubyTerraform.output(name: parameters[:name])
10
10
  end
11
11
  end
12
12
 
13
13
  private
14
14
 
15
- def create_config_directory(opts)
16
- source_directory = opts[:source_directory]
17
- work_directory = opts[:work_directory]
15
+ def create_config_directory(parameters)
16
+ source_directory = parameters[:source_directory]
17
+ work_directory = parameters[:work_directory]
18
18
 
19
19
  configuration_directory = File.join(work_directory, source_directory)
20
20
  FileUtils.mkdir_p File.dirname(configuration_directory)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RubyTerraform
4
- VERSION = '0.65.0.pre.9'
4
+ VERSION = '0.65.0.pre.10'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-terraform
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.65.0.pre.9
4
+ version: 0.65.0.pre.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Toby Clemson
@@ -257,20 +257,42 @@ files:
257
257
  - lib/ruby_terraform/commands/base.rb
258
258
  - lib/ruby_terraform/commands/clean.rb
259
259
  - lib/ruby_terraform/commands/destroy.rb
260
+ - lib/ruby_terraform/commands/force_unlock.rb
260
261
  - lib/ruby_terraform/commands/format.rb
261
262
  - lib/ruby_terraform/commands/get.rb
263
+ - lib/ruby_terraform/commands/graph.rb
262
264
  - lib/ruby_terraform/commands/import.rb
263
265
  - lib/ruby_terraform/commands/init.rb
266
+ - lib/ruby_terraform/commands/login.rb
267
+ - lib/ruby_terraform/commands/logout.rb
264
268
  - lib/ruby_terraform/commands/output.rb
265
269
  - lib/ruby_terraform/commands/plan.rb
270
+ - lib/ruby_terraform/commands/providers.rb
271
+ - lib/ruby_terraform/commands/providers_lock.rb
272
+ - lib/ruby_terraform/commands/providers_mirror.rb
273
+ - lib/ruby_terraform/commands/providers_schema.rb
266
274
  - lib/ruby_terraform/commands/refresh.rb
267
275
  - lib/ruby_terraform/commands/remote_config.rb
268
276
  - lib/ruby_terraform/commands/show.rb
277
+ - lib/ruby_terraform/commands/state_list.rb
278
+ - lib/ruby_terraform/commands/state_move.rb
279
+ - lib/ruby_terraform/commands/state_pull.rb
280
+ - lib/ruby_terraform/commands/state_push.rb
281
+ - lib/ruby_terraform/commands/state_remove.rb
282
+ - lib/ruby_terraform/commands/state_replace_provider.rb
283
+ - lib/ruby_terraform/commands/state_show.rb
284
+ - lib/ruby_terraform/commands/taint.rb
285
+ - lib/ruby_terraform/commands/untaint.rb
269
286
  - lib/ruby_terraform/commands/validate.rb
270
- - lib/ruby_terraform/commands/workspace.rb
287
+ - lib/ruby_terraform/commands/workspace_delete.rb
288
+ - lib/ruby_terraform/commands/workspace_list.rb
289
+ - lib/ruby_terraform/commands/workspace_new.rb
290
+ - lib/ruby_terraform/commands/workspace_select.rb
291
+ - lib/ruby_terraform/commands/workspace_show.rb
271
292
  - lib/ruby_terraform/errors.rb
272
293
  - lib/ruby_terraform/errors/execution_error.rb
273
294
  - lib/ruby_terraform/options.rb
295
+ - lib/ruby_terraform/options/common.rb
274
296
  - lib/ruby_terraform/options/factory.rb
275
297
  - lib/ruby_terraform/options/name.rb
276
298
  - lib/ruby_terraform/options/types/base.rb
@@ -1,26 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative 'base'
4
-
5
- module RubyTerraform
6
- module Commands
7
- class Workspace < Base
8
- def subcommands(parameters)
9
- commands = ['workspace', parameters[:operation]]
10
- if parameters[:workspace] && parameters[:operation] != 'list'
11
- commands << parameters[:workspace]
12
- else
13
- commands
14
- end
15
- end
16
-
17
- def arguments(parameters)
18
- [parameters[:directory]]
19
- end
20
-
21
- def parameter_defaults(_parameters)
22
- { directory: nil, operation: 'list', workspace: nil }
23
- end
24
- end
25
- end
26
- end