CIActionEngine : inclus dans le champ d’application

  • Rversion finale: Xanadu
  • Mis à jour 1 août 2024
  • 2 minutes de lecture
  • L’API CIActionEngine fournit des méthodes qui vous permettent d’exécuter n’importe quelle action sur un élément de configuration (CI), de vérifier l’autorisation d’un utilisateur avant d’exécuter une action et d’obtenir l’état et les sorties d’action de n’importe quelle demande d’exécution d’action.

    L’action de CI est associée à l’application Cadre de travail pour les mesures et les actions de CI. Pour utiliser cette classe dans une application incluse dans le périmètre, utilisez l’identificateur d’espace de noms sn_cimaf. L’API CIActionEngine nécessite le module d’extension Cadre de travail pour les mesures et les actions de CI (com.snc.sn_cimaf) et est fournie dans l’espace de noms sn_cimaf .

    CIActionEngine : execute()

    Exécute n’importe quelle action sur un CI avec les paramètres d’action configurés.

    Tableau 1. Paramètres
    Nom Type Description
    action Enregistrement String ou Glide Sys_id ou GlideRecord de la table Action [sn_cimaf_action].
    ci Enregistrement String ou Glide Sys_id ou GlideRecord de la table CMDB [cmdb_ci] sur laquelle l’action doit être exécutée
    Paramètres d’action Objet

    Facultatif. Carte des noms et valeurs des paramètres d’action.

    {
     “<parameter name>”: <parameter value>
    }
    Remarque :
    Les valeurs des paramètres doivent être du type défini dans la table Paramètre d’action [sn_cimaf_action_parameter].
    Tableau 2. Renvoie
    Type Description
    Chaîne Sys_id de la demande d’action en cours, nouvelle ou existante en double.

    L’exemple suivant montre comment arrêter un processus sur un 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);

    Sortie :

    Action Request Id: e34e3a199d16a510f877a45cc5e8a492

    CIActionEngine : getActionRequestOutput()

    Obtient l’état et les sorties d’action d’une demande d’exécution d’action.

    Tableau 3. Paramètres
    Nom Type Description
    Demande d’action Enregistrement Glide GlideRecord de la table Demande d’action [sn_cimaf_action_request].
    Tableau 4. Renvoie
    Type Description
    Objet L’objet contient l’état et la liste des sorties d’action de la demande d’action fournie.
    { 
        “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 
              } 
          ] 
    } 

    L’exemple suivant montre comment obtenir l’état et les sorties d’action pour n’importe quelle demande d’action.

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

    Sortie :

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

    Vérifie l’autorisation de l’utilisateur connecté avant qu’il puisse exécuter une action selon les configurations spécifiées.

    Les configurations sont définies dans les tables Rôle d’action [sn_cimaf_action_role], Inclusion des actions des critères d’utilisateur [sn_cimaf_action_user_criteria_mtom] et Exclusion des actions des critères d’utilisateur [sn_cimaf_action_user_criteria_no_mtom].

    Remarque :
    Par défaut, si aucune configuration n’est présente dans l’une de ces tables pour l’action, l’autorisation échoue.
    Tableau 5. Paramètres
    Nom Type Description
    action Enregistrement Glide GlideRecord de la table Action [sn_cimaf_action].
    Tableau 6. Renvoie
    Type Description
    Booléen

    Marqueur qui indique la réussite de l’autorisation de l’utilisateur.

    Valeurs valides :
    • vrai : l’utilisateur est autorisé à exécuter l’action.
    • false : l’utilisateur est autorisé à exécuter l’action.

    L’exemple suivant utilise la méthode isAuthorized() pour vérifier l’autorisation d’un utilisateur à exécuter une action sur un 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