2016-12-09 175 views
1

我試圖使用廚師LWRP下的目錄資源,但無法訪問資源塊內的屬性,有沒有辦法做到這一點。 還是我完全錯了,需要不同的方法來實現這一點。廚師提供者使用目錄資源LWRP

my-cookbook/providers/default.rb

use_inline_resources 

action :setup do 
    directory node["#{@new_resource.name}"] do 
    action :create 
    not_if {node["#{@new_resource.name}"].include? "test"} 
    end 
end 

上線not_if {node["#{@new_resource.name}"].include? "test"}被評估爲nilClass的@new_resource.name

,而它得到directory node["#{@new_resource.name}"] do行適當的評估

感謝

回答

1

,最後發現它

當引用另一個資源中的變量時,我們需要不使用@來訪問它。

action :setup do 
    directory node["#{@new_resource.name}"] do 
    action :create 
    not_if {node["#{new_resource.name}"].include? "test"} 
    end 
end 

感謝@stajkowski(GitHub

+0

,你不應該使用插值時你只需要調用一個變量都不是。順便說一句,你代碼聽起來很奇怪,這裏有可能是另一種方法,你以後... – Tensibai

+0

嗨@Tensibai。我希望你是對的,會有更好的解決方案。 用例就像我有一個配方,每次都需要使用不同的屬性來調用,並且由於廚師不會多次調用include_recipe,我只是將配方設置爲LWRP(複製粘貼配方實際上)。 它是一個很長的配方,我只通過一個資源來解釋我的問題。 非常感謝。 – Shan