fluke/devops-service/db/mongo/models/job_task.rb
Tim Lianov 03dc3d8d99 v3
2018-04-04 22:44:39 +03:00

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