コマンドパラメータのマッピング方法
Workflow Automation ( WFA )コマンドのパラメータは、特定のルールに基づいて特定の属性およびディクショナリエントリ参照にマッピングされます。WFA コマンドを作成または編集するときは、コマンドパラメータをマッピングするルールを理解しておく必要があります。
コマンドパラメータのマッピングは、ワークフローでコマンドの詳細を定義する方法を定義します。ワークフロー内のコマンドの詳細を指定する場合、コマンドのマッピングされたコマンドパラメータがタブに表示されます。タブの名前は、 [ パラメータマッピング( Parameters Mapping ) ] タブの [ オブジェクト名( Object Name ) ] 列で指定したグループ名に基づいて決まります。マッピングされていないパラメータは、ワークフローでコマンドの詳細を指定するときに [ その他のパラメータ ] タブに表示されます。
コマンドパラメータマッピングのルールは、コマンドカテゴリおよびワークフローエディタでのコマンドの表記方法に基づいています。
コマンドのカテゴリは次のとおりです。
-
オブジェクトを作成するコマンド
-
オブジェクトを更新するコマンド
-
オブジェクトを削除するコマンド
-
オプションの親オブジェクトおよび子オブジェクトを処理するコマンド
-
オブジェクト間の関連付けを更新するコマンド
各カテゴリのルールは次のとおりです。
すべてのコマンドカテゴリ
コマンドパラメータをマッピングする場合は、ワークフローでのコマンドの使用方法に基づいたナチュラルパスを使用する必要があります。
次の例は、自然パスを定義する方法を示しています。
-
ArrayIP パラメータでは、コマンドに応じて、 array.ip 属性ではなく、ボリュームディクショナリエントリの aggregate.arra.ip 属性を使用する必要があります。
これは、ワークフローでボリュームを作成し、作成されたボリュームを参照して追加の手順を実行する場合に重要です。同様の例を次に示します。
-
qtree ディクショナリエントリの volume-aggregate.arra.IP
-
LUN ディクショナリエントリの volume-aggregate.arra.IP
-
-
コマンドで使用するクラスタの場合は、次のいずれかを使用する必要があります。
-
ボリュームディクショナリエントリの vserver.cluster.primary_address
-
qtree ディクショナリエントリの volume_vserver.cluster.primary_address
-
オブジェクトを作成するコマンド
このカテゴリのコマンドは、次のいずれかに使用されます。
-
親オブジェクトの検索と新規オブジェクトの定義
-
オブジェクトを検索し、存在しない場合はオブジェクトを作成します
このカテゴリのコマンドには、次のパラメータマッピングルールを使用する必要があります。
-
作成されたオブジェクトの関連パラメータをオブジェクトのディクショナリエントリにマップします。
-
作成されたディクショナリエントリのリファレンスを使用して、親オブジェクトをマッピングします。
-
新しいパラメータを追加するときは、関連する属性がディクショナリエントリに存在することを確認します。
このルールの例外シナリオを次に示します。
-
作成されたオブジェクトの中には、対応するディクショナリエントリがなく、親オブジェクトだけが該当する親ディクショナリエントリにマッピングされているものがあります。たとえば、 * VIF の作成 * コマンドなどです。この場合、アレイはアレイディクショナリエントリにのみマッピングできます。
-
パラメータのマッピングは必要ありません
たとえば、 * Create or resize aggregate * コマンドの ExecutionTimeout パラメータは、マッピングされていないパラメータです。
-
このカテゴリの証明済みコマンドの例を次に示します。
-
ボリュームを作成します
-
LUN を作成します
オブジェクトを更新するコマンド
このカテゴリのコマンドは、オブジェクトを検索し、属性を更新するために使用されます。
このカテゴリのコマンドには、次のパラメータマッピングルールを使用する必要があります。
-
更新されたオブジェクトをディクショナリエントリにマッピングします。
-
オブジェクトに対して更新されたパラメータをマッピングしないでください。
例えば、 * Set Volume State * コマンドでは、 Volume パラメーターはマップされていますが、新しい状態はマップされていません。
オブジェクトを削除するコマンド
このカテゴリのコマンドは、オブジェクトを検索して削除するために使用されます。
コマンドによって削除されたオブジェクトをディクショナリエントリにマッピングする必要があります。例えば、 * ボリュームの削除 * コマンドでは、削除するボリュームは、ボリューム辞書エントリの関連する属性と参照にマップされます。
オプションの親オブジェクトおよび子オブジェクトを処理するコマンド
このカテゴリのコマンドには、次のパラメータマッピングルールを使用する必要があります。
-
コマンドの必須パラメータを、オプションのパラメータからの参照としてマッピングしないでください。
このルールは、コマンドが特定の親オブジェクトのオプションの子オブジェクトを扱う場合に適しています。この場合、子オブジェクトと親オブジェクトを明示的にマッピングする必要があります。たとえば、 * 重複排除ジョブの停止 * コマンドでは、アレイまたは特定アレイのすべてのボリュームと一緒に指定した場合に、特定のボリュームで実行中の重複排除ジョブを停止します。この場合、配列パラメータは、 Volume.1 ではなく、アレイディクショナリエントリに直接マッピングする必要があります。 Array は、このコマンドのオプションパラメータであるためです。
-
親と子の関係が論理レベルでディクショナリエントリ間に存在するが、特定のコマンドの実際のインスタンス間に存在しない場合は、それらのオブジェクトを個別にマッピングする必要があります。
たとえば、 * ボリュームの移動 * コマンドでは、ボリュームが現在の親アグリゲートから新しいデスティネーションアグリゲートに移動されます。したがって、ボリュームパラメータはボリュームディクショナリエントリにマッピングされ、デスティネーションアグリゲートパラメータは、アグリゲートディクショナリエントリには個別にマッピングされますが、 volume.aggregate.name にはマッピングされません。
オブジェクト間の関連付けを更新するコマンド
このカテゴリのコマンドでは、関連付けとオブジェクトの両方を、関連するディクショナリエントリにマッピングする必要があります。たとえば、 Add Volume to vFiler コマンドでは、 Volume パラメータと vFiler パラメータが、ボリュームおよび vFiler ディクショナリエントリの関連属性にマッピングされます。