CIActionEngine - スコープ指定

  • リリースバージョン: Washingtondc
  • 更新日 2024年02月01日
  • 読む6読むのに数分
  • CIActionEngine API を使用すると、CI に対して任意のアクションを実行し、アクションを実行する前にユーザーの認証を確認し、アクション実行要求のステータスとアクション出力を取得することができます。

    CI アクションは、Metrics and CI Actions Framework 製品に関連付けられています。スコープ対象のアプリケーションでこのクラスを使用するには、 sn_cimaf 名前空間識別子を使用します。CIActionEngine Scoped API には、Metrics and CI Actions Framework (com.snc.sn_cimaf) プラグインが必要です。この API は sn_cimaf 名前空間内で提供されます。

    スコープ対象 CIActionEngine - execute()

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

    表 : 1. パラメーター
    名前 タイプ 説明
    action 文字列または 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. パラメーター
    名前 タイプ 説明
    action 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