ワークフローのパラメータ
入力に従って動作しないワークフローのスコープはかぎられます。有効に使用するには、多くのワークフローをパラメータ化する必要があります。これを行うには、グローバルな workflow オブジェクトに parameters メンバーを追加します。この parameters メンバーがさらに、パラメータごとにメンバーを持つことが想定されるオブジェクトになっています。各 parameters メンバーには、次のメンバーが必要です。
Table 3-12 必須のワークフローパラメータメンバー
|
|
|
label
|
文字列
|
ワークフローパラメータの入力を飾るためのラベル
|
type
|
文字列
|
ワークフローパラメータの型
|
|
type メンバーは、次の型のいずれかに設定されている必要があります。
Table 3-13 メンバー型名
|
|
Boolean
|
ブール値
|
ChooseOne
|
いくつかの指定された値のいずれか
|
EmailAddress
|
電子メールアドレス
|
File
|
ZFSSA に転送されるファイル
|
Host
|
有効なホスト (名前またはドット区切り 10 進数のどちらか)
|
HostName
|
有効なホスト名
|
HostPort
|
有効な、使用可能なポート
|
Integer
|
整数
|
NetAddress
|
ネットワークアドレス
|
NodeName
|
ネットワークノードの名前
|
NonNegativeInteger
|
0 以上の整数
|
Number
|
任意の数値 (浮動小数点を含む)
|
Password
|
パスワード
|
Permissions
|
POSIX アクセス権
|
Port
|
ポート番号
|
Size
|
サイズ
|
String
|
文字列
|
StringList
|
文字列のリスト
|
|
指定された型に基づいて、ワークフローが実行されると適切な入力フォームが生成されます。たとえば、ビジネス単位の名前 (プロジェクトとして使用される) と、シェアの名前 (シェア名として使用される) の 2 つのパラメータを持つワークフローを次に示します。
var workflow = {
name: 'New share',
description: 'Creates a new share in a business unit',
parameters: {
name: {
label: 'Name of new share',
type: 'String'
},
unit: {
label: 'Business unit',
type: 'String'
}
},
execute: function (params) {
run('shares select ' + params.unit);
run('filesystem ' + params.name);
run('commit');
return ('Created new share "' + params.name + '"');
}
};
このワークフローをアップロードして実行すると、シェアとビジネス単位の名前を入力するためのダイアログボックスが表示されます。シェアが作成されると、作成を示すメッセージが生成されます。