按照官方网站的建议,我配置了一个 Jenkins 作业来运行 foodcritic 的分析。当我运行此作业时,所有结果如下所示:
如上表所示,代码库有一个“Chef List Warning”,官方网站引用为FC017。postgredb.rb 的原始代码是:
# Support whyrun
require 'chef/mixin/shell_out'
require 'chef/mixin/language'
include Chef::Mixin::ShellOut
def whyrun_supported?
true
end
action :install do
version = @new_resource.version
options = @new_resource.options
e = execute "sudo apt-get install postgresql-#{version} #{options}"
@new_resource.updated_by_last_action(e.updated_by_last_action?)
end
# Now, it just changes the default password to postgres.
action :unistall do
converge_by "Unistall postgresql--#{@new_resource.version}" do
e = execute "sudo apt-get purge postgresql--#{@new_resource.version}" do
#not_if { "dpkg --get-selections | grep postgresql-#{@new_resource.version}" }
end
end
end
...
FC017警告针对第 10行,因为“LWRP 在发生更新时不通知”:
@new_resource.updated_by_last_action(e.updated_by_last_action?)
然后我尝试为此解决问题更改行:
@new_resource.updated_by_last_action(true)
但是这个问题在第 10 行仍然存在。
有谁知道是什么问题?如果参数设置为真,为什么不消除此警告?