Module: MiGA::Daemon::Base

Included in:
MiGA::Daemon
Defined in:
lib/miga/daemon/base.rb

Instance Method Summary collapse

Instance Method Details

#latencyObject

Returns Integer indicating the number of seconds to sleep between checks



37
# File 'lib/miga/daemon/base.rb', line 37

def latency() runopts(:latency); end

#maxjobsObject

Returns Integer indicating the maximum number of concurrent jobs to run



41
# File 'lib/miga/daemon/base.rb', line 41

def maxjobs() runopts(:maxjobs); end

#nodelistObject

Returns the path to the list of execution hostnames



45
# File 'lib/miga/daemon/base.rb', line 45

def nodelist() runopts(:nodelist); end

#ppnObject

Returns Integer indicating the number of CPUs per job



49
# File 'lib/miga/daemon/base.rb', line 49

def ppn() runopts(:ppn); end

#runopts(k, v = nil, force = false) ⇒ Object

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.



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/miga/daemon/base.rb', line 13

def runopts(k, v = nil, force = false)
  k = k.to_sym
  unless v.nil?
    case k
    when :latency, :maxjobs, :ppn, :format_version
      v = v.to_i
    when :shutdown_when_done
      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
    raise "Daemon's #{k} cannot be set to zero." if !force and v == 0
    @runopts[k] = v
  end
  @runopts[k]
end

#shutdown_when_done?Boolean

Returns Boolean indicating if the daemon should shutdown when processing is complete

Returns:

  • (Boolean)


54
# File 'lib/miga/daemon/base.rb', line 54

def shutdown_when_done?() !!runopts(:shutdown_when_done); end