class Pione::Log::DomainLog
DomainLog
is a domain log that records domain inputs and parameters.
Constants
- FILENAME
Attributes
domain_location[R]
@return [Location::BasicLocation]
domain's location
record[R]
@return [Hash{String => String}]
record table
Public Class Methods
new(handler)
click to toggle source
@param handler [RuleHandler::BasicHandler]
rule handler
# File lib/pione/log/domain-log.rb, line 21 def initialize(handler) @domain_location = handler.domain_location @record = { :system_name => Uname.sysname, :system_nodename => Uname.nodename, :system_machine => Uname.machine, :system_version => Uname.version, :system_release => Uname.release, :params => handler.param_set.textize, :inputs => inputs_string(handler.inputs), :domain => handler.domain_id, :domain_location => @domain_location.uri.to_s, :dry_run => handler.dry_run.to_s } if handler.respond_to?(:working_directory) @record[:working_directory] = handler.working_directory.location.uri.to_s end end
Public Instance Methods
save()
click to toggle source
Save domain information file.
@return [void]
# File lib/pione/log/domain-log.rb, line 43 def save domain_info_location = @domain_location + FILENAME text = "== %s\n\n" % Time.now text << @record.map{|key, val| "- %s: %s" % [key,val]}.join("\n") text << "\n\n" if domain_info_location.exist? domain_info_location.append(text) else domain_info_location.create(text) end end
Private Instance Methods
input_data_string(input, i)
click to toggle source
Build a data tuple string.
@param input [TupleSpace::DataTuple]
data tuple
@param i [Integer]
index number
# File lib/pione/log/domain-log.rb, line 79 def input_data_string(input, i) i = i.to_s sp1 = " "*4 sp2 = " "*(6+i.size) args = [sp1, i, input.name, sp2, input.location.uri, sp2, input.timestamp] "%s%s. %s,\n%s%s,\n%s%s" % args end
inputs_string(inputs)
click to toggle source
Build a record string for inputs.
@param inputs [Array<TupleSpace::DataTuple>]
input tuples
@return [String]
a record string
# File lib/pione/log/domain-log.rb, line 63 def inputs_string(inputs) "\n%s" % inputs.map.with_index(1) do |input, i| if input.kind_of?(Array) input.map{|_input| input_data_string(_input, i)}.join("\n") else input_data_string(input, i) end end.join("\n") end