워크플로우 매개변수
입력에 따라 작동하지 않는 워크플로우의 범위는 제한적입니다. 많은 워크플로우의 경우 매개변수화해야 유용해집니다. 이렇게 하려면 전역 workflow 객체에 parameters 멤버를 추가하십시오. parameters 멤버는 각 매개변수에 대해 멤버를 가져야 하는 객체입니다. 각 parameters 멤버에는 다음과 같은 멤버가 있어야 합니다.
표 3-11 필수 워크플로우 매개변수 멤버
|
|
|
label
|
문자열
|
워크플로우 매개변수의 입력을 표시하기 위한 레이블입니다.
|
type
|
문자열
|
워크플로우 매개변수 유형입니다.
|
|
type 멤버는 다음 유형 중 하나로 설정해야 합니다.
표 3-12 멤버 유형 이름
|
|
Boolean
|
부울 값입니다.
|
ChooseOne
|
지정된 많은 값 중 하나입니다.
|
EmailAddress
|
전자 메일 주소입니다.
|
File
|
ZFSSA로 전송할 파일입니다.
|
Host
|
유효한 호스트(이름 또는 점으로 구분된 십진수)입니다.
|
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 + '"');
}
};
이 워크플로우를 업로드하여 실행하면 공유 및 사업부의 이름을 채우기 위한 대화 상자가 나타납니다. 공유가 만들어지면 만들기를 나타내는 메시지가 생성됩니다.