Description
Rucio is a data management system for modern large-scale scientific experiments. It allows experiments to deal with vast amounts of data in a scalable, modular, and flexible way. The web interface of Rucio represents a common way of interacting with Rucio. It allows users to perform all basic operations, including replication of data or searching for it, in the most user-friendly way. One important feature that is still missing, is the ability of downloading datasets with minimal effort. Datasets are logical collections of files and are a common way of structuring data in Rucio. Although it is already possible to download single files through the web interface, to download a dataset the user would need to manually download file after file. The need of authentication to the storage system using certificates further complicates the process a. With single file download the certificate has to be selected for each download separately. Thus the solution is to create web browser extensions, which will handle the authentication and automatically download the selected files of a given dataset.
Task idea
Development of a browser extension to handle metalink files generated by the Rucio backend. All current browsers use the WebExtension API and it should be portable to any browser without much effort. The plugin should handle authentication and do automatic failover if multiple replicas are reported in the metalink.
Expected results
Objective 1 - Setup a Rucio development environment and familiarise with the Rucio code
- We can serve either Docker-based development environments, or completely custom installations on UNIX-based systems.
- Firefox developer edition would be a good candidate to setup but if any experiences with other browsers are available that would work too.
- Request the necessary CERN grid certificate and install in the browser to be able access the Rucio WebUI and to download files directly from the site storages.
- Use the WebUI and familiarise with the Rucio basic concepts.
Objective 2 - Survey existing extensions
- Explore if there are already existing extensions providing similar functionality. If yes, create a overview of available features.
Objective 3 - Develop the plugin for any one of the three browsers
- Depending of the outcome of the survey maybe it’s possible to extend an already existing plugin.
- Otherwise develop a completely new one for the browser that was setup in the first objective.
Objective 4 - Port the plugin to the other two browsers
- When the plugin works as expected in the first browser extend to the other ones. As all main browser are using the WebExtensions API now this should be straightforward to do.
Objective 5 - Report
- We host weekly collaboration meetings, and we would like that the student presents at the end of GSoC a 10 minute talk about the experience.
Requirements
- Python
- Web Development
- Linux development environment (bash, git, …)
Mentors
Links
Corresponding Project
Participating Organizations