|
|
|
@ -1,9 +1,35 @@
|
|
|
|
|
require 'base64'
|
|
|
|
|
|
|
|
|
|
class JupytersController < ApplicationController
|
|
|
|
|
include JupyterService
|
|
|
|
|
|
|
|
|
|
before_action :shixun, only: [:open, :open1, :test, :save]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def import_with_tpm
|
|
|
|
|
shixun = Shixun.find_by(identifier: params[:identifier])
|
|
|
|
|
|
|
|
|
|
upload_file = params["file"] || params["#{params[:file_param_name]}"] # 这里的file_param_name是为了方便其他插件名称
|
|
|
|
|
uid_logger("#########################file_params####{params["#{params[:file]}"]}")
|
|
|
|
|
raise "未上传文件" unless upload_file
|
|
|
|
|
|
|
|
|
|
content = Base64.encode64(upload_file.tempfile.read)
|
|
|
|
|
|
|
|
|
|
# upload to server
|
|
|
|
|
shixun_tomcat = edu_setting('cloud_bridge')
|
|
|
|
|
uri = "#{shixun_tomcat}/bridge/jupyter/update"
|
|
|
|
|
tpiID = "tpm#{shixun.id}"
|
|
|
|
|
params = {tpiID: tpiID, content: content}
|
|
|
|
|
|
|
|
|
|
logger.info "test_juypter: uri->#{uri}, params->#{params}"
|
|
|
|
|
res = uri_post uri, params
|
|
|
|
|
if res && res['code'].to_i != 0
|
|
|
|
|
raise("实训云平台繁忙(繁忙等级:100)")
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
render json: {status: 0}
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def save_with_tpi
|
|
|
|
|
myshixun = Myshixun.find_by(identifier: params[:identifier])
|
|
|
|
|
jupyter_save_with_game(myshixun, params[:jupyter_port])
|
|
|
|
|