Should the daemon ignore regular maintenance steps?
# File lib/miga/daemon/base.rb, line 83 def bypass_maintenance? !!runopts(:bypass_maintenance) end
Returns Integer indicating the number of seconds to sleep between checks
# File lib/miga/daemon/base.rb, line 38 def latency runopts(:latency) end
Writing file handler (IO) to the log file
# File lib/miga/daemon/base.rb, line 100 def logfh @logfh ||= nil return $stderr if show_log? return @logfh if @logfh && !@logfh.closed? @logfh = File.open(output_file, 'w') end
Returns Integer indicating the maximum number of concurrent jobs to run
# File lib/miga/daemon/base.rb, line 44 def maxjobs runopts(:maxjobs) end
Returns the path to the list of execution hostnames
# File lib/miga/daemon/base.rb, line 50 def nodelist runopts(:nodelist) end
Returns Integer indicating the number of CPUs per job, in jobs for
what
. See also runopts_for
# File lib/miga/daemon/base.rb, line 70 def ppn(what = :dataset) runopts_for(:ppn, what) end
Set/get options, where k
is the Symbol of the option and
v
is the value (or nil to use as getter). Skips consistency
tests if force
. Returns new value.
# File lib/miga/daemon/base.rb, line 11 def runopts(k, v = nil, force = false) k = k.to_sym unless v.nil? case k when :latency, :maxjobs, :ppn, :ppn_project, :format_version, :verbosity, :skip_maintenance v = v.to_i if !force && v == 0 && !%[verbosity skip_maintenance].include?(k) raise "Daemon's #{k} cannot be set to zero" end when :shutdown_when_done, :show_log, :bypass_maintenance v = !!v when :nodelist if v =~ /^\$/ vv = ENV[v.sub('$', '')] or raise "Unset environment variable: #{v}" v = vv end say "Reading node list: #{v}" v = File.readlines(v).map(&:chomp) end @runopts[k] = v end @runopts[k] end
Returns the running option opt
in jobs for what
.
what
can be :dataset
or :projects
# File lib/miga/daemon/base.rb, line 63 def runopts_for(opt, what) runopts(:"#{opt}_#{what}") || runopts(opt) end
Display log instead of the progress summary
# File lib/miga/daemon/base.rb, line 110 def show_log! @runopts[:show_log] = true end
Display log instead of the progress summary?
# File lib/miga/daemon/base.rb, line 122 def show_log? @runopts[:show_log] ||= false end
Display progress summary instead of the log
# File lib/miga/daemon/base.rb, line 116 def show_summary! @runopts[:show_log] = false end
Returns Boolean indicating if the daemon should shutdown when processing is complete
# File lib/miga/daemon/base.rb, line 77 def shutdown_when_done? !!runopts(:shutdown_when_done) end
Returns the number of times maintenance should be skipped before running
# File lib/miga/daemon/base.rb, line 56 def skip_maintenance runopts(:skip_maintenance) || 0 end
Returns the level of verbosity for the daemon as an Integer, or 1 if unset. Verbosity levels are: 0: No output 1: General daemon and job information 2: Same, and indicate when each task is performed (even if nothing happens) 3: Same, and indicate when each loop begins and ends
# File lib/miga/daemon/base.rb, line 94 def verbosity runopts(:verbosity) || 1 end