chef - Library doesn't process "DSL" for 'execute' -
can me please?
nomethoderror ------------- undefined method `execute' chat::mattermost:class   relevant file content: (file name libraries/chat.rb)
4: 5:  module chat 6:    class mattermost 7: 8:      def self.log_to_chat(message) 9>>       execute "echo" 10:          command "echo #{message}" 11:        end 12:      end 13: 14:    end 15:  end 16:   i read dsl syntax isn't available in definition, guessing need resembling r = chef::resource::execute.new("echo #{message}") , r.run_command :run i'm not quite sure how it.
other relevant code, method "called" this:
log "this message"   level :info   notifies :run, chat::mattermost.log_to_chat("#{name}"), :immediately end   edit: second attempt
nomethoderror ------------- undefined method `events' nil:nilclass   for code:
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:      
notifies :run, chat::mattermost.log_to_chat("#{name}"), :immediately   - you can't call notify on non-resource.
 - you can't create resource dynamically calling notifies, won't work.
 - as second parameter (when called resource block) 
notifiesshould pass string used search resource in chef context. 
if want enhance log resource provider, should implement own, similar this, put in libraries , call log resource newly implemented class name provider.
log 'this message'   provider chef::provider::log::mycustomlog end      
Comments
Post a Comment