2015-06-08 3 views
2

Можно ли ссылаться на несколько версий поваренной книги повара в рецепте, как описано ниже, где рецепт в одной кулинарной книге (foo) ссылается на несколько версий рецепта в другой кулинарной книге (бар), где переменная версии заполняется перед этим блоком?Могу ли я ссылаться на несколько версий поваренной книги повара?

begin 
    case version 
    when "" 
     include_recipe "cookbook-bar" 
    when "1.0.0" 
     include_recipe "[email protected]" 
    when "1.0.1" 
     include_recipe "[email protected]" 
    else 
     raise "Invalid Version: " + version 
    end 
rescue Chef::Exceptions::CookbookNotFound 
    raise "The Specified Cookbook Was Not Found: [email protected]" + version 
end 

В metadata.rb файле я установить зависимость как следующий, мы надеемся, тянуть в версиях 1.0.0, 1.0.1 и 1.0.2 из cookbook-bar.

depends   "cookbook-bar", "<= 1.0.2" 

Но когда я запускаю его я все еще получаю ошибку CookbookNotFound для версий 1.0.0 и 1.0.1 из cookbook-bar.

ответ

3

Вы не можете, только одна версия кулинарной книги будет снесена на узле, что соответствует наивысшему соответствию ограничениям зависимости.

Если вам нужна краткая версия кулинарной книги в рамках одного и того же запуска, у вас есть проблема где-то.

+0

Одним из вариантов использования может быть рецепт «очистить», где я хочу сделать очистку на основе последней версии кулинарной книги, прежде чем продолжить. Единственный вариант в этом случае, чтобы последняя версия рецепта «очистить» знала, как очистить все предыдущие версии? –

+0

Нет, есть много способов, без реального использования трудно сказать, какой из них лучше подойдет. Основной консенсус заключается в том, чтобы избежать таких изменений и обеспечить цель с нуля. – Tensibai