elixir-cloud-aai / TEStribute

Task distribution logic for use in proTES repo
Apache License 2.0
6 stars 3 forks source link

Replace DRS and TES clients #39

Open uniqueg opened 4 years ago

uniqueg commented 4 years ago

Is your feature request related to a problem? Please describe.

Currently, TEStribute uses the simple Bravado-based clients TES-cli and DRS-cli to request task and object information required to estimate task costs and durations. However, Bravado does not appear to be under very active development and, importantly, has no plans to support OpenAPI 3.0. This is problematic since migration to OpenAPI 3.0 is planned at least for the DRS specs (see ga4gh/data-repository-service-schemas/issues/230). This seems to be a general trend across the GA4GH Cloud API service schemas, as the TRS specs already making use of OpenAPI 3.0 (https://github.com/ga4gh/tool-registry-service-schemas/blob/c343e9c64e6e480f0b5a212d93473d8aba59ed0e/openapi/openapi.yaml) and a migration for the WES specs is being discussed as well (see ga4gh/workflow-execution-service-schemas/issues/43). Moreover, TEStribute itself uses v3.0 for its API service and requires a client for testing purposes (#26). It is therefore desirable to provide a suitable replacement for the Bravado-based clients used in/for TEStribute in the medium to long term.

Describe the solution you'd like

An optimal solution is unclear, see below for some considerations/options.

Describe alternatives you've considered

As far as auto-generating client code based on OpenAPI 3.0 specs is concerned, there appear to be the following options:

Given that only a few external API endpoints are currently called withing TEStribute, a manual, low-level request-based solution is possible, too, in conjunction with other tooling for validation. It has to be considered, though, that GA4GH Cloud APIs are versioned and expected to be updated relatively frequently.

Additional context

N/A

uniqueg commented 4 years ago

Most GA4GH Cloud WS specifications are moving to adopting OpenAPI v3, so this will become critical soon.

Issues in the relevant repositories TES-cli, DRS-cli, as well as WES-cli still need to be submitted. Required changes in this repository should then be minimal.

Also see #26