kitchen-terraform 5.7.1 → 6.1.0
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
- checksums.yaml.gz.sig +0 -0
- data/README.md +21 -19
- data/lib/kitchen/driver/terraform.rb +1 -1
- data/lib/kitchen/provisioner/terraform.rb +1 -1
- data/lib/kitchen/terraform/breaking.rb +1 -1
- data/lib/kitchen/terraform/command/apply.rb +1 -1
- data/lib/kitchen/terraform/command/destroy.rb +1 -1
- data/lib/kitchen/terraform/command/get.rb +1 -1
- data/lib/kitchen/terraform/command/init/post_zero_fifteen_zero.rb +89 -0
- data/lib/kitchen/terraform/command/init/pre_zero_fifteen_zero.rb +101 -0
- data/lib/kitchen/terraform/command/init.rb +3 -80
- data/lib/kitchen/terraform/command/init_factory.rb +52 -0
- data/lib/kitchen/terraform/command/output.rb +1 -1
- data/lib/kitchen/terraform/command/validate/post_zero_fifteen_zero.rb +51 -0
- data/lib/kitchen/terraform/command/validate/pre_zero_fifteen_zero.rb +65 -0
- data/lib/kitchen/terraform/command/validate.rb +3 -41
- data/lib/kitchen/terraform/command/validate_factory.rb +54 -0
- data/lib/kitchen/terraform/command/version.rb +1 -1
- data/lib/kitchen/terraform/command/workspace_delete.rb +1 -1
- data/lib/kitchen/terraform/command/workspace_new.rb +1 -1
- data/lib/kitchen/terraform/command/workspace_select.rb +1 -1
- data/lib/kitchen/terraform/command.rb +1 -1
- data/lib/kitchen/terraform/command_executor.rb +3 -5
- data/lib/kitchen/terraform/command_flag/backend_config.rb +1 -1
- data/lib/kitchen/terraform/command_flag/color.rb +1 -1
- data/lib/kitchen/terraform/command_flag/lock_timeout.rb +1 -1
- data/lib/kitchen/terraform/command_flag/plugin_dir.rb +1 -1
- data/lib/kitchen/terraform/command_flag/upgrade.rb +2 -2
- data/lib/kitchen/terraform/command_flag/var.rb +1 -1
- data/lib/kitchen/terraform/command_flag/var_file.rb +1 -1
- data/lib/kitchen/terraform/command_flag.rb +1 -1
- data/lib/kitchen/terraform/config_attribute/backend_configurations.rb +1 -1
- data/lib/kitchen/terraform/config_attribute/client.rb +3 -3
- data/lib/kitchen/terraform/config_attribute/color.rb +3 -3
- data/lib/kitchen/terraform/config_attribute/command_timeout.rb +1 -1
- data/lib/kitchen/terraform/config_attribute/fail_fast.rb +3 -3
- data/lib/kitchen/terraform/config_attribute/lock.rb +3 -3
- data/lib/kitchen/terraform/config_attribute/lock_timeout.rb +1 -1
- data/lib/kitchen/terraform/config_attribute/parallelism.rb +1 -1
- data/lib/kitchen/terraform/config_attribute/plugin_directory.rb +3 -3
- data/lib/kitchen/terraform/config_attribute/root_module_directory.rb +3 -3
- data/lib/kitchen/terraform/config_attribute/systems.rb +552 -4
- data/lib/kitchen/terraform/config_attribute/variable_files.rb +3 -3
- data/lib/kitchen/terraform/config_attribute/variables.rb +1 -1
- data/lib/kitchen/terraform/config_attribute/verify_version.rb +3 -3
- data/lib/kitchen/terraform/config_attribute.rb +1 -1
- data/lib/kitchen/terraform/config_attribute_cacher.rb +1 -1
- data/lib/kitchen/terraform/config_attribute_contract/array_of_strings.rb +30 -0
- data/lib/kitchen/terraform/{config_schemas → config_attribute_contract}/boolean.rb +7 -11
- data/lib/kitchen/terraform/config_attribute_contract/hash_of_symbols_and_strings.rb +41 -0
- data/lib/kitchen/terraform/{config_schemas.rb → config_attribute_contract/integer.rb} +10 -3
- data/lib/kitchen/terraform/config_attribute_contract/optional_string.rb +30 -0
- data/lib/kitchen/terraform/{config_schemas → config_attribute_contract}/string.rb +7 -9
- data/lib/kitchen/terraform/config_attribute_contract/systems.rb +63 -0
- data/lib/kitchen/terraform/{config_predicates.rb → config_attribute_contract.rb} +3 -3
- data/lib/kitchen/terraform/config_attribute_definer.rb +2 -2
- data/lib/kitchen/terraform/config_attribute_type/hash_of_symbols_and_strings.rb +9 -16
- data/lib/kitchen/terraform/config_attribute_type/integer.rb +27 -23
- data/lib/kitchen/terraform/config_attribute_type.rb +1 -1
- data/lib/kitchen/terraform/configurable.rb +2 -2
- data/lib/kitchen/terraform/debug_logger.rb +1 -1
- data/lib/kitchen/terraform/deprecating.rb +1 -1
- data/lib/kitchen/terraform/driver/create.rb +39 -16
- data/lib/kitchen/terraform/driver/destroy.rb +53 -21
- data/lib/kitchen/terraform/driver.rb +1 -1
- data/lib/kitchen/terraform/error.rb +1 -1
- data/lib/kitchen/terraform/file_path_config_attribute_definer.rb +1 -1
- data/lib/kitchen/terraform/inspec/fail_fast_with_hosts.rb +1 -1
- data/lib/kitchen/terraform/inspec/fail_slow_with_hosts.rb +1 -1
- data/lib/kitchen/terraform/inspec/without_hosts.rb +1 -1
- data/lib/kitchen/terraform/inspec.rb +1 -1
- data/lib/kitchen/terraform/inspec_factory.rb +1 -1
- data/lib/kitchen/terraform/inspec_options_factory.rb +1 -1
- data/lib/kitchen/terraform/inspec_runner.rb +5 -4
- data/lib/kitchen/terraform/outputs_manager.rb +1 -1
- data/lib/kitchen/terraform/outputs_parser.rb +1 -1
- data/lib/kitchen/terraform/outputs_reader.rb +2 -2
- data/lib/kitchen/terraform/provisioner/converge.rb +52 -25
- data/lib/kitchen/terraform/provisioner.rb +1 -1
- data/lib/kitchen/terraform/raise/action_failed.rb +1 -1
- data/lib/kitchen/terraform/raise/client_error.rb +1 -1
- data/lib/kitchen/terraform/raise.rb +1 -1
- data/lib/kitchen/terraform/shell_out.rb +6 -5
- data/lib/kitchen/terraform/system.rb +1 -1
- data/lib/kitchen/terraform/system_attrs_inputs_resolver.rb +1 -1
- data/lib/kitchen/terraform/system_attrs_outputs_resolver.rb +1 -1
- data/lib/kitchen/terraform/system_bastion_host_resolver.rb +1 -1
- data/lib/kitchen/terraform/system_hosts_resolver.rb +1 -1
- data/lib/kitchen/terraform/system_inspec_map.rb +1 -1
- data/lib/kitchen/terraform/systems_verifier/fail_fast.rb +1 -1
- data/lib/kitchen/terraform/systems_verifier/fail_slow.rb +1 -1
- data/lib/kitchen/terraform/systems_verifier.rb +1 -1
- data/lib/kitchen/terraform/systems_verifier_factory.rb +1 -1
- data/lib/kitchen/terraform/unsupported_client_version_error.rb +1 -1
- data/lib/kitchen/terraform/variables_manager.rb +1 -1
- data/lib/kitchen/terraform/verify_version.rb +5 -17
- data/lib/kitchen/terraform/verify_version_rescue_strategy/permissive.rb +1 -1
- data/lib/kitchen/terraform/verify_version_rescue_strategy/strict.rb +1 -1
- data/lib/kitchen/terraform/verify_version_rescue_strategy.rb +1 -1
- data/lib/kitchen/terraform/verify_version_rescue_strategy_factory.rb +1 -1
- data/lib/kitchen/terraform/version.rb +2 -2
- data/lib/kitchen/terraform/version_verifier.rb +1 -1
- data/lib/kitchen/terraform/version_verifier_strategy/supported.rb +1 -1
- data/lib/kitchen/terraform/version_verifier_strategy/unsupported.rb +1 -1
- data/lib/kitchen/terraform/version_verifier_strategy.rb +1 -1
- data/lib/kitchen/terraform/version_verifier_strategy_factory.rb +1 -1
- data/lib/kitchen/terraform.rb +1 -1
- data/lib/kitchen/verifier/terraform.rb +1 -1
- data.tar.gz.sig +0 -0
- metadata +65 -62
- metadata.gz.sig +0 -0
- data/lib/kitchen/terraform/config_predicates/hash_of_symbols_and_strings.rb +0 -81
- data/lib/kitchen/terraform/config_schemas/array_of_strings.rb +0 -38
- data/lib/kitchen/terraform/config_schemas/optional_string.rb +0 -38
- data/lib/kitchen/terraform/config_schemas/system.rb +0 -609
- data/lib/kitchen/terraform/config_schemas/systems.rb +0 -37
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# Copyright 2016-
|
|
3
|
+
# Copyright 2016-2021 Copado NCS LLC
|
|
4
4
|
#
|
|
5
5
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
6
|
# you may not use this file except in compliance with the License.
|
|
@@ -27,13 +27,12 @@ module Kitchen
|
|
|
27
27
|
class VerifyVersion
|
|
28
28
|
# #call invokes the verification.
|
|
29
29
|
#
|
|
30
|
-
# @param
|
|
31
|
-
# @param options [Hash] options for running the command.
|
|
30
|
+
# @param version [Gem::Version] the Terraform client version.
|
|
32
31
|
# @raise [Kitchen::ActionFailed] if the verification fails.
|
|
33
32
|
# @return [self]
|
|
34
|
-
def call(
|
|
33
|
+
def call(version:)
|
|
35
34
|
logger.warn start_message
|
|
36
|
-
|
|
35
|
+
version_verifier.verify version: version
|
|
37
36
|
logger.warn finish_message
|
|
38
37
|
rescue ::Kitchen::Terraform::UnsupportedClientVersionError
|
|
39
38
|
rescue_strategy.call
|
|
@@ -49,8 +48,7 @@ module Kitchen
|
|
|
49
48
|
# @option config [Boolean] :verify_version a toggle of strict or permissive verification of support for the
|
|
50
49
|
# version of the Terraform client.
|
|
51
50
|
# @return [Kitchen::Terraform::VerifyVersion]
|
|
52
|
-
def initialize(
|
|
53
|
-
self.command_executor = command_executor
|
|
51
|
+
def initialize(config:, logger:, version_requirement:)
|
|
54
52
|
self.finish_message = "Finished verifying the Terraform client version."
|
|
55
53
|
self.logger = logger
|
|
56
54
|
self.rescue_strategy = ::Kitchen::Terraform::VerifyVersionRescueStrategyFactory.new(
|
|
@@ -64,22 +62,12 @@ module Kitchen
|
|
|
64
62
|
private
|
|
65
63
|
|
|
66
64
|
attr_accessor(
|
|
67
|
-
:command_executor,
|
|
68
65
|
:finish_message,
|
|
69
66
|
:logger,
|
|
70
|
-
:options,
|
|
71
67
|
:rescue_strategy,
|
|
72
68
|
:start_message,
|
|
73
69
|
:version_verifier
|
|
74
70
|
)
|
|
75
|
-
|
|
76
|
-
def run_version_and_verify(command:, options:)
|
|
77
|
-
logger.warn "Reading the Terraform client version..."
|
|
78
|
-
command_executor.run command: command, options: options do |standard_output:|
|
|
79
|
-
logger.warn "Finished reading the Terraform client version."
|
|
80
|
-
version_verifier.verify version: ::Gem::Version.new(standard_output.slice(/Terraform v(\d+\.\d+\.\d+)/, 1))
|
|
81
|
-
end
|
|
82
|
-
end
|
|
83
71
|
end
|
|
84
72
|
end
|
|
85
73
|
end
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# Copyright 2016-
|
|
3
|
+
# Copyright 2016-2021 Copado NCS LLC
|
|
4
4
|
#
|
|
5
5
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
6
|
# you may not use this file except in compliance with the License.
|
|
@@ -71,7 +71,7 @@ module Kitchen
|
|
|
71
71
|
|
|
72
72
|
# @api private
|
|
73
73
|
def value
|
|
74
|
-
self.value = ::Gem::Version.new "
|
|
74
|
+
self.value = ::Gem::Version.new "6.1.0" if not @value
|
|
75
75
|
@value
|
|
76
76
|
end
|
|
77
77
|
|
data/lib/kitchen/terraform.rb
CHANGED
data.tar.gz.sig
CHANGED
|
Binary file
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: kitchen-terraform
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 6.1.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Aaron Lane
|
|
@@ -62,36 +62,8 @@ cert_chain:
|
|
|
62
62
|
JH4yGDzVEYaZHaohSDcYuGLK6OQylPu7oM75S+TNLWseDIT8bWgQk6NelVjtQQ2Q
|
|
63
63
|
XSbgfu863jyey/0qO01cUo3+iTqzl85cWg==
|
|
64
64
|
-----END CERTIFICATE-----
|
|
65
|
-
date:
|
|
65
|
+
date: 2022-01-22 00:00:00.000000000 Z
|
|
66
66
|
dependencies:
|
|
67
|
-
- !ruby/object:Gem::Dependency
|
|
68
|
-
name: bundler
|
|
69
|
-
requirement: !ruby/object:Gem::Requirement
|
|
70
|
-
requirements:
|
|
71
|
-
- - "~>"
|
|
72
|
-
- !ruby/object:Gem::Version
|
|
73
|
-
version: '2.0'
|
|
74
|
-
type: :development
|
|
75
|
-
prerelease: false
|
|
76
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
77
|
-
requirements:
|
|
78
|
-
- - "~>"
|
|
79
|
-
- !ruby/object:Gem::Version
|
|
80
|
-
version: '2.0'
|
|
81
|
-
- !ruby/object:Gem::Dependency
|
|
82
|
-
name: guard-bundler
|
|
83
|
-
requirement: !ruby/object:Gem::Requirement
|
|
84
|
-
requirements:
|
|
85
|
-
- - "~>"
|
|
86
|
-
- !ruby/object:Gem::Version
|
|
87
|
-
version: '2.1'
|
|
88
|
-
type: :development
|
|
89
|
-
prerelease: false
|
|
90
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
91
|
-
requirements:
|
|
92
|
-
- - "~>"
|
|
93
|
-
- !ruby/object:Gem::Version
|
|
94
|
-
version: '2.1'
|
|
95
67
|
- !ruby/object:Gem::Dependency
|
|
96
68
|
name: guard-rspec
|
|
97
69
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -204,20 +176,34 @@ dependencies:
|
|
|
204
176
|
- - "~>"
|
|
205
177
|
- !ruby/object:Gem::Version
|
|
206
178
|
version: '4.2'
|
|
179
|
+
- !ruby/object:Gem::Dependency
|
|
180
|
+
name: rake
|
|
181
|
+
requirement: !ruby/object:Gem::Requirement
|
|
182
|
+
requirements:
|
|
183
|
+
- - "~>"
|
|
184
|
+
- !ruby/object:Gem::Version
|
|
185
|
+
version: '13.0'
|
|
186
|
+
type: :development
|
|
187
|
+
prerelease: false
|
|
188
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
189
|
+
requirements:
|
|
190
|
+
- - "~>"
|
|
191
|
+
- !ruby/object:Gem::Version
|
|
192
|
+
version: '13.0'
|
|
207
193
|
- !ruby/object:Gem::Dependency
|
|
208
194
|
name: rspec
|
|
209
195
|
requirement: !ruby/object:Gem::Requirement
|
|
210
196
|
requirements:
|
|
211
197
|
- - "~>"
|
|
212
198
|
- !ruby/object:Gem::Version
|
|
213
|
-
version: '3.
|
|
199
|
+
version: '3.10'
|
|
214
200
|
type: :development
|
|
215
201
|
prerelease: false
|
|
216
202
|
version_requirements: !ruby/object:Gem::Requirement
|
|
217
203
|
requirements:
|
|
218
204
|
- - "~>"
|
|
219
205
|
- !ruby/object:Gem::Version
|
|
220
|
-
version: '3.
|
|
206
|
+
version: '3.10'
|
|
221
207
|
- !ruby/object:Gem::Dependency
|
|
222
208
|
name: rufo
|
|
223
209
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -247,75 +233,81 @@ dependencies:
|
|
|
247
233
|
- !ruby/object:Gem::Version
|
|
248
234
|
version: 0.16.1
|
|
249
235
|
- !ruby/object:Gem::Dependency
|
|
250
|
-
name:
|
|
236
|
+
name: yard
|
|
251
237
|
requirement: !ruby/object:Gem::Requirement
|
|
252
238
|
requirements:
|
|
253
239
|
- - "~>"
|
|
254
240
|
- !ruby/object:Gem::Version
|
|
255
|
-
version: '
|
|
241
|
+
version: '0.9'
|
|
256
242
|
type: :development
|
|
257
243
|
prerelease: false
|
|
258
244
|
version_requirements: !ruby/object:Gem::Requirement
|
|
259
245
|
requirements:
|
|
260
246
|
- - "~>"
|
|
261
247
|
- !ruby/object:Gem::Version
|
|
262
|
-
version: '
|
|
248
|
+
version: '0.9'
|
|
263
249
|
- !ruby/object:Gem::Dependency
|
|
264
|
-
name:
|
|
250
|
+
name: reek
|
|
265
251
|
requirement: !ruby/object:Gem::Requirement
|
|
266
252
|
requirements:
|
|
267
253
|
- - "~>"
|
|
268
254
|
- !ruby/object:Gem::Version
|
|
269
|
-
version:
|
|
255
|
+
version: 6.0.2
|
|
270
256
|
type: :development
|
|
271
257
|
prerelease: false
|
|
272
258
|
version_requirements: !ruby/object:Gem::Requirement
|
|
273
259
|
requirements:
|
|
274
260
|
- - "~>"
|
|
275
261
|
- !ruby/object:Gem::Version
|
|
276
|
-
version:
|
|
262
|
+
version: 6.0.2
|
|
277
263
|
- !ruby/object:Gem::Dependency
|
|
278
|
-
name:
|
|
264
|
+
name: webrick
|
|
279
265
|
requirement: !ruby/object:Gem::Requirement
|
|
280
266
|
requirements:
|
|
281
267
|
- - "~>"
|
|
282
268
|
- !ruby/object:Gem::Version
|
|
283
|
-
version:
|
|
269
|
+
version: '1.7'
|
|
284
270
|
type: :development
|
|
285
271
|
prerelease: false
|
|
286
272
|
version_requirements: !ruby/object:Gem::Requirement
|
|
287
273
|
requirements:
|
|
288
274
|
- - "~>"
|
|
289
275
|
- !ruby/object:Gem::Version
|
|
290
|
-
version:
|
|
276
|
+
version: '1.7'
|
|
291
277
|
- !ruby/object:Gem::Dependency
|
|
292
278
|
name: delegate
|
|
293
279
|
requirement: !ruby/object:Gem::Requirement
|
|
294
280
|
requirements:
|
|
295
|
-
- - "
|
|
281
|
+
- - ">="
|
|
296
282
|
- !ruby/object:Gem::Version
|
|
297
283
|
version: 0.1.0
|
|
284
|
+
- - "<"
|
|
285
|
+
- !ruby/object:Gem::Version
|
|
286
|
+
version: 0.3.0
|
|
298
287
|
type: :runtime
|
|
299
288
|
prerelease: false
|
|
300
289
|
version_requirements: !ruby/object:Gem::Requirement
|
|
301
290
|
requirements:
|
|
302
|
-
- - "
|
|
291
|
+
- - ">="
|
|
303
292
|
- !ruby/object:Gem::Version
|
|
304
293
|
version: 0.1.0
|
|
294
|
+
- - "<"
|
|
295
|
+
- !ruby/object:Gem::Version
|
|
296
|
+
version: 0.3.0
|
|
305
297
|
- !ruby/object:Gem::Dependency
|
|
306
298
|
name: dry-validation
|
|
307
299
|
requirement: !ruby/object:Gem::Requirement
|
|
308
300
|
requirements:
|
|
309
301
|
- - "~>"
|
|
310
302
|
- !ruby/object:Gem::Version
|
|
311
|
-
version: '
|
|
303
|
+
version: '1.6'
|
|
312
304
|
type: :runtime
|
|
313
305
|
prerelease: false
|
|
314
306
|
version_requirements: !ruby/object:Gem::Requirement
|
|
315
307
|
requirements:
|
|
316
308
|
- - "~>"
|
|
317
309
|
- !ruby/object:Gem::Version
|
|
318
|
-
version: '
|
|
310
|
+
version: '1.6'
|
|
319
311
|
- !ruby/object:Gem::Dependency
|
|
320
312
|
name: mixlib-shellout
|
|
321
313
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -386,30 +378,36 @@ dependencies:
|
|
|
386
378
|
name: test-kitchen
|
|
387
379
|
requirement: !ruby/object:Gem::Requirement
|
|
388
380
|
requirements:
|
|
389
|
-
- - "
|
|
381
|
+
- - ">="
|
|
390
382
|
- !ruby/object:Gem::Version
|
|
391
383
|
version: '2.1'
|
|
384
|
+
- - "<"
|
|
385
|
+
- !ruby/object:Gem::Version
|
|
386
|
+
version: '4.0'
|
|
392
387
|
type: :runtime
|
|
393
388
|
prerelease: false
|
|
394
389
|
version_requirements: !ruby/object:Gem::Requirement
|
|
395
390
|
requirements:
|
|
396
|
-
- - "
|
|
391
|
+
- - ">="
|
|
397
392
|
- !ruby/object:Gem::Version
|
|
398
393
|
version: '2.1'
|
|
394
|
+
- - "<"
|
|
395
|
+
- !ruby/object:Gem::Version
|
|
396
|
+
version: '4.0'
|
|
399
397
|
- !ruby/object:Gem::Dependency
|
|
400
398
|
name: tty-which
|
|
401
399
|
requirement: !ruby/object:Gem::Requirement
|
|
402
400
|
requirements:
|
|
403
401
|
- - "~>"
|
|
404
402
|
- !ruby/object:Gem::Version
|
|
405
|
-
version: 0.
|
|
403
|
+
version: 0.5.0
|
|
406
404
|
type: :runtime
|
|
407
405
|
prerelease: false
|
|
408
406
|
version_requirements: !ruby/object:Gem::Requirement
|
|
409
407
|
requirements:
|
|
410
408
|
- - "~>"
|
|
411
409
|
- !ruby/object:Gem::Version
|
|
412
|
-
version: 0.
|
|
410
|
+
version: 0.5.0
|
|
413
411
|
description: kitchen-terraform is a set of Test Kitchen plugins for testing Terraform
|
|
414
412
|
configuration
|
|
415
413
|
email: kitchen-terraform@newcontext.com
|
|
@@ -428,8 +426,14 @@ files:
|
|
|
428
426
|
- lib/kitchen/terraform/command/destroy.rb
|
|
429
427
|
- lib/kitchen/terraform/command/get.rb
|
|
430
428
|
- lib/kitchen/terraform/command/init.rb
|
|
429
|
+
- lib/kitchen/terraform/command/init/post_zero_fifteen_zero.rb
|
|
430
|
+
- lib/kitchen/terraform/command/init/pre_zero_fifteen_zero.rb
|
|
431
|
+
- lib/kitchen/terraform/command/init_factory.rb
|
|
431
432
|
- lib/kitchen/terraform/command/output.rb
|
|
432
433
|
- lib/kitchen/terraform/command/validate.rb
|
|
434
|
+
- lib/kitchen/terraform/command/validate/post_zero_fifteen_zero.rb
|
|
435
|
+
- lib/kitchen/terraform/command/validate/pre_zero_fifteen_zero.rb
|
|
436
|
+
- lib/kitchen/terraform/command/validate_factory.rb
|
|
433
437
|
- lib/kitchen/terraform/command/version.rb
|
|
434
438
|
- lib/kitchen/terraform/command/workspace_delete.rb
|
|
435
439
|
- lib/kitchen/terraform/command/workspace_new.rb
|
|
@@ -459,19 +463,18 @@ files:
|
|
|
459
463
|
- lib/kitchen/terraform/config_attribute/variables.rb
|
|
460
464
|
- lib/kitchen/terraform/config_attribute/verify_version.rb
|
|
461
465
|
- lib/kitchen/terraform/config_attribute_cacher.rb
|
|
466
|
+
- lib/kitchen/terraform/config_attribute_contract.rb
|
|
467
|
+
- lib/kitchen/terraform/config_attribute_contract/array_of_strings.rb
|
|
468
|
+
- lib/kitchen/terraform/config_attribute_contract/boolean.rb
|
|
469
|
+
- lib/kitchen/terraform/config_attribute_contract/hash_of_symbols_and_strings.rb
|
|
470
|
+
- lib/kitchen/terraform/config_attribute_contract/integer.rb
|
|
471
|
+
- lib/kitchen/terraform/config_attribute_contract/optional_string.rb
|
|
472
|
+
- lib/kitchen/terraform/config_attribute_contract/string.rb
|
|
473
|
+
- lib/kitchen/terraform/config_attribute_contract/systems.rb
|
|
462
474
|
- lib/kitchen/terraform/config_attribute_definer.rb
|
|
463
475
|
- lib/kitchen/terraform/config_attribute_type.rb
|
|
464
476
|
- lib/kitchen/terraform/config_attribute_type/hash_of_symbols_and_strings.rb
|
|
465
477
|
- lib/kitchen/terraform/config_attribute_type/integer.rb
|
|
466
|
-
- lib/kitchen/terraform/config_predicates.rb
|
|
467
|
-
- lib/kitchen/terraform/config_predicates/hash_of_symbols_and_strings.rb
|
|
468
|
-
- lib/kitchen/terraform/config_schemas.rb
|
|
469
|
-
- lib/kitchen/terraform/config_schemas/array_of_strings.rb
|
|
470
|
-
- lib/kitchen/terraform/config_schemas/boolean.rb
|
|
471
|
-
- lib/kitchen/terraform/config_schemas/optional_string.rb
|
|
472
|
-
- lib/kitchen/terraform/config_schemas/string.rb
|
|
473
|
-
- lib/kitchen/terraform/config_schemas/system.rb
|
|
474
|
-
- lib/kitchen/terraform/config_schemas/systems.rb
|
|
475
478
|
- lib/kitchen/terraform/configurable.rb
|
|
476
479
|
- lib/kitchen/terraform/debug_logger.rb
|
|
477
480
|
- lib/kitchen/terraform/deprecating.rb
|
|
@@ -532,18 +535,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
532
535
|
requirements:
|
|
533
536
|
- - ">="
|
|
534
537
|
- !ruby/object:Gem::Version
|
|
535
|
-
version: '2.
|
|
538
|
+
version: '2.6'
|
|
536
539
|
- - "<"
|
|
537
540
|
- !ruby/object:Gem::Version
|
|
538
|
-
version: '
|
|
541
|
+
version: '4.0'
|
|
539
542
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
540
543
|
requirements:
|
|
541
544
|
- - ">="
|
|
542
545
|
- !ruby/object:Gem::Version
|
|
543
546
|
version: '0'
|
|
544
547
|
requirements:
|
|
545
|
-
- Terraform >= v0.11.4, <
|
|
546
|
-
rubygems_version: 3.0.3
|
|
548
|
+
- Terraform >= v0.11.4, < v2.0.0
|
|
549
|
+
rubygems_version: 3.0.3.1
|
|
547
550
|
signing_key:
|
|
548
551
|
specification_version: 4
|
|
549
552
|
summary: Test Kitchen plugins for testing Terraform configuration
|
metadata.gz.sig
CHANGED
|
Binary file
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
# Copyright 2016-2019 New Context, Inc.
|
|
4
|
-
#
|
|
5
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
-
# you may not use this file except in compliance with the License.
|
|
7
|
-
# You may obtain a copy of the License at
|
|
8
|
-
#
|
|
9
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
#
|
|
11
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
12
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
-
# See the License for the specific language governing permissions and
|
|
15
|
-
# limitations under the License.
|
|
16
|
-
|
|
17
|
-
require "dry/logic"
|
|
18
|
-
require "kitchen/terraform/config_predicates"
|
|
19
|
-
|
|
20
|
-
# Behaviour to provide a configuration attribute predicate for a hash including only symbol keys and string values.
|
|
21
|
-
#
|
|
22
|
-
# This module must be declared as providing predicates and extended in a schema's configuration in order to be used.
|
|
23
|
-
#
|
|
24
|
-
# @see http://dry-rb.org/gems/dry-validation/custom-predicates/ DRY Logic Custom Predicates
|
|
25
|
-
module ::Kitchen::Terraform::ConfigPredicates::HashOfSymbolsAndStrings
|
|
26
|
-
# A callback to configure an extending schema with this predicate.
|
|
27
|
-
#
|
|
28
|
-
# @param schema [Dry::Validation::Schema] the schema to be configured.
|
|
29
|
-
# @return [self]
|
|
30
|
-
def self.extended(schema)
|
|
31
|
-
schema.predicates self
|
|
32
|
-
self
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
include ::Dry::Logic::Predicates
|
|
36
|
-
|
|
37
|
-
predicate :hash_of_symbols_and_strings? do |value|
|
|
38
|
-
value.kind_of? ::Hash and
|
|
39
|
-
all_symbols? keys: value.keys and
|
|
40
|
-
all_strings? values: value.values
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
private_class_method
|
|
44
|
-
|
|
45
|
-
# If all keys are symbols then the result is +true+; else the result is +false+.
|
|
46
|
-
#
|
|
47
|
-
# @api private
|
|
48
|
-
# @param keys [Enumerable] keys that must be only symbols
|
|
49
|
-
# @return [TrueClass, ::FalseClass] the result
|
|
50
|
-
def self.all_symbols?(keys:)
|
|
51
|
-
keys
|
|
52
|
-
.all? do |key|
|
|
53
|
-
key.kind_of? ::Symbol
|
|
54
|
-
end
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
# If all values are strings then the result is +true+; else the result is +false+.
|
|
58
|
-
#
|
|
59
|
-
# @api private
|
|
60
|
-
# @param values [Enumerable] values that must be only strings
|
|
61
|
-
# @return [TrueClass, ::FalseClass] the result
|
|
62
|
-
def self.all_strings?(values:)
|
|
63
|
-
values
|
|
64
|
-
.all? do |value|
|
|
65
|
-
value.kind_of? ::String
|
|
66
|
-
end
|
|
67
|
-
end
|
|
68
|
-
|
|
69
|
-
private
|
|
70
|
-
|
|
71
|
-
def messages
|
|
72
|
-
super
|
|
73
|
-
.merge(
|
|
74
|
-
en: {
|
|
75
|
-
errors: {
|
|
76
|
-
hash_of_symbols_and_strings?: "must be a hash which includes only symbol keys and string values",
|
|
77
|
-
},
|
|
78
|
-
},
|
|
79
|
-
)
|
|
80
|
-
end
|
|
81
|
-
end
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
# Copyright 2016-2019 New Context, Inc.
|
|
4
|
-
#
|
|
5
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
-
# you may not use this file except in compliance with the License.
|
|
7
|
-
# You may obtain a copy of the License at
|
|
8
|
-
#
|
|
9
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
#
|
|
11
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
12
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
-
# See the License for the specific language governing permissions and
|
|
15
|
-
# limitations under the License.
|
|
16
|
-
|
|
17
|
-
require "dry/validation"
|
|
18
|
-
|
|
19
|
-
module Kitchen
|
|
20
|
-
module Terraform
|
|
21
|
-
module ConfigSchemas
|
|
22
|
-
# A validation schema for a configuration attribute which is an array including only strings.
|
|
23
|
-
#
|
|
24
|
-
# @see http://dry-rb.org/gems/dry-validation/basics/working-with-schemas/ DRY Validation Working With Schemas
|
|
25
|
-
ArrayOfStrings = ::Dry::Validation.Schema do
|
|
26
|
-
required(:value)
|
|
27
|
-
.each(
|
|
28
|
-
:filled?,
|
|
29
|
-
:str?
|
|
30
|
-
)
|
|
31
|
-
end.dup
|
|
32
|
-
|
|
33
|
-
ArrayOfStrings.define_singleton_method :to_s do
|
|
34
|
-
"Kitchen::Terraform::ConfigSchemas::ArrayOfStrings"
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
|
-
end
|
|
38
|
-
end
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
# Copyright 2016-2019 New Context, Inc.
|
|
4
|
-
#
|
|
5
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
-
# you may not use this file except in compliance with the License.
|
|
7
|
-
# You may obtain a copy of the License at
|
|
8
|
-
#
|
|
9
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
#
|
|
11
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
12
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
-
# See the License for the specific language governing permissions and
|
|
15
|
-
# limitations under the License.
|
|
16
|
-
|
|
17
|
-
require "dry/validation"
|
|
18
|
-
|
|
19
|
-
module Kitchen
|
|
20
|
-
module Terraform
|
|
21
|
-
module ConfigSchemas
|
|
22
|
-
# A validation schema for a configuration attribute which is an optional string.
|
|
23
|
-
#
|
|
24
|
-
# @see http://dry-rb.org/gems/dry-validation/basics/working-with-schemas/ DRY Validation Working With Schemas
|
|
25
|
-
OptionalString = ::Dry::Validation.Schema do
|
|
26
|
-
required(:value)
|
|
27
|
-
.maybe(
|
|
28
|
-
:str?,
|
|
29
|
-
:filled?
|
|
30
|
-
)
|
|
31
|
-
end.dup
|
|
32
|
-
|
|
33
|
-
OptionalString.define_singleton_method :to_s do
|
|
34
|
-
"Kitchen::Terraform::ConfigSchemas::OptionalString"
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
|
-
end
|
|
38
|
-
end
|