FileCatalogHandler

FileCatalogHandler is a simple Replica and Metadata Catalog service in the DIRAC framework

class DIRAC.DataManagementSystem.Service.FileCatalogHandler.FileCatalogHandler(handlerInitDict, trid)

Bases: FileCatalogHandlerMixin, RequestHandler

__init__(handlerInitDict, trid)

Constructor

Parameters:
  • handlerInitDict (dictionary) – Information vars for the service

  • trid (object) – Transport to use

auth_ping = ['all']
auth_refreshConfiguration = ['CSAdministrator']
auth_whoami = ['all']
export_addDataset(datasets)

Add a new dynamic dataset defined by its meta query

export_addDatasetAnnotation(datasetDict)

Add annotation to an already created dataset

export_addFile(lfns)

Register supplied files

export_addFileAncestors(lfns)

Add file ancestor information for the given list of LFNs

export_addGroup(groupName)

Add a new group to the File Catalog

export_addMetadataField(fieldName, fieldType, metaType='-d')

Add a new metadata field of the given type

export_addMetadataSet(setName, setDict)

Add a new metadata set

export_addReplica(lfns)

Register supplied replicas

export_addUser(userName)

Add a new user to the File Catalog

export_changePathGroup(lfns, recursive=False)

Get replica info for the given list of LFNs

export_changePathMode(lfns, recursive=False)

Get replica info for the given list of LFNs

export_changePathOwner(lfns, recursive=False)

Get replica info for the given list of LFNs

export_checkDataset(datasets)

Check the given dynamic dataset for changes since its definition

export_createDirectory(lfns)

Create the supplied directories

export_deleteGroup(groupName)

Delete group from the File Catalog

export_deleteMetadataField(fieldName)

Delete the metadata field

export_deleteUser(userName)

Delete user from the File Catalog

static export_echo(data)

This method is used for testing performance of the service

Parameters:

data (str) – data to be sent back to the caller

Returns:

S_OK, Value is the input data

export_exists(lfns)

Check whether the supplied paths exists

export_findDirectoriesByMetadata(metaDict, path='/')

Find all the directories satisfying the given metadata set

export_findFilesByMetadata(metaDict, path='/')

Find all the files satisfying the given metadata set

export_findFilesByMetadataDetailed(metaDict, path='/')

Find all the files satisfying the given metadata set

export_findFilesByMetadataWeb(metaDict, path, startItem, maxItems)

Find files satisfying the given metadata set

export_freezeDataset(datasets)

Freeze the contents of the dataset making it effectively static

export_getCatalogCounters()

Get the number of registered directories, files and replicas in various tables

export_getCompatibleMetadata(metaDict, path='/')

Get metadata values compatible with the given metadata subset

export_getDatasetAnnotation(datasets)

Get annotation of the given datasets

export_getDatasetFiles(datasets)

Get lfns in the given dataset

export_getDatasetParameters(datasets)

Get parameters of the given dynamic dataset as they are stored in the database

export_getDatasets(datasets)

Get parameters of the given dynamic dataset as they are stored in the database

export_getDirectoryDump(lfns)

Recursively list the contents of supplied directories

export_getDirectoryMetadata(lfns)

Get the size of the supplied directory

export_getDirectoryReplicas(lfns, allStatus=False)

Get replicas for files in the supplied directory

export_getDirectorySize(lfns, longOut=False, fromFiles=False, recursiveSum=True)

Get the size of the supplied directory

export_getDirectoryUserMetadata(path)

Get all the metadata valid for the given directory path

export_getFileAncestors(lfns, depths)

Get the status for the supplied replicas

export_getFileDescendents(lfns, depths)

Get the status for the supplied replicas

export_getFileMetadata(lfns)

Get the metadata associated to supplied lfns

export_getFileSize(lfns)

Get the size associated to supplied lfns

export_getFileUserMetadata(path)

Get all the metadata valid for the given file

export_getGroups()

Get all the groups defined in the File Catalog

export_getLFNForGUID(guids)

Get the matching lfns for given guids

export_getMetadataFields()

Get all the metadata fields

