Red Hat Training

A Red Hat training course is available for Red Hat JBoss Enterprise Application Platform

3.4.9. 管理 CLI で if-else 制御フローを使用

管理 CLI は、条件に基づいて実行するコマンドおよび操作のセットを選択できる if - other 制御フローをサポートします。if 条件は、of キーワードの後に指定された管理コマンドまたは操作の応答を評価するブール式です。
以下の項目をどれでも式に含めることができます。
  • 条件演算子(&&, ||)
  • 比較演算子(>, >=, <=, ==, !=)
  • 式をグループ化および優先付けするかっこ

例3.9 管理 CLI コマンドでの if ステートメントの使用

この例では、システムプロパティー test の読み取りを試みます。outcomesuccess でない場合 (プロパティーが存在しないことを意味します)、システムプロパティーが追加され、true に設定されます。
if (outcome != success) of /system-property=test:read-resource
    /system-property=test:add(value=true)
end-if
上記の条件は、outcome を使用します。 これは、以下のように of キーワードの後の CLI コマンドが実行されると返されます。
[standalone@localhost:9999 /] /system-property=test:read-resource
{
    "outcome" => "failed",
    "failure-description" => "JBAS014807: Management resource '[(\"system-property\" => \"test\")]' not found",
    "rolled-back" => true
}

例3.10 if-else statement with 管理 CLI コマンドの使用

この例では、サーバープロセスの起動タイプ(STANDALONE または DOMAIN)をチェックし、適切な CLI コマンドを実行して ExampleDS データソースを有効にします。
if (result == STANDALONE) of /:read-attribute(name=launch-type)
    /subsystem=datasources/data-source=ExampleDS:write-attribute(name=enabled, value=true)
else
    /profile=full/subsystem=datasources/data-source=ExampleDS:write-attribute(name=enabled, value=true)
end-if
if-else control flow をファイルに指定すると(各行に 1 つずつ)管理 CLI コマンドを指定し、非対話的に実行するために jboss-cli.sh スクリプトに渡すことができます。
EAP_HOME/bin/jboss-cli.sh --connect --file=CLI_FILE
注記
入れ子の if-else ステートメントの使用はサポートされません。