ruby-terraform 0.65.0.pre.6 → 0.65.0.pre.11
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +2 -0
- data/Gemfile.lock +4 -1
- data/Rakefile +7 -3
- data/bin/console +1 -0
- data/lib/ruby-terraform.rb +2 -0
- data/lib/ruby_terraform.rb +56 -3
- data/lib/ruby_terraform/commands.rb +31 -8
- data/lib/ruby_terraform/commands/apply.rb +28 -9
- data/lib/ruby_terraform/commands/base.rb +24 -26
- data/lib/ruby_terraform/commands/clean.rb +4 -2
- data/lib/ruby_terraform/commands/destroy.rb +29 -9
- data/lib/ruby_terraform/commands/force_unlock.rb +24 -0
- data/lib/ruby_terraform/commands/format.rb +17 -6
- data/lib/ruby_terraform/commands/get.rb +14 -6
- data/lib/ruby_terraform/commands/graph.rb +24 -0
- data/lib/ruby_terraform/commands/import.rb +28 -9
- data/lib/ruby_terraform/commands/init.rb +27 -8
- data/lib/ruby_terraform/commands/login.rb +20 -0
- data/lib/ruby_terraform/commands/logout.rb +20 -0
- data/lib/ruby_terraform/commands/output.rb +18 -8
- data/lib/ruby_terraform/commands/plan.rb +27 -7
- data/lib/ruby_terraform/commands/providers.rb +16 -0
- data/lib/ruby_terraform/commands/providers_lock.rb +28 -0
- data/lib/ruby_terraform/commands/providers_mirror.rb +24 -0
- data/lib/ruby_terraform/commands/providers_schema.rb +25 -0
- data/lib/ruby_terraform/commands/refresh.rb +29 -7
- data/lib/ruby_terraform/commands/remote_config.rb +11 -5
- data/lib/ruby_terraform/commands/show.rb +14 -6
- data/lib/ruby_terraform/commands/state_list.rb +20 -0
- data/lib/ruby_terraform/commands/state_move.rb +34 -0
- data/lib/ruby_terraform/commands/state_pull.rb +16 -0
- data/lib/ruby_terraform/commands/state_push.rb +24 -0
- data/lib/ruby_terraform/commands/state_remove.rb +32 -0
- data/lib/ruby_terraform/commands/state_replace_provider.rb +35 -0
- data/lib/ruby_terraform/commands/state_show.rb +24 -0
- data/lib/ruby_terraform/commands/taint.rb +36 -0
- data/lib/ruby_terraform/commands/untaint.rb +37 -0
- data/lib/ruby_terraform/commands/validate.rb +15 -7
- data/lib/ruby_terraform/commands/workspace_delete.rb +32 -0
- data/lib/ruby_terraform/commands/workspace_list.rb +24 -0
- data/lib/ruby_terraform/commands/workspace_new.rb +32 -0
- data/lib/ruby_terraform/commands/workspace_select.rb +24 -0
- data/lib/ruby_terraform/commands/workspace_show.rb +16 -0
- data/lib/ruby_terraform/errors.rb +2 -0
- data/lib/ruby_terraform/errors/execution_error.rb +2 -0
- data/lib/ruby_terraform/options.rb +8 -0
- data/lib/ruby_terraform/options/common.rb +11 -0
- data/lib/ruby_terraform/options/factory.rb +70 -67
- data/lib/ruby_terraform/options/{switch.rb → name.rb} +11 -7
- data/lib/ruby_terraform/options/types/base.rb +26 -0
- data/lib/ruby_terraform/options/types/boolean.rb +18 -0
- data/lib/ruby_terraform/options/types/flag.rb +18 -0
- data/lib/ruby_terraform/options/types/standard.rb +43 -0
- data/lib/ruby_terraform/options/values/boolean.rb +2 -0
- data/lib/ruby_terraform/output.rb +9 -7
- data/lib/ruby_terraform/version.rb +3 -1
- data/ruby_terraform.gemspec +58 -0
- metadata +46 -8
- data/lib/ruby_terraform/commands/workspace.rb +0 -24
- data/lib/ruby_terraform/options/base.rb +0 -22
- data/lib/ruby_terraform/options/boolean.rb +0 -14
- data/lib/ruby_terraform/options/flag.rb +0 -14
- data/lib/ruby_terraform/options/standard.rb +0 -39
@@ -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,18 +1,29 @@
|
|
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 Format < Base
|
6
|
-
|
7
|
-
%w[-list -write -diff -check -recursive -no-color]
|
8
|
-
end
|
9
|
+
include RubyTerraform::Options::Common
|
9
10
|
|
10
|
-
def
|
11
|
+
def subcommands
|
11
12
|
%w[fmt]
|
12
13
|
end
|
13
14
|
|
14
|
-
def
|
15
|
-
[
|
15
|
+
def options
|
16
|
+
%w[
|
17
|
+
-list
|
18
|
+
-write
|
19
|
+
-diff
|
20
|
+
-check
|
21
|
+
-recursive
|
22
|
+
] + super
|
23
|
+
end
|
24
|
+
|
25
|
+
def arguments(parameters)
|
26
|
+
[parameters[:directory]]
|
16
27
|
end
|
17
28
|
end
|
18
29
|
end
|
@@ -1,18 +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 Get < Base
|
6
|
-
|
7
|
-
%w[-update -no-color]
|
8
|
-
end
|
9
|
+
include RubyTerraform::Options::Common
|
9
10
|
|
10
|
-
def
|
11
|
+
def subcommands
|
11
12
|
%w[get]
|
12
13
|
end
|
13
14
|
|
14
|
-
def
|
15
|
-
[
|
15
|
+
def options
|
16
|
+
%w[
|
17
|
+
-no-color
|
18
|
+
-update
|
19
|
+
] + super
|
20
|
+
end
|
21
|
+
|
22
|
+
def arguments(parameters)
|
23
|
+
[parameters[:directory]]
|
16
24
|
end
|
17
25
|
end
|
18
26
|
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 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,26 +1,45 @@
|
|
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 Import < Base
|
6
|
-
|
7
|
-
%w[-config -backup -input -no-color -state -var -var-file]
|
8
|
-
end
|
9
|
+
include RubyTerraform::Options::Common
|
9
10
|
|
10
|
-
def
|
11
|
+
def subcommands
|
11
12
|
%w[import]
|
12
13
|
end
|
13
14
|
|
14
|
-
def
|
15
|
-
[
|
15
|
+
def options # rubocop:disable Metrics/MethodLength
|
16
|
+
%w[
|
17
|
+
-config
|
18
|
+
-backup
|
19
|
+
-input
|
20
|
+
-lock
|
21
|
+
-lock-timeout
|
22
|
+
-no-color
|
23
|
+
-parallelism
|
24
|
+
-provider
|
25
|
+
-state
|
26
|
+
-state-out
|
27
|
+
-var
|
28
|
+
-var-file
|
29
|
+
-ignore-remote-version
|
30
|
+
] + super
|
31
|
+
end
|
32
|
+
|
33
|
+
def arguments(parameters)
|
34
|
+
[parameters[:address], parameters[:id]]
|
16
35
|
end
|
17
36
|
|
18
|
-
def
|
37
|
+
def parameter_defaults(_parameters)
|
19
38
|
{ vars: {}, var_files: [] }
|
20
39
|
end
|
21
40
|
|
22
|
-
def
|
23
|
-
{ backup:
|
41
|
+
def parameter_overrides(parameters)
|
42
|
+
{ backup: parameters[:no_backup] ? '-' : parameters[:backup] }
|
24
43
|
end
|
25
44
|
end
|
26
45
|
end
|
@@ -1,22 +1,41 @@
|
|
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 Init < Base
|
6
|
-
|
7
|
-
%w[-backend -backend-config -from-module -get -no-color -plugin-dir
|
8
|
-
-force-copy]
|
9
|
-
end
|
9
|
+
include RubyTerraform::Options::Common
|
10
10
|
|
11
|
-
def
|
11
|
+
def subcommands
|
12
12
|
%w[init]
|
13
13
|
end
|
14
14
|
|
15
|
-
def
|
16
|
-
[
|
15
|
+
def options # rubocop:disable Metrics/MethodLength
|
16
|
+
%w[
|
17
|
+
-backend
|
18
|
+
-backend-config
|
19
|
+
-force-copy
|
20
|
+
-from-module
|
21
|
+
-get
|
22
|
+
-get-plugins
|
23
|
+
-input
|
24
|
+
-lock
|
25
|
+
-lock-timeout
|
26
|
+
-no-color
|
27
|
+
-plugin-dir
|
28
|
+
-reconfigure
|
29
|
+
-upgrade
|
30
|
+
-verify-plugins
|
31
|
+
] + super
|
32
|
+
end
|
33
|
+
|
34
|
+
def arguments(parameters)
|
35
|
+
[parameters[:path]]
|
17
36
|
end
|
18
37
|
|
19
|
-
def
|
38
|
+
def parameter_defaults(_parameters)
|
20
39
|
{ backend_config: {} }
|
21
40
|
end
|
22
41
|
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 Login < Base
|
9
|
+
include RubyTerraform::Options::Common
|
10
|
+
|
11
|
+
def subcommands
|
12
|
+
%w[login]
|
13
|
+
end
|
14
|
+
|
15
|
+
def arguments(parameters)
|
16
|
+
[parameters[:hostname]]
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
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 Logout < Base
|
9
|
+
include RubyTerraform::Options::Common
|
10
|
+
|
11
|
+
def subcommands
|
12
|
+
%w[logout]
|
13
|
+
end
|
14
|
+
|
15
|
+
def arguments(parameters)
|
16
|
+
[parameters[:hostname]]
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -1,30 +1,40 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'stringio'
|
2
4
|
require_relative 'base'
|
5
|
+
require_relative '../options/common'
|
3
6
|
|
4
7
|
module RubyTerraform
|
5
8
|
module Commands
|
6
9
|
class Output < Base
|
10
|
+
include RubyTerraform::Options::Common
|
11
|
+
|
7
12
|
def initialize_command
|
8
13
|
return if defined?(@stdout) && @stdout.respond_to?(:string)
|
9
14
|
|
10
15
|
@stdout = StringIO.new
|
11
16
|
end
|
12
17
|
|
13
|
-
def
|
14
|
-
%w[
|
18
|
+
def subcommands
|
19
|
+
%w[output]
|
15
20
|
end
|
16
21
|
|
17
|
-
def
|
18
|
-
%w[
|
22
|
+
def options
|
23
|
+
%w[
|
24
|
+
-json
|
25
|
+
-raw
|
26
|
+
-no-color
|
27
|
+
-state
|
28
|
+
] + super
|
19
29
|
end
|
20
30
|
|
21
|
-
def arguments(
|
22
|
-
[
|
31
|
+
def arguments(parameters)
|
32
|
+
[parameters[:name]]
|
23
33
|
end
|
24
34
|
|
25
|
-
def do_after(
|
35
|
+
def do_after(parameters)
|
26
36
|
result = stdout.string
|
27
|
-
|
37
|
+
parameters[:name] ? result.chomp : result
|
28
38
|
end
|
29
39
|
end
|
30
40
|
end
|
@@ -1,21 +1,41 @@
|
|
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 Plan < Base
|
6
|
-
|
7
|
-
%w[-destroy -input -no-color -out -state -target -var -var-file]
|
8
|
-
end
|
9
|
+
include RubyTerraform::Options::Common
|
9
10
|
|
10
|
-
def
|
11
|
+
def subcommands
|
11
12
|
%w[plan]
|
12
13
|
end
|
13
14
|
|
14
|
-
def
|
15
|
-
[
|
15
|
+
def options # rubocop:disable Metrics/MethodLength
|
16
|
+
%w[
|
17
|
+
-compact-warnings
|
18
|
+
-destroy
|
19
|
+
-detailed-exitcode
|
20
|
+
-input
|
21
|
+
-lock
|
22
|
+
-lock-timeout
|
23
|
+
-no-color
|
24
|
+
-out
|
25
|
+
-parallelism
|
26
|
+
-refresh
|
27
|
+
-state
|
28
|
+
-target
|
29
|
+
-var
|
30
|
+
-var-file
|
31
|
+
] + super
|
32
|
+
end
|
33
|
+
|
34
|
+
def arguments(parameters)
|
35
|
+
[parameters[:directory]]
|
16
36
|
end
|
17
37
|
|
18
|
-
def
|
38
|
+
def parameter_defaults(_parameters)
|
19
39
|
{ vars: {}, var_files: [], targets: [] }
|
20
40
|
end
|
21
41
|
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 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
|