【发布时间】:2016-12-31 04:58:27
【问题描述】:
谁能帮我解决这个问题?
NoMethodError
-------------
undefined method `execute' for Chat::Mattermost:Class
相关文件内容:(文件名libraries/chat.rb)
4:
5: module Chat
6: class Mattermost
7:
8: def self.log_to_chat(message)
9>> execute "echo" do
10: command "echo #{message}"
11: end
12: end
13:
14: end
15: end
16:
我读到 DSL 语法在定义中不可用,所以我猜我需要做一些类似于 r = Chef::Resource::Execute.new("echo #{message}") 和 r.run_command :run 的事情,但我不太确定该怎么做。
其他相关代码,我的方法是这样“调用”的:
log "this is a message" do
level :info
notifies :run, Chat::Mattermost.log_to_chat("#{name}"), :immediately
end
编辑:第二次尝试
NoMethodError
-------------
undefined method `events' for nil:NilClass
代码:
5: require 'chef/resource/execute'
6:
7: module Chat
8: class Mattermost
9:
10: def self.log_to_chat(message)
11: cmd = Chef::Resource::Execute.new("echo #{message}")
12>> cmd.run_action(:run)
13:
【问题讨论】:
标签: chef-infra dsl