StateManagementScriptableApi - グローバル
StateManagementScriptableApi は、構成アイテム (CI) の運用状況を操作し、CI アクションを適用するための一連のメソッドを提供します。
StateManagementScriptableApi メソッドは、許可されていない CI アクション、互換性のある CI アクション、および許可されていない運用上の移行によって指定された制限と許可を遵守しています。メソッドが制限付き操作を実行しようとすると、操作がブロックされ、エラーが記録され、必要に応じてタスクが作成されます。
StateManagementScriptableApi メソッドは静的メソッドです。メソッドには、SNC.StateManagementScriptableApi グローバルオブジェクトを使用してアクセスします。
StateManagementScriptableApi - addBulkCIAction(文字列 requestorId, 文字列 sysIdList, 文字列 ciActionName, 文字列 ciActionListOld, 文字列 leaseTime)
CI アクションを CI のリストに追加します。
| 名前 | タイプ | 説明 |
|---|---|---|
| requestorId | 文字列 | ワークフローコンテキストの sys_id、または registerOperator() メソッドから返された GUID。 |
| sysIdList | 文字列 | CI の sys_id のカンマ区切りリスト。 |
| ciActionName | 文字列 | CI のアクション名。 |
| ciActionListOld | 文字列 | (オプション) すべての CI が含まれているはずの、古い CI アクションのカンマ区切りリスト。 |
| leaseTime | 文字列 | (オプション) 指定された CI アクションに対してリースが有効である時間。形式は HH:MM:SS です。 |
| タイプ | 説明 |
|---|---|
| 文字列 | 以下の名前と値のペアを含む JSON 形式の文字列
|
StateManagementScriptableApi - extendCIActionLease(文字列 requestorId, 文字列 ciSysId, 文字列 ciActionName, 文字列 leaseTime)
登録済みユーザーの CI アクションリース時間を延長します。前のリース期限が切れている場合は、新しいリース時間がすぐに開始されます。
| 名前 | タイプ | 説明 |
|---|---|---|
| requestorId | 文字列 | ワークフローコンテキストの sys_id、または registerOperator() メソッドから返された GUID。 |
| ciSysId | 文字列 | CI の sys_id。 |
| ciActionName | 文字列 | CI のアクション名。 |
| leaseTime | 文字列 | 指定された CI アクションに対してリースが有効である時間。形式は HH:MM:SS です。 |
| タイプ | 説明 |
|---|---|
| 文字列 | 以下の名前と値のペアを含む JSON 形式の文字列
|
StateManagementScriptableApi - getCIActions(文字列 ciSysId)
指定された CI のアクティブな CI アクションのリストを返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| ciSysId | 文字列 | CI の sys_id。 |
| タイプ | 説明 |
|---|---|
| 文字列 | 名前と値のペアを含む JSON 形式の文字列。 可能な値:
|
次の例は、構成アイテムのリストに対するアクティブなアクションを取得する方法を示しています。
// Store sys_ids of configuration items for which to get data
var CIArray = ["a9c0c8d2c6112276018f7705562f9cb0","0c43bc4fc61122750182c132411702f2","46bbf419a9fe1981009802288c1eb79d","46a4381ca9fe1981005c3e99af3cd164","0c43bcbdc61122750182c132e9b6565d"];
var output = '';
// looping above array to fetch each sys_id and passing to method
for(var i=0; i < CIArray.length; i++) {
// passing sys_id of CI stored in array to method
output = SNC.StateManagementScriptableApi.getCIActions(CIArray[i]);
// print a JSON formatted string with name-value pairs
gs.print(output);
}
出力:
{"ciActions":["no_active_action"],"result":true}
{"ciActions":["no_active_action"],"result":true}
{"ciActions":["no_active_action"],"result":true}
{"ciActions":["no_active_action"],"result":true}
{"ciActions":["no_active_action"],"result":true}
StateManagementScriptableApi - getOperationalState(文字列 ciSysId)
CI の運用ステータスを返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| ciSysId | 文字列 | CI の sys_id。 |
| タイプ | 説明 |
|---|---|
| 文字列 | 名前と値のペアを含む JSON 形式の文字列。 可能な値:
|
次の例は、指定された構成アイテムのリストの運用ステータスを取得する方法を示しています。
// Store sys_ids of configuration items for which to get the operational state.
var CIArray = ["0c43bc4fc61122750182c132411702f2","46bbf419a9fe1981009802288c1eb79d","46a4381ca9fe1981005c3e99af3cd164","0c43bcbdc61122750182c132e9b6565d","a9c0c8d2c6112276018f7705562f9cb0"];
var output = '';
// Loop the array to fetch each sys_id and pass to the method.
for(var i=0;i<CIArray.length;i++) {
// Pass sys_id of CI stored in array to the method
output = SNC.StateManagementScriptableApi.getOperationalState(CIArray[i]);
// prints a JSON formatted string with name-value pairs
gs.print(output);
}
出力:
*** Script: {"operationalState":"Operational","result":true}
*** Script: {"operationalState":"Operational","result":true}
*** Script: {"operationalState":"Operational","result":true}
*** Script: {"operationalState":"Operational","result":true}
ci_state_management : INVALID_SYS_ID: Invalid sys_id [a9c0c8d2c6112276018f7705562f9cb0]: no thrown error
*** Script: {"errors":[{"error":"INVALID_SYS_ID","message":"Invalid sys_id [a9c0c8d2c6112276018f7705562f9cb0]"}],"operationalState":"unknown","result":false}
StateManagementScriptableApi - isCompatibleCIAction(文字列 actionName, 文字列 otherActionName)
指定された 2 つのアクションに互換性があるかどうかを判断します。
| 名前 | タイプ | 説明 |
|---|---|---|
| actionName | 文字列 | CI アクション名 |
| otherActionName | 文字列 | CI アクション名 |
| タイプ | 説明 |
|---|---|
| ブーリアン | 指定された 2 つの CI アクションに互換性がある場合は true を返します。 |
StateManagementScriptableApi - isLeaseExpired(文字列 requestorId, 文字列 ciSysId, 文字列 ciActionName)
指定された CI アクションの要求者のリース期限が切れているかどうかを判断します。
| 名前 | タイプ | 説明 |
|---|---|---|
| requestorId | 文字列 | ワークフローコンテキストの sys_id、または registerOperator() メソッドから返された GUID。 |
| ciSysId | 文字列 | CI の sys_id。 |
| ciActionName | 文字列 | CI アクションの名前。 |
| タイプ | 説明 |
|---|---|
| 文字列 | 以下の名前と値のペアを含む JSON 形式の文字列
|
StateManagementScriptableApi - isNotAllowedAction(文字列 ciType, 文字列 opsLabel, 文字列 actionName)
CI のタイプについて、運用ステータスに対して CI アクションが許可されていないかどうかを判断します。
| 名前 | タイプ | 説明 |
|---|---|---|
| ciType | 文字列 | CI タイプ |
| opsLabel | 文字列 | 運用ステータス |
| actionName | 文字列 | CI アクション名 |
| タイプ | 説明 |
|---|---|
| ブーリアン | 指定された運用ステータスの指定された CI タイプでアクションが許可されていない場合は true を返します。 |
StateManagementScriptableApi - isNotAllowedOpsTransition(文字列 ciType, 文字列 opsLabel, 文字列 transitionOpsLabel)
CI のタイプについて、運用ステータス移行が許可されていないかどうかを判断します。
| 名前 | タイプ | 説明 |
|---|---|---|
| ciType | 文字列 | CI タイプ |
| opsLabel | 文字列 | 開始時の運用ステータスのラベル。 |
| transitionOpsLabel | 文字列 | 終了時の運用ステータスのラベル。 |
| タイプ | 説明 |
|---|---|
| ブーリアン | 指定された CI タイプで指定された運用ステータス移行が許可されていない場合は true を返します。 |
StateManagementScriptableApi - isValidRequestor(文字列 requestorId)
指定された要求者が有効かつアクティブなワークフローユーザーまたは登録されたユーザーであるかどうかを判断します。
| 名前 | タイプ | 説明 |
|---|---|---|
| requestorId | 文字列 | ワークフローコンテキストの sys_id、または registerOperator() メソッドから返された GUID。 |
| タイプ | 説明 |
|---|---|
| 文字列 | JSON 形式の名前と値のペア。 可能な値:
|
この例では、isValidRequestor() メソッドを使用して、オペレーターが登録済みユーザーであるかどうかを確認する方法を示します。
var output = SNC.StateManagementScriptableApi.registerOperator();
var jsonUtil = new JSON();
var result = jsonUtil.decode(output);
var requestorId = result.requestorId; // Fetching requestorId
output = SNC.StateManagementScriptableApi.isValidRequestor(requestorId);
gs.info(output);
出力:
{"result":true}
StateManagementScriptableApi - registerOperator()
ワークフロー以外のユーザーのオペレーターを登録します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 以下の名前と値のペアを含む JSON 形式の文字列
|
var output = SNC.StateManagementScriptableApi.registerOperator();
var jsonUntil = new JSON();
var result = jsonUntil.decode(output);
var requestorId = result.requestorId;
StateManagementScriptableApi - removeBulkCIAction(文字列 requestorId, 文字列 sysIdList, 文字列 ciActionName)
CI のリストの CI アクションを削除します。
| 名前 | タイプ | 説明 |
|---|---|---|
| requestorId | 文字列 | ワークフローコンテキストの sys_id、または registerOperator() メソッドから返された GUID。 |
| sysIdList | 文字列 | CI の sys_id のカンマ区切りリスト |
| ciActionName | 文字列 | CI アクション名 |
| タイプ | 説明 |
|---|---|
| 文字列 | 以下の名前と値のペアを含む JSON 形式の文字列
|
StateManagementScriptableApi - setBulkCIOperationalState(文字列 requestorId, 文字列 sysIdList, 文字列 opsLabel, 文字列 opsStateListOld)
CI のリストに対して運用ステータスを設定します。
| 名前 | タイプ | 説明 |
|---|---|---|
| requestorId | 文字列 | ワークフローコンテキストの sys_id、または registerOperator() メソッドから返された GUID。 |
| sysIdList | 文字列 | CI の sys_id のカンマ区切りリスト。 |
| opsLabel | 文字列 | operational_status という選択肢の文字列ラベルです。 |
| opsStateListOld | 文字列 | (オプション) すべての CI が含まれているはずの、古い CI ステータスのカンマ区切りリスト。 |
| タイプ | 説明 |
|---|---|
| 文字列 | 以下の名前と値のペアを含む JSON 形式の文字列
|
var output = SNC.StateManagementScriptableApi.registerOperator();
var jsonUntil = new JSON();
var result = jsonUtil.decode(output);
var requestorId = result.requestorId;
// list of sys_ids to update
var sys_ids;
// Set list of sys_ids's Operational State to 'Repair in Progress'
output = SNC.StateManagementScriptableApi.setBulkCIOperationalState(requestorId, sys_ids,'Repair in Progress');
gs.print(output);
StateManagementScriptableApi - unregisterOperator(文字列 requestorId)
ワークフロー以外のユーザーのオペレーターの登録を解除します。
| 名前 | タイプ | 説明 |
|---|---|---|
| requestorId | 文字列 | ワークフローコンテキストの sys_id、または registerOperator() メソッドから返された GUID。 |
| タイプ | 説明 |
|---|---|
| 文字列 | JSON 形式の名前と値のペア。 可能な値:
|
この例では、unregisterOperator() メソッドを使用して登録済みユーザーを登録解除する方法を示します。
var output = SNC.StateManagementScriptableApi.registerOperator();
var jsonUtil = new JSON();
var result = jsonUtil.decode(output);
var requestorId = result.requestorId; // Fetching requestorId
output = SNC.StateManagementScriptableApi.unregisterOperator(requestorId);
gs.info(output);
出力:
{"result":true}