58 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
		
		
			
		
	
	
			58 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
|   | module Devops | ||
|  |   module Model | ||
|  |     class JobTask | ||
|  | 
 | ||
|  |       include ::Mongoid::Document | ||
|  |       include ::Mongoid::Timestamps::CreatedInt | ||
|  |       include ::Mongoid::Timestamps::UpdatedInt | ||
|  |       include ::ActiveModel::Validations | ||
|  | 
 | ||
|  |       store_in collection: "job_tasks" | ||
|  | 
 | ||
|  | 
 | ||
|  |       DEPLOY_SERVER_TYPE = 1
 | ||
|  |       CREATE_SERVER_TYPE = 2
 | ||
|  |       BOOTSTRAP_TYPE = 3
 | ||
|  |       PROJECT_TEST_TYPE = 4
 | ||
|  |       STACK_TYPE = 5
 | ||
|  |       DEPLOY_STACK_TYPE = 6
 | ||
|  |       DELETE_SERVER_TYPE = 7
 | ||
|  |       EXPIRE_SERVER_TYPE = 8
 | ||
|  |       SYNC_STACK_TYPE = 9
 | ||
|  |       UNBOOTSTRAP_TYPE = 10
 | ||
|  | 
 | ||
|  |       SYSTEM_OWNER = 'SYSTEM' | ||
|  | 
 | ||
|  |       field :_id, as: :'id', overwrite: true, type: String | ||
|  |       field :file, type: String | ||
|  |       field :project, type: String | ||
|  |       field :environment, type: String | ||
|  |       field :category, type: String | ||
|  |       field :created_by, type: String | ||
|  |       field :type, type: Integer | ||
|  |       field :server_id, type: String | ||
|  |       field :host, type: String | ||
|  |       field :status, type: String | ||
|  |       field :stack, type: String | ||
|  |       field :subtasks, type: Array | ||
|  |       field :job_result_code, type: Integer | ||
|  |       field :bootstrap_info, type: Hash | ||
|  |       field :deploy_info, type: Hash | ||
|  | 
 | ||
|  |       def to_hash | ||
|  |         hash = self.attributes.clone | ||
|  |         hash["id"] = hash.delete("_id") | ||
|  |         hash.delete("file") | ||
|  |         hash | ||
|  |       end | ||
|  | 
 | ||
|  |       def add_subtasks(jid, subtasks) | ||
|  |         JobTask.where(_id: jid).push_all("subtasks" => subtasks) | ||
|  |       end | ||
|  | 
 | ||
|  |       index(created_at: 1) | ||
|  |       index(project: 1, environment: 1, created_at: 1) | ||
|  |     end | ||
|  |   end | ||
|  | end |