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