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