From 4d0a89e03d910c43b79c35038ab48bcdeba43680 Mon Sep 17 00:00:00 2001 From: Martin Barisits Date: Wed, 27 May 2020 16:16:43 +0200 Subject: [PATCH] Clients: Raise DIDNotFound for list_rules if did does not exist; Fix #3617 --- lib/rucio/core/rule.py | 1 + lib/rucio/web/rest/webpy/v1/did.py | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/rucio/core/rule.py b/lib/rucio/core/rule.py index cf494eae56..ac70d9dd0e 100644 --- a/lib/rucio/core/rule.py +++ b/lib/rucio/core/rule.py @@ -855,6 +855,7 @@ def list_associated_rules_for_file(scope, name, session=None): :raises: RucioException """ + rucio.core.did.get_did(scope=scope, name=name, session=session) # Check if the did acually exists query = session.query(models.ReplicationRule).\ with_hint(models.ReplicaLock, "INDEX(LOCKS LOCKS_PK)", 'oracle').\ join(models.ReplicaLock, models.ReplicationRule.id == models.ReplicaLock.rule_id).\ diff --git a/lib/rucio/web/rest/webpy/v1/did.py b/lib/rucio/web/rest/webpy/v1/did.py index 6571af1bd1..aa21e7b8e7 100755 --- a/lib/rucio/web/rest/webpy/v1/did.py +++ b/lib/rucio/web/rest/webpy/v1/did.py @@ -20,7 +20,7 @@ # - Mario Lassnig , 2012-2018 # - Yun-Pin Sun , 2013 # - Cedric Serfon , 2014-2018 -# - Martin Baristis , 2014-2015 +# - Martin Baristis , 2014-2020 # - Hannes Hansen , 2018-2019 # - Ruturaj Gujar, , 2019 # @@ -703,6 +703,8 @@ def GET(self, scope, name): try: for rule in list_associated_replication_rules_for_file(scope=scope, name=name): yield dumps(rule, cls=APIEncoder) + '\n' + except DataIdentifierNotFound as error: + raise generate_http_error(404, 'DataIdentifierNotFound', error.args[0]) except RucioException as error: raise generate_http_error(500, error.__class__.__name__, error.args[0]) except Exception as error: