CIActionEngine - Com escopo
A API CIActionEngine permite executar qualquer ação em um IC, verificar a autorização de um usuário antes de executar uma ação e obter as saídas de status e ação de qualquer solicitação de execução de ação.
A Ação de IC está associada ao produto Estrutura de métricas e ações de IC. Para usar essa classe em uma aplicação com escopo, use o identificador de namespace sn_cimaf. A API com escopo CIActionEngine requer o plug-in Estrutura de métricas e ações de IC (com.snc.sn_cimaf) e é fornecida no namespace sn_cimaf.
CIActionEngine com escopo – execute()
Executa qualquer ação em um IC com os parâmetros de ação configurados.
| Nome | Tipo | Descrição |
|---|---|---|
| ação | Cadeia de caracteres ou registro do Glide | Sys_id ou GlideRecord da tabela Ação [sn_cimaf_action]. |
| ic | Cadeia de caracteres ou registro do Glide | Sys_id ou GlideRecord da tabela CMDB [cmdb_ci] na qual a Ação precisa ser executada |
| actionParams | Objeto | Opcional. Mapa de nomes e valores de parâmetro de ação.
Nota: Os valores de parâmetro devem ser do tipo definido na tabela Parâmetro de ação [sn_cimaf_action_parameter]. |
| Tipo | Descrição |
|---|---|
| Cadeia de caracteres | Sys_id da solicitação de ação em andamento duplicada nova ou existente. |
O exemplo a seguir mostra como eliminar um processo em um IC.
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);
Saída:
Action Request Id: e34e3a199d16a510f877a45cc5e8a492
CIActionEngine com escopo - getActionRequestOutput()
Obtém o status e as saídas de ação de uma solicitação de execução de ação.
| Nome | Tipo | Descrição |
|---|---|---|
| solicitação de ação | Registro do Glide | GlideRecord da tabela de solicitação de ação [sn_cimaf_action_request]. |
| Tipo | Descrição |
|---|---|
| Objeto | O objeto contém o status e a lista das saídas de ação da solicitação de ação fornecida. |
O exemplo a seguir mostra como obter saídas de status e ação para qualquer solicitação de ação.
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));
Saída:
{
"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 com escopo - isAuthorized()
Verifica a autorização do usuário conectado antes que ele possa executar uma ação de acordo com as configurações especificadas.
As configurações são definidas nas tabelas Função de ação [sn_cimaf_action_role], Inclusão de ação de critérios do usuário [sn_cimaf_action_user_criteria_mtom] e Exclusão de ação de critérios do usuário [sn_cimaf_action_user_criteria_no_mtom].
| Nome | Tipo | Descrição |
|---|---|---|
| ação | Registro do Glide | GlideRecord da tabela Ação [sn_cimaf_action]. |
| Tipo | Descrição |
|---|---|
| Booliano | Sinalizador que indica o sucesso da autorização do usuário. Valores válidos:
|
O exemplo a seguir usa o método isAuthorized() para verificar a autorização de um usuário para executar qualquer ação em um IC.
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