Un flujo de trabajo puede ejecutarse como acción de alerta. Un flujo de trabajo que se ejecuta como acción de alerta es el flujo de trabajo seleccionado para la acción de alerta (BUI) Ejecutar flujo de trabajo o es el valor de la propiedad workflow del gestor execute_workflow (CLI), como se describe en Agregación de acciones de alerta.
Para permitir que un flujo de trabajo se ejecute como acción de alerta, la variable global workflow debe especificar un miembro alert: true.
Por defecto, los flujos de trabajo se ejecutan bajo el usuario que los está ejecutando. Sin embargo, un flujo de trabajo que se ejecuta como acción de alerta se ejecuta por defecto bajo el usuario que creó el flujo de trabajo. Para poder ejecutarse como acción de alerta, la variable global workflow del flujo de trabajo debe especificar un miembro setid: true.
Las acciones de alerta tienen un parámetro de objeto único que tiene los siguientes miembros.
|
El miembro items del objeto de parámetros tiene los siguientes miembros:
|
Los flujos de trabajo que se ejecutan como acciones de alerta pueden utilizar la función audit para generar entradas de log de auditoría. Por ejemplo, la información de depuración debe escribirse en el log de auditoría.
Consulte los distintos usos de la función audit en el siguiente ejemplo. Este flujo de trabajo:
Se ejecuta en respuesta a que la alerta params.uuid especifica la ejecución de este flujo de trabajo.
Reinicia el sistema solamente si los dos sistemas están en estado en cluster.
Audita todos los fallos que puedan producirse al reiniciar.
var workflow = { name: 'Failover', description: 'Fail the node over to its clustered peer', alert: true, setid: true, execute: function (params) { var uuid = params.uuid; var clustered = 'AKCS_CLUSTERED'; audit('attempting failover in response to alert ' + uuid); try { run('configuration cluster'); } catch (err) { audit('could not get clustered state; aborting'); return; } if ((state = get('state')) != clustered) { audit('state is ' + state + '; aborting'); return; } if ((state = get('peer_state')) != clustered) { audit('peer state is ' + state + '; aborting'); return; } run('cd /'); run('confirm maintenance system reboot'); } };