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
 | 
