2014-10-29 91 views
0

我有一个LWRP,其提供者操作看起来像这样。我想环境变量传递给资源保护装置:将环境变量传递到LWRP中powershell_script中的资源gaurd

action :create do 
    powershell_script 'create file' do 
    environment({'fileName' => new_resource.fileName}) 
    code <<-EOH 
     New-Item $env:fileName 
     EOH 
    guard_interpreter :powershell_script 
    not_if '(Test-Path $env:fileName)' 
end 

在上面的例子中,我所要做的是创建一个新的文件,如果一个不存在。当我执行此操作时,每次都会创建新文件。我期望卫兵第二次执行并且资源不会被重新创建。我认为发生的事情是我不能像在代码块中一样使用后卫中的环境变量。

请注意,我的现实生活中的问题比这个复杂得多,我不只是在寻找一种创建文件的方式,如果它不存在的话。我需要知道如何使用'not-if'块中轻量级资源中指定的属性。

回答

0

它被埋,但它在documentation here。只要这样做:

action :create do 
    my_environment = 'fileName' => new_resource.fileName 
    powershell_script 'create file' do 
    environment my_environment 
    code <<-EOH 
     New-Item $env:fileName 
     EOH 
    guard_interpreter :powershell_script 
    not_if '(Test-Path $env:fileName)', :environment => my_environment 
    end 
end 
相关问题