CIActionEngine : inclus dans le champ d’application
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.
| 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.
Remarque : Les valeurs des paramètres doivent être du type défini dans la table Paramètre d’action [sn_cimaf_action_parameter]. |
| 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.
| Nom | Type | Description |
|---|---|---|
| Demande d’action | Enregistrement Glide | GlideRecord de la table Demande d’action [sn_cimaf_action_request]. |
| Type | Description |
|---|---|
| Objet | L’objet contient l’état et la liste des sorties d’action de la demande d’action fournie. |
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].
| Nom | Type | Description |
|---|---|---|
| action | Enregistrement Glide | GlideRecord de la table Action [sn_cimaf_action]. |
| Type | Description |
|---|---|
| Booléen | Marqueur qui indique la réussite de l’autorisation de l’utilisateur. Valeurs valides :
|
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