Support for Drupal 7 is ending on 5 January 2025—it’s time to migrate to Drupal 10! Learn about the many benefits of Drupal 10 and find migration tools in our resource center.
Experimental project
This is a sandbox project, which contains experimental code for developer use only.
This is a fork of Boombatower's github code for the 'Conduit' project (a potential successor for qa.d.o).
The original is available at https://github.com/boombatower/conduit.
Conduit Flow
1. Job creation
- Each plugin provides it's own node type, default job properties, and property validation logic.
- Creation of a job node triggers conduit_insert()
- conduit_job_info() determines the plugin, module, and category for the job, based on the job node type
- The merged properties array is generated via hook_node_load()
- conduit_queue_create() generates the appropriate job queue items and returns the item count
- Job fields and result placeholders are created for each job chunk and inserted into the node fields
- The plugin's hook_conduit_init() function is called to initiate any plugin-specific fields
- hook_conduit_queued is invoked, to allow modules to react to a job being queued
- hook_insert() runs before field_attach_insert(), so the fields are then saved after execution of hte function.
2. Job added to queue
- Jobs are added to the queue when conduit_insert() calls conduit_queue_create()
- conduit_job_info() determines the plugin, module, and category for the job, based on the job node type
- The appropriate 'category' queue object is retrieved
- hook_conduit_queue_build() is invoked to allow the plugin to retrieve any items it might need to queue, and/or properties to override on each job.
- The item(s) are then added to the queue via DrupalQueueInterface::CreateItem()
3. Job Re-testing
- When a job node is updated, hook_update checks to see if a new revision is being generated. If so, conduit_insert() is invoked to re-queue the test
Project information
- Created by jthorson on , updated