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.
Files changed (117) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/README.md +21 -19
  4. data/lib/kitchen/driver/terraform.rb +1 -1
  5. data/lib/kitchen/provisioner/terraform.rb +1 -1
  6. data/lib/kitchen/terraform/breaking.rb +1 -1
  7. data/lib/kitchen/terraform/command/apply.rb +1 -1
  8. data/lib/kitchen/terraform/command/destroy.rb +1 -1
  9. data/lib/kitchen/terraform/command/get.rb +1 -1
  10. data/lib/kitchen/terraform/command/init/post_zero_fifteen_zero.rb +89 -0
  11. data/lib/kitchen/terraform/command/init/pre_zero_fifteen_zero.rb +101 -0
  12. data/lib/kitchen/terraform/command/init.rb +3 -80
  13. data/lib/kitchen/terraform/command/init_factory.rb +52 -0
  14. data/lib/kitchen/terraform/command/output.rb +1 -1
  15. data/lib/kitchen/terraform/command/validate/post_zero_fifteen_zero.rb +51 -0
  16. data/lib/kitchen/terraform/command/validate/pre_zero_fifteen_zero.rb +65 -0
  17. data/lib/kitchen/terraform/command/validate.rb +3 -41
  18. data/lib/kitchen/terraform/command/validate_factory.rb +54 -0
  19. data/lib/kitchen/terraform/command/version.rb +1 -1
  20. data/lib/kitchen/terraform/command/workspace_delete.rb +1 -1
  21. data/lib/kitchen/terraform/command/workspace_new.rb +1 -1
  22. data/lib/kitchen/terraform/command/workspace_select.rb +1 -1
  23. data/lib/kitchen/terraform/command.rb +1 -1
  24. data/lib/kitchen/terraform/command_executor.rb +3 -5
  25. data/lib/kitchen/terraform/command_flag/backend_config.rb +1 -1
  26. data/lib/kitchen/terraform/command_flag/color.rb +1 -1
  27. data/lib/kitchen/terraform/command_flag/lock_timeout.rb +1 -1
  28. data/lib/kitchen/terraform/command_flag/plugin_dir.rb +1 -1
  29. data/lib/kitchen/terraform/command_flag/upgrade.rb +2 -2
  30. data/lib/kitchen/terraform/command_flag/var.rb +1 -1
  31. data/lib/kitchen/terraform/command_flag/var_file.rb +1 -1
  32. data/lib/kitchen/terraform/command_flag.rb +1 -1
  33. data/lib/kitchen/terraform/config_attribute/backend_configurations.rb +1 -1
  34. data/lib/kitchen/terraform/config_attribute/client.rb +3 -3
  35. data/lib/kitchen/terraform/config_attribute/color.rb +3 -3
  36. data/lib/kitchen/terraform/config_attribute/command_timeout.rb +1 -1
  37. data/lib/kitchen/terraform/config_attribute/fail_fast.rb +3 -3
  38. data/lib/kitchen/terraform/config_attribute/lock.rb +3 -3
  39. data/lib/kitchen/terraform/config_attribute/lock_timeout.rb +1 -1
  40. data/lib/kitchen/terraform/config_attribute/parallelism.rb +1 -1
  41. data/lib/kitchen/terraform/config_attribute/plugin_directory.rb +3 -3
  42. data/lib/kitchen/terraform/config_attribute/root_module_directory.rb +3 -3
  43. data/lib/kitchen/terraform/config_attribute/systems.rb +552 -4
  44. data/lib/kitchen/terraform/config_attribute/variable_files.rb +3 -3
  45. data/lib/kitchen/terraform/config_attribute/variables.rb +1 -1
  46. data/lib/kitchen/terraform/config_attribute/verify_version.rb +3 -3
  47. data/lib/kitchen/terraform/config_attribute.rb +1 -1
  48. data/lib/kitchen/terraform/config_attribute_cacher.rb +1 -1
  49. data/lib/kitchen/terraform/config_attribute_contract/array_of_strings.rb +30 -0
  50. data/lib/kitchen/terraform/{config_schemas → config_attribute_contract}/boolean.rb +7 -11
  51. data/lib/kitchen/terraform/config_attribute_contract/hash_of_symbols_and_strings.rb +41 -0
  52. data/lib/kitchen/terraform/{config_schemas.rb → config_attribute_contract/integer.rb} +10 -3
  53. data/lib/kitchen/terraform/config_attribute_contract/optional_string.rb +30 -0
  54. data/lib/kitchen/terraform/{config_schemas → config_attribute_contract}/string.rb +7 -9
  55. data/lib/kitchen/terraform/config_attribute_contract/systems.rb +63 -0
  56. data/lib/kitchen/terraform/{config_predicates.rb → config_attribute_contract.rb} +3 -3
  57. data/lib/kitchen/terraform/config_attribute_definer.rb +2 -2
  58. data/lib/kitchen/terraform/config_attribute_type/hash_of_symbols_and_strings.rb +9 -16
  59. data/lib/kitchen/terraform/config_attribute_type/integer.rb +27 -23
  60. data/lib/kitchen/terraform/config_attribute_type.rb +1 -1
  61. data/lib/kitchen/terraform/configurable.rb +2 -2
  62. data/lib/kitchen/terraform/debug_logger.rb +1 -1
  63. data/lib/kitchen/terraform/deprecating.rb +1 -1
  64. data/lib/kitchen/terraform/driver/create.rb +39 -16
  65. data/lib/kitchen/terraform/driver/destroy.rb +53 -21
  66. data/lib/kitchen/terraform/driver.rb +1 -1
  67. data/lib/kitchen/terraform/error.rb +1 -1
  68. data/lib/kitchen/terraform/file_path_config_attribute_definer.rb +1 -1
  69. data/lib/kitchen/terraform/inspec/fail_fast_with_hosts.rb +1 -1
  70. data/lib/kitchen/terraform/inspec/fail_slow_with_hosts.rb +1 -1
  71. data/lib/kitchen/terraform/inspec/without_hosts.rb +1 -1
  72. data/lib/kitchen/terraform/inspec.rb +1 -1
  73. data/lib/kitchen/terraform/inspec_factory.rb +1 -1
  74. data/lib/kitchen/terraform/inspec_options_factory.rb +1 -1
  75. data/lib/kitchen/terraform/inspec_runner.rb +5 -4
  76. data/lib/kitchen/terraform/outputs_manager.rb +1 -1
  77. data/lib/kitchen/terraform/outputs_parser.rb +1 -1
  78. data/lib/kitchen/terraform/outputs_reader.rb +2 -2
  79. data/lib/kitchen/terraform/provisioner/converge.rb +52 -25
  80. data/lib/kitchen/terraform/provisioner.rb +1 -1
  81. data/lib/kitchen/terraform/raise/action_failed.rb +1 -1
  82. data/lib/kitchen/terraform/raise/client_error.rb +1 -1
  83. data/lib/kitchen/terraform/raise.rb +1 -1
  84. data/lib/kitchen/terraform/shell_out.rb +6 -5
  85. data/lib/kitchen/terraform/system.rb +1 -1
  86. data/lib/kitchen/terraform/system_attrs_inputs_resolver.rb +1 -1
  87. data/lib/kitchen/terraform/system_attrs_outputs_resolver.rb +1 -1
  88. data/lib/kitchen/terraform/system_bastion_host_resolver.rb +1 -1
  89. data/lib/kitchen/terraform/system_hosts_resolver.rb +1 -1
  90. data/lib/kitchen/terraform/system_inspec_map.rb +1 -1
  91. data/lib/kitchen/terraform/systems_verifier/fail_fast.rb +1 -1
  92. data/lib/kitchen/terraform/systems_verifier/fail_slow.rb +1 -1
  93. data/lib/kitchen/terraform/systems_verifier.rb +1 -1
  94. data/lib/kitchen/terraform/systems_verifier_factory.rb +1 -1
  95. data/lib/kitchen/terraform/unsupported_client_version_error.rb +1 -1
  96. data/lib/kitchen/terraform/variables_manager.rb +1 -1
  97. data/lib/kitchen/terraform/verify_version.rb +5 -17
  98. data/lib/kitchen/terraform/verify_version_rescue_strategy/permissive.rb +1 -1
  99. data/lib/kitchen/terraform/verify_version_rescue_strategy/strict.rb +1 -1
  100. data/lib/kitchen/terraform/verify_version_rescue_strategy.rb +1 -1
  101. data/lib/kitchen/terraform/verify_version_rescue_strategy_factory.rb +1 -1
  102. data/lib/kitchen/terraform/version.rb +2 -2
  103. data/lib/kitchen/terraform/version_verifier.rb +1 -1
  104. data/lib/kitchen/terraform/version_verifier_strategy/supported.rb +1 -1
  105. data/lib/kitchen/terraform/version_verifier_strategy/unsupported.rb +1 -1
  106. data/lib/kitchen/terraform/version_verifier_strategy.rb +1 -1
  107. data/lib/kitchen/terraform/version_verifier_strategy_factory.rb +1 -1
  108. data/lib/kitchen/terraform.rb +1 -1
  109. data/lib/kitchen/verifier/terraform.rb +1 -1
  110. data.tar.gz.sig +0 -0
  111. metadata +65 -62
  112. metadata.gz.sig +0 -0
  113. data/lib/kitchen/terraform/config_predicates/hash_of_symbols_and_strings.rb +0 -81
  114. data/lib/kitchen/terraform/config_schemas/array_of_strings.rb +0 -38
  115. data/lib/kitchen/terraform/config_schemas/optional_string.rb +0 -38
  116. data/lib/kitchen/terraform/config_schemas/system.rb +0 -609
  117. 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-2019 New Context, Inc.
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.
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright 2016-2019 New Context, Inc.
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.
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright 2016-2019 New Context, Inc.
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 command [Kitchen::Terraform::Command::Version] the version command.
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(command:, options:)
33
+ def call(version:)
35
34
  logger.warn start_message
