Job Logging Database
Job logging and history database.
Database Schema
schema
Attributes
JobLoggingDBBase = declarative_base()
module-attribute
Classes
MagicEpochDateTime
Bases: TypeDecorator
A SQLAlchemy type that stores a datetime as a numeric value representing the seconds elapsed since MAGIC_EPOC_NUMBER. The underlying column is defined as Numeric(12,3) which provides a fixed-precision representation.
Source code in diracx-db/src/diracx/db/sql/job_logging/schema.py
Attributes
impl = Numeric(12, 3)
class-attribute
instance-attribute
cache_ok = True
class-attribute
instance-attribute
MAGIC_EPOC_NUMBER = 1270000000
class-attribute
instance-attribute
Functions
process_bind_param(value, dialect)
Convert a Python datetime to a numeric value: (timestamp - MAGIC_EPOC_NUMBER). The result is rounded to three decimal places.
Source code in diracx-db/src/diracx/db/sql/job_logging/schema.py
process_result_value(value, dialect)
Convert the numeric database value back into a Python datetime by reversing the stored difference (adding MAGIC_EPOC_NUMBER).
Source code in diracx-db/src/diracx/db/sql/job_logging/schema.py
LoggingInfo
Bases: JobLoggingDBBase
Source code in diracx-db/src/diracx/db/sql/job_logging/schema.py
Attributes
job_id = Column('JobID', Integer)
class-attribute
instance-attribute
seq_num = Column('SeqNum', Integer)
class-attribute
instance-attribute
status = Column('Status', String(32), default='')
class-attribute
instance-attribute
minor_status = Column('MinorStatus', String(128), default='')
class-attribute
instance-attribute
application_status = Column('ApplicationStatus', String(255), default='')
class-attribute
instance-attribute
status_time = DateNowColumn('StatusTime')
class-attribute
instance-attribute
status_time_order = Column('StatusTimeOrder', MagicEpochDateTime, default=0)
class-attribute
instance-attribute
source = Column('StatusSource', String(32), default='Unknown')
class-attribute
instance-attribute
Database Access Layer
db
Attributes
Classes
JobLoggingDB
Bases: BaseSQLDB
Frontend for the JobLoggingDB. Provides the ability to store changes with timestamps.
Source code in diracx-db/src/diracx/db/sql/job_logging/db.py
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 | |
Attributes
metadata = JobLoggingDBBase.metadata
class-attribute
instance-attribute
Functions
insert_records(records)
async
Bulk insert entries to the JobLoggingDB table.
Source code in diracx-db/src/diracx/db/sql/job_logging/db.py
get_records(job_ids)
async
Returns a Status,MinorStatus,ApplicationStatus,StatusTime,Source tuple for each record found for job specified by its jobID in historical order.
Source code in diracx-db/src/diracx/db/sql/job_logging/db.py
delete_records(job_ids)
async
Delete logging records for given jobs.
get_wms_time_stamps(job_ids)
async
Get TimeStamps for job MajorState transitions for multiple jobs at once return a {JobID: {State:timestamp}} dictionary.