rspec-hiera-puppet 0.3.0 → 1.0.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.
- data/README.md +0 -1
- data/lib/hiera/backend/rspec_backend.rb +9 -1
- data/lib/rspec-hiera-puppet/puppet.rb +12 -105
- data/lib/rspec-hiera-puppet/version.rb +1 -1
- data/rspec-hiera-puppet.gemspec +3 -3
- metadata +14 -14
data/README.md
CHANGED
@@ -6,7 +6,7 @@ class Hiera
|
|
6
6
|
end
|
7
7
|
|
8
8
|
def lookup(key, scope, order_override, resolution_type)
|
9
|
-
answer =
|
9
|
+
answer = nil
|
10
10
|
|
11
11
|
Hiera.debug("Looking up #{key} in RSpec backend")
|
12
12
|
|
@@ -26,6 +26,12 @@ class Hiera
|
|
26
26
|
next
|
27
27
|
end
|
28
28
|
|
29
|
+
# Extra logging that we found the key. This can be outputted
|
30
|
+
# multiple times if the resolution type is array or hash but that
|
31
|
+
# should be expected as the logging will then tell the user ALL the
|
32
|
+
# places where the key is found.
|
33
|
+
Hiera.debug("Found #{key} in #{source}")
|
34
|
+
|
29
35
|
# for array resolution we just append to the array whatever
|
30
36
|
# we find, we then goes onto the next file and keep adding to
|
31
37
|
# the array
|
@@ -35,9 +41,11 @@ class Hiera
|
|
35
41
|
case resolution_type
|
36
42
|
when :array
|
37
43
|
raise Exception, "Hiera type mismatch: expected Array and got #{new_answer.class}" unless new_answer.kind_of? Array or new_answer.kind_of? String
|
44
|
+
answer ||= []
|
38
45
|
answer << new_answer
|
39
46
|
when :hash
|
40
47
|
raise Exception, "Hiera type mismatch: expected Hash and got #{new_answer.class}" unless new_answer.kind_of? Hash
|
48
|
+
answer ||= {}
|
41
49
|
answer = new_answer.merge answer
|
42
50
|
else
|
43
51
|
answer = new_answer
|
@@ -18,126 +18,33 @@ class Puppet::Parser::Compiler
|
|
18
18
|
|
19
19
|
def register_function_hiera(spec)
|
20
20
|
Puppet::Parser::Functions.newfunction(:hiera, :type => :rvalue) do |*args|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
#
|
25
|
-
# where as calling from templates should work like this:
|
26
|
-
# scope.function_lookup("foo", "bar")
|
27
|
-
#
|
28
|
-
# Therefore, declare this function with args '*args' to accept any number
|
29
|
-
# of arguments and deal with puppet's special calling mechanism now:
|
30
|
-
if args[0].is_a?(Array)
|
31
|
-
args = args[0]
|
32
|
-
end
|
33
|
-
|
34
|
-
key = args[0]
|
35
|
-
default = args[1]
|
36
|
-
override = args[2]
|
37
|
-
|
38
|
-
require 'hiera'
|
39
|
-
require 'hiera/scope'
|
40
|
-
|
41
|
-
hiera = Hiera.new(:config => spec.hiera_config.merge(:logger => 'puppet'))
|
42
|
-
|
43
|
-
if self.respond_to?("[]")
|
44
|
-
hiera_scope = self
|
45
|
-
else
|
46
|
-
hiera_scope = Hiera::Scope.new(self)
|
47
|
-
end
|
48
|
-
|
49
|
-
answer = hiera.lookup(key, default, hiera_scope, override, :priority)
|
50
|
-
|
51
|
-
raise(Puppet::ParseError, "Could not find data item #{key} in any Hiera data file and no default supplied") if answer.nil?
|
52
|
-
|
53
|
-
return answer
|
21
|
+
require 'hiera_puppet'
|
22
|
+
key, default, override = HieraPuppet.parse_args(args)
|
23
|
+
HieraPuppet.lookup(key, default, self, override, :priority)
|
54
24
|
end
|
55
25
|
end
|
56
26
|
|
57
27
|
def register_function_hiera_array(spec)
|
58
28
|
Puppet::Parser::Functions.newfunction(:hiera_array, :type => :rvalue) do |*args|
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
key = args[0]
|
64
|
-
default = args[1]
|
65
|
-
override = args[2]
|
66
|
-
|
67
|
-
require 'hiera'
|
68
|
-
require 'hiera/scope'
|
69
|
-
|
70
|
-
hiera = Hiera.new(:config => spec.hiera_config.merge(:logger => 'puppet'))
|
71
|
-
|
72
|
-
if self.respond_to?("[]")
|
73
|
-
hiera_scope = self
|
74
|
-
else
|
75
|
-
hiera_scope = Hiera::Scope.new(self)
|
76
|
-
end
|
77
|
-
|
78
|
-
answer = hiera.lookup(key, default, hiera_scope, override, :array)
|
79
|
-
|
80
|
-
raise(Puppet::ParseError, "Could not find data item #{key} in any Hiera data file and no default supplied") if answer.empty?
|
81
|
-
|
82
|
-
answer
|
29
|
+
require 'hiera_puppet'
|
30
|
+
key, default, override = HieraPuppet.parse_args(args)
|
31
|
+
HieraPuppet.lookup(key, default, self, override, :array)
|
83
32
|
end
|
84
33
|
end
|
85
34
|
|
86
35
|
def register_function_hiera_hash(spec)
|
87
36
|
Puppet::Parser::Functions.newfunction(:hiera_hash, :type => :rvalue) do |*args|
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
raise(Puppet::ParseError, "Please supply a parameter to perform a Hiera lookup") if args.empty?
|
93
|
-
|
94
|
-
key = args[0]
|
95
|
-
default = args[1]
|
96
|
-
override = args[2]
|
97
|
-
|
98
|
-
require 'hiera'
|
99
|
-
require 'hiera/scope'
|
100
|
-
|
101
|
-
hiera = Hiera.new(:config => spec.hiera_config.merge(:logger => 'puppet'))
|
102
|
-
|
103
|
-
if self.respond_to?("{}")
|
104
|
-
hiera_scope = self
|
105
|
-
else
|
106
|
-
hiera_scope = Hiera::Scope.new(self)
|
107
|
-
end
|
108
|
-
|
109
|
-
answer = hiera.lookup(key, default, hiera_scope, override, :hash)
|
110
|
-
|
111
|
-
raise(Puppet::ParseError, "Could not find data item #{key} in any Hiera data file and no default supplied") if answer.empty?
|
112
|
-
|
113
|
-
answer
|
37
|
+
require 'hiera_puppet'
|
38
|
+
key, default, override = HieraPuppet.parse_args(args)
|
39
|
+
HieraPuppet.lookup(key, default, self, override, :hash)
|
114
40
|
end
|
115
41
|
end
|
116
42
|
|
117
43
|
def register_function_hiera_include(spec)
|
118
44
|
Puppet::Parser::Functions.newfunction(:hiera_include) do |*args|
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
key = args[0]
|
124
|
-
default = args[1]
|
125
|
-
override = args[2]
|
126
|
-
|
127
|
-
require 'hiera'
|
128
|
-
require 'hiera/scope'
|
129
|
-
|
130
|
-
hiera = Hiera.new(:config => spec.hiera_config.merge(:logger => 'puppet'))
|
131
|
-
|
132
|
-
if self.respond_to?("[]")
|
133
|
-
hiera_scope = self
|
134
|
-
else
|
135
|
-
hiera_scope = Hiera::Scope.new(self)
|
136
|
-
end
|
137
|
-
|
138
|
-
answer = hiera.lookup(key, default, hiera_scope, override, :array)
|
139
|
-
|
140
|
-
raise(Puppet::ParseError, "Could not find data item #{key} in any Hiera data file and no default supplied") if answer.empty?
|
45
|
+
require 'hiera_puppet'
|
46
|
+
key, default, override = HieraPuppet.parse_args(args)
|
47
|
+
answer = HieraPuppet.lookup(key, default, self, override, :array)
|
141
48
|
|
142
49
|
method = Puppet::Parser::Functions.function(:include)
|
143
50
|
send(method, answer)
|
data/rspec-hiera-puppet.gemspec
CHANGED
@@ -15,9 +15,9 @@ Gem::Specification.new do |gem|
|
|
15
15
|
gem.require_paths = ["lib"]
|
16
16
|
gem.version = Rspec::Hiera::Puppet::VERSION
|
17
17
|
|
18
|
-
gem.add_dependency('puppet', '>=
|
19
|
-
gem.add_dependency('hiera', '>= 0
|
20
|
-
gem.add_dependency('hiera-puppet', '>= 0
|
18
|
+
gem.add_dependency('puppet', '>= 3.0')
|
19
|
+
gem.add_dependency('hiera', '>= 1.0')
|
20
|
+
gem.add_dependency('hiera-puppet', '>= 1.0')
|
21
21
|
gem.add_dependency('rspec')
|
22
22
|
gem.add_dependency('rspec-puppet')
|
23
23
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rspec-hiera-puppet
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 23
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
|
+
- 1
|
7
8
|
- 0
|
8
|
-
- 3
|
9
9
|
- 0
|
10
|
-
version: 0.
|
10
|
+
version: 1.0.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Michael Franz Aigner
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2012-
|
18
|
+
date: 2012-10-19 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: puppet
|
@@ -25,11 +25,11 @@ dependencies:
|
|
25
25
|
requirements:
|
26
26
|
- - ">="
|
27
27
|
- !ruby/object:Gem::Version
|
28
|
-
hash:
|
28
|
+
hash: 7
|
29
29
|
segments:
|
30
|
-
-
|
31
|
-
-
|
32
|
-
version: "
|
30
|
+
- 3
|
31
|
+
- 0
|
32
|
+
version: "3.0"
|
33
33
|
type: :runtime
|
34
34
|
version_requirements: *id001
|
35
35
|
- !ruby/object:Gem::Dependency
|
@@ -40,11 +40,11 @@ dependencies:
|
|
40
40
|
requirements:
|
41
41
|
- - ">="
|
42
42
|
- !ruby/object:Gem::Version
|
43
|
-
hash:
|
43
|
+
hash: 15
|
44
44
|
segments:
|
45
|
+
- 1
|
45
46
|
- 0
|
46
|
-
|
47
|
-
version: "0.3"
|
47
|
+
version: "1.0"
|
48
48
|
type: :runtime
|
49
49
|
version_requirements: *id002
|
50
50
|
- !ruby/object:Gem::Dependency
|
@@ -55,11 +55,11 @@ dependencies:
|
|
55
55
|
requirements:
|
56
56
|
- - ">="
|
57
57
|
- !ruby/object:Gem::Version
|
58
|
-
hash:
|
58
|
+
hash: 15
|
59
59
|
segments:
|
60
|
+
- 1
|
60
61
|
- 0
|
61
|
-
|
62
|
-
version: "0.3"
|
62
|
+
version: "1.0"
|
63
63
|
type: :runtime
|
64
64
|
version_requirements: *id003
|
65
65
|
- !ruby/object:Gem::Dependency
|