启动任务相关接口
This commit is contained in:
parent
a43c5cdb2f
commit
df66e6d60c
|
@ -29,7 +29,7 @@ class ProjectsController < ApplicationController
|
||||||
menu_item :share, :only => :share
|
menu_item :share, :only => :share
|
||||||
|
|
||||||
before_filter :find_project, :except => [ :index, :search,:list, :new, :create, :copy, :statistics, :new_join, :course, :enterprise_course, :course_enterprise,
|
before_filter :find_project, :except => [ :index, :search,:list, :new, :create, :copy, :statistics, :new_join, :course, :enterprise_course, :course_enterprise,
|
||||||
:view_homework_attaches,:join_project, :project_home]
|
:view_homework_attaches,:join_project, :project_home, :training_execute]
|
||||||
before_filter :authorize, :only => [:show, :settings, :edit, :sort_project_members, :update, :modules, :close, :reopen,:view_homework_attaches,:course]
|
before_filter :authorize, :only => [:show, :settings, :edit, :sort_project_members, :update, :modules, :close, :reopen,:view_homework_attaches,:course]
|
||||||
before_filter :authorize_global, :only => [:new, :create,:view_homework_attaches]
|
before_filter :authorize_global, :only => [:new, :create,:view_homework_attaches]
|
||||||
before_filter :require_admin, :only => [ :copy, :unarchive, :destroy, :calendar]
|
before_filter :require_admin, :only => [ :copy, :unarchive, :destroy, :calendar]
|
||||||
|
@ -804,6 +804,34 @@ class ProjectsController < ApplicationController
|
||||||
redirect_to admin_projects_url(:status => params[:status])
|
redirect_to admin_projects_url(:status => params[:status])
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def training_project_execute
|
||||||
|
user_name = @project.owner.try(:login)
|
||||||
|
jobName = "#{user_name}_#{@project.id}"
|
||||||
|
pipeLine = Base64.encode64(@project.script)
|
||||||
|
params = {}
|
||||||
|
params["jobName"] = "#{jobName}"
|
||||||
|
params["pipeLine"] = "#{pipeLine}"
|
||||||
|
uri = URI.parse("http://106.75.33.219:9999/jenkins-exec/api/createJob")
|
||||||
|
uri_exec uri, params
|
||||||
|
# 返回成功信息,job名存到数据库
|
||||||
|
end
|
||||||
|
|
||||||
|
def training_task_execute
|
||||||
|
taskId = params[:training_task_id]
|
||||||
|
jobName = @project.job_name
|
||||||
|
params = {}
|
||||||
|
params["jobName"] = "#{jobName}"
|
||||||
|
params["pipeLine"] = "#{pipeLine}"
|
||||||
|
uri = URI.parse("http://106.75.33.219:9999/jenkins-exec/api/createJob")
|
||||||
|
uri_exec uri, params
|
||||||
|
# 返回job执行信息,哪一步成功,错误原因
|
||||||
|
end
|
||||||
|
|
||||||
|
def uri_exec uri, params
|
||||||
|
res = Net::HTTP.post_form(uri, params)
|
||||||
|
res.body
|
||||||
|
end
|
||||||
|
|
||||||
# 资源库fork弹框
|
# 资源库fork弹框
|
||||||
def forked_pop
|
def forked_pop
|
||||||
@type = params[:type]
|
@type = params[:type]
|
||||||
|
|
|
@ -544,6 +544,8 @@ module ProjectsHelper
|
||||||
result = "manage_versions"
|
result = "manage_versions"
|
||||||
elsif user.allowed_to?(:manage_repository, @project)
|
elsif user.allowed_to?(:manage_repository, @project)
|
||||||
result = "manage_repository"
|
result = "manage_repository"
|
||||||
|
elsif user.admin?
|
||||||
|
result = "training_task"
|
||||||
end
|
end
|
||||||
result
|
result
|
||||||
end
|
end
|
||||||
|
|
|
@ -19,6 +19,9 @@
|
||||||
<% if User.current.allowed_to?(:manage_repository, @project) %>
|
<% if User.current.allowed_to?(:manage_repository, @project) %>
|
||||||
<li><a href="javascript:void(0)" id="pro_st_tb_6" class="<%= show_memu == 'manage_repository' ? 'active' : ''%>" onclick="project_setting(6);">版本库</a></li>
|
<li><a href="javascript:void(0)" id="pro_st_tb_6" class="<%= show_memu == 'manage_repository' ? 'active' : ''%>" onclick="project_setting(6);">版本库</a></li>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
<% if User.current.admin? %>
|
||||||
|
<li><a href="javascript:void(0)" id="pro_st_tb_7" class="<%= show_memu == 'trainig_task' ? 'active' : ''%>" onclick="project_setting(7);">实训任务</a></li>
|
||||||
|
<% end %>
|
||||||
<!--<li id="pro_st_tb_7" class="pro_st_normaltab" onclick="project_setting(7);">活动(时间跟踪)</li>-->
|
<!--<li id="pro_st_tb_7" class="pro_st_normaltab" onclick="project_setting(7);">活动(时间跟踪)</li>-->
|
||||||
<!--<li id="pro_st_tb_8" class="pro_st_normaltab" onclick="project_setting(8);">代码评审</li>-->
|
<!--<li id="pro_st_tb_8" class="pro_st_normaltab" onclick="project_setting(8);">代码评审</li>-->
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -51,6 +54,10 @@
|
||||||
<div class="<%= show_memu == 'manage_repository' ? 'pro_st_dis' : 'pro_st_undis'%>" id="pro_st_tbc_06">
|
<div class="<%= show_memu == 'manage_repository' ? 'pro_st_dis' : 'pro_st_undis'%>" id="pro_st_tbc_06">
|
||||||
<%= render :partial=>"projects/settings/new_repositories" if User.current.allowed_to?(:manage_repository, @project)%>
|
<%= render :partial=>"projects/settings/new_repositories" if User.current.allowed_to?(:manage_repository, @project)%>
|
||||||
</div><!--tbc_06 end-->
|
</div><!--tbc_06 end-->
|
||||||
|
|
||||||
|
<div class="<%= show_memu == 'training_task' ? 'pro_st_dis' : 'pro_st_undis'%>" id="pro_st_tbc_07">
|
||||||
|
<%= render :partial=>"projects/settings/new_trainig_task" if User.current.admin? %>
|
||||||
|
</div><!--tbc_06 end-->
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
<h3>请输入脚本</h3>
|
||||||
|
<p><%= link_to "开启实训", training_project_execute_project_path(@project) %></p>
|
||||||
|
<textarea id="pull_request_comment" name="pull_request_comment" class="pullreques_reply_textarea" style="padding-left: 0px;"></textarea>
|
||||||
|
|
||||||
|
<textarea>
|
||||||
|
node()
|
||||||
|
{
|
||||||
|
stage "first"
|
||||||
|
def args = "command=fileExists"
|
||||||
|
|
||||||
|
def response = httpRequest acceptType: 'APPLICATION_JSON_UTF8', consoleLogResponseBody: true, contentType: 'APPLICATION_FORM', httpMode: 'POST', requestBody: args, url: "http://localhost:8080/jenkins-exec/pipeline/call?taskId=${taskId}"
|
||||||
|
println('Status: '+response.status)
|
||||||
|
println('Response: '+response.content)
|
||||||
|
}
|
||||||
|
</textarea>
|
|
@ -911,6 +911,7 @@ RedmineApp::Application.routes.draw do
|
||||||
post 'unarchive'
|
post 'unarchive'
|
||||||
post 'close'
|
post 'close'
|
||||||
post 'reopen'
|
post 'reopen'
|
||||||
|
get 'training_project_execute'
|
||||||
get 'forked_pop'
|
get 'forked_pop'
|
||||||
get 'delete_member_pop', :to => 'projects#delete_member_pop', :via => :get, :as => "delete_member_pop"
|
get 'delete_member_pop', :to => 'projects#delete_member_pop', :via => :get, :as => "delete_member_pop"
|
||||||
get 'search_public_orgs_not_in_project'
|
get 'search_public_orgs_not_in_project'
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
class AddScriptToProject < ActiveRecord::Migration
|
||||||
|
def change
|
||||||
|
add_column :projects, :script, :text
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,5 @@
|
||||||
|
class AddPositonToTrainingTask < ActiveRecord::Migration
|
||||||
|
def change
|
||||||
|
add_column :training_tasks, :position, :integer, :limit => 1
|
||||||
|
end
|
||||||
|
end
|
1358
db/schema.rb
1358
db/schema.rb
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue