CIActionEngine - スコープ指定

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間:6分
  • CIActionEngine API は、構成アイテム (CI) に対して任意のアクションを実行し、アクションを実行する前にユーザーの権限を確認し、任意のアクション実行要求のステータスとアクション出力を取得できるようにするメソッドを提供します。

    CI アクションは、メトリクスと CI アクションフレームワークアプリケーションに関連付けられています。スコープ対象のアプリケーションでこのクラスを使用するには、 sn_cimaf 名前空間識別子を使用します。CIActionEngine API には、メトリクスと CI アクションフレームワーク (com.snc.sn_cimaf) プラグインが必要であり、sn_cimaf 名前空間内で提供されます。

    CIActionEngine:実行()

    構成されたアクションパラメーターを使用して、CI で任意のアクションを実行します。

    表 : 1. パラメーター
    名前 タイプ 説明
    アクション 文字列または Glide レコード アクション [sn_cimaf_action] テーブルの Sys_id または GlideRecord。
    CI 文字列または Glide レコード アクションを実行する必要がある CMDB [cmdb_ci] テーブルの Sys_id または GlideRecord
    actionParams オブジェクト

    オプション。アクションパラメーターの名前と値のマップ。

    {
     “<parameter name>”: <parameter value>
    }
    注:
    パラメーター値は、アクションパラメーター [sn_cimaf_action_parameter] テーブルで定義されたタイプである必要があります。
    表 : 2. 戻り値
    タイプ 説明
    文字列 新規または既存の重複進行中のアクション要求Sys_id。

    次の例は、CI でプロセスを強制終了する方法を示しています。

    var actionSysId = "6303db0d53b99910ae50ddeeff7b121e";	 
    //Sys_id of the Action – End Process 
    var ciSysId = "b4fd7c8437201000deeabfc8bcbe5dc1"; //Sys_id of the CI 
    var actionParams = { 
        process_id: 23342 //Process id of the process to be killed 
    }; 
     
    var ciActionEngine = new sn_cimaf.CIActionEngine(); 
    var actionRequestId = ciActionEngine.execute(actionSysId, ciSysId, actionParams); 
     
    gs.info("Action Request Id: " + actionRequestId);

    出力:

    Action Request Id: e34e3a199d16a510f877a45cc5e8a492

    CIActionEngine - getActionRequestOutput()

    アクション実行要求のステータスとアクション出力を取得します。

    表 : 3. パラメーター
    名前 タイプ 説明
    アクションの要求 Glide レコード アクション要求 [sn_cimaf_action_request] テーブルの GlideRecord。
    表 : 4. 戻り値
    タイプ 説明
    オブジェクト オブジェクトには、指定されたアクション要求のステータスとアクション出力のリストが含まれています。
    { 
        “sys_id”: “String”, 
        “state”: “String”, //Possible values: completed, in_progress, failed 
        “sn_cimaf_action_output”: [ 
              { 
                    “sys_id”: “String”, 
                    “action_command”: “String”, //Sys_id of the Action Configuration Step table 
                    “payload”: “String”, 
                    “state”: “String”, //Possible values: completed, in_progress, failed, validation_failure 
                    “request_id”: “String” //Unique id returned by Provider on executing action_command 
              } 
          ] 
    } 

    次の例は、アクション要求のステータスとアクションの出力を取得する方法を示しています。

    var actionRequestGr = new GlideRecord('sn_cimaf_action_request'); 
    actionRequestGr.get('e34e3a199d16a510f877a45cc5e8a492'); 
     
    var ciActionEngine = new sn_cimaf.CIActionEngine(); 
    var actionRequestOutput = ciActionEngine.getActionRequestOutput(actionRequestGr); 
    gs.info("Action Request Output: " + JSON.stringify(actionRequestOutput, null, 2));

    出力:

    {
      "sys_id": "e34e3a199d16a510f877a45cc5e8a492",
      "state": "completed",
      "sn_cimaf_action_output": [
        {
          "sys_id": "405ef2599d16a510f877a45cc5e8a41e",
          "action_command": "b0e43efb53259510ae50ddeeff7b129b",
          "payload": "{\"output\":\"SUCCESS: The process with PID 23342 has been terminated.\\r\\n\",\"cmd\":\"taskkill /pid 23342 /f\"}",
          "state": "completed",
          "request_id": "cc5ef2599d16a510f877a45cc5e8a41d"
        }
      ]
    }

    CIActionEngine:isAuthorized()

    サインインしているユーザーが指定された構成に従ってアクションを実行する前に、サインインしているユーザーの権限を確認します。

    構成は、アクションロール [sn_cimaf_action_role]、ユーザー基準のアクションの包含 [sn_cimaf_action_user_criteria_mtom]、およびユーザー基準のアクションの除外 [sn_cimaf_action_user_criteria_no_mtom] テーブルで定義されます。

    注:
    デフォルトでは、これらのテーブルのいずれにもアクションの構成が存在しない場合、認可は失敗します。
    表 : 5. パラメーター
    名前 タイプ 説明
    アクション Glide レコード アクション [sn_cimaf_action] テーブルの GlideRecord。
    表 : 6. 戻り値
    タイプ 説明
    ブール

    ユーザーの承認が成功したことを示すフラグ。

    有効な値:
    • true:ユーザーにはアクションを実行する権限があります。
    • false:ユーザーにはアクションを実行する権限があります。

    次の例では、 isAuthorized() メソッドを使用して、CI でアクションを実行するユーザーの権限を確認します。

    var actionSysId = "6303db0d53b99910ae50ddeeff7b121e" //Sys_id of the Action 
    var actionGr = new GlideRecord('sn_cimaf_action'); 
    actionGr.get('6303db0d53b99910ae50ddeeff7b121e'); 
     
    var ciActionEngine = new sn_cimaf.CIActionEngine(); 
    var isAuthorized = ciActionEngine.isAuthorized(actionGr); 
    gs.info("Is user authorized: " + isAuthorized);
    Is user authorized: true