kitchen-terraform 5.7.1 → 6.1.0

Sign up to get free protection for your applications and to get access to all the features.
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