Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/ml/candidate.rb')
-rw-r--r--app/models/ml/candidate.rb13
1 files changed, 13 insertions, 0 deletions
diff --git a/app/models/ml/candidate.rb b/app/models/ml/candidate.rb
index e181217f01c..29e1ba88528 100644
--- a/app/models/ml/candidate.rb
+++ b/app/models/ml/candidate.rb
@@ -2,11 +2,24 @@
module Ml
class Candidate < ApplicationRecord
+ enum status: { running: 0, scheduled: 1, finished: 2, failed: 3, killed: 4 }
+
validates :iid, :experiment, presence: true
+ validates :status, inclusion: { in: statuses.keys }
belongs_to :experiment, class_name: 'Ml::Experiment'
belongs_to :user
has_many :metrics, class_name: 'Ml::CandidateMetric'
has_many :params, class_name: 'Ml::CandidateParam'
+
+ default_value_for(:iid) { SecureRandom.uuid }
+
+ class << self
+ def with_project_id_and_iid(project_id, iid)
+ return unless project_id.present? && iid.present?
+
+ joins(:experiment).find_by(experiment: { project_id: project_id }, iid: iid)
+ end
+ end
end
end