Sha256: a00facfc3679cb6c90fd02cb141746bf489d115e96dfc4d362b04da588e02e1f

Contents?: true

Size: 1.07 KB

Versions: 1

Compression:

Stored size: 1.07 KB

Contents

require 'rundock/operation/base'

module Rundock
  module Hook
    # You can use this sample as following yaml files for example.
    #
    # [hook.yml]
    # major_log:
    #   hook_type: file
    #   filepath: /var/log/rundock.log
    # minor_log:
    #   hook_type: file
    #   filepath: /tmp/rundock.log
    #
    # [scenario.yml]
    # - node: anyhost-01
    # command:
    #   - 'rm -f /tmp/aaa'
    # hook:
    #   - major_log
    #   - minor_log
    # - node: localhost
    # command:
    #   - 'echo aaa > /tmp/abc'
    # hook: all
    # ---
    # anyhost-01:
    #   host: 192.168.1.11
    #   ssh_opts:
    #     port: 22
    #     user: anyuser
    #     key:  ~/.ssh/id_rsa
    # ---
    class File < Base
      def hook(operation_attributes, log_buffer)
        file = ::File.open(@contents[:filepath], 'w')
        file.puts("[hookname:#{@name} node:#{operation_attributes[0][:nodename]}]")
        log_buffer.each do |log|
          file.puts("[\%5s:] %s%s\n" % [log.severity, ' ' * 2 * log.indent_depth, log.msg])
        end
        file.close
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rundock-0.4.13 lib/rundock/plugin/hook/file.rb