export_getMetadataSet(setName, expandFlag)

Add a new metadata set

export_getPathPermissions(lfns)

Determine the ACL information for a supplied path

export_getReplicaStatus(lfns)

Get the status for the supplied replicas

export_getReplicas(lfns, allStatus=False)

Get replicas for supplied lfns

export_getReplicasByMetadata(metaDict, path='/', allStatus=False)

Find all the files satisfying the given metadata set

export_getUsers()

Get all the users defined in the File Catalog

export_hasAccess(paths, opType)

Determine if the given op can be performed on the paths The OpType is all the operations exported

The reason for the param types is backward compatibility. Between v6r14 and v6r15, the signature of hasAccess has changed, and the two parameters were swapped.

export_isDirectory(lfns)

Determine whether supplied path is a directory

export_isFile(lfns)

Check whether the supplied lfns are files

classmethod export_isOK()

returns S_OK if DB is connected

export_listDirectory(lfns, verbose)

List the contents of supplied directories

export_ping()
export_rebuildDirectoryUsage()

Rebuild DirectoryUsage table from scratch

static export_refreshConfiguration(fromMaster)

Force refreshing the configuration data

Parameters:

fromMaster (bool) – flag to refresh from the master configuration service

export_releaseDataset(datasets)

Release the contents of the frozen dataset allowing changes in its contents

export_removeDataset(datasets)

Check the given dynamic dataset for changes since its definition

export_removeDirectory(lfns)

Remove the supplied directories

export_removeFile(lfns)

Remove the supplied lfns

export_removeMetadata(pathMetadataDict)

Remove the specified metadata for the given path

export_removeReplica(lfns)

Remove the supplied replicas

export_repairCatalog()

Repair the catalog inconsistencies

export_setFileStatus(lfns)

Remove the supplied lfns

export_setMetadata(path, metadatadict)

Set metadata parameter for the given path

export_setMetadataBulk(pathMetadataDict)

Set metadata parameter for the given path

export_setReplicaHost(lfns)

Change the registered SE for the supplied replicas

export_setReplicaStatus(lfns)

Set the status for the supplied replicas

export_updateDataset(datasets)

Update the given dynamic dataset for changes since its definition

export_whoami()

A simple whoami, returns all credential dictionary, except certificate chain object.

findFilesByMetadataWeb(metaDict, path, startItem, maxItems)

Find all the files satisfying the given metadata set

classmethod getCSOption(optionName, defaultValue=False)

Get an option from the CS section of the services

Returns:

Value for serviceSection/optionName in the CS being defaultValue the default

getRemoteAddress()

Get the address of the remote peer.

Returns:

Address of remote peer.

getRemoteCredentials()

Get the credentials of the remote peer.

Returns:

Credentials dictionary of remote peer.

getSEDump(seNames)

Return all the files at given SEs, together with checksum and size

Parameters:

seNames – StorageElement names

Returns:

S_OK with list of tuples (SEName, lfn, checksum, size)

initialize()

Initialize this instance of the handler (to be overwritten)

classmethod initializeHandler(serviceInfo)

Handler initialization

srv_disconnect(trid=None)
classmethod srv_disconnectClient(trid)
srv_getActionTuple()
classmethod srv_getCSOption(optionName, defaultValue=False)

Get an option from the CS section of the services

Returns:

Value for serviceSection/optionName in the CS being defaultValue the default

srv_getClientSetup()
srv_getClientVO()
srv_getClientVersion()
srv_getFormattedRemoteCredentials()
classmethod srv_getMonitor()
srv_getRemoteAddress()

Get the address of the remote peer.

Returns:

Address of remote peer.

srv_getRemoteCredentials()

Get the credentials of the remote peer.

Returns:

Credentials dictionary of remote peer.

classmethod srv_getServiceName()
srv_getTransportID()
classmethod srv_getURL()
classmethod srv_msgCreate(msgName)
srv_msgReply(msgObj)
classmethod srv_msgSend(trid, msgObj)
transfer_bulkFromClient(bulkId, token, bulkSize, fileHelper)
transfer_bulkToClient(bulkId, token, fileHelper)
transfer_fromClient(fileId, token, fileSize, fileHelper)
transfer_listBulk(bulkId, token, fileHelper)
transfer_toClient(jsonSENames, token, fileHelper)

