mutx 0.1.69 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|