onceover 3.5.2 → 3.6.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
- data/README.md +21 -1
- data/lib/onceover/controlrepo.rb +8 -4
- data/lib/onceover/node.rb +4 -0
- data/onceover.gemspec +1 -1
- data/templates/test_spec.rb.erb +4 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b526c91a6430b4a442c6c7d905325c0c8e66b980
|
4
|
+
data.tar.gz: 69bb0524345dcd1b155cc845e9fa5d2d206f3de3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 06ba5f38361ec3eafed75cf81b9d902b8bc9e646c3c4f3da9a9bd66024738af70c1692fb1e7493a2c1321b10bdf9178457c156cadf38503aa529f2ce9da1eed8
|
7
|
+
data.tar.gz: 0cea3f35c36f7b99a345bfc8b17b15108adb3bd3e3ddc5e6a9ca9af08a458273191be6b8a22ffe217ad51e3f9c7873d3e41ffb718613e7d233c343dfe2714d88
|
data/README.md
CHANGED
@@ -115,7 +115,7 @@ In the example below we have referred to `centos6a` and `centos7b` in all of our
|
|
115
115
|
- **type** *statement or rvalue*
|
116
116
|
- **returns** *Optional: A value to return*
|
117
117
|
|
118
|
-
**before and after conditions** We can set `before` and `after` blocks before each spec test. These are usually used when the functions to stub are conditional: stub functionx if the OS is windows, stub functiony if the fact java_installed is true. The facts are available through the `node_facts` hash
|
118
|
+
**before and after conditions** We can set `before` and `after` blocks before each spec test. These are usually used when the functions to stub are conditional: stub functionx if the OS is windows, stub functiony if the fact java_installed is true. The facts are available through the `node_facts` hash and the trusted facts as `trusted_facts`.
|
119
119
|
|
120
120
|
```yaml
|
121
121
|
before:
|
@@ -250,6 +250,26 @@ Once we have our factset all we need to do is copy it into `spec/factsets/` insi
|
|
250
250
|
|
251
251
|
Would map to a node named `server2008r2` in `onceover.yaml`
|
252
252
|
|
253
|
+
#### Trusted Facts
|
254
|
+
|
255
|
+
You can add trusted facts to the nodesets by creating a new section called trusted:
|
256
|
+
|
257
|
+
```
|
258
|
+
{
|
259
|
+
"name": "node.puppetlabs.net",
|
260
|
+
"trusted": {
|
261
|
+
"pp_role": "agent",
|
262
|
+
"pp_datacenter": "puppet",
|
263
|
+
},
|
264
|
+
"values": {
|
265
|
+
"aio_agent_build": "1.10.4",
|
266
|
+
"aio_agent_version": "1.10.4",
|
267
|
+
"architecture": "x86_64",
|
268
|
+
|
269
|
+
```
|
270
|
+
|
271
|
+
Notice that the `extensions` part is implied. The first fact in that example translates to `$trusted['extensions']['pp_role']` in Puppet code.
|
272
|
+
|
253
273
|
### nodesets
|
254
274
|
|
255
275
|
`spec/acceptance/nodesets/onceover-nodes.yml`
|
data/lib/onceover/controlrepo.rb
CHANGED
@@ -70,7 +70,11 @@ class Onceover
|
|
70
70
|
end
|
71
71
|
|
72
72
|
def self.facts(filter = nil)
|
73
|
-
@@existing_controlrepo.facts(filter)
|
73
|
+
@@existing_controlrepo.facts(filter, 'values')
|
74
|
+
end
|
75
|
+
|
76
|
+
def self.trusted_facts(filter = nil)
|
77
|
+
@@existing_controlrepo.facts(filter, 'trusted')
|
74
78
|
end
|
75
79
|
|
76
80
|
def self.hiera_config_file
|
@@ -170,12 +174,12 @@ class Onceover
|
|
170
174
|
classes.flatten
|
171
175
|
end
|
172
176
|
|
173
|
-
def facts(filter = nil)
|
177
|
+
def facts(filter = nil, key = 'values')
|
174
178
|
# Returns an array facts hashes
|
175
179
|
all_facts = []
|
176
180
|
logger.debug "Reading factsets"
|
177
181
|
@facts_files.each do |file|
|
178
|
-
all_facts << read_facts(file)[
|
182
|
+
all_facts << read_facts(file)[key]
|
179
183
|
end
|
180
184
|
if filter
|
181
185
|
# Allow us to pass a hash of facts to filter by
|
@@ -579,7 +583,7 @@ class Onceover
|
|
579
583
|
begin
|
580
584
|
result = JSON.parse(file)
|
581
585
|
rescue JSON::ParserError
|
582
|
-
raise "Could not parse the
|
586
|
+
raise "Could not parse the file #{facts_file}, check that it is valid JSON and that the encoding is correct"
|
583
587
|
end
|
584
588
|
result
|
585
589
|
end
|
data/lib/onceover/node.rb
CHANGED
@@ -8,6 +8,7 @@ class Onceover
|
|
8
8
|
attr_accessor :name
|
9
9
|
attr_accessor :beaker_node
|
10
10
|
attr_accessor :fact_set
|
11
|
+
attr_accessor :trusted_set
|
11
12
|
|
12
13
|
def initialize(name)
|
13
14
|
@name = name
|
@@ -19,9 +20,12 @@ class Onceover
|
|
19
20
|
File.basename(facts_file, '.json') == name
|
20
21
|
}
|
21
22
|
@fact_set = Onceover::Controlrepo.facts[facts_file_index]
|
23
|
+
@trusted_set = Onceover::Controlrepo.trusted_facts[facts_file_index]
|
22
24
|
rescue TypeError
|
23
25
|
@fact_set = nil
|
26
|
+
@trusted_set = nil
|
24
27
|
end
|
28
|
+
|
25
29
|
@@all << self
|
26
30
|
|
27
31
|
end
|
data/onceover.gemspec
CHANGED
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift File.expand_path("../lib", __FILE__)
|
|
4
4
|
|
5
5
|
Gem::Specification.new do |s|
|
6
6
|
s.name = "onceover"
|
7
|
-
s.version = "3.
|
7
|
+
s.version = "3.6.0"
|
8
8
|
s.authors = ["Dylan Ratcliffe"]
|
9
9
|
s.email = ["dylan.ratcliffe@puppet.com"]
|
10
10
|
s.homepage = "https://github.com/dylanratcliffe/onceover"
|
data/templates/test_spec.rb.erb
CHANGED
@@ -20,6 +20,10 @@ let!(:<%= function %>) { MockFunction.new('<%= function %>') { |f|
|
|
20
20
|
context "using fact set <%= node.name %>" do
|
21
21
|
node_facts = <%= node.fact_set %>
|
22
22
|
let(:facts) { node_facts }
|
23
|
+
<% if node.trusted_set -%>
|
24
|
+
trusted_facts = <%= node.trusted_set %>
|
25
|
+
let(:trusted_facts) { trusted_facts }
|
26
|
+
<% end -%>
|
23
27
|
<% if @before_conditions -%>
|
24
28
|
before :each do
|
25
29
|
<% @before_conditions.each do |function| -%>
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: onceover
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dylan Ratcliffe
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-03-
|
11
|
+
date: 2018-03-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|