CIActionEngine - 범위 지정됨
CIActionEngine API는 CI(구성 항목)에서 작업을 실행하고, 작업을 실행하기 전에 사용자의 권한 부여를 확인하고, 작업 실행 요청의 상태 및 작업 출력을 가져올 수 있는 메서드를 제공합니다.
CI 작업은 메트릭 및 CI 작업 프레임워크 애플리케이션과 연결됩니다. 범위가 지정된 애플리케이션에서 이 클래스를 사용하려면 sn_cimaf 네임스페이스 식별자를 사용합니다. CIActionEngine API에는 메트릭 및 com.snc.sn_cimaf(CI 작업 프레임워크) 플러그인이 필요하며 sn_cimaf 네임스페이스 내에서 제공됩니다.
CIActionEngine - 실행()
구성된 작업 매개변수를 사용하여 CI에 대한 모든 작업을 실행합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 작업 | 문자열 또는 Glide 기록 | 작업 [sn_cimaf_action] 테이블의 Sys_id 또는 GlideRecord입니다. |
| CI | 문자열 또는 Glide 기록 | 작업을 실행해야 하는 CMDB [cmdb_ci] 테이블의 Sys_id 또는 GlideRecord |
| actionParams | 객체 | 옵션입니다. 작업 매개변수 이름 및 값의 맵입니다.
주: 매개변수 값은 작업 매개변수 [sn_cimaf_action_parameter] 테이블에 정의된 유형이어야 합니다. |
| 유형 | 설명 |
|---|---|
| 문자열 | 신규 또는 기존의 중복 진행 중인 작업 요청의 Sys_id입니다. |
다음 예는 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);
출력:
Action Request Id: e34e3a199d16a510f877a45cc5e8a492
CIActionEngine - getActionRequestOutput()
작업 실행 요청의 상태 및 작업 출력을 가져옵니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 작업 요청 | Glide 기록 | 작업 요청 [sn_cimaf_action_request] 테이블의 GlideRecord입니다. |
| 유형 | 설명 |
|---|---|
| 객체 | 객체에는 제공된 작업 요청의 작업 출력 상태와 목록이 포함되어 있습니다. |
다음 예제에서는 작업 요청에 대한 상태 및 작업 출력을 가져오는 방법을 보여 줍니다.
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));
출력:
{
"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()
로그인한 사용자의 인증을 확인한 후 지정된 구성에 따라 작업을 실행할 수 있습니다.
구성은 작업 역할 [sn_cimaf_action_role], 사용자 기준 작업 포함[sn_cimaf_action_user_criteria_mtom] 및 사용자 기준 작업 제외[sn_cimaf_action_user_criteria_no_mtom] 테이블에 정의됩니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 작업 | Glide 기록 | 작업 [sn_cimaf_action] 테이블의 GlideRecord입니다. |
| 유형 | 설명 |
|---|---|
| 부울 | 사용자 권한 부여의 성공을 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.
|
다음 예시에서는 isAuthorized() 메서드를 사용하여 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