ruby-terraform 1.9.0.pre.1 → 1.9.0.pre.3
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.
- checksums.yaml +4 -4
- data/Gemfile.lock +91 -73
- data/README.md +1 -1
- data/Rakefile +2 -2
- data/lib/ruby_terraform/commands/test.rb +83 -0
- data/lib/ruby_terraform/commands.rb +1 -0
- data/lib/ruby_terraform/models/list.rb +1 -1
- data/lib/ruby_terraform/models/plan.rb +2 -2
- data/lib/ruby_terraform/options/definitions.rb +4 -1
- data/lib/ruby_terraform/version.rb +1 -1
- data/lib/ruby_terraform.rb +50 -0
- metadata +7 -6
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 7f785dd368c756138288d8ac5be5cce139b42549e9e33b705a88b9618671df3b
|
|
4
|
+
data.tar.gz: 5cf820a332f2b6db7c8edd708e3b018c9979775cd3edc22efa58fefe9c0721e4
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 22029c8ebc37a74fee4c70bff57f027aedec45937b6a2272e3444f0d840f879167d46ec98cc3353617c75a417eba1e4ea7d867d58161b68ff3b31aeaed06e9ba
|
|
7
|
+
data.tar.gz: b5dd1103942436aa721155e3dbffb01e509fe9d31f9908d9f6fc1e43c3b547ff2c640889b2569822769dc7f32967f27360c58824dc09a028fbe8a2257938448c
|
data/Gemfile.lock
CHANGED
|
@@ -1,53 +1,62 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
ruby-terraform (1.9.0.pre.
|
|
4
|
+
ruby-terraform (1.9.0.pre.3)
|
|
5
5
|
immutable-struct (~> 2.4)
|
|
6
6
|
lino (>= 4.1)
|
|
7
7
|
|
|
8
8
|
GEM
|
|
9
9
|
remote: https://rubygems.org/
|
|
10
10
|
specs:
|
|
11
|
-
activesupport (7.
|
|
11
|
+
activesupport (7.2.3.1)
|
|
12
12
|
base64
|
|
13
|
+
benchmark (>= 0.3)
|
|
13
14
|
bigdecimal
|
|
14
|
-
concurrent-ruby (~> 1.0, >= 1.
|
|
15
|
+
concurrent-ruby (~> 1.0, >= 1.3.1)
|
|
15
16
|
connection_pool (>= 2.2.5)
|
|
16
17
|
drb
|
|
17
18
|
i18n (>= 1.6, < 2)
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
19
|
+
logger (>= 1.4.2)
|
|
20
|
+
minitest (>= 5.1, < 6)
|
|
21
|
+
securerandom (>= 0.3)
|
|
22
|
+
tzinfo (~> 2.0, >= 2.0.5)
|
|
23
|
+
addressable (2.9.0)
|
|
24
|
+
public_suffix (>= 2.0.2, < 8.0)
|
|
25
|
+
ast (2.4.3)
|
|
26
|
+
base64 (0.3.0)
|
|
27
|
+
benchmark (0.5.0)
|
|
28
|
+
bigdecimal (4.0.1)
|
|
26
29
|
childprocess (5.0.0)
|
|
27
30
|
coderay (1.1.3)
|
|
28
31
|
colored2 (3.1.2)
|
|
29
|
-
concurrent-ruby (1.3.
|
|
30
|
-
connection_pool (2.
|
|
31
|
-
diff-lcs (1.
|
|
32
|
+
concurrent-ruby (1.3.6)
|
|
33
|
+
connection_pool (2.5.5)
|
|
34
|
+
diff-lcs (1.6.2)
|
|
32
35
|
docile (1.4.0)
|
|
33
|
-
drb (2.2.
|
|
36
|
+
drb (2.2.3)
|
|
34
37
|
excon (0.111.0)
|
|
35
|
-
faker (3.
|
|
38
|
+
faker (3.6.1)
|
|
36
39
|
i18n (>= 1.8.11, < 2)
|
|
37
|
-
faraday (2.
|
|
38
|
-
faraday-net_http (>= 2.0, < 3.
|
|
40
|
+
faraday (2.14.1)
|
|
41
|
+
faraday-net_http (>= 2.0, < 3.5)
|
|
42
|
+
json
|
|
39
43
|
logger
|
|
40
|
-
faraday-net_http (3.
|
|
41
|
-
net-http
|
|
42
|
-
ffi (1.17.
|
|
43
|
-
|
|
44
|
-
|
|
44
|
+
faraday-net_http (3.4.2)
|
|
45
|
+
net-http (~> 0.5)
|
|
46
|
+
ffi (1.17.3)
|
|
47
|
+
ffi (1.17.3-arm64-darwin)
|
|
48
|
+
ffi (1.17.3-x86_64-darwin)
|
|
49
|
+
ffi (1.17.3-x86_64-linux-gnu)
|
|
50
|
+
formatador (1.2.3)
|
|
51
|
+
reline
|
|
52
|
+
gem-release (2.2.4)
|
|
45
53
|
git (1.19.1)
|
|
46
54
|
addressable (~> 2.8)
|
|
47
55
|
rchardet (~> 1.8)
|
|
48
|
-
guard (2.
|
|
56
|
+
guard (2.20.1)
|
|
49
57
|
formatador (>= 0.2.4)
|
|
50
58
|
listen (>= 2.7, < 4.0)
|
|
59
|
+
logger (~> 1.6)
|
|
51
60
|
lumberjack (>= 1.0.12, < 2.0)
|
|
52
61
|
nenv (~> 0.1)
|
|
53
62
|
notiffany (~> 0.0)
|
|
@@ -61,26 +70,28 @@ GEM
|
|
|
61
70
|
rspec (>= 2.99.0, < 4.0)
|
|
62
71
|
hamster (3.0.0)
|
|
63
72
|
concurrent-ruby (~> 1.0)
|
|
64
|
-
i18n (1.14.
|
|
73
|
+
i18n (1.14.8)
|
|
65
74
|
concurrent-ruby (~> 1.0)
|
|
66
|
-
immutable-struct (2.
|
|
67
|
-
|
|
68
|
-
|
|
75
|
+
immutable-struct (2.5.0)
|
|
76
|
+
io-console (0.8.2)
|
|
77
|
+
json (2.19.2)
|
|
78
|
+
language_server-protocol (3.17.0.5)
|
|
69
79
|
lino (4.1.0)
|
|
70
80
|
childprocess (~> 5.0.0)
|
|
71
81
|
hamster (~> 3.0)
|
|
72
82
|
open4 (~> 1.3)
|
|
73
|
-
|
|
83
|
+
lint_roller (1.1.0)
|
|
84
|
+
listen (3.10.0)
|
|
85
|
+
logger
|
|
74
86
|
rb-fsevent (~> 0.10, >= 0.10.3)
|
|
75
87
|
rb-inotify (~> 0.9, >= 0.9.10)
|
|
76
|
-
logger (1.
|
|
77
|
-
lumberjack (1.2
|
|
88
|
+
logger (1.7.0)
|
|
89
|
+
lumberjack (1.4.2)
|
|
78
90
|
method_source (1.1.0)
|
|
79
|
-
minitest (5.
|
|
80
|
-
mutex_m (0.2.0)
|
|
91
|
+
minitest (5.27.0)
|
|
81
92
|
nenv (0.3.0)
|
|
82
|
-
net-http (0.
|
|
83
|
-
uri
|
|
93
|
+
net-http (0.9.1)
|
|
94
|
+
uri (>= 0.11.1)
|
|
84
95
|
notiffany (0.1.3)
|
|
85
96
|
nenv (~> 0.1)
|
|
86
97
|
shellany (~> 0.0)
|
|
@@ -89,21 +100,23 @@ GEM
|
|
|
89
100
|
faraday (>= 1, < 3)
|
|
90
101
|
sawyer (~> 0.9)
|
|
91
102
|
open4 (1.3.4)
|
|
92
|
-
parallel (1.
|
|
93
|
-
parser (3.3.
|
|
103
|
+
parallel (1.27.0)
|
|
104
|
+
parser (3.3.10.1)
|
|
94
105
|
ast (~> 2.4.1)
|
|
95
106
|
racc
|
|
96
|
-
|
|
107
|
+
prism (1.9.0)
|
|
108
|
+
pry (0.16.0)
|
|
97
109
|
coderay (~> 1.1)
|
|
98
110
|
method_source (~> 1.0)
|
|
99
|
-
|
|
100
|
-
|
|
111
|
+
reline (>= 0.6.0)
|
|
112
|
+
public_suffix (6.0.2)
|
|
113
|
+
racc (1.8.1)
|
|
101
114
|
rainbow (3.1.1)
|
|
102
|
-
rake (13.2
|
|
103
|
-
rake_circle_ci (0.
|
|
115
|
+
rake (13.4.2)
|
|
116
|
+
rake_circle_ci (0.13.0)
|
|
104
117
|
colored2 (~> 3.1)
|
|
105
118
|
excon (~> 0.72)
|
|
106
|
-
rake_factory (~> 0.
|
|
119
|
+
rake_factory (~> 0.33)
|
|
107
120
|
sshkey (~> 2.0)
|
|
108
121
|
rake_factory (0.33.0)
|
|
109
122
|
activesupport (>= 4)
|
|
@@ -117,55 +130,58 @@ GEM
|
|
|
117
130
|
rake_factory (~> 0.33)
|
|
118
131
|
ruby_git_crypt (~> 0.1)
|
|
119
132
|
ruby_gpg2 (~> 0.12)
|
|
120
|
-
rake_github (0.
|
|
133
|
+
rake_github (0.15.0)
|
|
121
134
|
colored2 (~> 3.1)
|
|
122
135
|
octokit (>= 4.16, < 9.0)
|
|
123
|
-
rake_factory (~> 0.
|
|
136
|
+
rake_factory (~> 0.33)
|
|
124
137
|
sshkey (~> 2.0)
|
|
125
138
|
rake_gpg (0.20.0)
|
|
126
139
|
rake_factory (~> 0.33)
|
|
127
140
|
ruby_gpg2 (~> 0.12)
|
|
128
|
-
rake_ssh (0.
|
|
141
|
+
rake_ssh (0.12.0)
|
|
129
142
|
colored2 (~> 3.1)
|
|
130
|
-
rake_factory (~> 0.
|
|
143
|
+
rake_factory (~> 0.33)
|
|
131
144
|
sshkey (~> 2.0)
|
|
132
145
|
rb-fsevent (0.11.2)
|
|
133
146
|
rb-inotify (0.11.1)
|
|
134
147
|
ffi (~> 1.0)
|
|
135
148
|
rchardet (1.8.0)
|
|
136
|
-
regexp_parser (2.
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
rspec (3.13.
|
|
149
|
+
regexp_parser (2.11.3)
|
|
150
|
+
reline (0.6.3)
|
|
151
|
+
io-console (~> 0.5)
|
|
152
|
+
rspec (3.13.2)
|
|
140
153
|
rspec-core (~> 3.13.0)
|
|
141
154
|
rspec-expectations (~> 3.13.0)
|
|
142
155
|
rspec-mocks (~> 3.13.0)
|
|
143
|
-
rspec-core (3.13.
|
|
156
|
+
rspec-core (3.13.6)
|
|
144
157
|
rspec-support (~> 3.13.0)
|
|
145
|
-
rspec-expectations (3.13.
|
|
158
|
+
rspec-expectations (3.13.5)
|
|
146
159
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
147
160
|
rspec-support (~> 3.13.0)
|
|
148
|
-
rspec-mocks (3.13.
|
|
161
|
+
rspec-mocks (3.13.7)
|
|
149
162
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
150
163
|
rspec-support (~> 3.13.0)
|
|
151
|
-
rspec-support (3.13.
|
|
152
|
-
rubocop (1.
|
|
164
|
+
rspec-support (3.13.7)
|
|
165
|
+
rubocop (1.84.2)
|
|
153
166
|
json (~> 2.3)
|
|
154
|
-
language_server-protocol (
|
|
167
|
+
language_server-protocol (~> 3.17.0.2)
|
|
168
|
+
lint_roller (~> 1.1.0)
|
|
155
169
|
parallel (~> 1.10)
|
|
156
170
|
parser (>= 3.3.0.2)
|
|
157
171
|
rainbow (>= 2.2.2, < 4.0)
|
|
158
|
-
regexp_parser (>= 2.
|
|
159
|
-
|
|
160
|
-
rubocop-ast (>= 1.31.1, < 2.0)
|
|
172
|
+
regexp_parser (>= 2.9.3, < 3.0)
|
|
173
|
+
rubocop-ast (>= 1.49.0, < 2.0)
|
|
161
174
|
ruby-progressbar (~> 1.7)
|
|
162
|
-
unicode-display_width (>= 2.4.0, <
|
|
163
|
-
rubocop-ast (1.
|
|
164
|
-
parser (>= 3.3.
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
rubocop (
|
|
175
|
+
unicode-display_width (>= 2.4.0, < 4.0)
|
|
176
|
+
rubocop-ast (1.49.0)
|
|
177
|
+
parser (>= 3.3.7.2)
|
|
178
|
+
prism (~> 1.7)
|
|
179
|
+
rubocop-rake (0.7.1)
|
|
180
|
+
lint_roller (~> 1.1)
|
|
181
|
+
rubocop (>= 1.72.1)
|
|
182
|
+
rubocop-rspec (3.9.0)
|
|
183
|
+
lint_roller (~> 1.1)
|
|
184
|
+
rubocop (~> 1.81)
|
|
169
185
|
ruby-progressbar (1.13.0)
|
|
170
186
|
ruby_git_crypt (0.1.0)
|
|
171
187
|
immutable-struct (~> 2.4)
|
|
@@ -175,6 +191,7 @@ GEM
|
|
|
175
191
|
sawyer (0.9.2)
|
|
176
192
|
addressable (>= 2.3.5)
|
|
177
193
|
faraday (>= 0.17.3, < 3)
|
|
194
|
+
securerandom (0.4.1)
|
|
178
195
|
shellany (0.0.1)
|
|
179
196
|
simplecov (0.22.0)
|
|
180
197
|
docile (~> 1.1)
|
|
@@ -183,13 +200,14 @@ GEM
|
|
|
183
200
|
simplecov-html (0.12.3)
|
|
184
201
|
simplecov_json_formatter (0.1.4)
|
|
185
202
|
sshkey (2.0.0)
|
|
186
|
-
|
|
187
|
-
thor (1.3.1)
|
|
203
|
+
thor (1.5.0)
|
|
188
204
|
tzinfo (2.0.6)
|
|
189
205
|
concurrent-ruby (~> 1.0)
|
|
190
|
-
unicode-display_width (2.
|
|
191
|
-
|
|
192
|
-
|
|
206
|
+
unicode-display_width (3.2.0)
|
|
207
|
+
unicode-emoji (~> 4.1)
|
|
208
|
+
unicode-emoji (4.2.0)
|
|
209
|
+
uri (1.1.1)
|
|
210
|
+
yard (0.9.43)
|
|
193
211
|
|
|
194
212
|
PLATFORMS
|
|
195
213
|
arm64-darwin-21
|
|
@@ -222,4 +240,4 @@ DEPENDENCIES
|
|
|
222
240
|
yard
|
|
223
241
|
|
|
224
242
|
BUNDLED WITH
|
|
225
|
-
2.
|
|
243
|
+
2.5.15
|
data/README.md
CHANGED
|
@@ -29,7 +29,7 @@ require 'ruby-terraform'
|
|
|
29
29
|
|
|
30
30
|
### Supported versions and commands
|
|
31
31
|
|
|
32
|
-
`RubyTerraform` supports all commands and options up to Terraform
|
|
32
|
+
`RubyTerraform` supports all commands and options up to Terraform 1.5.7, except
|
|
33
33
|
`terraform console`, `terraform test` and `terraform version`.
|
|
34
34
|
|
|
35
35
|
### Getting started
|
data/Rakefile
CHANGED
|
@@ -135,7 +135,7 @@ namespace :documentation do
|
|
|
135
135
|
|
|
136
136
|
sh('git', 'commit',
|
|
137
137
|
'-a',
|
|
138
|
-
'-m', "Generate latest documentation#{
|
|
138
|
+
'-m', "Generate latest documentation#{' [ci skip]' if skip_ci}")
|
|
139
139
|
end
|
|
140
140
|
|
|
141
141
|
desc 'Update documentation'
|
|
@@ -157,7 +157,7 @@ RakeCircleCI.define_project_tasks(
|
|
|
157
157
|
t.environment_variables = {
|
|
158
158
|
ENCRYPTION_PASSPHRASE:
|
|
159
159
|
File.read('config/secrets/ci/encryption.passphrase')
|
|
160
|
-
|
|
160
|
+
.chomp
|
|
161
161
|
}
|
|
162
162
|
t.checkout_keys = []
|
|
163
163
|
t.ssh_keys = [
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative 'base'
|
|
4
|
+
require_relative '../options/global'
|
|
5
|
+
|
|
6
|
+
module RubyTerraform
|
|
7
|
+
module Commands
|
|
8
|
+
# Wraps the +terraform test+ command which executes automated integration
|
|
9
|
+
# tests defined in +.tftest.hcl+ files.
|
|
10
|
+
#
|
|
11
|
+
# Terraform discovers test files in the configured test directory (by
|
|
12
|
+
# default +tests+) and in the root module, then runs each +run+ block in
|
|
13
|
+
# turn, reporting on the outcome of the assertions.
|
|
14
|
+
#
|
|
15
|
+
# For options accepted on construction, see {#initialize}.
|
|
16
|
+
#
|
|
17
|
+
# When executing an instance of {Test} via {#execute}, the following
|
|
18
|
+
# options are supported:
|
|
19
|
+
#
|
|
20
|
+
# * +:chdir+: the path of a working directory to switch to before executing
|
|
21
|
+
# the given subcommand.
|
|
22
|
+
# * +:cloud_run+: if set, executes the tests remotely using the given
|
|
23
|
+
# Terraform Cloud/Enterprise module source address rather than running
|
|
24
|
+
# them locally.
|
|
25
|
+
# * +:filter+: restrict which test files are executed; if both +:filter+
|
|
26
|
+
# and +:filters+ are provided, all filters will be passed to terraform.
|
|
27
|
+
# * +:filters+: an array of test file paths to restrict which test files
|
|
28
|
+
# are executed; if both +:filter+ and +:filters+ are provided, all
|
|
29
|
+
# filters will be passed to terraform.
|
|
30
|
+
# * +:json+: whether or not to produce output in a machine-readable JSON
|
|
31
|
+
# format; defaults to +false+.
|
|
32
|
+
# * +:no_color+: whether or not the output from the command should be in
|
|
33
|
+
# color; defaults to +false+.
|
|
34
|
+
# * +:test_directory+: the directory containing test files; defaults to
|
|
35
|
+
# +"tests"+.
|
|
36
|
+
# * +:vars+: a map of variables to be passed to the terraform configuration.
|
|
37
|
+
# * +:var_file+: the path to a terraform var file; if both +:var_file+ and
|
|
38
|
+
# +:var_files+ are provided, all var files will be passed to terraform.
|
|
39
|
+
# * +:var_files+: an array of paths to terraform var files; if both
|
|
40
|
+
# +:var_file+ and +:var_files+ are provided, all var files will be passed
|
|
41
|
+
# to terraform.
|
|
42
|
+
# * +:verbose+: when +true+, print the plan or state for each test run
|
|
43
|
+
# block as it executes; defaults to +false+.
|
|
44
|
+
#
|
|
45
|
+
# The {#execute} method accepts an optional second parameter which is a map
|
|
46
|
+
# of invocation options. Currently, the only supported option is
|
|
47
|
+
# +:environment+ which is a map of environment variables to expose during
|
|
48
|
+
# invocation of the command.
|
|
49
|
+
#
|
|
50
|
+
# @example Basic Invocation
|
|
51
|
+
# RubyTerraform::Commands::Test.new.execute(
|
|
52
|
+
# filters: ['tests/network.tftest.hcl'],
|
|
53
|
+
# verbose: true)
|
|
54
|
+
#
|
|
55
|
+
class Test < Base
|
|
56
|
+
include RubyTerraform::Options::Global
|
|
57
|
+
|
|
58
|
+
# @!visibility private
|
|
59
|
+
def subcommands
|
|
60
|
+
%w[test]
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
# @!visibility private
|
|
64
|
+
def options
|
|
65
|
+
%w[
|
|
66
|
+
-cloud-run
|
|
67
|
+
-filter
|
|
68
|
+
-json
|
|
69
|
+
-no-color
|
|
70
|
+
-test-directory
|
|
71
|
+
-var
|
|
72
|
+
-var-file
|
|
73
|
+
-verbose
|
|
74
|
+
] + super
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
# @!visibility private
|
|
78
|
+
def parameter_defaults(_parameters)
|
|
79
|
+
{ vars: {}, var_files: [], filters: [] }
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
end
|
|
@@ -26,6 +26,7 @@ require_relative 'commands/state_replace_provider'
|
|
|
26
26
|
require_relative 'commands/state_remove'
|
|
27
27
|
require_relative 'commands/state_show'
|
|
28
28
|
require_relative 'commands/taint'
|
|
29
|
+
require_relative 'commands/test'
|
|
29
30
|
require_relative 'commands/untaint'
|
|
30
31
|
require_relative 'commands/validate'
|
|
31
32
|
require_relative 'commands/workspace_delete'
|
|
@@ -29,7 +29,7 @@ module RubyTerraform
|
|
|
29
29
|
:repeated_permutation, :repeated_combination,
|
|
30
30
|
:product, :take, :take_while, :drop, :drop_while,
|
|
31
31
|
:bsearch, :bsearch_index, :any?, :all?, :none?, :one?, :dig, :sum,
|
|
32
|
-
:deconstruct, :
|
|
32
|
+
:deconstruct, :prepend, :shuffle!, :shuffle, :sample, :pack
|
|
33
33
|
)
|
|
34
34
|
|
|
35
35
|
def initialize(value, sensitive: false)
|
|
@@ -32,7 +32,7 @@ module RubyTerraform
|
|
|
32
32
|
def resource_changes
|
|
33
33
|
(@content[:resource_changes] || [])
|
|
34
34
|
.map do |resource_change|
|
|
35
|
-
|
|
35
|
+
ResourceChange.new(resource_change)
|
|
36
36
|
end
|
|
37
37
|
end
|
|
38
38
|
|
|
@@ -47,7 +47,7 @@ module RubyTerraform
|
|
|
47
47
|
def output_changes
|
|
48
48
|
(@content[:output_changes] || [])
|
|
49
49
|
.map do |output_name, output_change|
|
|
50
|
-
|
|
50
|
+
OutputChange.new(output_name, output_change)
|
|
51
51
|
end
|
|
52
52
|
end
|
|
53
53
|
|
|
@@ -22,7 +22,7 @@ module RubyTerraform
|
|
|
22
22
|
end,
|
|
23
23
|
|
|
24
24
|
# string repeatable options
|
|
25
|
-
%w[-var-file -target -platform -plugin-dir -replace].map do |o|
|
|
25
|
+
%w[-var-file -target -platform -plugin-dir -replace -filter].map do |o|
|
|
26
26
|
definition(
|
|
27
27
|
name: o, option_type: :standard, value_type: :string,
|
|
28
28
|
repeatable: true
|
|
@@ -68,6 +68,7 @@ module RubyTerraform
|
|
|
68
68
|
-reconfigure
|
|
69
69
|
-recursive
|
|
70
70
|
-update
|
|
71
|
+
-verbose
|
|
71
72
|
].map do |o|
|
|
72
73
|
definition(name: o, option_type: :flag, value_type: :boolean)
|
|
73
74
|
end,
|
|
@@ -76,6 +77,7 @@ module RubyTerraform
|
|
|
76
77
|
%w[
|
|
77
78
|
-backup
|
|
78
79
|
-backup-out
|
|
80
|
+
-cloud-run
|
|
79
81
|
-from-module
|
|
80
82
|
-fs-mirror
|
|
81
83
|
-id
|
|
@@ -88,6 +90,7 @@ module RubyTerraform
|
|
|
88
90
|
-provider
|
|
89
91
|
-state
|
|
90
92
|
-state-out
|
|
93
|
+
-test-directory
|
|
91
94
|
-type
|
|
92
95
|
].map do |o|
|
|
93
96
|
definition(name: o, option_type: :standard, value_type: :string)
|
data/lib/ruby_terraform.rb
CHANGED
|
@@ -1316,6 +1316,56 @@ module RubyTerraform
|
|
|
1316
1316
|
parameters, invocation_options)
|
|
1317
1317
|
end
|
|
1318
1318
|
|
|
1319
|
+
# Invokes the +terraform test+ command which executes integration tests
|
|
1320
|
+
# defined in +.tftest.hcl+ files.
|
|
1321
|
+
#
|
|
1322
|
+
# Terraform discovers test files in the configured test directory (by
|
|
1323
|
+
# default +tests+) and in the root module, then runs each +run+ block in
|
|
1324
|
+
# turn, reporting on the outcome of the assertions.
|
|
1325
|
+
#
|
|
1326
|
+
# @param parameters The parameters used to invoke the command
|
|
1327
|
+
# @option parameters [String] :chdir The path of a working directory to
|
|
1328
|
+
# switch to before executing the given subcommand.
|
|
1329
|
+
# @option parameters [String] :cloud_run If set, executes the tests
|
|
1330
|
+
# remotely using the given Terraform Cloud/Enterprise module source
|
|
1331
|
+
# address rather than running them locally.
|
|
1332
|
+
# @option parameters [String] :filter Restrict which test files are
|
|
1333
|
+
# executed; if both +:filter+ and +:filters+ are provided, all filters
|
|
1334
|
+
# will be passed to terraform.
|
|
1335
|
+
# @option parameters [Array<String>] :filters An array of test file paths
|
|
1336
|
+
# to restrict which test files are executed; if both +:filter+ and
|
|
1337
|
+
# +:filters+ are provided, all filters will be passed to terraform.
|
|
1338
|
+
# @option parameters [Boolean] :json (false) Whether or not to produce
|
|
1339
|
+
# output in a machine-readable JSON format.
|
|
1340
|
+
# @option parameters [Boolean] :no_color (false) Whether or not the output
|
|
1341
|
+
# from the command should be in color.
|
|
1342
|
+
# @option parameters [String] :test_directory The directory containing
|
|
1343
|
+
# test files; defaults to +"tests"+.
|
|
1344
|
+
# @option parameters [Hash<String, Object>] :vars A map of variables to
|
|
1345
|
+
# be passed to the terraform configuration.
|
|
1346
|
+
# @option parameters [String] :var_file The path to a terraform var file;
|
|
1347
|
+
# if both +:var_file+ and +:var_files+ are provided, all var files will
|
|
1348
|
+
# be passed to terraform.
|
|
1349
|
+
# @option parameters [Array<String>] :var_files An array of paths to
|
|
1350
|
+
# terraform var files; if both +:var_file+ and +:var_files+ are
|
|
1351
|
+
# provided, all var files will be passed to terraform.
|
|
1352
|
+
# @option parameters [Boolean] :verbose (false) When +true+, prints the
|
|
1353
|
+
# plan or state for each test run block as it executes.
|
|
1354
|
+
# @param [Hash<String, Object>] invocation_options Additional options
|
|
1355
|
+
# controlling the invocation of the command.
|
|
1356
|
+
# @option invocation_options [Hash<String, String>] :environment A map
|
|
1357
|
+
# of environment variables to expose at command invocation time.
|
|
1358
|
+
#
|
|
1359
|
+
# @example Basic Invocation
|
|
1360
|
+
# RubyTerraform.test(
|
|
1361
|
+
# filters: ['tests/network.tftest.hcl'],
|
|
1362
|
+
# verbose: true)
|
|
1363
|
+
#
|
|
1364
|
+
def test(parameters = {}, invocation_options = {})
|
|
1365
|
+
exec(RubyTerraform::Commands::Test,
|
|
1366
|
+
parameters, invocation_options)
|
|
1367
|
+
end
|
|
1368
|
+
|
|
1319
1369
|
# Invokes the +terraform untaint+ command which removes the 'tainted' state
|
|
1320
1370
|
# from a resource instance.
|
|
1321
1371
|
#
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ruby-terraform
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.9.0.pre.
|
|
4
|
+
version: 1.9.0.pre.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- InfraBlocks Maintainers
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2026-05-15 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: immutable-struct
|
|
@@ -336,6 +336,7 @@ files:
|
|
|
336
336
|
- lib/ruby_terraform/commands/state_replace_provider.rb
|
|
337
337
|
- lib/ruby_terraform/commands/state_show.rb
|
|
338
338
|
- lib/ruby_terraform/commands/taint.rb
|
|
339
|
+
- lib/ruby_terraform/commands/test.rb
|
|
339
340
|
- lib/ruby_terraform/commands/untaint.rb
|
|
340
341
|
- lib/ruby_terraform/commands/validate.rb
|
|
341
342
|
- lib/ruby_terraform/commands/workspace_delete.rb
|
|
@@ -383,7 +384,7 @@ licenses:
|
|
|
383
384
|
- MIT
|
|
384
385
|
metadata:
|
|
385
386
|
rubygems_mfa_required: 'false'
|
|
386
|
-
post_install_message:
|
|
387
|
+
post_install_message:
|
|
387
388
|
rdoc_options: []
|
|
388
389
|
require_paths:
|
|
389
390
|
- lib
|
|
@@ -398,8 +399,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
398
399
|
- !ruby/object:Gem::Version
|
|
399
400
|
version: 1.3.1
|
|
400
401
|
requirements: []
|
|
401
|
-
rubygems_version: 3.
|
|
402
|
-
signing_key:
|
|
402
|
+
rubygems_version: 3.4.19
|
|
403
|
+
signing_key:
|
|
403
404
|
specification_version: 4
|
|
404
405
|
summary: A simple Ruby wrapper for invoking Terraform commands.
|
|
405
406
|
test_files: []
|