日志问题

chromesetting
daiao 6 years ago
parent df57b58933
commit 1b2d3ebabb

@ -365,12 +365,7 @@ class ShixunsController < ApplicationController
end end
def create def create
begin @shixun = CreateShixunService.call(current_user, shixun_params, params)
@shixun = CreateShixunService.call(current_user, shixun_params, params)
rescue Exception => e
logger_error("shixun_create_error: #{e.message}")
tip_exception("创建实训失败!")
end
end end
# 保存jupyter到版本库 # 保存jupyter到版本库

@ -14,34 +14,39 @@ class CreateShixunService < ApplicationService
shixun.user_id = user.id shixun.user_id = user.id
main_mirror = MirrorRepository.find params[:main_type] main_mirror = MirrorRepository.find params[:main_type]
sub_mirrors = MirrorRepository.where(id: params[:sub_type]) sub_mirrors = MirrorRepository.where(id: params[:sub_type])
ActiveRecord::Base.transaction do begin
shixun.save! ActiveRecord::Base.transaction do
# 获取脚本内容 shixun.save!
shixun_script = get_shixun_script(shixun, main_mirror, sub_mirrors) # 获取脚本内容
# 创建额外信息 shixun_script = get_shixun_script(shixun, main_mirror, sub_mirrors)
ShixunInfo.create!(shixun_id: shixun.id, evaluate_script: shixun_script, description: params[:description]) # 创建额外信息
# 创建合作者 ShixunInfo.create!(shixun_id: shixun.id, evaluate_script: shixun_script, description: params[:description])
shixun.shixun_members.create!(user_id: user.id, role: 1) # 创建合作者
# 创建镜像 shixun.shixun_members.create!(user_id: user.id, role: 1)
ShixunMirrorRepository.create!(:shixun_id => shixun.id, :mirror_repository_id => main_mirror.id) # 创建镜像
# 创建主服务配置 ShixunMirrorRepository.create!(:shixun_id => shixun.id, :mirror_repository_id => main_mirror.id)
ShixunServiceConfig.create!(:shixun_id => shixun.id, :mirror_repository_id => main_mirror.id) # 创建主服务配置
# 创建子镜像相关数据(实训镜像关联表,子镜像服务配置) ShixunServiceConfig.create!(:shixun_id => shixun.id, :mirror_repository_id => main_mirror.id)
sub_mirrors.each do |sub| # 创建子镜像相关数据(实训镜像关联表,子镜像服务配置)
ShixunMirrorRepository.create!(:shixun_id => shixun.id, :mirror_repository_id => sub.id) sub_mirrors.each do |sub|
# 实训子镜像服务配置 ShixunMirrorRepository.create!(:shixun_id => shixun.id, :mirror_repository_id => sub.id)
name = sub.name #查看镜像是否有名称,如果没有名称就不用服务配置 # 实训子镜像服务配置
ShixunServiceConfig.create!(:shixun_id => shixun.id, :mirror_repository_id => sub.id) if name.present? name = sub.name #查看镜像是否有名称,如果没有名称就不用服务配置
end ShixunServiceConfig.create!(:shixun_id => shixun.id, :mirror_repository_id => sub.id) if name.present?
# 创建版本库 end
repo_path = repo_namespace(user.login, shixun.identifier) # 创建版本库
GitService.add_repository(repo_path: repo_path) repo_path = repo_namespace(user.login, shixun.identifier)
shixun.update_column(:repo_name, repo_path.split(".")[0]) GitService.add_repository(repo_path: repo_path)
# 如果是云上实验室,创建相关记录 shixun.update_column(:repo_name, repo_path.split(".")[0])
if !Laboratory.current.main_site? # 如果是云上实验室,创建相关记录
Laboratory.current.laboratory_shixuns.create!(shixun: shixun, ownership: true) if !Laboratory.current.main_site?
Laboratory.current.laboratory_shixuns.create!(shixun: shixun, ownership: true)
end
return shixun
end end
return shixun rescue => e
Rails.logger.error("shixun_create_error: #{e.message}")
raise("创建实训失败!")
end end
end end

Loading…
Cancel
Save