This method used to transfer the SEDump to the client, formated as CSV with ‘|’ separation

Parameters:

seName – name of the se to dump

Returns:

the result of the FileHelper

types_addDataset = [<class 'dict'>]
types_addDatasetAnnotation = [<class 'dict'>]
types_addFile = [[<class 'list'>, <class 'dict'>, <class 'str'>]]
types_addFileAncestors = [<class 'dict'>]
types_addGroup = [<class 'str'>]
types_addMetadataField = [<class 'str'>, <class 'str'>, <class 'str'>]
types_addMetadataSet = [<class 'str'>, <class 'dict'>]
types_addReplica = [[<class 'list'>, <class 'dict'>, <class 'str'>]]
types_addUser = [<class 'str'>]
types_changePathGroup = [[<class 'list'>, <class 'dict'>, <class 'str'>]]
types_changePathMode = [[<class 'list'>, <class 'dict'>, <class 'str'>]]
types_changePathOwner = [[<class 'list'>, <class 'dict'>, <class 'str'>]]
types_checkDataset = [<class 'dict'>]
types_createDirectory = [[<class 'list'>, <class 'dict'>, <class 'str'>]]
types_deleteGroup = [<class 'str'>]
types_deleteMetadataField = [<class 'str'>]
types_deleteUser = [<class 'str'>]
types_echo = [<class 'str'>]
types_exists = [[<class 'list'>, <class 'dict'>, <class 'str'>]]
types_findDirectoriesByMetadata = [<class 'dict'>]
types_findFilesByMetadata = [<class 'dict'>, <class 'str'>]
types_findFilesByMetadataDetailed = [<class 'dict'>, <class 'str'>]
types_findFilesByMetadataWeb = [<class 'dict'>, <class 'str'>, <class 'int'>, <class 'int'>]
types_freezeDataset = [<class 'dict'>]
types_getCatalogCounters = []
types_getCompatibleMetadata = [<class 'dict'>, <class 'str'>]
types_getDatasetAnnotation = [<class 'dict'>]
types_getDatasetFiles = [<class 'dict'>]
types_getDatasetParameters = [<class 'dict'>]
types_getDatasets = [<class 'dict'>]
types_getDirectoryDump = [[<class 'list'>, <class 'dict'>, <class 'str'>]]
types_getDirectoryMetadata = [[<class 'list'>, <class 'dict'>, <class 'str'>]]
types_getDirectoryReplicas = [[<class 'list'>, <class 'dict'>, <class 'str'>], <class 'bool'>]
types_getDirectorySize = [[<class 'list'>, <class 'dict'>, <class 'str'>]]
types_getDirectoryUserMetadata = [<class 'str'>]
types_getFileAncestors = [[<class 'list'>, <class 'dict'>], (<class 'list'>, <class 'int'>)]
types_getFileDescendents = [[<class 'list'>, <class 'dict'>], (<class 'list'>, <class 'int'>)]
types_getFileMetadata = [[<class 'list'>, <class 'dict'>, <class 'str'>]]
types_getFileSize = [[<class 'list'>, <class 'dict'>, <class 'str'>]]
types_getFileUserMetadata = [<class 'str'>]
types_getGroups = []
types_getLFNForGUID = [[<class 'list'>, <class 'dict'>, <class 'str'>]]
types_getMetadataFields = []
types_getMetadataSet = [<class 'str'>, <class 'bool'>]
types_getPathPermissions = [[<class 'list'>, <class 'dict'>, <class 'str'>]]
types_getReplicaStatus = [[<class 'list'>, <class 'dict'>, <class 'str'>]]
types_getReplicas = [[<class 'list'>, <class 'dict'>, <class 'str'>], <class 'bool'>]
types_getReplicasByMetadata = [<class 'dict'>, <class 'str'>, <class 'bool'>]
types_getUsers = []
types_hasAccess = [[<class 'str'>, <class 'dict'>], [<class 'str'>, <class 'list'>, <class 'dict'>]]
types_isDirectory = [[<class 'list'>, <class 'dict'>, <class 'str'>]]
types_isFile = [[<class 'list'>, <class 'dict'>, <class 'str'>]]
types_isOK = []
types_listDirectory = [[<class 'list'>, <class 'dict'>, <class 'str'>], <class 'bool'>]
types_ping = []
types_rebuildDirectoryUsage = []
types_refreshConfiguration = [<class 'bool'>]
types_releaseDataset = [<class 'dict'>]
types_removeDataset = [<class 'dict'>]
types_removeDirectory = [[<class 'list'>, <class 'dict'>, <class 'str'>]]
types_removeFile = [[<class 'list'>, <class 'dict'>, <class 'str'>]]
types_removeMetadata = [<class 'dict'>]
types_removeReplica = [[<class 'list'>, <class 'dict'>, <class 'str'>]]
types_repairCatalog = []
types_setFileStatus = [<class 'dict'>]
types_setMetadata = [<class 'str'>, <class 'dict'>]
types_setMetadataBulk = [<class 'dict'>]
types_setReplicaHost = [[<class 'list'>, <class 'dict'>, <class 'str'>]]
types_setReplicaStatus = [[<class 'list'>, <class 'dict'>, <class 'str'>]]
types_updateDataset = [<class 'dict'>]
types_whoami = []
class DIRAC.DataManagementSystem.Service.FileCatalogHandler.FileCatalogHandlerMixin

