CIActionEngine - 범위 지정
CIActionEngine API를 사용하면 CI에서 모든 작업을 실행하고, 작업을 실행하기 전에 사용자의 권한 부여를 확인하고, 작업 실행 요청의 상태 및 작업 출력을 가져올 수 있습니다.
CI 작업은 메트릭 및 CI 작업 프레임워크 제품과 연결됩니다. 범위가 지정된 응용 프로그램에서 이 클래스를 사용하려면 sn_cimaf 네임스페이스 식별자를 사용합니다. CIActionEngine 범위가 지정된 API에는 com.snc.sn_cimaf(메트릭 및 CI 작업 프레임워크) 플러그인이 필요하며 sn_cimaf 네임스페이스 내에 제공됩니다.
범위가 지정된 CIActionEngine - execute()
구성된 작업 매개변수를 사용하여 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