Не могу понять полный путь среды JSON для Kitchen / Chef - PullRequest
0 голосов
/ 07 октября 2018

Я не знаю, как установить полный путь к окружающему файлу JSON.

Я предполагаю, что путь состоит из нескольких уровней, но он не описан в doc

Путь теперь environment/dev.json, что такое правильный путь / имя?Мои тесты на хэш в кулинарных книгах не пройдены

Образец JSON:

{ "foo": { "bar": "base" } }

Мне нужно проверить из моих кулинарных книг:

if node[:foo][:bar] == "base"
    puts "ok"
end

Для этого фрагмента кто-нибудь может объяснить этосинтаксис для запроса хеша?Это специфичный для Ruby или Chef синтаксис?Почему не node['foo']['bar']?

Мой файл .kitchen.yml:

---
driver:
  name: vagrant

provisioner:
  name: chef_zero
  environments_path: 'environment'
  client_rb:
    environment: dev

platforms:
  - name: ubuntu-1204

suites:
  - name: default
    run_list:
      - recipe[mysql::default]
    attributes:

Ответы [ 2 ]

0 голосов
/ 08 октября 2018

Это не файл среды, он должен выглядеть как , указанный в документации , но путь по умолчанию - test/integration/environments/.

0 голосов
/ 08 октября 2018

Чтобы ответить на ваш вопрос о синтаксисе Ruby / Chef, это синтаксис Ruby.

Хеши Ruby (хеш-таблицы или словари на других языках) могут иметь любой объект в качестве ключа, но в мире Ruby это наиболееОбычно используются символы .

Объекты JSON могут иметь в качестве ключей только строки, поэтому при преобразовании JSON в хэш Ruby действительно зависит от разработчика, решат ли они оставитьключи в виде строк или преобразовать их в символы, чтобы быть более идиоматическими.

Вы можете видеть, что в JSON.parse есть флаг symbolize_names , который автоматически преобразует их для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...