Bases: object

A simple Replica and Metadata Catalog service.

export_addDataset(datasets)

Add a new dynamic dataset defined by its meta query

export_addDatasetAnnotation(datasetDict)

Add annotation to an already created dataset

export_addFile(lfns)

Register supplied files

export_addFileAncestors(lfns)

Add file ancestor information for the given list of LFNs

export_addGroup(groupName)

Add a new group to the File Catalog

export_addMetadataField(fieldName, fieldType, metaType='-d')

Add a new metadata field of the given type

export_addMetadataSet(setName, setDict)

Add a new metadata set

export_addReplica(lfns)

Register supplied replicas

export_addUser(userName)

Add a new user to the File Catalog

export_changePathGroup(lfns, recursive=False)

Get replica info for the given list of LFNs

export_changePathMode(lfns, recursive=False)

Get replica info for the given list of LFNs

export_changePathOwner(lfns, recursive=False)

Get replica info for the given list of LFNs

export_checkDataset(datasets)

Check the given dynamic dataset for changes since its definition

export_createDirectory(lfns)

Create the supplied directories

export_deleteGroup(groupName)

Delete group from the File Catalog

export_deleteMetadataField(fieldName)

Delete the metadata field

export_deleteUser(userName)

Delete user from the File Catalog

export_exists(lfns)

Check whether the supplied paths exists

export_findDirectoriesByMetadata(metaDict, path='/')

Find all the directories satisfying the given metadata set

export_findFilesByMetadata(metaDict, path='/')

Find all the files satisfying the given metadata set

export_findFilesByMetadataDetailed(metaDict, path='/')

Find all the files satisfying the given metadata set

export_findFilesByMetadataWeb(metaDict, path, startItem, maxItems)

Find files satisfying the given metadata set

export_freezeDataset(datasets)

Freeze the contents of the dataset making it effectively static

export_getCatalogCounters()

Get the number of registered directories, files and replicas in various tables

export_getCompatibleMetadata(metaDict, path='/')

Get metadata values compatible with the given metadata subset

export_getDatasetAnnotation(datasets)

Get annotation of the given datasets

export_getDatasetFiles(datasets)

Get lfns in the given dataset

export_getDatasetParameters(datasets)

Get parameters of the given dynamic dataset as they are stored in the database

export_getDatasets(datasets)

Get parameters of the given dynamic dataset as they are stored in the database

export_getDirectoryDump(lfns)

Recursively list the contents of supplied directories

export_getDirectoryMetadata(lfns)

Get the size of the supplied directory

export_getDirectoryReplicas(lfns, allStatus=False)

