Class: PuppetCatalogTest::Puppet3xAdapter
Instance Method Summary
collapse
#cleanup, #init_config, #parser, #prepare
Constructor Details
Returns a new instance of Puppet3xAdapter.
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
# File 'lib/puppet-catalog-test/puppet_adapter/puppet_3x_adapter.rb', line 6
def initialize(config)
super(config)
require 'puppet/test/test_helper'
parser = config[:parser]
init_config
if Gem::Version.new(version) > Gem::Version.new('3.1.0')
Puppet::Test::TestHelper.initialize
end
Puppet::Test::TestHelper.before_all_tests
Puppet::Node::Environment.new.modules_by_path.each do |_, mod|
mod.entries.each do |entry|
ldir = entry.plugin_directory
$LOAD_PATH << ldir unless $LOAD_PATH.include?(ldir)
end
end
if parser and Gem::Version.new(version) > Gem::Version.new('3.2.0')
parser_regex = /^(current|future)$/
raise ArgumentError, "[ERROR] parser (#{parser}) is not a valid parser, should be 'current' or 'future'" if !parser.match(parser_regex)
puts "[INFO] Using #{parser} puppet parser"
Puppet.settings[:parser] = parser
end
Puppet.parse_config
end
|
Instance Method Details
#compile(node) ⇒ Object
44
45
46
47
48
49
50
51
52
53
|
# File 'lib/puppet-catalog-test/puppet_adapter/puppet_3x_adapter.rb', line 44
def compile(node)
begin
catalog = Puppet::Parser::Compiler.compile(node)
validate_relationships(catalog)
rescue => e
raise e
ensure
Puppet::Test::TestHelper.after_each_test
end
end
|
#create_node(hostname, facts) ⇒ Object
55
56
57
58
59
60
61
|
# File 'lib/puppet-catalog-test/puppet_adapter/puppet_3x_adapter.rb', line 55
def create_node(hostname, facts)
Puppet::Test::TestHelper.before_each_test
init_config
node = Puppet::Node.new(hostname)
node.merge(facts)
node
end
|
#nodes ⇒ Object
39
40
41
42
|
# File 'lib/puppet-catalog-test/puppet_adapter/puppet_3x_adapter.rb', line 39
def nodes
parser = Puppet::Parser::Parser.new(Puppet::Node::Environment.new)
parser.known_resource_types.nodes.keys
end
|
#validate_relationships(catalog) ⇒ Object
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
# File 'lib/puppet-catalog-test/puppet_adapter/puppet_3x_adapter.rb', line 67
def validate_relationships(catalog)
catalog.resources.each do |resource|
next unless resource.is_a?(Puppet::Resource)
resource.each do |param, value|
pclass = Puppet::Type.metaparamclass(param)
if !pclass.nil? && pclass < Puppet::Type::RelationshipMetaparam
next if value.is_a?(String)
check_if_resource_exists(catalog, resource, param, value)
end
end
end
nil
end
|
#version ⇒ Object
63
64
65
|
# File 'lib/puppet-catalog-test/puppet_adapter/puppet_3x_adapter.rb', line 63
def version
Puppet::PUPPETVERSION
end
|