0

Chef::Provider::Packageカスタムサブクラスの変数を、それが呼び出されたレシピに何らかの方法で「返す」必要があるため、後で同じレシピでこの変数を使用できます。

カスタムChef::Resource::Packageサブクラス属性と適切なセッター/ゲッター ラッパーをset_or_return関数で追加しようとしました。Chef::Provider::Packageサブクラスからこの属性を正常に読み書きできますが、レシピからこの属性にアクセスしようとするとnil値しか表示されません。これは、次のレシピで説明できます。

a = apt_package "bzip2" do
  action :install
end

# this won't work, a.version would be nil
log "bzip package version is #{a.version}"

ただし、次のように設定されlib/chef/provider/package/apt.rbていることがわかります。@current_resource.version

@current_resource.version(installed_version)

同じレシピからプロバイダーによって作成されたインスタンスの任意の属性 (versionこの例では) を読み取る正しい方法は何ですか?Chef::Resource::AptPackageapt_package

4

1 に答える 1