69 lines
1.9 KiB
Ruby
69 lines
1.9 KiB
Ruby
|
|
require_relative "request_handler"
|
||
|
|
|
||
|
|
module Devops
|
||
|
|
module API3
|
||
|
|
module Handler
|
||
|
|
class JobTask < RequestHandler
|
||
|
|
|
||
|
|
def options
|
||
|
|
params = @request.params
|
||
|
|
options = {}
|
||
|
|
["project", "environment", "category", "type", "created_by", "status", "server_id", "max_number"].each do |k|
|
||
|
|
options[k] = params[k] unless params[k].nil?
|
||
|
|
end
|
||
|
|
fill_date_params_for_searching(options)
|
||
|
|
|
||
|
|
#attributes_keys = params.keys.select{|k| k =~ /attributes\.*/}
|
||
|
|
#attributes_keys.each do |ak|
|
||
|
|
# options[ak] = params[ak]
|
||
|
|
#end
|
||
|
|
options
|
||
|
|
end
|
||
|
|
|
||
|
|
def all
|
||
|
|
sort = extract_sort_params_for_searching
|
||
|
|
limit = extract_limit_params_for_searching(10)
|
||
|
|
Devops::Model::JobTask.where(options).sort(sort).limit(limit)
|
||
|
|
end
|
||
|
|
|
||
|
|
def all_latest
|
||
|
|
# TODO:
|
||
|
|
#Devops::Db.connector.latest_reports(options())
|
||
|
|
[]
|
||
|
|
end
|
||
|
|
|
||
|
|
def attributes name
|
||
|
|
# TODO:
|
||
|
|
#Devops::Db.connector.reports_attributes_values(name)
|
||
|
|
[]
|
||
|
|
end
|
||
|
|
|
||
|
|
def task id
|
||
|
|
Devops::Model::JobTask.find(id)
|
||
|
|
rescue Mongoid::Errors::DocumentNotFound => e
|
||
|
|
raise Devops::Exception::RecordNotFound.new("JobTask '#{id}' does not exist")
|
||
|
|
end
|
||
|
|
|
||
|
|
def report id
|
||
|
|
t = task(id)
|
||
|
|
tstatus = t.status
|
||
|
|
if tstatus == Worker::STATUS::IN_QUEUE
|
||
|
|
return "Task '#{id}' has been queued", false
|
||
|
|
end
|
||
|
|
file = t.file
|
||
|
|
raise Devops::Exception::RecordNotFound.new("JobTask '#{id}' file does not exist") unless File.exists? file
|
||
|
|
completed = (tstatus == "completed" or tstatus == "failed")
|
||
|
|
return Rack::Utils.escape_html(File.read(file).encode('UTF-8', 'binary', invalid: :replace, undef: :replace, replace: '')), completed
|
||
|
|
end
|
||
|
|
|
||
|
|
def status id
|
||
|
|
t = task(id)
|
||
|
|
t.status
|
||
|
|
end
|
||
|
|
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|