public class LSFParser extends BatchParser implements PropertyContainerParser, uk.ac.ed.epcc.webapp.Contexed
ACCOUNT_PROP, batch, BATCH_SCRIPT_PROP, CPU_WAIT_PROP, EXPECTED_FINISH, JOB_ID_PROP, JOB_NAME_PROP, NODE_COUNT_PROP, PARTITION_PROP, PROC_COUNT_PROP, QUEUE_PROP, REQUEST_ACCURACY_PROP, REQUESTED_CPUS_PROP, REQUESTED_WALLCLOCK_PROP, RESIDENCY_PROP, SERIAL_PROP, SLOWDOWN_PROP, SUBJOB_PROP, SUBMITTED_PROP, SUBMITTED_TIMESTAMP, SUCCESS_PROP, TIME_PROP, WAIT_PROP, WALLCLOCK_PROPDUPLICATE_KEY| Constructor and Description |
|---|
LSFParser(uk.ac.ed.epcc.webapp.AppContext c) |
| Modifier and Type | Method and Description |
|---|---|
uk.ac.ed.epcc.webapp.AppContext |
getContext() |
PropExpressionMap |
getDerivedProperties(PropExpressionMap previous)
return a set of derived property definitions.
|
PropertyFinder |
initFinder(uk.ac.ed.epcc.webapp.AppContext conn,
PropertyFinder prev,
java.lang.String table)
Generate a PropertyFinder that will find any PropertyTag generated by this class.
|
boolean |
parse(PropertyMap r,
java.lang.String record)
Parse a String representation of the UsageRecord.
|
java.util.Iterator<java.lang.String> |
splitRecords(java.lang.String update)
split a multiple record update into individual records
in the way appropriate to this accountng scheme.
|
void |
startParse(PropertyContainer defaults)
Start a batch parse.
|
readDouble, readInteger, readLong, readTimegetDefaultUniqueProperties, modifyDefaultTableSpecification, uniqueendParseclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetDefaultUniquePropertiesendParse, modifyDefaultTableSpecificationpublic static final PropertyRegistry lsf
@AutoTable public static final PropertyTag<java.lang.String> LSF_QUEUE_PROP
public static final PropertyTag<java.lang.String> LSF_HOSTNAME_PROP
@AutoTable public static final PropertyTag<java.lang.String> LSF_USERNAME_PROP
@AutoTable(length=4096) public static final PropertyTag<java.lang.String> LSF_JOBNAME_PROP
public static final PropertyTag<java.lang.String> LSF_BATCH_COMMAND_PROP
@AutoTable(unique=true) public static final PropertyTag<java.lang.Integer> LSF_JOBID_PROP
@AutoTable(unique=true) public static final PropertyTag<java.lang.Integer> LSF_JOB_ARRAY_INDEX
@AutoTable public static final PropertyTag<java.lang.Integer> LSF_JOBEXIT_PROP
@AutoTable public static final PropertyTag<java.util.Date> LSF_SUBMITTED_PROP
@AutoTable(unique=true) public static final PropertyTag<java.util.Date> LSF_LOGDATE_PROP
@AutoTable public static final PropertyTag<java.util.Date> LSF_STARTED_PROP
@AutoTable public static final PropertyTag<java.lang.Number> LSF_WALLCLOCK_PROP
@AutoTable public static final PropertyTag<java.lang.String> LSF_PROJECT_PROP
@AutoTable public static final PropertyTag<java.lang.Number> LSF_CPU_TIME_PROP
public static final PropertyTag<java.lang.Number> LSF_MEMORYUSED_PROP
public static final PropertyTag<java.lang.Number> LSF_VIRTUALMEMORYUSED_PROP
@AutoTable(target=java.lang.Integer.class) public static final PropertyTag<java.lang.Integer> LSF_MAXPROCESSORS_PROP
@AutoTable(target=java.lang.Integer.class) public static final PropertyTag<java.lang.Integer> LSF_NUMPROCESSORS_PROP
public static final PropertyTag<java.lang.Integer> LSF_NUM_EXECHOSTS_PROP
public static final PropertyTag<java.lang.String> LSF_EXEC_HOSTS_PROP
public java.util.Iterator<java.lang.String> splitRecords(java.lang.String update)
throws AccountingParseException
AbstractPropertyContainerParsersplitRecords in interface PropertyContainerParsersplitRecords in class AbstractPropertyContainerParserAccountingParseException - If a problem occurs while splitting the recordsupdate - string containing multiple recordspublic boolean parse(PropertyMap r, java.lang.String record) throws AccountingParseException
PropertyContainerParserparse in interface PropertyContainerParserAccountingParseExceptionr - PropertyMap to add quantitiespublic void startParse(PropertyContainer defaults) throws uk.ac.ed.epcc.webapp.jdbc.exception.DataException, InvalidPropertyException
PropertyContainerUpdaterstartParse in interface PropertyContainerUpdaterstartParse in class AbstractPropertyContainerUpdateruk.ac.ed.epcc.webapp.jdbc.exception.DataExceptionInvalidPropertyExceptiondefaults - properties constant for this accounting run.public uk.ac.ed.epcc.webapp.AppContext getContext()
getContext in interface uk.ac.ed.epcc.webapp.Contexedpublic PropertyFinder initFinder(uk.ac.ed.epcc.webapp.AppContext conn, PropertyFinder prev, java.lang.String table)
PropertyContainerUpdaterAll properties defined at run-time should have their PropertyTag objects constructed by the time the first call to this method returns. As some parsers properties will generate different things depending on the other properties already in scope this method is passed a PropertyFinder for any properties that may already be in scope. This will include any default parameters specified when the data was uploaded and any properties generated from the database meta-data. Though it is perfectly legal to return a PropertyFinder that returns a superset of the generated properties the only requirement is that the returned finder can find any property that this classes parse method may actually generate values for. So Normally the contents of the super-finder are not included in the result unless these values are actually generated by the parse. If values are generated then a MultiFinder can be populated with the PropertyRegistrys from the generated properties
initFinder in interface PropertyContainerUpdaterinitFinder in class BaseParserprev - PropertyFinder for the higher levels in the call chain.table - String name of the destination table in case per-table customisation is neededpublic PropExpressionMap getDerivedProperties(PropExpressionMap previous)
PropertyContainerUpdaterDefinitions are allowed for properties that are also generated directly in the parse phase. In this case the parse value should always be used by preference and the derived definition only provides a fall-back implementation if the parse value is unavailable. For example if not persisted in the database layer. This allows one parser/policy to specify a default implementation as a derived property definition which is then overridden by having the same property generated in a parse method of a different policy/parser
getDerivedProperties in interface PropertyContainerUpdatergetDerivedProperties in class BatchParserprevious - Previous definitions