mutx 0.1.69 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +2 -2
- data/documentation/repos.md +21 -24
- data/lib/generators/task_rack.rb +8 -2
- data/lib/generators/templates/config.ru.tt +1 -1
- data/lib/mutx/API/execution.rb +8 -44
- data/lib/mutx/API/repo.rb +7 -10
- data/lib/mutx/background_jobs/workers/executor.rb +44 -38
- data/lib/mutx/commands/install.rb +1 -1
- data/lib/mutx/commands/start.rb +1 -1
- data/lib/mutx/custom/execution.rb +1 -1
- data/lib/mutx/database/mongo_connector.rb +19 -22
- data/lib/mutx/execution.rb +1 -0
- data/lib/mutx/lib/authentication.rb +23 -0
- data/lib/mutx/lib/helpers.rb +52 -0
- data/lib/mutx/lib/middlewares/database_middleware.rb +16 -0
- data/lib/mutx/lib/middlewares/flash_middleware.rb +31 -0
- data/lib/mutx/lib/middlewares/logger_middleware.rb +13 -0
- data/lib/mutx/lib/monkey_patch.rb +28 -0
- data/lib/mutx/lib/paths.rb +80 -0
- data/lib/mutx/platforms/ruby.rb +8 -0
- data/lib/mutx/public/css/bootstrap.min.css +7 -0
- data/lib/mutx/public/css/font-awesome.min.css +4 -0
- data/lib/mutx/public/css/jquery.json-viewer.css +44 -0
- data/{favicon.ico → lib/mutx/public/img/favicon.ico} +0 -0
- data/lib/mutx/public/js/bootstrap.min.js +6 -0
- data/lib/mutx/public/js/jquery.json-viewer.js +148 -0
- data/lib/mutx/public/js/jquery.min.js +6 -0
- data/lib/mutx/{view/javascript.mote → public/js/mutx.js} +0 -5
- data/lib/mutx/public/js/notify.min.js +1 -0
- data/lib/mutx/results/result.rb +60 -68
- data/lib/mutx/results/results.rb +4 -0
- data/lib/mutx/routes.rb +85 -883
- data/lib/mutx/routes/admin_routes.rb +16 -0
- data/lib/mutx/routes/admin_routes/custom_params_routes.rb +97 -0
- data/lib/mutx/routes/admin_routes/repositories_routes.rb +35 -0
- data/lib/mutx/routes/admin_routes/tasks_routes.rb +110 -0
- data/lib/mutx/routes/api_routes.rb +49 -0
- data/lib/mutx/routes/api_routes/custom_params_routes.rb +41 -0
- data/lib/mutx/routes/api_routes/input_routes.rb +48 -0
- data/lib/mutx/routes/api_routes/repos_routes.rb +74 -0
- data/lib/mutx/routes/api_routes/results_routes.rb +50 -0
- data/lib/mutx/routes/api_routes/tasks_routes.rb +47 -0
- data/lib/mutx/routes/api_routes/tests_routes.rb +42 -0
- data/lib/mutx/routes/features_routes.rb +24 -0
- data/lib/mutx/routes/help_routes.rb +23 -0
- data/lib/mutx/routes/logs_routes.rb +22 -0
- data/lib/mutx/routes/message_routes.rb +24 -0
- data/lib/mutx/routes/repositories_routes.rb +25 -0
- data/lib/mutx/routes/results_routes.rb +53 -0
- data/lib/mutx/routes/task_results_routes.rb +25 -0
- data/lib/mutx/routes/tasks_routes.rb +67 -0
- data/lib/mutx/routes/tests_routes.rb +66 -0
- data/lib/mutx/support/change_inspector.rb +3 -3
- data/lib/mutx/support/files_cleanner.rb +12 -3
- data/lib/mutx/support/git.rb +11 -2
- data/lib/mutx/support/processes.rb +2 -2
- data/lib/mutx/support/project_type.rb +12 -0
- data/lib/mutx/tasks/task.rb +8 -2
- data/lib/mutx/version.rb +1 -1
- data/lib/mutx/view/{custom/params/delete_form.mote → admin/custom-params/_delete_form.mote} +2 -4
- data/lib/mutx/view/{custom/params/create_edit_form.mote → admin/custom-params/_form.mote} +5 -9
- data/lib/mutx/view/{custom/params/custom_param_task_deleting_box.mote → admin/custom-params/_task_deleting_box.mote} +1 -2
- data/lib/mutx/view/{custom/params → admin/custom-params}/delete.mote +1 -3
- data/lib/mutx/view/{custom/params → admin/custom-params}/edit.mote +1 -5
- data/lib/mutx/view/{custom/params/list.mote → admin/custom-params/index.mote} +8 -13
- data/lib/mutx/view/{custom/params → admin/custom-params}/new.mote +1 -5
- data/lib/mutx/view/{custom/params/custom_param_selection_box.mote → admin/custom-params/selection_box.mote} +2 -3
- data/lib/mutx/view/{list_repos.mote → admin/repositories/index.mote} +2 -6
- data/lib/mutx/view/{repos.mote → admin/repositories/new.mote} +2 -6
- data/lib/mutx/view/{tasks/admin/delete_form.mote → admin/tasks/_delete_form.mote} +2 -12
- data/lib/mutx/view/{tasks/admin/create_edit_form.mote → admin/tasks/_form.mote} +6 -9
- data/lib/mutx/view/{tasks/admin → admin/tasks}/delete.mote +1 -3
- data/lib/mutx/view/{tasks/admin → admin/tasks}/edit.mote +1 -4
- data/lib/mutx/view/{tasks/admin/list.mote → admin/tasks/index.mote} +5 -10
- data/lib/mutx/view/{tasks/admin → admin/tasks}/new.mote +1 -5
- data/lib/mutx/view/{tasks/admin/view.mote → admin/tasks/show.mote} +1 -3
- data/lib/mutx/view/body.mote +13 -51
- data/lib/mutx/view/{custom/params.mote → custom-params/_custom_params.mote} +3 -4
- data/lib/mutx/view/{custom/params → custom-params/types}/json.mote +0 -0
- data/lib/mutx/view/{custom/params → custom-params/types}/select_list.mote +0 -0
- data/lib/mutx/view/{custom/params → custom-params/types}/text.mote +0 -0
- data/lib/mutx/view/error_handler.mote +4 -54
- data/lib/mutx/view/features/{feature.mote → file.mote} +0 -0
- data/lib/mutx/view/features/index.mote +9 -0
- data/lib/mutx/view/git_information.mote +2 -8
- data/lib/mutx/view/help/{main.mote → _main.mote} +0 -0
- data/lib/mutx/view/help/{page.mote → _page.mote} +0 -0
- data/lib/mutx/view/help/{search_result.mote → _search_result.mote} +0 -0
- data/lib/mutx/view/help/index.mote +38 -0
- data/lib/mutx/view/layout/flash.mote +7 -0
- data/lib/mutx/view/{footer.mote → layout/footer.mote} +1 -1
- data/lib/mutx/view/layout/javascript.mote +6 -0
- data/lib/mutx/view/{modals.mote → layout/modals.mote} +0 -0
- data/lib/mutx/view/layout/navigation_bar.mote +88 -0
- data/lib/mutx/view/{styles.mote → layout/styles.mote} +10 -0
- data/lib/mutx/view/logs/{logs.mote → index.mote} +1 -1
- data/lib/mutx/view/logs/show.mote +3 -0
- data/lib/mutx/view/repositories/_repository.mote +7 -0
- data/lib/mutx/view/repositories/index.mote +23 -0
- data/lib/mutx/view/repositories/show.mote +21 -0
- data/lib/mutx/view/results/{detailed_info.mote → _result.mote} +5 -5
- data/lib/mutx/view/results/console.mote +63 -106
- data/lib/mutx/view/results/{all.mote → index.mote} +18 -24
- data/lib/mutx/view/sections.rb +36 -24
- data/lib/mutx/view/task_results/_result.mote +57 -0
- data/lib/mutx/view/{results/result.mote → task_results/_result_item.mote} +6 -5
- data/lib/mutx/view/task_results/index.mote +35 -0
- data/lib/mutx/view/tasks/_task.mote +90 -0
- data/lib/mutx/view/tasks/index.mote +61 -0
- data/lib/mutx/view/tasks/show.mote +167 -0
- data/lib/mutx/view/tests/_test.mote +90 -0
- data/lib/mutx/view/tests/index.mote +59 -0
- data/lib/mutx/view/tests/show.mote +172 -0
- data/lib/mutx/view/view.rb +172 -10
- metadata +89 -50
- data/lib/mutx/database/middleware.rb +0 -18
- data/lib/mutx/view/features.mote +0 -57
- data/lib/mutx/view/features/features_list.mote +0 -10
- data/lib/mutx/view/help.mote +0 -75
- data/lib/mutx/view/logs/log.mote +0 -3
- data/lib/mutx/view/message.mote +0 -8
- data/lib/mutx/view/navigation_bar.mote +0 -67
- data/lib/mutx/view/results/results.mote +0 -112
- data/lib/mutx/view/tasks/message.mote +0 -37
- data/lib/mutx/view/tasks/task.mote +0 -167
- data/lib/mutx/view/tasks/task_item.mote +0 -77
- data/lib/mutx/view/tasks/tasks.mote +0 -74
@@ -0,0 +1,50 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
module Mutx
|
3
|
+
module Routes
|
4
|
+
module Api
|
5
|
+
module Results
|
6
|
+
class Routes < App
|
7
|
+
define do
|
8
|
+
on get do
|
9
|
+
|
10
|
+
on ":id/data" do |result_id|
|
11
|
+
query_string = Mutx::Support::QueryString.new req
|
12
|
+
output = Mutx::API::Result.data(result_id, query_string.raw)
|
13
|
+
res.write output.to_json
|
14
|
+
end
|
15
|
+
|
16
|
+
on ":id/status" do |result_id|
|
17
|
+
output = Mutx::API::Result.status(result_id)
|
18
|
+
res.write output.to_json
|
19
|
+
end
|
20
|
+
|
21
|
+
on ":id/output" do |result_id|
|
22
|
+
output = Mutx::API::Result.output(result_id)
|
23
|
+
res.write output.to_json
|
24
|
+
end
|
25
|
+
|
26
|
+
on "last_notified/:quantity" do |quantity|
|
27
|
+
output = Mutx::API::Result.last_notified quantity
|
28
|
+
res.write output
|
29
|
+
end
|
30
|
+
|
31
|
+
on ":id/reset" do |result_id|
|
32
|
+
result = Mutx::API::Execution.reset(result_id)
|
33
|
+
res.write result.to_json
|
34
|
+
end
|
35
|
+
|
36
|
+
on ":id" do |result_id|
|
37
|
+
res.write(Mutx::API::Result.info(result_id).to_json)
|
38
|
+
end
|
39
|
+
|
40
|
+
on root do
|
41
|
+
output = Mutx::API::Results.show()
|
42
|
+
res.write output.to_json
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
module Mutx
|
3
|
+
module Routes
|
4
|
+
module Api
|
5
|
+
module Tasks
|
6
|
+
class Routes < App
|
7
|
+
define do
|
8
|
+
on get do
|
9
|
+
|
10
|
+
on ":id/results" do |task_id|
|
11
|
+
result = Mutx::API::Results.for_task_id(task_id)
|
12
|
+
res.write result.to_json
|
13
|
+
end
|
14
|
+
|
15
|
+
on ":task/run" do |task_name|
|
16
|
+
task_name.gsub!("%20"," ")
|
17
|
+
query_string = Mutx::Support::QueryString.new req
|
18
|
+
result = Mutx::API::Execution.start task_name, query_string.values
|
19
|
+
res.write result.to_json
|
20
|
+
end
|
21
|
+
|
22
|
+
on ":id/status" do |task_id|
|
23
|
+
output = Mutx::API::Task.status(task_id)
|
24
|
+
res.write output.to_json
|
25
|
+
end
|
26
|
+
|
27
|
+
on "running" do
|
28
|
+
output = Mutx::API::Tasks.list({running:true, type:"task"})
|
29
|
+
res.write output.to_json
|
30
|
+
end
|
31
|
+
|
32
|
+
on ":id" do |task_id|
|
33
|
+
output = Mutx::API::Task.info(task_id)
|
34
|
+
res.write output.to_json
|
35
|
+
end
|
36
|
+
|
37
|
+
on root do
|
38
|
+
output = Mutx::API::Tasks.list({type:"task"})
|
39
|
+
res.write output.to_json
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
module Mutx
|
3
|
+
module Routes
|
4
|
+
module Api
|
5
|
+
module Tests
|
6
|
+
class Routes < App
|
7
|
+
define do
|
8
|
+
on get do
|
9
|
+
|
10
|
+
on ":task/run" do |task_name|
|
11
|
+
task_name.gsub!("%20"," ")
|
12
|
+
query_string = Mutx::Support::QueryString.new req
|
13
|
+
result = Mutx::API::Execution.start task_name, query_string.values
|
14
|
+
res.write result.to_json
|
15
|
+
end
|
16
|
+
|
17
|
+
on ":id/status" do |task_id|
|
18
|
+
output = Mutx::API::Task.status(task_id)
|
19
|
+
res.write output.to_json
|
20
|
+
end
|
21
|
+
|
22
|
+
on "running" do
|
23
|
+
output = Mutx::API::Tasks.list({running:true, type:"task"})
|
24
|
+
res.write output.to_json
|
25
|
+
end
|
26
|
+
|
27
|
+
on ":id" do |task_id|
|
28
|
+
output = Mutx::API::Task.info(task_id)
|
29
|
+
res.write output.to_json
|
30
|
+
end
|
31
|
+
|
32
|
+
on root do
|
33
|
+
output = Mutx::API::Tasks.list({type:"test"})
|
34
|
+
res.write output.to_json
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module Mutx
|
4
|
+
module Routes
|
5
|
+
module Features
|
6
|
+
class Routes < App
|
7
|
+
define do
|
8
|
+
|
9
|
+
on get do
|
10
|
+
|
11
|
+
on root do
|
12
|
+
features = Mutx::Cucumber::Features.feature_files_names
|
13
|
+
res.write view('Features', features: features)
|
14
|
+
end
|
15
|
+
|
16
|
+
on 'file' do
|
17
|
+
res.write view('Feature', feature_path: query_string.values['path'])
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module Mutx
|
4
|
+
module Routes
|
5
|
+
module Help
|
6
|
+
class Routes < App
|
7
|
+
define do
|
8
|
+
|
9
|
+
on get do
|
10
|
+
|
11
|
+
on ":page" do |page|
|
12
|
+
res.write view('Help', page: page)
|
13
|
+
end
|
14
|
+
|
15
|
+
on root do
|
16
|
+
res.redirect path_for(:help_page, page: 'main')
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module Mutx
|
4
|
+
module Routes
|
5
|
+
module Logs
|
6
|
+
class Routes < App
|
7
|
+
define do
|
8
|
+
|
9
|
+
on get do
|
10
|
+
on root do
|
11
|
+
res.write view('Logs')
|
12
|
+
end
|
13
|
+
|
14
|
+
on ":log_name" do |log_name|
|
15
|
+
res.write view('Log', log_name: log_name)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module Mutx
|
4
|
+
module Routes
|
5
|
+
module Message
|
6
|
+
class Routes < App
|
7
|
+
define do
|
8
|
+
|
9
|
+
on get do
|
10
|
+
on "task/:result_id" do |result_id|
|
11
|
+
res.write view('body', 'Task Message', query_string: query_string,
|
12
|
+
result_id: result_id)
|
13
|
+
end
|
14
|
+
|
15
|
+
on "test/:result_id" do |result_id|
|
16
|
+
res.write view('body', 'Test Message', query_string: query_string,
|
17
|
+
result_id: result_id)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
module Mutx
|
3
|
+
module Routes
|
4
|
+
module Repositories
|
5
|
+
class Routes < App
|
6
|
+
define do
|
7
|
+
|
8
|
+
on get do
|
9
|
+
|
10
|
+
on root do
|
11
|
+
repositories = Mutx::API::Repo.all.to_a
|
12
|
+
res.write view('Repositories', repositories: repositories)
|
13
|
+
end
|
14
|
+
|
15
|
+
# INVERTIR /log con /:result_id
|
16
|
+
on ":repository_id" do |repository_id|
|
17
|
+
repository = Mutx::API::Repo.get_data(repository_id)
|
18
|
+
res.write view('Repository', repository: repository)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
module Mutx
|
3
|
+
module Routes
|
4
|
+
module Results
|
5
|
+
class Routes < App
|
6
|
+
define do
|
7
|
+
|
8
|
+
on get do
|
9
|
+
|
10
|
+
on root do
|
11
|
+
results = Mutx::API::Results.show()["results"]
|
12
|
+
res.write view('Results', results: results)
|
13
|
+
end
|
14
|
+
|
15
|
+
# INVERTIR /log con /:result_id
|
16
|
+
on ":result_id/log" do |result_id|
|
17
|
+
result = Mutx::Results::Result.get(result_id)
|
18
|
+
res.write view('Result Console', result: result)
|
19
|
+
end
|
20
|
+
|
21
|
+
# INVERTIR /log con /:result_id
|
22
|
+
on ":result_id/report" do |result_id|
|
23
|
+
result = Mutx::Results::Result.get(result_id)
|
24
|
+
res.redirect "/404/There%20is%20no%20result%20for%20id=#{result_id}" if result.nil?
|
25
|
+
result.mark_as_saw! if (result.finished? or result.stopped?)
|
26
|
+
if result.finished? and !result.stopped? and result.html_report.size > 0
|
27
|
+
res.write view('Result Report', result: result)
|
28
|
+
#else
|
29
|
+
# res.redirect "results/#{result_id}/log"
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
on ':result_id/reset' do |result_id|
|
34
|
+
result = Mutx::Results::Result.get result_id
|
35
|
+
task = Mutx::Tasks::Task.get_task_with result.task["name"]
|
36
|
+
if task.blocked_stop.eql? "on"
|
37
|
+
with_authentication do
|
38
|
+
value = Mutx::API::Execution.reset(result_id)
|
39
|
+
flash[:info] = value['message']
|
40
|
+
res.redirect path_for(:results_log, result_id: result_id)
|
41
|
+
end
|
42
|
+
else
|
43
|
+
value = Mutx::API::Execution.reset(result_id)
|
44
|
+
flash[:info] = value['message']
|
45
|
+
res.redirect path_for(:task_results_index, query_string: { task_name: result.task['name']})
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
module Mutx
|
3
|
+
module Routes
|
4
|
+
module TaskResults
|
5
|
+
class Routes < App
|
6
|
+
define do
|
7
|
+
|
8
|
+
on get do
|
9
|
+
|
10
|
+
on root do
|
11
|
+
tasks = Mutx::API::Tasks.list({})["tasks"]
|
12
|
+
task_name = query_string.values['task_name']
|
13
|
+
if task_name
|
14
|
+
tasks.select!{ |task|
|
15
|
+
task['name'] == task_name
|
16
|
+
}
|
17
|
+
end
|
18
|
+
res.write view('Task Results', tasks: tasks)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module Mutx
|
4
|
+
module Routes
|
5
|
+
module Tasks
|
6
|
+
class Routes < App
|
7
|
+
define do
|
8
|
+
|
9
|
+
on get do
|
10
|
+
on root do
|
11
|
+
list = Mutx::API::Tasks.list(type: 'task')['tasks'].sort_by!{ |task| task['name'].downcase }
|
12
|
+
tasks = []
|
13
|
+
list.each do |task|
|
14
|
+
res = Mutx::Database::MongoConnector.running_results_for_task_id(task['_id'])
|
15
|
+
tasks << task if res.empty?
|
16
|
+
tasks.unshift(task) if !res.empty?
|
17
|
+
end
|
18
|
+
res.write view('Tasks', tasks: tasks)
|
19
|
+
end
|
20
|
+
|
21
|
+
on ":task_name/status" do |task_name|
|
22
|
+
task = Mutx::Tasks::Task.get_task_with(task_name)
|
23
|
+
if task.blocked.eql? "on"
|
24
|
+
with_authentication do
|
25
|
+
status = task.switch!
|
26
|
+
flash[:success] = "The status of the Task change to #{status}"
|
27
|
+
res.redirect path_for(:tasks_index)
|
28
|
+
end
|
29
|
+
else
|
30
|
+
task.switch!
|
31
|
+
flash[:success] = "The status of the Task change to #{status}"
|
32
|
+
res.redirect path_for(:tasks_index)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
on ':task_name/run' do |task_name|
|
37
|
+
result = Mutx::API::Execution.start(task_name, query_string.values)
|
38
|
+
Mutx::Support::Log.debug "result => #{result}"
|
39
|
+
if result["execution_id"]
|
40
|
+
flash[:success] = result['started_message']
|
41
|
+
else
|
42
|
+
flash[:error] = result['message']
|
43
|
+
end
|
44
|
+
res.redirect path_for(:tasks_show, task_name: task_name)
|
45
|
+
end
|
46
|
+
|
47
|
+
on ':task_name' do |task_name|
|
48
|
+
task = Mutx::Tasks::Task.get_task_with(task_name)
|
49
|
+
raise Mutx::Error::TaskNotFound.new("Could not find task with name #{task_name}") unless Mutx::Tasks.is_there_task_with? task_name
|
50
|
+
task_data = Mutx::API::Task.info_for_name(task_name)
|
51
|
+
Mutx::Support::Log.debug "task_name => #{task_name}"
|
52
|
+
if task.blocked.eql? "on"
|
53
|
+
with_authentication do
|
54
|
+
res.write view('Task', task: task_data['task'])
|
55
|
+
end
|
56
|
+
else
|
57
|
+
res.write view('Task', task: task_data['task'])
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
@@ -0,0 +1,66 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module Mutx
|
4
|
+
module Routes
|
5
|
+
module Tests
|
6
|
+
class Routes < App
|
7
|
+
define do
|
8
|
+
|
9
|
+
on get do
|
10
|
+
on root do
|
11
|
+
list = Mutx::API::Tasks.list(type: 'test')['tasks'].sort_by!{ |test| test['name'].downcase }
|
12
|
+
tests = []
|
13
|
+
list.each do |test|
|
14
|
+
res = Mutx::Database::MongoConnector.running_results_for_task_id(test['_id'])
|
15
|
+
tests << test if res.empty?
|
16
|
+
tests.unshift(test) if !res.empty?
|
17
|
+
end
|
18
|
+
res.write view('Tests', tests: tests)
|
19
|
+
end
|
20
|
+
|
21
|
+
on ':test_name/run' do |test_name|
|
22
|
+
result = Mutx::API::Execution.start(test_name, query_string.values)
|
23
|
+
Mutx::Support::Log.debug "result => #{result}"
|
24
|
+
if result["execution_id"]
|
25
|
+
flash[:success] = result['started_message']
|
26
|
+
else
|
27
|
+
flash[:error] = result['message']
|
28
|
+
end
|
29
|
+
res.redirect path_for(:tests_show, test_name: test_name)
|
30
|
+
end
|
31
|
+
|
32
|
+
on ":test_name/status" do |test_name|
|
33
|
+
test = Mutx::Tasks::Task.get_task_with(test_name)
|
34
|
+
if test.blocked.eql? "on"
|
35
|
+
with_authentication do
|
36
|
+
status = test.switch!
|
37
|
+
flash[:success] = "The status of the Task change to #{status}"
|
38
|
+
res.redirect path_for(:tasks_index)
|
39
|
+
end
|
40
|
+
else
|
41
|
+
task.switch!
|
42
|
+
flash[:success] = "The status of the Task change to #{status}"
|
43
|
+
res.redirect path_for(:tasks_index)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
on ":test_name" do |test_name|
|
48
|
+
test = Mutx::Tasks::Task.get_task_with test_name
|
49
|
+
raise Mutx::Error::TaskNotFound.new("Could not find test with name #{test_name}") unless Mutx::Tasks.is_there_task_with? test_name
|
50
|
+
test_data = Mutx::API::Task.info_for_name(test_name)
|
51
|
+
if test.blocked.eql? "on"
|
52
|
+
with_authentication do
|
53
|
+
Mutx::Support::Log.debug "test_name => #{test_name}"
|
54
|
+
res.write view("Test", test: test_data['task'])
|
55
|
+
end
|
56
|
+
else
|
57
|
+
res.write view('Test', test: test_data['task'])
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|