Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TES Support: Implementing adapter-service for TES #749

Open
wants to merge 239 commits into
base: develop
Choose a base branch
from

Conversation

SilinPavel
Copy link
Member

What is TES

Task Execution Specification - https://github.com/ga4gh/task-execution-schemas

The Task Execution Service (TES) API is an effort to define a standardized schema and API for describing batch execution tasks.

A task defines a set of input files, a set of (Docker) containers and commands to run, a set of output files, and some other logging and metadata.
Why do we need it

Cloud Pipeline Platform provides convenient way to run a lot of types of tasks. But to be able easily integrate our CP Platform with a lot of already developed platforms (such as Cromwell) we need to provide common way to interact with CP Platform.

One of existing solutions would be implement TES API.

ilya-ugr and others added 30 commits August 11, 2019 22:49
EPMCMBIBPC-2758 Done. Empty gradle module created.
…ded WebConfiguration class and simple ResponseEntity<> implementation
…K' response to "/v1/tasks/service-info" endpoint
… Configuring swagger paths to controller package and also tasks
* simple test tasks service implemented. injected to TesAdapterController and also in ComponentScan

* implemented task entities with swagger-codegen and task_execution.swagger.json

* update entities imports, added @DaTa annotation. Erased equals(), hashCode() and toString(), methods, and also Getters and Setters. Relocated @ApiModelProperty -s to proper places.

* updated entities implementation. Removed unused methods.

* updated entities implementation. Removed constructors from enum-classes. Added @AllArgsConstructor and @tostring annotations for them.
* created TesTaskService, injected if to TesAdapterController

* refactoring TesTaskService(change from class to interface)

* add TesTaskImpl
* add MappingJackson2HttpMessageConverter

* refactored MappingJackson2HttpMessageConverter

* refactored MappingJackson2HttpMessageConverter(ijected ComponentScan)

* refactoring TesSwaggerCongig. Delete unnecessary code and two unnecessary import

* refactoring CustomConverter

* refactoring code into good Code style
…eline into f_submit_get_cancel_taskmethods

# Conflicts:
#	tes-adapter/src/main/java/com/epam/pipeline/tesadapter/TesAdapterApplication.java
#	tes-adapter/src/main/java/com/epam/pipeline/tesadapter/controller/TesAdapterController.java
#	tes-adapter/src/main/java/com/epam/pipeline/tesadapter/entity/TesCancelTaskResponse.java
#	tes-adapter/src/main/java/com/epam/pipeline/tesadapter/entity/TesCreateTaskResponse.java
#	tes-adapter/src/main/java/com/epam/pipeline/tesadapter/entity/TesExecutor.java
#	tes-adapter/src/main/java/com/epam/pipeline/tesadapter/entity/TesExecutorLog.java
#	tes-adapter/src/main/java/com/epam/pipeline/tesadapter/entity/TesFileType.java
#	tes-adapter/src/main/java/com/epam/pipeline/tesadapter/entity/TesInput.java
#	tes-adapter/src/main/java/com/epam/pipeline/tesadapter/entity/TesListTasksResponse.java
#	tes-adapter/src/main/java/com/epam/pipeline/tesadapter/entity/TesOutput.java
#	tes-adapter/src/main/java/com/epam/pipeline/tesadapter/entity/TesOutputFileLog.java
#	tes-adapter/src/main/java/com/epam/pipeline/tesadapter/entity/TesResources.java
#	tes-adapter/src/main/java/com/epam/pipeline/tesadapter/entity/TesServiceInfo.java
#	tes-adapter/src/main/java/com/epam/pipeline/tesadapter/entity/TesState.java
#	tes-adapter/src/main/java/com/epam/pipeline/tesadapter/entity/TesTask.java
#	tes-adapter/src/main/java/com/epam/pipeline/tesadapter/entity/TesTaskLog.java
#	tes-adapter/src/main/java/com/epam/pipeline/tesadapter/service/TesTaskService.java
------------------
Added stubbed implementations for all three methods submit/get/cancel - TesTask
…ass imports. Changed settings to not use wildcard import.
* add EPMCMBIBPC-2764 Task

* add RequestParam into listTesTasks method

* add taskView Enum and refactoring TesAdapterControll

* refactoring TesAdapterControll
…eline into f_submit_get_cancel_taskmethods

# Conflicts:
#	tes-adapter/src/main/java/com/epam/pipeline/tesadapter/controller/TesAdapterController.java

=========
added TaskView enum as a parameter in method getTesTask().
* simple test tasks service implemented. injected to TesAdapterController and also in ComponentScan

* implemented task entities with swagger-codegen and task_execution.swagger.json

* added stubbed methods submit/cancel/get-task. Reformatting entities imports. added TES-API interface.

* update TesAdapterController. changed import wildcard "*" to single-class imports. Changed settings to not use wildcard import.

* update TesAdapterController. removed optional value for @PathVariable

* update TesAdapterController. changed annotation @PathVariable to @RequestParam. Add appropriate modifications to the last one.

* Added TesExceptionHandler. injected Slf4j logger, HttpStatus stubbed as INTERNAL_SERVER_ERROR.

* add EPMCMBIBPC-2764 Task (#13)

* add EPMCMBIBPC-2764 Task

* add RequestParam into listTesTasks method

* add taskView Enum and refactoring TesAdapterControll

* refactoring TesAdapterControll

* PMD & checkstyle fix

* Merging with current state of tes-support remote branch. Add needed changes to Controller.
* added new module "tes-adapter" in root directory "cloud-pipeline"

* finished sub-task 2759. Added basic Spring Web-Application in tes-adapter module. Create standalone JAR with "OK" response in endpoint "/v1/tasks/service-info" of URL

* impl logger to tes-module. Updated build.gradle and added logger-xml config to resources.

* removed Logger for saml, via unnecessary reasons. Changed Logger name com.epam.pipeline to com.epam.pipeline.tesadapter

* Delete TesAdaptorsController

I pushed twice unnecessary file, so I removed it, because we already have proper Controller
* simple test tasks service implemented. injected to TesAdapterController and also in ComponentScan

* implemented task entities with swagger-codegen and task_execution.swagger.json

* added stubbed methods submit/cancel/get-task. Reformatting entities imports. added TES-API interface.

* update TesAdapterController. changed import wildcard "*" to single-class imports. Changed settings to not use wildcard import.

* update TesAdapterController. removed optional value for @PathVariable

* update TesAdapterController. changed annotation @PathVariable to @RequestParam. Add appropriate modifications to the last one.
ilya-ugr and others added 23 commits October 17, 2019 15:23
# Conflicts:
#	settings.gradle
add CP_TES_WHITE_IPV4_CIDR into properties and describes into readme
couple refactoring of swagger-page titles
@SilinPavel SilinPavel changed the title [WIP] TES Support: Implementing adapter-service for TES TES Support: Implementing adapter-service for TES Oct 30, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants