class Logrotate
Public Instance Methods
deploy()
click to toggle source
# File lib/dust/recipes/logrotate.rb, line 3 def deploy return unless @node.install_package 'logrotate' @config.each do |name, rule| @node.messages.add("deploying logrotate entry for '#{name}'\n") unless rule['path'] @node.messages.add('path not specified', :indent => 2).failed next end file = "#{rule['path']} {\n" rule['args'] ||= default_args rule['args'].each { |arg| file << " #{arg}\n" } rule['scripts'] ||= {} rule['scripts'].each do |script, commands| file << " #{script}\n" commands.each { |cmd| file << " #{cmd}\n" } end file << "}\n" deploy_rule name, file end end
status()
click to toggle source
# File lib/dust/recipes/logrotate.rb, line 32 def status @node.messages.add.print_output(@node.exec('ls /etc/logrotate.d/*')) end
Private Instance Methods
default_args()
click to toggle source
# File lib/dust/recipes/logrotate.rb, line 39 def default_args [ 'rotate 7', 'daily', 'missingok', 'notifempty', 'copytruncate', 'compress' ] end
deploy_rule(name, file)
click to toggle source
# File lib/dust/recipes/logrotate.rb, line 47 def deploy_rule name, file @node.write "/etc/logrotate.d/#{name}", file, :indent => 2 @node.chown 'root:root', "/etc/logrotate.d/#{name}", :indent => 2 end
remove_rules()
click to toggle source
# File lib/dust/recipes/logrotate.rb, line 43 def remove_rules @node.rm '/etc/logrotate.d/*' end