CIActionEngine : Bereichsbezogen

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 2 Minuten Lesedauer
  • Die CIActionEngine- API stellt Methoden bereit, mit denen Sie eine beliebige Aktion für ein Configuration Item (CI) ausführen, die Autorisierung eines Benutzers vor der Ausführung einer Aktion überprüfen und den Status und die Aktionsausgaben einer Aktionsausführungsanforderung abrufen können.

    Die CI-Aktion ist mit der Anwendung Framework für Metriken und CI-Aktionen verknüpft. Um diese Klasse in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie den Namespace-Bezeichner sn_cimaf. Die CIActionEngine- API erfordert das Plugin „Framework für Metriken und CI-Aktionen“ (com.snc.sn_cimaf) und wird im Namespace sn_cimaf bereitgestellt.

    CIActionEngine – execute()

    Führt eine beliebige Aktion für ein CI mit den konfigurierten Aktionsparametern aus.

    Tabelle : 1. Parameter
    Name Typ Beschreibung
    Aktion Zeichenfolgen- oder Glide-Datensatz Sys_id oder GlideRecord der Tabelle „Aktion“ [sn_cimaf_action].
    ci Zeichenfolgen- oder Glide-Datensatz Sys_id oder GlideRecord der CMDB-Tabelle [cmdb_ci], für die die Aktion ausgeführt werden muss
    actionParams Objekt

    Optional. Zuordnung von Aktionsparameternamen und -werten.

    {
     “<parameter name>”: <parameter value>
    }
    Hinweis:
    Parameterwerte müssen den in der Tabelle „Aktionsparameter“ [sn_cimaf_action_parameter] definierten Typ aufweisen.
    Tabelle : 2. Rückgaben
    Typ Beschreibung
    Zeichenfolge Sys_id der neuen oder vorhandenen doppelten in Bearbeitung befindlichen Aktionsanforderung.

    Das folgende Beispiel zeigt, wie ein Prozess für ein CI beendet wird.

    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);

    Ausgabe:

    Action Request Id: e34e3a199d16a510f877a45cc5e8a492

    CIActionEngine – getActionRequestOutput()

    Ruft den Status und die Aktionsausgaben einer Aktionsausführungsanforderung ab.

    Tabelle : 3. Parameter
    Name Typ Beschreibung
    actionRequest Glide-Datensatz GlideRecord der Tabelle „Aktionsanforderung“ [sn_cimaf_action_request].
    Tabelle : 4. Rückgaben
    Typ Beschreibung
    Objekt Objekt enthält den Status und die Liste der Aktionsausgaben der angegebenen Aktionsanforderung.
    { 
        “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 
              } 
          ] 
    } 

    Das folgende Beispiel zeigt, wie Sie Status- und Aktionsausgaben für eine beliebige Aktionsanforderung abrufen.

    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));

    Ausgabe:

    {
      "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()

    Überprüft die Autorisierung des angemeldeten Anwenders, bevor er eine Aktion gemäß den angegebenen Konfigurationen ausführen kann.

    Die Konfigurationen sind in den Tabellen „Aktionsrolle“ [sn_cimaf_action_role], „Einschluss von Anwenderkriterienaktionen“ [sn_cimaf_action_user_criteria_mtom] und „Ausschluss von Anwenderkriterienaktionen“ [sn_cimaf_action_user_criteria_no_mtom] definiert.

    Hinweis:
    Standardmäßig schlägt die Autorisierung fehl, wenn in einer dieser Tabellen keine Konfiguration für die Aktion vorhanden ist.
    Tabelle : 5. Parameter
    Name Typ Beschreibung
    Aktion Glide-Datensatz GlideRecord der Tabelle „Aktion“ [sn_cimaf_action].
    Tabelle : 6. Rückgaben
    Typ Beschreibung
    Boolean

    Kennzeichnung, die die erfolgreiche Autorisierung des Anwenders anzeigt.

    Gültige Werte:
    • „wahr“: Der Anwender ist berechtigt, die Aktion auszuführen.
    • „falsch“: Der Anwender ist berechtigt, die Aktion auszuführen.

    Im folgenden Beispiel wird mit der Methode isAuthorized() überprüft, ob ein Benutzer berechtigt ist, eine Aktion für ein CI auszuführen.

    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