before_validation :ensure_ping_secret
after_update :dnsmasq_update
+ # Only a controller can figure out whether or not the current API tokens
+ # have access to the associated Job. They're expected to set
+ # job_readable=true if the Job UUID can be included in the API response.
+ belongs_to(:job, foreign_key: :job_uuid, primary_key: :uuid)
+ attr_accessor :job_readable
+
MAX_SLOTS = 64
@@confdir = Rails.configuration.dnsmasq_conf_dir
t.add :last_ping_at
t.add :slot_number
t.add :status
+ t.add :api_job_uuid, as: :job_uuid
t.add :crunch_worker_state
t.add :properties
end
super || @@domain
end
+ def api_job_uuid
+ job_readable ? job_uuid : nil
+ end
+
def crunch_worker_state
+ return 'down' if slot_number.nil?
case self.info.andand['slurm_state']
when 'alloc', 'comp'
'busy'