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:
authorGitLab Bot <gitlab-bot@gitlab.com>2023-12-12 21:07:46 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2023-12-12 21:07:46 +0300
commit6121ad5af38294f12db08f13aec122c3dbef583a (patch)
tree452bdd3003f26ad4cffb9005b176bb052b810a14 /app/services
parent86a3b1b3ae2115c6ab7b9d492e9c89ac70963d3a (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/services')
-rw-r--r--app/services/ml/find_or_create_model_version_service.rb17
-rw-r--r--app/services/packages/ml_model/create_package_file_service.rb38
2 files changed, 17 insertions, 38 deletions
diff --git a/app/services/ml/find_or_create_model_version_service.rb b/app/services/ml/find_or_create_model_version_service.rb
index 1c6f5bb96dd..61782166726 100644
--- a/app/services/ml/find_or_create_model_version_service.rb
+++ b/app/services/ml/find_or_create_model_version_service.rb
@@ -8,21 +8,20 @@ module Ml
@version = params[:version]
@package = params[:package]
@description = params[:description]
+ @user = params[:user]
+ @params = params
end
def execute
- model = Ml::FindOrCreateModelService.new(@project, @name).execute
+ model_version = Ml::ModelVersion.by_project_id_name_and_version(@project.id, @name, @version)
- model_version = Ml::ModelVersion.find_or_create!(model, @version, @package, @description)
+ return model_version if model_version
- unless model_version.candidate
- model_version.candidate = ::Ml::CreateCandidateService.new(
- model.default_experiment,
- { model_version: model_version }
- ).execute
- end
+ model = Ml::Model.by_project_id_and_name(@project.id, @name)
- model_version
+ return unless model
+
+ Ml::CreateModelVersionService.new(model, @params).execute
end
end
end
diff --git a/app/services/packages/ml_model/create_package_file_service.rb b/app/services/packages/ml_model/create_package_file_service.rb
index ff569a8eecf..ee2f3077e4c 100644
--- a/app/services/packages/ml_model/create_package_file_service.rb
+++ b/app/services/packages/ml_model/create_package_file_service.rb
@@ -4,47 +4,27 @@ module Packages
module MlModel
class CreatePackageFileService < BaseService
def execute
- ::Packages::Package.transaction do
- package = find_or_create_package
- find_or_create_model_version(package)
+ @package = params[:model_version]&.package
+
+ return unless @package
- create_package_file(package)
+ ::Packages::Package.transaction do
+ update_package
+ create_package_file
end
end
private
- def find_or_create_package
- package_params = {
- name: params[:package_name],
- version: params[:package_version],
- build: params[:build],
- status: params[:status]
- }
-
- package = ::Packages::MlModel::FindOrCreatePackageService
- .new(project, current_user, package_params)
- .execute
+ attr_reader :package
+ def update_package
package.update_column(:status, params[:status]) if params[:status] && params[:status] != package.status
package.create_build_infos!(params[:build])
-
- package
- end
-
- def find_or_create_model_version(package)
- model_version_params = {
- model_name: package.name,
- version: package.version,
- package: package,
- user: current_user
- }
-
- Ml::FindOrCreateModelVersionService.new(project, model_version_params).execute
end
- def create_package_file(package)
+ def create_package_file
file_params = {
file: params[:file],
size: params[:file].size,