ProductionDB
DIRAC Production DB
Production database is used to collect and serve the necessary information in order to automate the task of transformation preparation for high level productions.
- class DIRAC.ProductionSystem.DB.ProductionDB.ProductionDB(dbname=None, dbconfig=None, dbIn=None, parentLogger=None)
Bases:
DB
ProductionDB class
- __init__(dbname=None, dbconfig=None, dbIn=None, parentLogger=None)
The standard constructor takes the database name (dbname) and the name of the configuration section (dbconfig)
- addProduction(prodName, prodDescription, authorDN, authorGroup, connection=False)
Create new production starting from its description
- addProductionStep(stepName, stepDescription, stepLongDescription, stepBody, stepType, stepPlugin, stepAgentType, stepGroupSize, stepInputquery, stepOutputquery, connection=False)
Add a Production Step
- Parameters:
stepName (str) – name of the production Step
stepDescription (str) – description of the production Step
stepLongDescription (str) – long description of the production Step
stepBody (str) – body of the production Step
stepType (str) – type of the production Step
stepPlugin (str) – plugin to be used for the production Step
stepAgentType (str) – agent type to be used for the production Step
stepGroupSize (int) – group size of the production Step
stepInputquery (str) – InputQuery of the production Step
stepOutputquery (str) – OutputQuery of the production Step
- Returns:
- addTransformationsToProduction(prodName, transIDs, parentTransIDs=None, connection=False)
Check the production validity and the add the transformations to the production
- 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
- cleanProduction(prodName, author='', connection=False)
Clean the production specified by name or id
- Parameters:
prodName (str) – the Production name or ID
- 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.
- deleteProduction(prodName, author='', connection=False)
Remove the production specified by name or id
- Parameters:
prodName (str) – the Production name or ID
- 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.
- getProduction(prodName, connection=False)
Get the Production definition
- Parameters:
prodName (str) – the Production name or ID
- getProductionParameters(prodName, parameters, connection=False)
Get the requested parameters for a supplied production
- getProductionStep(stepID, connection=False)
It returns the ProductionStep corresponding to the stepID
- Parameters:
stepID (int) – the ID of the production Step stored in the ProductionSteps table
- Returns:
the attributes of Production Step corresponding to the stepID
- getProductionTransformations(prodName, condDict=None, older=None, newer=None, timeStamp='CreationTime', orderAttribute=None, limit=None, offset=None, connection=False)
Gets the transformations of a given Production
- Parameters:
prodName (str) – the Production name or ID
- Returns:
- getProductions(condDict=None, older=None, newer=None, timeStamp='LastUpdate', orderAttribute=None, limit=None, offset=None, connection=False)
Get parameters of all the Productions with support for the web standard structure
- 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.
- setProductionStatus(prodName, status, connection=False)
Set the status to the production and to all the associated transformations
- startProduction(prodName, connection=False)
Instantiate and start the transformations belonging to the production
- Parameters:
prodName (str) – the Production name or ID
- transactionCommit()
- transactionRollback()
- transactionStart()
- 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.