Code Monkey home page Code Monkey logo

rucio's Introduction

Rucio - Scientific Data Management

Rucio is a software framework that provides functionality to organize, manage, and access large volumes of scientific data using customisable policies. The data can be spread across globally distributed locations and across heterogeneous data centers, uniting different storage and network technologies as a single federated entity. Rucio offers advanced features such as distributed data recovery or adaptive replication, and is highly scalable, modular, and extensible. Rucio has been originally developed to meet the requirements of the high-energy physics experiment ATLAS, and is continuously extended to support LHC experiments and other diverse scientific communities.

Documentation

General information, API/REST description and guides can be found in our documentation or on our webpage.

Try it out

We provide a dockerized environment which serves both as a demo environment and a development environment. It includes all the necessary preconfigured components for multiple storage and transfers developments.

Developers

For information on how to contribute to Rucio, please refer and follow our CONTRIBUTING guidelines. We strongly recommend to use the dockerized environment for development.

Operators

To learn how to deploy and configure Rucio, consult the documentation available online.

Getting Support

If you are looking for support, please contact us via one of our official channels.

rucio's People

Contributors

andrewlister-stfc avatar asketagarwal avatar bari12 avatar bbockelm avatar bziemons avatar cserf avatar davidgcameron avatar davidpob99 avatar dchristidis avatar elichad avatar ericvaandering avatar gabrielefronze avatar gumond avatar hahahannes avatar jamesp-epcc avatar jwackito avatar maany avatar maatthias avatar mlassnig avatar patrick-austin avatar rcarpa avatar rdimaio avatar rizart avatar ruturaj123 avatar tbeerman avatar thephisch avatar tomasjavurek avatar vigne avatar vingar avatar wguanicedew avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rucio's Issues

rsemanager add domain to all method signatures

The idea is to add the domain to all method signatures so that clients/conveyor can specify which domain should be used to create protocols/pathes.

  • First iteration: Add domain to method signature, without implementing any functionality yet.
  • Second iteration: The right output is generated depending on domain input. If no domain is given, wan is used, if wan does not exist, lan is used
  • Third iteration: Client / Conveyor have to call the methods with the right domain.

Migrated from JIRA RUCIO-2778

Documentation update

The documentation on the CLI http://rucio.cern.ch/client_howto.html needs to be updated, e.g. :

Download specific files from a dataset

This operation is still not supported by rucio, but will be available soon.

Download a sample of n random files from a dataset

This operation is still not supported by rucio, but will be available soon.

Migrated from JIRA RUCIO-2498

Double submission of messages due to ineffective protection of double selection

Hermes does not protect against double selection of messages, specifically in a phase where the partitions are not well established yet, e.g. during a restart.
It does retrieve the messages with a SELECT FOR UPDATE, but the retrieval only takes ms and after that the row locks are given up. For it to be effective the locks have to be held until the message is removed from the table. This might not be a good idea to do.
One possible solution would be to have an additional state column and the retrieve_message function SELECTS the messages (with for update) and updates their state to SUBMITTING. In subsequent retrieve calls, only messages in state WAITING or which are in the SUBMITTING state for more than 10min are selected.
To be discussed.

Migrated from JIRA RUCIO-2722

Declare all replicas of a file lost

It would be very convenient for this command to declare all replicas of the files lost:

[dcameron@lxplus078] ~> rucio-admin replicas declare-bad --reason "bad guid metadata" mc15_13TeV:HITS.10672838._007007.pool.root.1 mc15_13TeV:HITS.10672838._007080.pool.root.1
No JSON object could be decoded
Rucio exited with an unexpected/unknown error, please provide the traceback below to the developers.
Traceback (most recent call last):
File "/cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/x86_64/rucio-clients/1.10.1/bin/rucio-admin", line 107, in new_funct
return function(*args, **kwargs)
File "/cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/x86_64/rucio-clients/1.10.1/bin/rucio-admin", line 730, in declare_bad_file_replicas
non_declared = client.declare_bad_file_replicas(pfns=chunk, reason=args.reason)
File "/cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/x86_64/rucio-clients/1.10.1/lib/python2.7/site-packages/rucio/client/replicaclient.py", line 43, in declare_bad_file_replicas
exc_cls, exc_msg = self._get_exception(headers=r.headers, status_code=r.status_code, data=r.content)
File "/cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/x86_64/rucio-clients/1.10.1/lib/python2.7/site-packages/rucio/client/baseclient.py", line 191, in _get_exception
data = parse_response(data)
File "/cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/x86_64/rucio-clients/1.10.1/lib/python2.7/site-packages/rucio/common/utils.py", line 193, in parse_response
return json.loads(data, object_hook=datetime_parser)
File "/usr/lib64/python2.6/json/_init_.py", line 318, in loads
return cls(encoding=encoding, **kw).decode(s)
File "/usr/lib64/python2.6/json/decoder.py", line 319, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib64/python2.6/json/decoder.py", line 338, in raw_decode
raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded

