查询人偶中的对象数组

Querying an array of objects in puppet

我正在尝试使用 Puppet 4.4 AST 通过 inventory API 查询自定义事实。我查询的事实结构是

apps: [
  {
    name: 'test-app-1',
    version: '1'
  },
  {
    name: 'test-app-2',
    version: '5'
  }
  ...
]

我正在寻找 return 所有包含 app['name'] == 'test-app-1' 散列的节点。这接近 return 我要找的东西:

["=", "facts.apps[1].name", "test-app-2"]

但我不知道应用程序将位于哪个元素索引处,所以我需要更像这样的(不正确的)语法:

["=", "facts.apps[*].name", "test-app-2"]

我使用 match 表示法解决了这个问题。

["=", "facts.apps.match(\".*\").name", "test-app-2"]