CIActionEngine – Scoped

  • Freigeben Version: Washingtondc
  • Aktualisiert 1. Februar 2024
  • 2 Minuten Lesedauer
  • Mit der CIActionEngine- API können Sie eine beliebige Aktion für ein CI ausführen, die Autorisierung eines Benutzers überprüfen, bevor eine Aktion ausgeführt wird, und den Status und die Aktionsausgaben einer beliebigen Aktionsausführungsanforderung abrufen.

    Die CI-Aktion ist dem Produkt „Metrics and CI Actions Framework“ zugeordnet. Um diese Klasse in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie den Namespace-Identifier sn_cimaf. Die bereichsbezogene CIActionEngine-API erfordert das Plugin „Metrics and CI Actions Framework“ (com.snc.sn_cimaf) und wird im sn_cimaf- Namespace bereitgestellt.

    Scoped CIActionEngine – execute()

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

    Tabelle : 1. Parameter
    Name Typ Beschreibung
    Aktion Zeichenfolge oder Glide-Datensatz Sys_id oder GlideRecord der Aktionstabelle [sn_cimaf_action].
    CI Zeichenfolge 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 der Aktionsparameternamen und -werte.

    {
     “<parameter name>”: <parameter value>
    }
    Hinweis:
    Parameterwerte müssen den Typ haben, der in der Tabelle „Aktionsparameter“ [sn_cimaf_action_parameter] definiert ist.
    Tabelle : 2. Ergebnisse
    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

    Scoped 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. Ergebnisse
    Typ Beschreibung
    Objekt Objekt, das den Status und die Liste der Aktionsausgaben der angegebenen Aktionsanforderung enthält.
    { 
        “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 Status- und Aktionsausgaben für eine Aktionsanforderung abgerufen werden.

    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"
        }
      ]
    }

    Scoped CIActionEngine – isAuthorized()

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

    Die Konfigurationen werden in den Tabellen „Aktionsrolle“ [sn_cimaf_action_role], „Einschluss der Benutzerkriterienaktion“ [sn_cimaf_action_user_criteria_mtom] und „Ausschluss der Benutzerkriterienaktion“ [sn_cimaf_action_user_criteria_no_mtom] definiert.

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

    Kennzeichnung, die die erfolgreiche Autorisierung des Benutzers angibt.

    Gültige Werte:
    • true: Benutzer ist zum Ausführen der Aktion berechtigt.
    • false: Benutzer ist zum Ausführen der Aktion berechtigt.

    Im folgenden Beispiel wird die Methode isAuthorized() verwendet, um die Berechtigung eines Benutzers zum Ausführen einer Aktion für ein CI zu überprüfen.

    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