At least a proper error message should be returned instead of a stacktrace.

Migrated from JIRA RUCIO-2622

[R2D2] Check quota has no effect

Hello,
I'm the current DAST shifter and a user reported that hitting the 'Check quota' button on R2D2 hangs forever.
I checked with firefox 52.0.2 on ubuntu 16.04 and I have the same problem. The debug console points to a java script error: "option.errors s not a function".
Laurent

Migrated from JIRA RUCIO-2627

Messages payload are limited to 4000 characters and throw exception

When inserting messages to hermes which are too long this throws a DB exception

DatabaseException: (raised as a result of Query-invoked autoflush; consider using a session.no_autoflush block if this flush is occurring prematurely) (cx_Oracle.DatabaseError) ORA-01461: can bind a LONG value only for insert into a LONG column [SQL: 'INSERT INTO atlas_rucio.messages (id, event_type, payload, updated_at, created_at) VALUES (:id, :event_type, :payload, :updated_at, :created_at)'] [parameters: {'id': , 'created_at': datetime.datetime(2017, 5, 18, 14, 26, 32, 316246), 'event_type': 'email', 'updated_at': datetime.datetime(2017, 5, 18, 14, 26, 32, 316240), 'payload': '{"body": "A new rule has been requested for approval in Rucio.\\n\\nRule description:\\n\\n ID: 89593c3ea1e449cea3b2dbbd81033b06\\ ... (3749 characters truncated) ... TED MESSAG\\n", "to": ["[email protected]"], "subject": "[RUCIO] Request to approve replication rule 89593c3ea1e449cea3b2dbbd81033b06"}'}]

We have to look into if we can update the DB to allow longer messages, but in anyway, hermes should protect against this.

Migrated from JIRA RUCIO-2662

Error in the light reaper with S3 RSEs

4:24 PM
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/rucio/rse/protocols/s3boto.py", line 180, in connect
calling_format=OrdinaryCallingFormat())
File "/usr/lib/python2.7/site-packages/boto/init.py", line 141, in connect_s3
return S3Connection(aws_access_key_id, aws_secret_access_key, **kwargs)
File "/usr/lib/python2.7/site-packages/boto/s3/connection.py", line 191, in init
validate_certs=validate_certs, profile_name=profile_name)
File "/usr/lib/python2.7/site-packages/boto/connection.py", line 569, in init
host, config, self.provider, self._required_auth_capability())
File "/usr/lib/python2.7/site-packages/boto/auth.py", line 987, in get_auth_handler
ready_handlers.append(handler(host, config, provider))
File "/usr/lib/python2.7/site-packages/boto/auth.py", line 144, in init
HmacKeys.init(self, host, config, provider)
File "/usr/lib/python2.7/site-packages/boto/auth.py", line 81, in init
self.update_provider(provider)
File "/usr/lib/python2.7/site-packages/boto/auth.py", line 148, in update_provider
super(HmacAuthV1Handler, self).update_provider(provider)
File "/usr/lib/python2.7/site-packages/boto/auth.py", line 85, in update_provider
self._hmac = hmac.new(self._provider.secret_key.encode('utf-8'),
AttributeError: 'tuple' object has no attribute 'encode'

Migrated from JIRA RUCIO-2657

Include the network domain (wan, lan) in list_replicas

Motivation

For local usage, a combination of wan/lan attributes with rse_expressions will provide the local or remote replicas to a site.

Modification

added lan/wan in list_replicas (clients/rest/server). default wan

File download from WebUI

Lots of sites already support WebDAV downloads, so it would be a nice feature if we would have download directly from the WebUI. So when users list the files in a dataset their can just click a button and the files / one file would be directly downloaded to their machine.

Migrated from JIRA RUCIO-1630

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.