64 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| 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
 | |
| 
 | 
