module Devops module Version2_0 module Handler class Report def self.reports_all lambda { options = {} ["project", "deploy_env", "type", "created_by", "date_from", "date_to", "sort", "status", "max_number", "chef_node_name"].each do |k| options[k] = params[k] unless params[k].nil? end attributes_keys = params.keys.select{|k| k =~ /attributes\.*/} attributes_keys.each do |ak| options[ak] = params[ak] end json Devops::Db.connector.reports(options).map{|r| r.to_hash} } end def self.reports_latest lambda { options = {} ["project", "deploy_env", "type", "created_by", "date_from", "date_to", "sort", "status", "chef_node_name"].each do |k| options[k] = params[k] unless params[k].nil? end attributes_keys = params.keys.select{|k| k =~ /attributes\.*/} attributes_keys.each do |ak| options[ak] = params[ak] end json Devops::Db.connector.latest_reports(options).map{|r| r.to_hash} } end def self.attributes_all lambda{ json Devops::Db.connector.reports_attributes_values(params["name"]) } end def self.report lambda{ begin r = Devops::Db.connector.report(params[:id]) file = r.file return [404, "Report '#{params[:id]}' does not exist"] unless File.exists? file @text = Rack::Utils.escape_html(File.read(file)) @done = completed?(params[:id]) rescue RecordNotFound => e if task_status(params[:id]) == Worker::STATUS::IN_QUEUE @text = "Task '#{params[:id]}' has been queued" @done = false else raise e end end erb :index } end end end end end