Get replicas for files in the supplied directory

export_getDirectorySize(lfns, longOut=False, fromFiles=False, recursiveSum=True)

Get the size of the supplied directory

export_getDirectoryUserMetadata(path)

Get all the metadata valid for the given directory path

export_getFileAncestors(lfns, depths)

Get the status for the supplied replicas

export_getFileDescendents(lfns, depths)

Get the status for the supplied replicas

export_getFileMetadata(lfns)

Get the metadata associated to supplied lfns

export_getFileSize(lfns)

Get the size associated to supplied lfns

export_getFileUserMetadata(path)

Get all the metadata valid for the given file

export_getGroups()

Get all the groups defined in the File Catalog

export_getLFNForGUID(guids)

Get the matching lfns for given guids

export_getMetadataFields()

Get all the metadata fields

export_getMetadataSet(setName, expandFlag)

Add a new metadata set

export_getPathPermissions(lfns)

Determine the ACL information for a supplied path

export_getReplicaStatus(lfns)

Get the status for the supplied replicas

export_getReplicas(lfns, allStatus=False)

Get replicas for supplied lfns

export_getReplicasByMetadata(metaDict, path='/', allStatus=False)

Find all the files satisfying the given metadata set

export_getUsers()

Get all the users defined in the File Catalog

export_hasAccess(paths, opType)

Determine if the given op can be performed on the paths The OpType is all the operations exported

The reason for the param types is backward compatibility. Between v6r14 and v6r15, the signature of hasAccess has changed, and the two parameters were swapped.

export_isDirectory(lfns)

Determine whether supplied path is a directory

export_isFile(lfns)

Check whether the supplied lfns are files

classmethod export_isOK()

returns S_OK if DB is connected

export_listDirectory(lfns, verbose)

List the contents of supplied directories

export_rebuildDirectoryUsage()

Rebuild DirectoryUsage table from scratch

export_releaseDataset(datasets)

Release the contents of the frozen dataset allowing changes in its contents

export_removeDataset(datasets)

Check the given dynamic dataset for changes since its definition

export_removeDirectory(lfns)

Remove the supplied directories

export_removeFile(lfns)

Remove the supplied lfns

export_removeMetadata(pathMetadataDict)

Remove the specified metadata for the given path

export_removeReplica(lfns)

Remove the supplied replicas

export_repairCatalog()

Repair the catalog inconsistencies

export_setFileStatus(lfns)

Remove the supplied lfns

export_setMetadata(path, metadatadict)

Set metadata parameter for the given path

export_setMetadataBulk(pathMetadataDict)

Set metadata parameter for the given path

export_setReplicaHost(lfns)

Change the registered SE for the supplied replicas

export_setReplicaStatus(lfns)

Set the status for the supplied replicas

export_updateDataset(datasets)

Update the given dynamic dataset for changes since its definition

findFilesByMetadataWeb(metaDict, path, startItem, maxItems)

Find all the files satisfying the given metadata set

getSEDump(seNames)

Return all the files at given SEs, together with checksum and size

Parameters:

seNames – StorageElement names

Returns:

S_OK with list of tuples (SEName, lfn, checksum, size)

classmethod initializeHandler(serviceInfo)

Handler initialization

