1

Chef クックブック用の LWRP を作成しようとしていますが、このプロパティがある行とnil次の行で完全に有効であるように見える奇妙な問題に遭遇しています。

プロバイダーコードから、次のsource行にエラーがあります:

def create_check
  cookbook_file get_check_filename(@current_resource.checkname) do
    source  "checks/#{@current_resource.checkname}" # undefined method `checkname' for nil:NilClass
    mode    '0644'
    action  :create
  end
end

そして、load_current_resourceそれ初期化されていることを示すためのメソッド:

def load_current_resource
  @current_resource = Chef::Resource::OmdCheck.new(@new_resource_name)
  @current_resource.checkname(@new_resource.checkname) # right here!
  @current_resource.sitename(@new_resource.sitename)
  @current_resource.sitecfgroot(sprintf(CMK_CFGROOT_FRM, @new_resource.sitename))
  @current_resource.perfometer(@new_resource.perfometer)
  @current_resource.pnptemplate(@new_resource.pnptemplate)

  @current_resource.exists = check_exists?(@current_resource.checkname)
end

どんな助けでも大歓迎です。

4

2 に答える 2

0

通常、() の "#{}" 内にメソッドを配置する必要があります。
例:

"#{method}"        # does not work
"#{(method)}"      # works
a = method; "#{a}" # works too
于 2015-07-13T05:15:53.293 に答える