我有一个如下所示的定义,
define module::define1 (
$path = undef,
$someparam = undef,
...
) {
unless defined(Define2[$someparam]) {
fail("Please create define2[$someparam] first")
}
file { $path:
ensure => directory,
}
}
当我尝试测试文件[$ path]的存在时,我收到错误"请先创建define2 [$ someparam]"。但是define2在另一个文件中。 如何在define1的rspec范围内包含define2?
答案 0 :(得分:0)
我相信你的明显设计会受到严重限制。通过defined
函数表达交叉依赖性是非常脆弱的,并且必然导致问题。
您是否考虑过用constraints替换支票? (模块文档还详细阐述了为什么defined
通常是一个坏主意。)