SandboxMetadataDB
SandboxMetadataDB class is a front-end to the metadata for sandboxes
- class DIRAC.WorkloadManagementSystem.DB.SandboxMetadataDB.SandboxMetadataDB(parentLogger=None)
Bases:
DIRAC.Core.Base.DB.DB
- __init__(parentLogger=None)
c’tor
- Parameters
self – self reference
- accessedSandboxById(sbId)
Update last access time for sb id
- assignSandboxesToEntities(enDict, requesterName, requesterGroup, enSetup, ownerName='', ownerGroup='')
Assign jobs to entities
- buildCondition(condDict=None, older=None, newer=None, timeStamp=None, orderAttribute=None, limit=False, greater=None, smaller=None, offset=None, useLikeQuery=False)
Build SQL condition statement from provided condDict and other extra check on a specified time stamp. The conditions dictionary specifies for each attribute one or a List of possible values greater and smaller are dictionaries in which the keys are the names of the fields, that are requested to be >= or < than the corresponding value. For compatibility with current usage it uses Exceptions to exit in case of invalid arguments For performing LIKE queries use the parameter useLikeQuery=True
- countEntries(table, condDict, older=None, newer=None, timeStamp=None, connection=False, greater=None, smaller=None)
Count the number of entries wit the given conditions
- deleteEntries(tableName, condDict=None, limit=False, conn=None, older=None, newer=None, timeStamp=None, orderAttribute=None, greater=None, smaller=None)
Delete rows from “tableName” with N records can match the condition if limit is not False, the given limit is set String type values will be appropriately escaped, they can be single values or lists of values.
- deleteSandboxes(SBIdList)
Delete sandboxes
- executeStoredProcedure(packageName, parameters, outputIds, *, conn=None)
- executeStoredProcedureWithCursor(packageName, parameters, *, conn=None)
- getCSOption(optionName, defaultValue=None)
- getCounters(table, attrList, condDict, older=None, newer=None, timeStamp=None, connection=False, greater=None, smaller=None)
Count the number of records on each distinct combination of AttrList, selected with condition defined by condDict and time stamps
- getDistinctAttributeValues(table, attribute, condDict=None, older=None, newer=None, timeStamp=None, connection=False, greater=None, smaller=None)
Get distinct values of a table attribute under specified conditions
- getFields(tableName, outFields=None, condDict=None, limit=False, conn=None, older=None, newer=None, timeStamp=None, orderAttribute=None, greater=None, smaller=None, useLikeQuery=False)
Select “outFields” from “tableName” with condDict N records can match the condition return S_OK(tuple(Field, Value)) if outFields is None all fields in “tableName” are returned if limit is not False, the given limit is set inValues are properly escaped using the _escape_string method, they can be single values or lists of values. if useLikeQuery=True, then conDict can return matched rows if “%” is defined inside conDict.
- getSandboxId(SEName, SEPFN, requesterName, requesterGroup, field='SBId', requesterDN=None)
Get the sandboxId if it exists
- Parameters
SEName – name of the StorageElement
SEPFN – PFN of the Sandbox
requesterName – name (host or user) to use as credentials
requesterGroup – user group used to use as credentials, or ‘hosts’
field – field we want to look for (default SBId)
requestDN – host DN used as credentials
- Returns
S_OK with sandbox ID
- getSandboxOwner(SEName, SEPFN, requesterDN, requesterGroup)
get the sandbox owner, if such sandbox exists
- Parameters
SEName – name of the StorageElement
SEPFN – PFN of the Sandbox
requestDN – host DN used as credentials
requesterGroup – group used to use as credentials (should be ‘hosts’)
- Returns
S_OK with tuple (owner, ownerDN, ownerGroup)
- getSandboxesAssignedToEntity(entityId, entitySetup, requesterName, requesterGroup)
Get the sandboxes and the type of assignation to the jobId
- getUnusedSandboxes()
Get sandboxes that have been assigned but the job is no longer there
- insertFields(tableName, inFields=None, inValues=None, conn=None, inDict=None)
Insert a new row in “tableName” assigning the values “inValues” to the fields “inFields”. String type values will be appropriately escaped.
- registerAndGetSandbox(owner, ownerDN, ownerGroup, sbSE, sbPFN, size=0)
Register a new sandbox in the metadata catalog Returns ( sbid, newSandbox )
- transactionCommit()
- transactionRollback()
- transactionStart()
- unassignEntities(entitiesDict, requesterName, requesterGroup)
Unassign jobs to sandboxes entitiesDict = { ‘setup’ : [ ‘entityId’, ‘entityId’ ] }
- updateFields(tableName, updateFields=None, updateValues=None, condDict=None, limit=False, conn=None, updateDict=None, older=None, newer=None, timeStamp=None, orderAttribute=None, greater=None, smaller=None)
Update “updateFields” from “tableName” with “updateValues”. updateDict alternative way to provide the updateFields and updateValues N records can match the condition return S_OK( number of updated rows ) if limit is not False, the given limit is set String type values will be appropriately escaped.