Skip to content

Commit 09cbd64

Browse files
authored
Merge branch 'devel' into refactor-DAPS-1522-Query-Router-Logging-Improvements
2 parents 4eff6d5 + 727653f commit 09cbd64

File tree

8 files changed

+451
-84
lines changed

8 files changed

+451
-84
lines changed

core/database/CMakeLists.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ if( ENABLE_FOXX_TESTS )
2727
add_test(NAME foxx_path COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/tests/test_foxx.sh" -t "unit_path:")
2828
add_test(NAME foxx_version COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/tests/test_foxx.sh" -t "unit_version:")
2929
add_test(NAME foxx_support COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/tests/test_foxx.sh" -t "unit_support:")
30+
add_test(NAME foxx_user_router COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/tests/test_foxx.sh" -t "unit_user_router:")
31+
add_test(NAME foxx_task_router COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/tests/test_foxx.sh" -t "unit_task_router:")
3032
add_test(NAME foxx_authz_router COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/tests/test_foxx.sh" -t "unit_authz_router:")
3133
add_test(NAME foxx_user_router COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/tests/test_foxx.sh" -t "unit_user_router:")
3234
add_test(NAME foxx_query_router COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/tests/test_foxx.sh" -t "unit_query_router:")
@@ -53,6 +55,7 @@ if( ENABLE_FOXX_TESTS )
5355
set_tests_properties(foxx_path PROPERTIES FIXTURES_REQUIRED Foxx)
5456
set_tests_properties(foxx_user_router PROPERTIES FIXTURES_REQUIRED "Foxx;FoxxDBFixtures")
5557
set_tests_properties(foxx_query_router PROPERTIES FIXTURES_REQUIRED Foxx)
58+
set_tests_properties(foxx_task_router PROPERTIES FIXTURES_REQUIRED Foxx)
5659
set_tests_properties(foxx_unit_user_token PROPERTIES FIXTURES_REQUIRED Foxx)
5760
set_tests_properties(foxx_unit_user_model PROPERTIES FIXTURES_REQUIRED "Foxx;FoxxDBFixtures")
5861
set_tests_properties(foxx_unit_globus_collection_model PROPERTIES FIXTURES_REQUIRED "Foxx;FoxxDBFixtures")
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
"use strict";
2+
3+
const Joi = require("joi");
4+
5+
const repositoryGlobusSchema = Joi.object({
6+
repo_id: Joi.string().required(),
7+
type: Joi.string().valid(RepositoryType.GLOBUS).required(),
8+
title: Joi.string().min(1).required(),
9+
desc: Joi.string().required().allow(""),
10+
capacity: Joi.number().required(),
11+
endpoint: Joi.string().uri().required().allow(""),
12+
path: Joi.string().required().allow(""),
13+
pub_key: Joi.string().required().allow(""),
14+
address: Joi.string().required(),
15+
exp_path: Joi.string().required().allow(""),
16+
});
17+
18+
const repositoryMetadataSchema = Joi.object({
19+
repo_id: Joi.string().required(),
20+
type: Joi.string().valid(RepositoryType.METADATA).required(),
21+
title: Joi.string().min(1).required(),
22+
desc: Joi.string().required().allow(""),
23+
capacity: Joi.number().required(),
24+
});
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
"use strict";
2+
3+
const { TaskSchema } = require("./task");
4+
5+
const Joi = require("joi");
6+
7+
const SuccessResponseDirectSchema = Joi.object({
8+
execution_method: Joi.string().valid("deferred", "direct").required(),
9+
result: Joi.any(),
10+
}).required();
11+
12+
//
13+
// This function allows keeping the envelope while overwriting the
14+
// result with an arbitrary schema
15+
//
16+
function makeResponseDirectSchema(resultSchema) {
17+
return SuccessResponseDirectSchema.keys({
18+
result: resultSchema,
19+
});
20+
}
21+
22+
const SuccessResponseDeferredSchema = Joi.object({
23+
execution_method: Joi.string().valid("deferred", "direct").required(),
24+
task: TaskSchema,
25+
}).required();
26+
27+
module.exports = {
28+
SuccessResponseDeferredSchema,
29+
SuccessResponseDirectSchema,
30+
makeResponseDirectSchema,
31+
};
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
"use strict";
2+
3+
const TaskStateSchema = Joi.object({
4+
repo_id: Joi.string().required(),
5+
subject: Joi.string().required(),
6+
data_limit: Joi.number().integer().required(),
7+
rec_limit: Joi.number().integer().required(),
8+
repo_path: Joi.string().required(),
9+
}).required();
10+
11+
const TaskSchema = Joi.object({
12+
task_id: Joi.string().required(),
13+
type: Joi.number().integer().required(),
14+
status: Joi.number().integer().required(),
15+
msg: Joi.string().required(),
16+
ct: Joi.number().integer().required(),
17+
ut: Joi.number().integer().required(),
18+
client: Joi.string().required(),
19+
step: Joi.number().integer().required(),
20+
steps: Joi.number().integer().required(),
21+
state: TaskStateSchema,
22+
}).required();
23+
24+
module.exports = {
25+
TaskSchema,
26+
TaskStateSchema,
27+
};

0 commit comments

Comments
 (0)