voxpupuli-acceptance 0.2.1 → 1.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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 557133c56cc279a2e32231fe370c9dc751ccfab399f8c359728834f25f750ba2
|
4
|
+
data.tar.gz: db7b675b150ee69ae02d8942c4d5d97b7ddf759c0dc1dab64e25900813c223ac
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 43680c07caa4c51a162f0b33a1a8646aab994e0a5500e2624658696ff24b4952fda7d97868e7018e0f7639d6ef8859f70a28bfa6f349967d3cb102e2417285a9
|
7
|
+
data.tar.gz: 63fa116962dec2f7e042fe5eb665c90ae4bc2ff261aee24849dc7571e950337201f929a5805c01b6dba0cf90dc69ab448c8735a0d71371a2dec9b5bc3b8e1b96
|
@@ -0,0 +1,21 @@
|
|
1
|
+
shared_examples 'an idempotent resource' do |host|
|
2
|
+
host ||= default
|
3
|
+
|
4
|
+
it 'applies with no errors' do
|
5
|
+
apply_manifest_on(host, manifest, catch_failures: true)
|
6
|
+
end
|
7
|
+
|
8
|
+
it 'applies a second time without changes' do
|
9
|
+
apply_manifest_on(host, manifest, catch_changes: true)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
shared_examples 'the example' do |name, host|
|
14
|
+
include_examples 'an idempotent resource', host do
|
15
|
+
let(:manifest) do
|
16
|
+
path = File.join(Dir.pwd, 'examples', name)
|
17
|
+
raise Exception, "Example '#{path}' does not exist" unless File.exist?(path)
|
18
|
+
File.read(path)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
module Voxpupuli
|
2
|
+
module Acceptance
|
3
|
+
class Facts
|
4
|
+
ENV_VAR_PREFIX = 'BEAKER_FACTER_'
|
5
|
+
FACT_FILE = '/etc/facter/facts.d/voxpupuli-acceptance-env.json'
|
6
|
+
|
7
|
+
class << self
|
8
|
+
def beaker_facts_from_env
|
9
|
+
facts = {}
|
10
|
+
|
11
|
+
ENV.each do |var, value|
|
12
|
+
next unless var.start_with?(ENV_VAR_PREFIX)
|
13
|
+
|
14
|
+
fact = var.sub(ENV_VAR_PREFIX, '').downcase
|
15
|
+
facts[fact] = value
|
16
|
+
end
|
17
|
+
|
18
|
+
facts
|
19
|
+
end
|
20
|
+
|
21
|
+
def write_beaker_facts_on(hosts)
|
22
|
+
beaker_facts = beaker_facts_from_env
|
23
|
+
|
24
|
+
if beaker_facts.any?
|
25
|
+
require 'json'
|
26
|
+
on(hosts, "mkdir -p #{File.dirname(FACT_FILE)} && cat <<VOXPUPULI_BEAKER_ENV_VARS > #{FACT_FILE}\n#{beaker_facts.to_json}\nVOXPUPULI_BEAKER_ENV_VARS")
|
27
|
+
else
|
28
|
+
on(hosts, "rm -f #{FACT_FILE}")
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,9 @@
|
|
1
|
+
begin
|
2
|
+
# Fixtures can be needed because of spec_prep
|
3
|
+
# spec_prep taks is provided by puppetlabs_spec_helper
|
4
|
+
require 'puppetlabs_spec_helper/tasks/fixtures'
|
5
|
+
rescue LoadError
|
6
|
+
# we only need that during CI, so we rescue the LoadError
|
7
|
+
end
|
8
|
+
# provides the beaker rake task
|
9
|
+
require 'beaker-rspec/rake_task'
|
@@ -1,9 +1,14 @@
|
|
1
|
+
require_relative 'examples'
|
2
|
+
|
1
3
|
def configure_beaker(modules: :metadata, &block)
|
2
4
|
ENV['PUPPET_INSTALL_TYPE'] ||= 'agent'
|
3
5
|
ENV['BEAKER_PUPPET_COLLECTION'] ||= 'puppet6'
|
4
6
|
ENV['BEAKER_debug'] ||= 'true'
|
5
7
|
ENV['BEAKER_HYPERVISOR'] ||= 'docker'
|
6
8
|
|
9
|
+
# On Ruby 3 this doesn't appear to matter but on Ruby 2 beaker-hiera must be
|
10
|
+
# included before beaker-rspec so Beaker::DSL is final
|
11
|
+
require 'beaker-hiera'
|
7
12
|
require 'beaker-rspec'
|
8
13
|
require 'beaker-puppet'
|
9
14
|
require 'beaker/puppet_install_helper'
|
@@ -30,14 +35,50 @@ def configure_beaker(modules: :metadata, &block)
|
|
30
35
|
install_module_dependencies
|
31
36
|
when :fixtures
|
32
37
|
fixture_modules = File.join(Dir.pwd, 'spec', 'fixtures', 'modules')
|
33
|
-
|
38
|
+
Voxpupuli::Acceptance::Fixtures.install_fixture_modules_on(hosts, fixture_modules)
|
39
|
+
end
|
40
|
+
|
41
|
+
if RSpec.configuration.suite_configure_facts_from_env
|
42
|
+
require_relative 'facts'
|
43
|
+
Voxpupuli::Acceptance::Facts.write_beaker_facts_on(hosts)
|
44
|
+
end
|
45
|
+
|
46
|
+
if RSpec.configuration.suite_hiera?
|
47
|
+
hiera_data_dir = RSpec.configuration.suite_hiera_data_dir
|
48
|
+
|
49
|
+
if Dir.exist?(hiera_data_dir)
|
50
|
+
write_hiera_config_on(hosts, RSpec.configuration.suite_hiera_hierachy)
|
51
|
+
copy_hiera_data_to(hosts, hiera_data_dir)
|
52
|
+
end
|
34
53
|
end
|
35
54
|
|
36
|
-
|
37
|
-
|
38
|
-
|
55
|
+
local_setup = RSpec.configuration.setup_acceptance_node
|
56
|
+
hosts.each do |host|
|
57
|
+
yield host if block
|
58
|
+
|
59
|
+
if local_setup && File.exist?(local_setup)
|
60
|
+
puts "Configuring #{host} by applying #{local_setup}"
|
61
|
+
apply_manifest_on(host, File.read(local_setup), catch_failures: true)
|
39
62
|
end
|
40
63
|
end
|
41
64
|
end
|
42
65
|
end
|
43
66
|
end
|
67
|
+
|
68
|
+
RSpec.configure do |c|
|
69
|
+
# Fact handling
|
70
|
+
c.add_setting :suite_configure_facts_from_env, default: true
|
71
|
+
|
72
|
+
# Hiera settings
|
73
|
+
c.add_setting :suite_hiera, default: true
|
74
|
+
c.add_setting :suite_hiera_data_dir, default: File.join('spec', 'acceptance', 'hieradata')
|
75
|
+
c.add_setting :suite_hiera_hierachy, default: [
|
76
|
+
'fqdn/%{fqdn}.yaml',
|
77
|
+
'os/%{os.family}/%{os.release.major}.yaml',
|
78
|
+
'os/%{os.family}.yaml',
|
79
|
+
'common.yaml',
|
80
|
+
]
|
81
|
+
|
82
|
+
# Node setup
|
83
|
+
c.add_setting :setup_acceptance_node, default: File.join('spec', 'setup_acceptance_node.pp')
|
84
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: voxpupuli-acceptance
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vox Pupuli
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-01-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bcrypt_pbkdf
|
@@ -30,26 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 4.
|
34
|
-
- - "!="
|
35
|
-
- !ruby/object:Gem::Version
|
36
|
-
version: 4.22.0
|
37
|
-
- - "!="
|
38
|
-
- !ruby/object:Gem::Version
|
39
|
-
version: 4.23.0
|
33
|
+
version: 4.33.0
|
40
34
|
type: :runtime
|
41
35
|
prerelease: false
|
42
36
|
version_requirements: !ruby/object:Gem::Requirement
|
43
37
|
requirements:
|
44
38
|
- - ">="
|
45
39
|
- !ruby/object:Gem::Version
|
46
|
-
version: 4.
|
47
|
-
- - "!="
|
48
|
-
- !ruby/object:Gem::Version
|
49
|
-
version: 4.22.0
|
50
|
-
- - "!="
|
51
|
-
- !ruby/object:Gem::Version
|
52
|
-
version: 4.23.0
|
40
|
+
version: 4.33.0
|
53
41
|
- !ruby/object:Gem::Dependency
|
54
42
|
name: beaker-docker
|
55
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -65,35 +53,35 @@ dependencies:
|
|
65
53
|
- !ruby/object:Gem::Version
|
66
54
|
version: '0'
|
67
55
|
- !ruby/object:Gem::Dependency
|
68
|
-
name: beaker-
|
56
|
+
name: beaker-hiera
|
69
57
|
requirement: !ruby/object:Gem::Requirement
|
70
58
|
requirements:
|
71
|
-
- - "
|
59
|
+
- - "~>"
|
72
60
|
- !ruby/object:Gem::Version
|
73
|
-
version:
|
61
|
+
version: '0.4'
|
74
62
|
type: :runtime
|
75
63
|
prerelease: false
|
76
64
|
version_requirements: !ruby/object:Gem::Requirement
|
77
65
|
requirements:
|
78
|
-
- - "
|
66
|
+
- - "~>"
|
79
67
|
- !ruby/object:Gem::Version
|
80
|
-
version:
|
68
|
+
version: '0.4'
|
81
69
|
- !ruby/object:Gem::Dependency
|
82
|
-
name: beaker-
|
70
|
+
name: beaker-hostgenerator
|
83
71
|
requirement: !ruby/object:Gem::Requirement
|
84
72
|
requirements:
|
85
73
|
- - ">="
|
86
74
|
- !ruby/object:Gem::Version
|
87
|
-
version:
|
75
|
+
version: 1.1.22
|
88
76
|
type: :runtime
|
89
77
|
prerelease: false
|
90
78
|
version_requirements: !ruby/object:Gem::Requirement
|
91
79
|
requirements:
|
92
80
|
- - ">="
|
93
81
|
- !ruby/object:Gem::Version
|
94
|
-
version:
|
82
|
+
version: 1.1.22
|
95
83
|
- !ruby/object:Gem::Dependency
|
96
|
-
name: beaker-
|
84
|
+
name: beaker-module_install_helper
|
97
85
|
requirement: !ruby/object:Gem::Requirement
|
98
86
|
requirements:
|
99
87
|
- - ">="
|
@@ -107,7 +95,7 @@ dependencies:
|
|
107
95
|
- !ruby/object:Gem::Version
|
108
96
|
version: '0'
|
109
97
|
- !ruby/object:Gem::Dependency
|
110
|
-
name: beaker-
|
98
|
+
name: beaker-puppet
|
111
99
|
requirement: !ruby/object:Gem::Requirement
|
112
100
|
requirements:
|
113
101
|
- - ">="
|
@@ -121,7 +109,7 @@ dependencies:
|
|
121
109
|
- !ruby/object:Gem::Version
|
122
110
|
version: '0'
|
123
111
|
- !ruby/object:Gem::Dependency
|
124
|
-
name: beaker-
|
112
|
+
name: beaker-puppet_install_helper
|
125
113
|
requirement: !ruby/object:Gem::Requirement
|
126
114
|
requirements:
|
127
115
|
- - ">="
|
@@ -135,7 +123,7 @@ dependencies:
|
|
135
123
|
- !ruby/object:Gem::Version
|
136
124
|
version: '0'
|
137
125
|
- !ruby/object:Gem::Dependency
|
138
|
-
name: beaker-
|
126
|
+
name: beaker-rspec
|
139
127
|
requirement: !ruby/object:Gem::Requirement
|
140
128
|
requirements:
|
141
129
|
- - ">="
|
@@ -149,7 +137,7 @@ dependencies:
|
|
149
137
|
- !ruby/object:Gem::Version
|
150
138
|
version: '0'
|
151
139
|
- !ruby/object:Gem::Dependency
|
152
|
-
name:
|
140
|
+
name: beaker-vagrant
|
153
141
|
requirement: !ruby/object:Gem::Requirement
|
154
142
|
requirements:
|
155
143
|
- - ">="
|
@@ -177,21 +165,21 @@ dependencies:
|
|
177
165
|
- !ruby/object:Gem::Version
|
178
166
|
version: '0.1'
|
179
167
|
- !ruby/object:Gem::Dependency
|
180
|
-
name:
|
168
|
+
name: rake
|
181
169
|
requirement: !ruby/object:Gem::Requirement
|
182
170
|
requirements:
|
183
171
|
- - ">="
|
184
172
|
- !ruby/object:Gem::Version
|
185
|
-
version: '
|
173
|
+
version: '0'
|
186
174
|
type: :runtime
|
187
175
|
prerelease: false
|
188
176
|
version_requirements: !ruby/object:Gem::Requirement
|
189
177
|
requirements:
|
190
178
|
- - ">="
|
191
179
|
- !ruby/object:Gem::Version
|
192
|
-
version: '
|
180
|
+
version: '0'
|
193
181
|
- !ruby/object:Gem::Dependency
|
194
|
-
name:
|
182
|
+
name: serverspec
|
195
183
|
requirement: !ruby/object:Gem::Requirement
|
196
184
|
requirements:
|
197
185
|
- - ">="
|
@@ -205,7 +193,7 @@ dependencies:
|
|
205
193
|
- !ruby/object:Gem::Version
|
206
194
|
version: '0'
|
207
195
|
- !ruby/object:Gem::Dependency
|
208
|
-
name:
|
196
|
+
name: winrm
|
209
197
|
requirement: !ruby/object:Gem::Requirement
|
210
198
|
requirements:
|
211
199
|
- - ">="
|
@@ -219,19 +207,19 @@ dependencies:
|
|
219
207
|
- !ruby/object:Gem::Version
|
220
208
|
version: '0'
|
221
209
|
- !ruby/object:Gem::Dependency
|
222
|
-
name:
|
210
|
+
name: puppetlabs_spec_helper
|
223
211
|
requirement: !ruby/object:Gem::Requirement
|
224
212
|
requirements:
|
225
213
|
- - ">="
|
226
214
|
- !ruby/object:Gem::Version
|
227
|
-
version:
|
228
|
-
type: :
|
215
|
+
version: 1.2.0
|
216
|
+
type: :development
|
229
217
|
prerelease: false
|
230
218
|
version_requirements: !ruby/object:Gem::Requirement
|
231
219
|
requirements:
|
232
220
|
- - ">="
|
233
221
|
- !ruby/object:Gem::Version
|
234
|
-
version:
|
222
|
+
version: 1.2.0
|
235
223
|
description: A package that depends on all the gems Vox Pupuli modules need and methods
|
236
224
|
to simplify acceptance spec helpers
|
237
225
|
email:
|
@@ -241,9 +229,12 @@ extensions: []
|
|
241
229
|
extra_rdoc_files: []
|
242
230
|
files:
|
243
231
|
- lib/voxpupuli/acceptance.rb
|
232
|
+
- lib/voxpupuli/acceptance/examples.rb
|
233
|
+
- lib/voxpupuli/acceptance/facts.rb
|
244
234
|
- lib/voxpupuli/acceptance/fixtures.rb
|
235
|
+
- lib/voxpupuli/acceptance/rake.rb
|
245
236
|
- lib/voxpupuli/acceptance/spec_helper_acceptance.rb
|
246
|
-
homepage:
|
237
|
+
homepage: https://github.com/voxpupuli/voxpupuli-acceptance
|
247
238
|
licenses:
|
248
239
|
- Apache-2.0
|
249
240
|
metadata: {}
|
@@ -255,14 +246,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
255
246
|
requirements:
|
256
247
|
- - ">="
|
257
248
|
- !ruby/object:Gem::Version
|
258
|
-
version: '
|
249
|
+
version: '2.4'
|
250
|
+
- - "<"
|
251
|
+
- !ruby/object:Gem::Version
|
252
|
+
version: '4'
|
259
253
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
260
254
|
requirements:
|
261
255
|
- - ">="
|
262
256
|
- !ruby/object:Gem::Version
|
263
257
|
version: '0'
|
264
258
|
requirements: []
|
265
|
-
rubygems_version: 3.
|
259
|
+
rubygems_version: 3.3.3
|
266
260
|
signing_key:
|
267
261
|
specification_version: 4
|
268
262
|
summary: Helpers for acceptance testing Vox Pupuli modules
|