class Adminix::Entities::Job

Constants

STATUS_COMPLETED
STATUS_IN_QUEUE

Attributes

id[RW]
output[R]
script[RW]
status[R]
success[R]

Public Class Methods

new(id:, script:) click to toggle source
# File lib/adminix/entities/job.rb, line 10
def initialize(id:, script:)
  @id = id
  @script = script
  @status = STATUS_IN_QUEUE
  @created_at = Time.now
  @success = false

  filter_script
end

Public Instance Methods

completed?() click to toggle source
# File lib/adminix/entities/job.rb, line 31
def completed?
  @status == STATUS_COMPLETED
end
filter_script() click to toggle source
# File lib/adminix/entities/job.rb, line 35
def filter_script
  ['sudo', 'shutdown', 'kill'].each do |word|
    @script = @script.gsub('word', '')
  end
end
in_queue?() click to toggle source
# File lib/adminix/entities/job.rb, line 27
def in_queue?
  @status == STATUS_IN_QUEUE
end
perform() click to toggle source
# File lib/adminix/entities/job.rb, line 20
def perform
  @output = `/bin/bash #{Adminix.config.scripts[:run_script]} #{script}`
  @success = $?.success?
  @status = STATUS_COMPLETED
  @completed_at = Time.now
end
to_api() click to toggle source
# File lib/adminix/entities/job.rb, line 41
def to_api
  {
    id: @id,
    status: @status,
    script: @script,
    success: @success,
    output: @output,
    created_at: @created_at,
    completed_at: @completed_at
  }
end