types_addDataset = [<class 'dict'>]
types_addDatasetAnnotation = [<class 'dict'>]
types_addFile = [[<class 'list'>, <class 'dict'>, <class 'str'>]]
types_addFileAncestors = [<class 'dict'>]
types_addGroup = [<class 'str'>]
types_addMetadataField = [<class 'str'>, <class 'str'>, <class 'str'>]
types_addMetadataSet = [<class 'str'>, <class 'dict'>]
types_addReplica = [[<class 'list'>, <class 'dict'>, <class 'str'>]]
types_addUser = [<class 'str'>]
types_changePathGroup = [[<class 'list'>, <class 'dict'>, <class 'str'>]]
types_changePathMode = [[<class 'list'>, <class 'dict'>, <class 'str'>]]
types_changePathOwner = [[<class 'list'>, <class 'dict'>, <class 'str'>]]
types_checkDataset = [<class 'dict'>]
types_createDirectory = [[<class 'list'>, <class 'dict'>, <class 'str'>]]
types_deleteGroup = [<class 'str'>]
types_deleteMetadataField = [<class 'str'>]
types_deleteUser = [<class 'str'>]
types_exists = [[<class 'list'>, <class 'dict'>, <class 'str'>]]
types_findDirectoriesByMetadata = [<class 'dict'>]
types_findFilesByMetadata = [<class 'dict'>, <class 'str'>]
types_findFilesByMetadataDetailed = [<class 'dict'>, <class 'str'>]
types_findFilesByMetadataWeb = [<class 'dict'>, <class 'str'>, <class 'int'>, <class 'int'>]
types_freezeDataset = [<class 'dict'>]
types_getCatalogCounters = []
types_getCompatibleMetadata = [<class 'dict'>, <class 'str'>]
types_getDatasetAnnotation = [<class 'dict'>]
types_getDatasetFiles = [<class 'dict'>]
types_getDatasetParameters = [<class 'dict'>]
types_getDatasets = [<class 'dict'>]
types_getDirectoryDump = [[<class 'list'>, <class 'dict'>, <class 'str'>]]
types_getDirectoryMetadata = [[<class 'list'>, <class 'dict'>, <class 'str'>]]
types_getDirectoryReplicas = [[<class 'list'>, <class 'dict'>, <class 'str'>], <class 'bool'>]
types_getDirectorySize = [[<class 'list'>, <class 'dict'>, <class 'str'>]]
types_getDirectoryUserMetadata = [<class 'str'>]
types_getFileAncestors = [[<class 'list'>, <class 'dict'>], (<class 'list'>, <class 'int'>)]
types_getFileDescendents = [[<class 'list'>, <class 'dict'>], (<class 'list'>, <class 'int'>)]
types_getFileMetadata = [[<class 'list'>, <class 'dict'>, <class 'str'>]]
types_getFileSize = [[<class 'list'>, <class 'dict'>, <class 'str'>]]
types_getFileUserMetadata = [<class 'str'>]
types_getGroups = []
types_getLFNForGUID = [[<class 'list'>, <class 'dict'>, <class 'str'>]]
types_getMetadataFields = []
types_getMetadataSet = [<class 'str'>, <class 'bool'>]
types_getPathPermissions = [[<class 'list'>, <class 'dict'>, <class 'str'>]]
types_getReplicaStatus = [[<class 'list'>, <class 'dict'>, <class 'str'>]]
types_getReplicas = [[<class 'list'>, <class 'dict'>, <class 'str'>], <class 'bool'>]
types_getReplicasByMetadata = [<class 'dict'>, <class 'str'>, <class 'bool'>]
types_getUsers = []
types_hasAccess = [[<class 'str'>, <class 'dict'>], [<class 'str'>, <class 'list'>, <class 'dict'>]]
types_isDirectory = [[<class 'list'>, <class 'dict'>, <class 'str'>]]
types_isFile = [[<class 'list'>, <class 'dict'>, <class 'str'>]]
types_isOK = []
types_listDirectory = [[<class 'list'>, <class 'dict'>, <class 'str'>], <class 'bool'>]
types_rebuildDirectoryUsage = []
types_releaseDataset = [<class 'dict'>]
types_removeDataset = [<class 'dict'>]
types_removeDirectory = [[<class 'list'>, <class 'dict'>, <class 'str'>]]
types_removeFile = [[<class 'list'>, <class 'dict'>, <class 'str'>]]
types_removeMetadata = [<class 'dict'>]
types_removeReplica = [[<class 'list'>, <class 'dict'>, <class 'str'>]]
types_repairCatalog = []
types_setFileStatus = [<class 'dict'>]
types_setMetadata = [<class 'str'>, <class 'dict'>]
types_setMetadataBulk = [<class 'dict'>]
types_setReplicaHost = [[<class 'list'>, <class 'dict'>, <class 'str'>]]
types_setReplicaStatus = [[<class 'list'>, <class 'dict'>, <class 'str'>]]
types_updateDataset = [<class 'dict'>]