+def _validateProcessorsAndInputsIn(message):
+ validProcessorIRIs = [ processor[u'processorIRI'] for processor in message[u'processors'] ]
+ for inputs in (processor[u'inputs'] for processor in message[u'processors']):
+ for inputEnrichment in inputs:
+ if inputEnrichment not in validProcessorIRIs:
+ log.warning(u'invalid or missing processor inputs list of IRIs; e = %s' % e)
+def validateInput(message):
+ Checks that message has the minimum initialized attributes to
+ create a new job, and that none of the automatic definitions are
+ pre-initialized (e.g. jobID).
+ log.debug(u'validating input message = %s' % message)
+ if message[u'encoding'] == u'UTF-8':
+ if message.get(u'completionDate', None):
+ if message[u'payload'].get(u'aggregatedResults', None):
+ if len(message['processors']):
+ if message['payloadType']:
+ validated = _validateProcessorsAndInputsIn(message)
+ log.warning(u'message.payloadType missing or invalid')
+ log.warning(u'message.processors empty or null')
+ log.warning(u'message format error; e = %s' % e)
+ log.debug(u'%svalid input message' % (u'in' if not validated else u''))