неспособен к марионеточному поиску иера - PullRequest
1 голос
/ 03 апреля 2019

получая строку вместо массива

это мой общий. Yaml

aa::params:

- '--params:"abc.com'

- 'abc2.com'


test::packages:

  package1:

    ensure:'present'

    install_options: "%{lookup('aa:params')}"

это мой файл манифеста

$packages = lookup("test::packages",undef,undef,'')

$params= lookup("aa::params",undef,undef,'')

$packages.each | String $packagename, Hash $attributes | {

notify { " ${packagename}, ${attributes[ensure]},${attributes['install_options]},${params} hello ":


  }

}

ожидается

"package1,present,[--params="abc.com, abc2.com"],[--params="abc.com, abc2.com"] hello"

фактический

"package1,present,["--params=\"abc.com", "abc2.com\""],[--params="abc.com, abc2.com"] hello"

Похоже, что массив становится строковым, может кто-нибудь объяснить, почему я получаю, как это

1 Ответ

0 голосов
/ 13 апреля 2019

Интерполяция результатов поиска в строку всегда приводит к строке. Если вы хотите использовать реальный массив вместо зашифрованной версии, вы должны использовать alias. Ваш common.yaml будет выглядеть примерно так:

aa::params:
  - '--params:"abc.com'
  - 'abc2.com'

test::packages:
  package1:
    ensure:'present'
    install_options: "%{alias('aa:params')}"

Вот документация, связанная с .

...