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.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/ruby_terraform.rb +45 -1
- data/lib/ruby_terraform/commands.rb +29 -8
- data/lib/ruby_terraform/commands/apply.rb +14 -9
- data/lib/ruby_terraform/commands/base.rb +3 -3
- data/lib/ruby_terraform/commands/clean.rb +2 -2
- data/lib/ruby_terraform/commands/destroy.rb +17 -8
- data/lib/ruby_terraform/commands/force_unlock.rb +24 -0
- data/lib/ruby_terraform/commands/format.rb +11 -9
- data/lib/ruby_terraform/commands/get.rb +8 -5
- data/lib/ruby_terraform/commands/graph.rb +24 -0
- data/lib/ruby_terraform/commands/import.rb +15 -6
- data/lib/ruby_terraform/commands/init.rb +16 -6
- 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 +9 -7
- data/lib/ruby_terraform/commands/plan.rb +15 -6
- 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 +19 -6
- data/lib/ruby_terraform/commands/remote_config.rb +4 -4
- data/lib/ruby_terraform/commands/show.rb +8 -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 +35 -0
- data/lib/ruby_terraform/commands/untaint.rb +37 -0
- data/lib/ruby_terraform/commands/validate.rb +8 -9
- 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/options.rb +1 -0
- data/lib/ruby_terraform/options/common.rb +11 -0
- data/lib/ruby_terraform/options/factory.rb +1 -0
- data/lib/ruby_terraform/output.rb +7 -7
- data/lib/ruby_terraform/version.rb +1 -1
- metadata +24 -2
- data/lib/ruby_terraform/commands/workspace.rb +0 -26
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 94caa2aca97f42de2c9ebf6b4924b89af8d39482d49ee2e3d1603cac201e910e
|
4
|
+
data.tar.gz: 6b6f5cfdfa183a6189f9cc796e7acdc49461ce34250a414d3e0d654159cb3840
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5256f952dc7b3d11762ce57563588e39b94ff0f33c20bfbb1f3587bc43b05b493a9a236d824e4b4a8929fe596e20a4b6f7448d6cc97c4636529ea7282ce39c1d
|
7
|
+
data.tar.gz: 714db0266dcb2b1c6a52598b4913151a17abd4d9a8f31649680879f362d7778f48525d177c826086b69eaf56595346574b432c8f422cab5b826269f75e456412
|
data/Gemfile.lock
CHANGED
data/lib/ruby_terraform.rb
CHANGED
@@ -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
|
-
|
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/
|
15
|
-
require_relative 'commands/
|
16
|
-
require_relative 'commands/
|
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
|
-
|
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
|
-
-
|
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(
|
30
|
-
[
|
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
|
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
|
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(
|
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(
|
16
|
-
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
|
-
|
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
|
-
-
|
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
|
-
|
18
|
-
|
19
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
19
|
-
|
20
|
-
|
21
|
-
%w[init]
|
28
|
+
-reconfigure
|
29
|
+
-upgrade
|
30
|
+
-verify-plugins
|
31
|
+
] + super
|
22
32
|
end
|
23
33
|
|
24
34
|
def arguments(parameters)
|