【发布时间】:2016-11-15 06:34:18
【问题描述】:
我正在我的一个木偶清单中迭代数组的哈希
1 # class to manage needed packages
2 class profile::packages (
3 ){
4 $packages = hiera_hash('profile::packages::managed', {})
5
6 if $packages != {} {
7 $packages.each | String $package_state, Array $packages_array | {
8 $packages_array.each | Integer $idx, String $package | {
9 notify { "${package} with ${idx} should be ${package_state}": }
10 }
11 }
12 }
13 }
但我收到了 puppet-lint 警告。
警告:在没有显式命名空间的情况下使用顶级范围变量 在第 8 行 块引用 警告:在没有明确使用的情况下使用顶级范围变量 第 9 行的命名空间
代码运行良好,所以是 puppet-lint 的问题。也许有一种方法可以配置 puppet-lint 以识别 lambda 块中的变量?
【问题讨论】:
-
添加的 puppet-lint 提示 here 可以禁用整个范围检查,但在这种情况下不希望这样做。
-
此代码可以通过重构来改进,也不会引发 lint 警告。
-
所以让我们知道我们可以重构代码以删除 lint 警告。
标签: puppet