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/experiment.rb')
-rw-r--r--app/models/ml/experiment.rb20
1 files changed, 20 insertions, 0 deletions
diff --git a/app/models/ml/experiment.rb b/app/models/ml/experiment.rb
index 7bb80a170c5..d1277efac7b 100644
--- a/app/models/ml/experiment.rb
+++ b/app/models/ml/experiment.rb
@@ -4,6 +4,8 @@ module Ml
class Experiment < ApplicationRecord
include AtomicInternalId
+ PACKAGE_PREFIX = 'ml_experiment_'
+
validates :name, :project, presence: true
validates :name, uniqueness: { scope: :project, message: "should be unique in the project" }
@@ -20,6 +22,10 @@ module Ml
has_internal_id :iid, scope: :project
+ def package_name
+ "#{PACKAGE_PREFIX}#{iid}"
+ end
+
class << self
def by_project_id_and_iid(project_id, iid)
find_by(project_id: project_id, iid: iid)
@@ -32,6 +38,20 @@ module Ml
def by_project_id(project_id)
where(project_id: project_id).order(id: :desc)
end
+
+ def package_for_experiment?(package_name)
+ return false unless package_name&.starts_with?(PACKAGE_PREFIX)
+
+ iid = package_name.delete_prefix(PACKAGE_PREFIX)
+
+ numeric?(iid)
+ end
+
+ private
+
+ def numeric?(value)
+ value.match?(/\A\d+\z/)
+ end
end
end
end