ワークフローを警告アクションとして実行できます。警告アクションとして実行されるワークフローは、アラートアクションの追加に説明されているように、「ワークフローの実行」警告アクションに対して選択したワークフローであるか (BUI)、execute_workflow ハンドラの workflow プロパティーの値です (CLI)。
ワークフローを警告アクションとして実行できるようにするには、workflow グローバル変数で alert: true メンバーを指定する必要があります。
デフォルトでは、ワークフローは、そのワークフローを実行しているユーザーとして実行されます。ただし、警告アクションとして実行されるワークフローは、デフォルトでそのワークフローを作成したユーザーとして実行されます。警告アクションとして実行できるようにするには、ワークフローの workflow グローバル変数で setid: true メンバーを指定する必要があります。
警告アクションには、次のメンバーを持つ 1 つのオブジェクトパラメータがあります。
|
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');
}
};