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 backend? #359

Open
buchanae opened this issue Apr 5, 2017 · 3 comments
Open

TES backend? #359

buchanae opened this issue Apr 5, 2017 · 3 comments

Comments

@buchanae
Copy link

buchanae commented Apr 5, 2017

I'm exploring the possibility of cwltool being able to submit tasks to a TES server as a means of cluster orchestration.

As I understand it, this has been sort of tried before in funnel-client. There's also possibly something similar in arvados-cwl. I'm not sure about arvados_cwl, but I've heard it was difficult to keep funnel-client working because the integration with cwltool was tricky.

Mostly I'd like to get the opinion of the devs here who are familiar with the cwltool code. Is there a clean way to write a new executor plugin? Is this something you'd be interested in having in the cwltool codebase?

@tetron
Copy link
Member

tetron commented Apr 6, 2017

Hi @buchanae

Yes, this is something we'd like to have.

The way Arvados integrates/extends cwltool has been to add hooks to override functionality on an as-needed basis but I think we could formalize it so there is a documented way to add backends. I took a stab at documenting the current extension points here:
https://github.com/common-workflow-language/cwltool#extension-points

I think the ideal way to do this would be something like:

  1. Add a plugin system, eg support plugins for third party CWL registry APIs, etc #314
  2. Refactor so that plugins can set the extension points listed above
  3. Implement a TES plugin using those extensions

I don't have bandwidth to work on this right now, but I'm happy to support anyone who wants work on it.

@buchanae
Copy link
Author

buchanae commented Apr 6, 2017

Thanks for the info, and glad to hear you're interested.

Does #314 block working on extension points (item 2)? I'm not sure I understand #314, but it looks specific to resolving tools?

@tetron
Copy link
Member

tetron commented Apr 6, 2017

The extension points mostly already exist, but without a plugin scheme you have to create a new application which imports cwltool in order to use them (which is how arvados-cwl-runner currently works, and funnel-client).

A plugin scheme would provide necessary motivation refactor/formalize/document the extension points.

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

No branches or pull requests

2 participants