# Copyright European Organization for Nuclear Research (CERN)
#
# Licensed under the Apache License, Version 2.0 (the "License");
# You may not use this file except in compliance with the License.
# You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
#
# Authors:
# - Vincent Garonne, <vincent.garonne@cern.ch>, 2013
# - Mario Lassnig, <mario.lassnig@cern.ch>, 2014
"""
Constants.
Each constant is in the format:
CONSTANT_NAME = VALUE, DESCRIPTION
VALUE is what will be stored in the DB.
DESCRIPTION is the meaningful string for client
"""
from datetime import datetime
from rucio.db.enum import DeclEnum
[docs]class AccountStatus(DeclEnum):
ACTIVE = 'ACTIVE', 'ACTIVE'
SUSPENDED = 'SUSPENDED', 'SUSPENDED'
DELETED = 'DELETED', 'DELETED'
[docs]class AccountType(DeclEnum):
USER = 'USER', 'USER'
GROUP = 'GROUP', 'GROUP'
SERVICE = 'SERVICE', 'SERVICE'
[docs]class IdentityType(DeclEnum):
X509 = 'X509', 'X509'
GSS = 'GSS', 'GSS'
USERPASS = 'USERPASS', 'USERPASS'
[docs]class ScopeStatus(DeclEnum):
OPEN = 'O', 'OPEN'
CLOSED = 'C', 'CLOSED'
DELETED = 'D', 'DELETED'
[docs]class DIDType(DeclEnum):
FILE = 'F', 'FILE'
DATASET = 'D', 'DATASET'
CONTAINER = 'C', 'CONTAINER'
DELETED_FILE = 'X', 'DELETED_FILE'
DELETED_DATASET = 'Y', 'DELETED_DATASET'
DELETED_CONTAINER = 'Z', 'DELETED_CONTAINER'
[docs]class DIDAvailability(DeclEnum):
LOST = 'L', 'LOST'
DELETED = 'D', 'DELETED'
AVAILABLE = 'A', 'AVAILABLE'
[docs]class DIDReEvaluation(DeclEnum):
ATTACH = 'A', 'ATTACH'
DETACH = 'D', 'DETACH'
[docs]class KeyType(DeclEnum):
ALL = 'ALL', 'ALL'
COLLECTION = 'COLLECTION', 'COLLECTION'
FILE = 'FILE', 'FILE'
DERIVED = 'DERIVED', 'DERIVED'
[docs]class RSEType(DeclEnum):
DISK = 'DISK', 'DISK'
TAPE = 'TAPE', 'TAPE'
[docs]class ReplicaState(DeclEnum):
AVAILABLE = 'A', 'AVAILABLE'
UNAVAILABLE = 'U', 'UNAVAILABLE'
COPYING = 'C', 'COPYING'
BEING_DELETED = 'B', 'BEING_DELETED'
BAD = 'D', 'BAD'
SOURCE = 'S', 'SOURCE'
[docs]class RuleState(DeclEnum):
REPLICATING = 'R', 'REPLICATING'
OK = 'O', 'OK'
STUCK = 'S', 'STUCK'
SUSPENDED = 'U', 'SUSPENDED'
[docs]class RuleGrouping(DeclEnum):
ALL = 'A', 'ALL'
DATASET = 'D', 'DATASET'
NONE = 'N', 'NONE'
[docs]class LockState(DeclEnum):
REPLICATING = 'R', 'REPLICATING'
OK = 'O', 'OK'
STUCK = 'S', 'STUCK'
[docs]class SubscriptionState(DeclEnum):
ACTIVE = 'A', 'ACTIVE'
INACTIVE = 'I', 'INACTIVE'
NEW = 'N', 'NEW'
UPDATED = 'U', 'UPDATED'
BROKEN = 'B', 'BROKEN'
[docs]class RequestType(DeclEnum):
TRANSFER = 'T', 'TRANSFER'
UPLOAD = 'U', 'UPLOAD'
DOWNLOAD = 'D', 'DOWNLOAD'
STAGEIN = 'I', 'STAGEIN'
STAGEOUT = 'O', 'STAGEOUT'
[docs]class RequestState(DeclEnum):
QUEUED = 'Q', 'QUEUED'
SUBMITTING = 'G', 'SUBMITTING'
SUBMITTED = 'S', 'SUBMITTED'
FAILED = 'F', 'FAILED'
DONE = 'D', 'DONE'
LOST = 'L', 'LOST'
[docs]class FTSState(DeclEnum):
SUBMITTED = 'S', 'SUBMITTED'
READY = 'R', 'READY'
ACTIVE = 'A', 'ACTIVE'
FAILED = 'F', 'FAILED'
FINISHED = 'X', 'FINISHED'
FINISHEDDIRTY = 'D', 'FINISHEDDIRTY'
CANCELED = 'C', 'CANCELED'
# Individual constants
OBSOLETE = datetime(year=1970, month=1, day=1) # Tombstone value to mark obsolete replicas.