2016-09-23 7 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:
TypeError例外:初期化されていない一定のシェフ::リソース:: IIS

私も、このエラーが発生し

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

を試してみたスーパークラスでなければなりませんクラス(指定なし)

何か助けていただければ幸いです。

おかげで、
Abrehm

答えて

0

残念ながら直接そのようなDSLベースのカスタムリソースを拡張するための良い方法はありません。最適な方法は、iis_poolを内部的に使用する新しいカスタムリソースを作成することです。ラッパーパターンのようなものです。これは、既存のリソースコードの前または後にのみ行うことができます。十分でない場合は、edit_resource APIのようなよりエキサイティングなメタプログラミングや、レシピファイルのクラスの宣言が必要な場合があります。

関連する問題