2016-09-23 76 views
1

我想擴展廚師IIS池LWRP(https://github.com/chef-cookbooks/iis/blob/master/resources/pool.rb),我希望有人能幫我找出語法。擴展廚師IIS池LWRP

這是我在哪裏:
我創建了一個新的菜譜,然後我引用的食譜IIS, 後來我創造了我的庫文件夾此文件:

# Located At: myCookbook/libraries/my_iis_pool.rb: 
::Chef::Recipe.send(:include, Opscode::IIS) 

class Chef 
    class Resource::MyPool < Chef::Resource::IIS::Pool 
    # Some Magic Happens 
    end 
end 

,然後食譜是這樣的:

# Located At: myCookbook/recipes/default.rb 
mypool 'new-pool' do 
end 

我似乎無法得到<廚師::資源:: IIS ::池繼承說法是正確的。 它產生這個錯誤:
NameError:未初始化不斷廚師::資源:: IIS

我也試過

class Resource::MyPool < Chef::ResourceResolver.resolve(:iis_pool) 

產生這個錯誤:
類型錯誤:超類必須是一個類(NilClass給出)

任何幫助,將不勝感激。

感謝,
Abrehm

回答

0

不幸的是,沒有直接擴展那樣的基於DSL的自定義資源的好方法。最好的方法是創建一個內部使用iis_pool的新自定義資源,如同包裝模式一樣。這隻允許您在現有資源代碼之前或之後執行任何操作,但如果這還不夠,您可能需要深入到一些更令人興奮的元編程,例如edit_resource API或在配方文件中聲明類。