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

Create Rucio APIs for MicroServices with multi pycurl #9461

Closed
amaltaro opened this issue Dec 17, 2019 · 4 comments · Fixed by #9759
Closed

Create Rucio APIs for MicroServices with multi pycurl #9461

amaltaro opened this issue Dec 17, 2019 · 4 comments · Fixed by #9759

Comments

@amaltaro
Copy link
Contributor

Impact of the new feature
MicroServices

Is your feature request related to a problem? Please describe.
The MS Transferor implementation is not yet fully supporting Rucio. One of the reasons is because we still have to find out what are the exact APIs that best suit our needs.

Describe the solution you'd like
Implement the Common wrapper APIs for Rucio requests, using the concurrent pycurl getdata
function such that we can speed up any REST API requests.
If there are no Rucio APIs providing the information that is needed, e.g.: given a dataset, return its size, we might have to fallback to DBS (likely meaning a slower response too).

Describe alternatives you've considered
We could use the Services/Rucio module, but then we cannot take advantage of the concurrent requests. In the future we can reorganize those functions under the Common.py module and make it at least more clear and reuse as much code as we can.

Additional context
This issue is meant to address what didn't get implemented in this PR: #9457

@amaltaro
Copy link
Contributor Author

amaltaro commented Jun 8, 2020

@ericvaandering Eric, I'm planning to use the Rucio REST APIs because then we can profit of the concurrency offered by the WMCore/pycurl module. However, we have the extra complexity in the sense that we need to manage the token, and make sure that we use a valid token; and handle requests that failed due to its "unexpected" expiration.

If I'm not wrong, I think I heard you saying in one of these meetings that a "special setup" has been provided to DAS, to avoid this extra burden with the token(?) Perhaps we could look into the same thing for these CMSWEB services?

@ericvaandering
Copy link
Member

ericvaandering commented Jun 8, 2020 via email

@vkuznet
Copy link
Contributor

vkuznet commented Jun 8, 2020

@amaltaro , if you need to understand REST Rucio APIs you may use dasgoclient with proper site query and use -verbose 3 option which will print all HTTP request info such that you may understand all REST calls DAS is doing behind the scene.

@amaltaro
Copy link
Contributor Author

amaltaro commented Jun 8, 2020

Thanks Eric, Valentin. I have a prototype using Rucio REST APIs, so the basics should all be clear by now. It's just the extra burden of renewing/verifying the token.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants