test-kitchen: как читать специфичные для платформы атрибуты в kitchen.yml

В моей конфигурации .kitchen.yml я пытаюсь применить атрибуты в зависимости от версии платформы. Конфигурация моей кухни выглядит так:

platforms:
  - name: centos-6.3
    driver_plugin: ec2
    driver:
      image_id: ami-xxxxxxxx
    attributes:
      pg_version: "9.3"
  - name: centos-6.5
    driver_plugin: ec2
    driver:
      image_id: ami-yyyyyyyy 
    attributes:
      pg_version: "9.4"

Во время процесса kitchen converge я не могу правильно получить значение pg_version. Для этого кода в моем скрипте шеф-повара вывод pp node.debug_value('pg_version') выглядит следующим образом:

   [["set_unless_enabled?", false],
    ["default", :not_present],
    ["env_default", :not_present],
    ["role_default", :not_present],
    ["force_default", :not_present],
    ["normal", "9.4"],
    ["override", :not_present],
    ["role_override", :not_present],
    ["env_override", :not_present],
    ["force_override", :not_present],
    ["automatic", :not_present]]

Я не совсем понимаю этот результат. Я предполагаю, что уровень приоритета атрибута, который я указал в разделе platforms yml, равен normal, так как я могу его получить?

Пользователь danieljimenez также поднял аналогичный вопрос здесь.


person Dmitry Savinkov    schedule 09.06.2015    source источник
comment
Можете ли вы показать нам, как вы получаете доступ к атрибуту? Я ожидаю этого в node['pg_version'].   -  person Martin    schedule 10.06.2015
comment
@Мартин только что обновился   -  person Dmitry Savinkov    schedule 10.06.2015
comment
@Martin Означает ли это, что все атрибуты платформы по умолчанию имеют уровень приоритета normal, и нам нужно использовать что-то вроде node.normal['pg_version']?   -  person Dmitry Savinkov    schedule 10.06.2015


Ответы (1)


Различные уровни приоритета объединены в один объект node. Вы захотите получить к нему доступ, используя node['pg_version'] в вашем случае. Вам нужны только node.default, node.set, node.override при установке значения.

person Martin    schedule 09.06.2015