如何可选地在Puppet类实例中包含一个参数

我试图在puppet类实例中可选地包含一个参数。 如果提供了一个值,参数应该传递给类,如果它是空的,它不应该是。

这个代码我到目前为止:

class vcs ( $path, $ensure, $provider, $source = '', $revision = '', $user = '' ) { vcsrepo { $path: ensure => $ensure, provider => $provider, source => $source ? { '' => nil, default => $source } } } 

我已经尝试将source参数的值设置nil ,以防未设置,但Puppet似乎不能理解nilnull 。 (我得到一个fatal: repository 'null' does not exist错误)

基本上,我想能够调用vcs类,只有pathensure参数是必需的,其他所有可选。

解决方法是使用undef而不是nil / null