StateManagementScriptableApi - グローバル

  • リリースバージョン: Washingtondc
  • 更新日 2024年02月01日
  • 読む15読むのに数分
  • StateManagementScriptableApi は、CI 運用ステータスを操作し、CI アクションを適用するための一連のメソッドを提供します。

    StateManagementScriptableApi メソッドは、許可されていない CI アクション、互換 CI アクション、および許可されていない運用上の移行によって指定された制限および許可を遵守します。メソッドが制限付き操作を実行しようとすると、操作がブロックされ、エラーが記録され、必要に応じてタスクが作成されます。

    StateManagementScriptableApi の各メソッドは静的メソッドです。メソッドには、SNC.StateManagementScriptableApi グローバルオブジェクトを使用してアクセスします。

    StateManagementScriptableApi - addBulkCIAction(文字列 requestorId, 文字列 sysIdList, 文字列 ciActionName, 文字列 ciActionListOld, 文字列 leaseTime)

    CI アクションを CI のリストに追加します。

    表 : 1. パラメーター
    名前 タイプ 説明
    requestorId 文字列 ワークフローコンテキストの sys_id、または registerOperator() メソッドから返された GUID。
    sysIdList 文字列 CI の sys_id のカンマ区切りリスト。
    ciActionName 文字列 CI のアクション名。
    ciActionListOld 文字列 (オプション) すべての CI が含まれているはずの、古い CI アクションのカンマ区切りリスト。
    leaseTime 文字列 (オプション) 指定された CI アクションに対してリースが有効である時間。形式は HH:MM:SS です。
    表 : 2. 返される内容
    タイプ 説明
    文字列 以下の名前と値のペアを含む JSON 形式の文字列
    • result:リスト内のすべての CI にアクションが設定されている場合は true、そうでない場合は false。
    • errors:エラーのリスト。

    StateManagementScriptableApi - extendCIActionLease(文字列 requestorId, 文字列 ciSysId, 文字列 ciActionName, 文字列 leaseTime)

    登録済みユーザーの CI アクションリース時間を延長します。前のリース期限が切れている場合は、新しいリース時間がすぐに開始されます。

    表 : 3. パラメーター
    名前 タイプ 説明
    requestorId 文字列 ワークフローコンテキストの sys_id、または registerOperator() メソッドから返された GUID。
    ciSysId 文字列 CI の sys_id。
    ciActionName 文字列 CI のアクション名。
    leaseTime 文字列 指定された CI アクションに対してリースが有効である時間。形式は HH:MM:SS です。
    表 : 4. 返される内容
    タイプ 説明
    文字列 以下の名前と値のペアを含む JSON 形式の文字列
    • result:リース時間が設定されている場合は true。
    • errors:エラーのリスト。

    StateManagementScriptableApi - getCIActions(文字列 ciSysId)

    指定された CI のアクティブな CI アクションのリストを返します。

    表 : 5. パラメーター
    名前 タイプ 説明
    ciSysId 文字列 CI の sys_id。
    表 : 6. 返される内容
    タイプ 説明
    文字列 名前と値のペアを含む JSON 形式の文字列。
    可能な値:
    • ciActions:CI に対するアクティブな CI アクションのカンマ区切りリスト、または no_active_action
    • errors:エラーのリスト。

    次の例は、構成アイテムのリストに対するアクティブなアクションを取得する方法を示しています。

    // 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 の運用ステータスを返します。

    表 : 7. パラメーター
    名前 タイプ 説明
    ciSysId 文字列 CI の sys_id。
    表 : 8. 返される内容
    タイプ 説明
    文字列 名前と値のペアを含む JSON 形式の文字列。
    可能な値:
    • ciActions:operational_status フィールドの文字列の選択値、または UNKNOWN
    • errors:エラーのリスト。

    次の例は、指定された構成アイテムのリストの運用ステータスを取得する方法を示しています。

    // 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 つのアクションに互換性があるかどうかを判断します。

    表 : 9. パラメーター
    名前 タイプ 説明
    actionName 文字列 CI アクション名
    otherActionName 文字列 CI アクション名
    表 : 10. 返される内容
    タイプ 説明
    ブーリアン 指定された 2 つの CI アクションに互換性がある場合は true を返します。

    StateManagementScriptableApi - isLeaseExpired(文字列 requestorId, 文字列 ciSysId, 文字列 ciActionName)

    指定された CI アクションの要求者のリース期限が切れているかどうかを判断します。

    表 : 11. パラメーター
    名前 タイプ 説明
    requestorId 文字列 ワークフローコンテキストの sys_id、または registerOperator() メソッドから返された GUID。
    ciSysId 文字列 CI の sys_id。
    ciActionName 文字列 CI アクションの名前。
    表 : 12. 返される内容
    タイプ 説明
    文字列 以下の名前と値のペアを含む JSON 形式の文字列
    • result:ユーザーのリース期限が切れている場合は true。
    • errors:エラーのリスト。

    StateManagementScriptableApi - isNotAllowedAction(文字列 ciType, 文字列 opsLabel, 文字列 actionName)

    CI のタイプについて、運用ステータスに対して CI アクションが許可されていないかどうかを判断します。

    表 : 13. パラメーター
    名前 タイプ 説明
    ciType 文字列 CI タイプ
    opsLabel 文字列 運用ステータス
    actionName 文字列 CI アクション名
    表 : 14. 返される内容
    タイプ 説明
    ブーリアン 指定された運用ステータスの指定された CI タイプでアクションが許可されていない場合は true を返します。

    StateManagementScriptableApi - isNotAllowedOpsTransition(文字列 ciType, 文字列 opsLabel, 文字列 transitionOpsLabel)

    CI のタイプについて、運用ステータス移行が許可されていないかどうかを判断します。

    表 : 15. パラメーター
    名前 タイプ 説明
    ciType 文字列 CI タイプ
    opsLabel 文字列 開始時の運用ステータスのラベル。
    transitionOpsLabel 文字列 終了時の運用ステータスのラベル。
    表 : 16. 返される内容
    タイプ 説明
    ブーリアン 指定された CI タイプで指定された運用ステータス移行が許可されていない場合は true を返します。

    StateManagementScriptableApi - isValidRequestor(文字列 requestorId)

    指定された要求者が有効かつアクティブなワークフローユーザーまたは登録されたユーザーであるかどうかを判断します。

    表 : 17. パラメーター
    名前 タイプ 説明
    requestorId 文字列 ワークフローコンテキストの sys_id、または registerOperator() メソッドから返された GUID。
    表 : 18. 返される内容
    タイプ 説明
    文字列 JSON 形式の名前と値のペア。
    可能な値:
    • result:requestorId が有効な場合は true
    • errors:エラーのリスト。

    この例では、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()

    ワークフロー以外のユーザーのオペレーターを登録します。

    表 : 19. パラメーター
    名前 タイプ 説明
    なし
    表 : 20. 返される内容
    タイプ 説明
    文字列 以下の名前と値のペアを含む JSON 形式の文字列
    • requestorid:CI アクション/運用ステータスを設定する際に使用される登録済みユーザーの GUID。
    • result:正常に登録された場合は true。
    • errors:エラーのリスト。
    
    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 アクションを削除します。

    表 : 21. パラメーター
    名前 タイプ 説明
    requestorId 文字列 ワークフローコンテキストの sys_id、または registerOperator() メソッドから返された GUID。
    sysIdList 文字列 CI の sys_id のカンマ区切りリスト
    ciActionName 文字列 CI アクション名
    表 : 22. 返される内容
    タイプ 説明
    文字列 以下の名前と値のペアを含む JSON 形式の文字列
    • result:リスト内のすべての CI に対してアクションが削除されている場合は true、そうでない場合は false。
    • errors:エラーのリスト。

    StateManagementScriptableApi - setBulkCIOperationalState(文字列 requestorId, 文字列 sysIdList, 文字列 opsLabel, 文字列 opsStateListOld)

    CI のリストに対して運用ステータスを設定します。

    表 : 23. パラメーター
    名前 タイプ 説明
    requestorId 文字列 ワークフローコンテキストの sys_id、または registerOperator() メソッドから返された GUID。
    sysIdList 文字列 CI の sys_id のカンマ区切りリスト。
    opsLabel 文字列 operational_status という選択肢の文字列ラベルです。
    opsStateListOld 文字列 (オプション) すべての CI が含まれているはずの、古い CI ステータスのカンマ区切りリスト。
    表 : 24. 返される内容
    タイプ 説明
    文字列 以下の名前と値のペアを含む JSON 形式の文字列
    • result:リスト内のすべての CI にステータスが設定されている場合は true、そうでない場合は false。
    • errors:エラーのリスト。
    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)

    ワークフロー以外のユーザーのオペレーターの登録を解除します。

    表 : 25. パラメーター
    名前 タイプ 説明
    requestorId 文字列 ワークフローコンテキストの sys_id、または registerOperator() メソッドから返された GUID。
    表 : 26. 返される内容
    タイプ 説明
    文字列 JSON 形式の名前と値のペア。
    可能な値:
    • result:正常に登録解除された場合は true
    • errors:エラーのリスト。

    この例では、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}