可执行工作流作为警报操作。作为警报操作执行的工作流是执行工作流警报操作 (BUI) 的选定工作流,或者是 execute_workflow 处理程序 (CLI) 的 workflow 属性的值,如添加警报操作中所述。
要允许工作流作为警报操作来执行,workflow 全局变量必须指定 alert: true 成员。
默认情况下,工作流以正在执行工作流的用户身份执行。但是,默认情况下,作为警报操作执行的工作流将以创建该工作流的用户身份执行。为了能够作为警报操作执行,工作流的 workflow 全局变量必须指定 setid: true 成员。
警报操作具有一个对象参数,该参数具有以下成员。
|
parameters 对象的 items 成员具有以下成员:
|
作为警报操作执行的工作流可以使用 audit 函数生成审计日志条目。例如,调试信息应写入审计日志。
请参见以下示例中 audit 函数的多种用法。此工作流:
将执行,以响应指定此工作流将执行的警报 params.uuid。
仅当两个系统都处于群集状态时才重新引导系统。
审计任何重新引导故障。
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');
}
};