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
|