36
- run_version_and_verify command: command, options: options
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(command_executor:, config:, logger:, version_requirement:)
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-2019 New Context, Inc.
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.
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright 2016-2019 New Context, Inc.
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.
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright 2016-2019 New Context, Inc.
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.
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright 2016-2019 New Context, Inc.
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.
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright 2016-2019 New Context, Inc.
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 "5.7.1" if not @value
74
+ self.value = ::Gem::Version.new "6.1.0" if not @value
75
75
  @value
76
76
  end
77
77
 
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright 2016-2019 New Context, Inc.
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.
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright 2016-2019 New Context, Inc.
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.
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright 2016-2019 New Context, Inc.
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.
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright 2016-2019 New Context, Inc.
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.
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright 2016-2019 New Context, Inc.
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.
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright 2016-2019 New Context, Inc.
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.
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright 2016-2019 New Context, Inc.
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.
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: 5.7.1
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: 2021-02-25 00:00:00.000000000 Z
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.4'
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.4'
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: travis
236
+ name: yard
251
237
  requirement: !ruby/object:Gem::Requirement
252
238
  requirements:
253
239
  - - "~>"
254
240
  - !ruby/object:Gem::Version
255
- version: '1.8'
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: '1.8'
248
+ version: '0.9'
263
249
  - !ruby/object:Gem::Dependency
264
- name: yard
250
+ name: reek
265
251
  requirement: !ruby/object:Gem::Requirement
266
252
  requirements:
267
253
  - - "~>"
268
254
  - !ruby/object:Gem::Version
269
- version: '0.9'
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: '0.9'
262
+ version: 6.0.2
277
263
  - !ruby/object:Gem::Dependency
278
- name: reek
264
+ name: webrick
279
265
  requirement: !ruby/object:Gem::Requirement
280
266
  requirements:
281
267
  - - "~>"
282
268
  - !ruby/object:Gem::Version
283
- version: 6.0.2
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: 6.0.2
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: '0.13'
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: '0.13'
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.4.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.4.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.4'
538
+ version: '2.6'
536
539
  - - "<"
537
540
  - !ruby/object:Gem::Version
538
- version: '2.8'
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, < v0.15.0
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