RemedialActionEngine - 범위 지정됨
RemedialActionEngine API는 정정 작업을 수행하기 위한 메서드를 제공합니다.
- 정정 작업을 시작합니다.
- 정정 작업의 실행을 트리거합니다.
- 정정 작업을 실행하려면 로그인한 사용자의 권한 부여를 확인하십시오.
- 대상 기록에 대한 정정 작업의 적용 가능성을 확인합니다.
- 대상 작업의 현재 실행 상태 및 출력 페이로드를 가져옵니다.
이 API에는 com.snc.sn_reacf(정정 작업 프레임워크) 스토어 애플리케이션이 필요하며 sn_reacf 네임스페이스 내에서 제공됩니다.
RemedialActionEngine - beginRemediation (문자열 remedialAction, 문자열 parentTable, 문자열 parentRecord, 객체 actionParams, 문자열 targetRecord, 문자열 originRecord)
대상 기록에 대해 상위 기록에서 정정 작업을 시작합니다. 이 방법은 '준비' 상태의 새 정정 작업 실행 기록을 생성합니다.
- 매개 변수 형식이 개체 또는 배열인 경우 각 속성과 해당 형식을 정의합니다.
- 매개변수 유형이 GlideRecord인 경우 요청에 연결된 테이블을 제공합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| remedialAction | 문자열 또는 GlideRecord | femedial action [sn_reacf_remedial_action] 테이블의 Sys_id 또는 internal_name 또는 GlideRecord입니다. |
| parentTable | 문자열 | 상위 기록의 테이블 이름입니다. |
| parentRecord | 문자열 | 상위 기록의 Sys_id입니다. |
| actionParams | 객체 | 옵션입니다. 정정 작업 매개변수 이름 및 값의 맵입니다.
주: 매개변수 값은 정정 작업 매개변수 [sn_reacf_remedial_action_parameter] 테이블에 정의된 유형이어야 합니다. |
| targetRecord | 문자열 또는 GlideRecord | 옵션입니다. 구성된 대상 테이블의 Sys_id 또는 GlideRecord |
| originRecord | 문자열 또는 GlideRecord | 옵션입니다. 정정 작업 원본 [sn_reacf_remedial_action_origin] 테이블의 Sys_id 또는 GlideRecord입니다. |
| 유형 | 설명 |
|---|---|
| 객체 | |
| <Object>.statusCode | 정정 작업 실행 요청의 상태 코드(성공, duplicate_request 또는 실패)입니다. |
| <Object>.actionExecutionRequestId | 새 정정 작업 실행 기록 또는 중복된 동시 정정 작업 실행 기록의 Sys_id |
| <Object>.parentRecord | 중복된 동시 정정 작업 실행 기록의 상위 기록 Sys_id입니다. |
| <Object>.parentTable | 중복 동시 정정 작업 실행 기록의 상위 기록의 테이블 이름입니다. |
다음 예제에서는 정정 작업을 시작하는 방법을 보여 줍니다. 여기서 정정 작업은 내부적으로 CI 작업을 사용하여 CI의 프로세스를 강제 종료합니다.
var remedialAction = "9ef9924c436521101a24ff53e9b8f2d2" //sys_id of the Action
var parentTable = "incident"; //table name of the Parent record
var parentRecord = "62733787871e25105763ec6d0ebb3579" //sys_id of the Parent record
var actionParams = {
process_id: "322113"
}
var targetRecord = "af57a3418775e5105763ec6d0ebb356d"; //sys_id of the Target record
var originRecord = "26e78022c3d525104f1a722e3f40dd99"; //sys_id of the Origin record
var remedialActionEngine = new sn_reacf.RemedialActionEngine();
var response = remedialActionEngine.beginRemediation(remedialAction, parentTable, parentRecord, actionParams, targetRecord, originRecord);
gs.info(JSON.stringify(response));
출력 객체:
Case 1 :successful :
{
‘statusCode’: ‘successful’,
‘actionExecutionRequestId: ‘979b6060a5954300964fa3aa92874155’
}
Case 2 :Duplicate :
{
‘statusCode’: ‘duplicate_request,
‘actionExecutionRequestId’: ‘552c48888c033300964f4932b03eb092’,
‘parentRecord’ : ‘1a14620f973be110539e35d11153afc8’,
‘parentTable’: ‘incident’
}
Case 3 : Failed
{
‘statusCode’: ‘failed,
}
RemedialActionEngine - canCancel(String remedialActionExecution)
이 메서드는 현재 사용자가 지정된 정정 작업 실행을 취소할 수 있는지 여부를 확인하는 데 사용됩니다.
- 매개 변수 형식이 개체 또는 배열인 경우 각 속성과 해당 형식을 정의합니다.
- 매개변수 유형이 GlideRecord인 경우 요청에 연결된 테이블을 제공합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| remedialActionExecution | 문자열 또는 GlideRecord | 정정 작업 실행 [sn_reacf_remedial_action_execution] 테이블의 Sys_id 또는 GlideRecord입니다. |
| 유형 | 설명 |
|---|---|
| 부울 | 정정 작업 실행 요청을 취소할 수 있는지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.
|
다음 예제에서는 현재 사용자가 현재 상태에서 수정 작업 실행을 취소할 수 있는지 여부를 확인하는 방법을 보여 줍니다.
var remedialActionExecutionId = "9ef9924c436521101a24ff53e9b8f2d2" //sys_id of sn_reacf_remedia_action_execution record
var remedialActionEngine = new sn_reacf.RemedialActionEngine();
var canCancel = remedialActionEngine.canCancel(remedialActionExecutionId)
gs.info("canCancel: " + canCancel);
출력:
canCancel: true
RemedialActionEngine - cancelExecution(문자열: remedialActionExecution)
정정 작업 실행 요청을 취소한 다음 실행 기록을 "취소됨" 상태로 업데이트하고 성공 시 예를 반환합니다.
- 매개 변수 형식이 개체 또는 배열인 경우 각 속성과 해당 형식을 정의합니다.
- 매개변수 유형이 GlideRecord인 경우 요청에 연결된 테이블을 제공합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| remedialActionExecution | 문자열 또는 GlideRecord | 정정 작업 실행 [sn_reacf_remedial_action_execution] 테이블의 Sys_id 또는 GlideRecord입니다. |
| 유형 | 설명 |
|---|---|
| 부울 | 정정 작업 실행 요청을 취소할 수 있는지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.
|
다음 예제에서는 현재 상태에서 정정 작업 실행을 취소하는 방법을 보여 줍니다.
var remedialActionExecutionId = "9ef9924c436521101a24ff53e9b8f2d2" //sys_id of sn_reacf_remedia_action_execution record
var remedialActionEngine = new sn_reacf.RemedialActionEngine();
var cancelExecution = remedialActionEngine.cancelExecution(remedialActionExecutionId)
gs.info(‘cancelExecution: ’ + cancelExecution);
출력:
cancelExecution : true
RemedialActionEngine - executeRemedialAction(문자열: remedialActionExecution)
시작되어 현재 준비 상태인 정정 작업 실행을 트리거합니다. 이 방법은 대상 작업(예: CI 작업)을 시작하고 정정 작업 실행 상태를 "진행 중"으로 전환합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| remedialActionExecution | 문자열 또는 GlideRecord | 정정 작업 실행 [sn_reacf_remedial_action_execution] 테이블의 Sys_id 또는 GlideRecord입니다. |
| 유형 | 설명 |
|---|---|
| 객체 | 객체에는 정정 작업 실행의 action_execution_table과 action_execution_id이 포함되어 있습니다. |
다음 예제에서는 정정 작업을 실행하는 방법을 보여 줍니다.
var remedialActionExecution = "8ed58be387d2a5100295ebd73cbb35a3"; //Sys_id of the Remedial Action Execution record
var remedialActionEngine = new sn_reacf.RemedialActionEngine();
var response = remedialActionEngine.executeRemedialAction(remedialActionExecution);
gs.info("Response: " + JSON.stringify(response, null, 2));
출력:
{
"action_execution_table": "sn_cimaf_action_request",
"action_execution_id": "2d7843a787d2a5100295ebd73cbb35d4"
}
RemedialActionEngine - getRemedialActionOutput(문자열 remedialActionExecution)
대상 작업의 현재 실행 상태 및 출력 페이로드를 가져옵니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| remedialActionExecution | 문자열 또는 GlideRecord | 정정 작업 실행 [sn_reacf_remedial_action_execution] 테이블의 Sys_id 또는 GlideRecord입니다. |
| 유형 | 설명 |
|---|---|
| 객체 | 객체에는 대상 작업 상태의 값과 표시 값을 갖는 상태 객체와 정정 작업 실행의 일부로 실행되는 대상 작업 출력이 있는 페이로드 배열이 포함되어 있습니다. 데이터 유형: 문자열 |
다음 예시는 대상 Action의 현재 실행 상태 및 출력 페이로드를 가져오는 방법을 보여줍니다.
var remedialActionExecution = "8ed58be387d2a5100295ebd73cbb35a3"; //sys_id of the Remedial Action Execution record
var remedialActionEngine = new sn_reacf.RemedialActionEngine();
var response = remedialActionEngine.getRemedialActionOutput(remedialActionExecution);
gs.info("Response: " + JSON.stringify(response, null, 2));
출력:
{
"status": {
"value": "completed",
"displayValue": "Completed"
},
"payload": [
"{\"output\":\"SUCCESS: The process with PID 19604 has been terminated.\\r\\n\",\"cmd\":\"taskkill /pid 19604 /f\"}"
]
}
RemedialActionEngine - isApplicable (문자열 remedialAction, 문자열 targetRecord)
대상 기록에 대한 정정 작업의 적용 가능성을 확인합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| remedialAction | 문자열 또는 GlideRecord | 정정 작업 [sn_reacf_remedial_action] 테이블의 Sys_id 또는 internal_name 또는 GlideRecord입니다. |
| targetRecord | 문자열 또는 GlideRecord | 구성된 대상 테이블의 Sys_id 또는 GlideRecord |
| 유형 | 설명 |
|---|---|
| 부울 | 정정 작업에 대한 대상 기록의 적용 가능성을 나타내는 플래그입니다.
|
다음 예는 대상 기록에 대한 정정 작업의 적용 가능성을 확인하는 방법을 보여줍니다.
var remedialAction = "9ef9924c436521101a24ff53e9b8f2d2"; //Sys_id of the Remedial Action Execution record
var targetRecord = "df3799a387a921100295ebd73cbb35c4"; //Sys_id of the Target Record
var remedialActionEngine = new sn_reacf.RemedialActionEngine();
var isApplicable = remedialActionEngine.isApplicable(remedialAction, targetRecord);
gs.info("Is applicable: " + isApplicable);
출력:
Is applicable: true
RemedialActionEngine - isAuthorized(String remedialAction)
사용자에게 정정 작업을 실행할 수 있는 권한이 있는지 확인합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| remedialAction | 문자열 또는 GlideRecord | 정정 작업 [sn_reacf_remedial_action] 테이블의 Sys_id 또는 internal_name 또는 GlideRecord입니다. |
| 유형 | 설명 |
|---|---|
| 부울 | 사용자 인증의 결과 성공 상태를 나타내는 플래그입니다.
|
다음 예제에서는 정정 작업을 실행하기 위한 권한 부여를 확인하는 방법을 보여 줍니다.
var actionSysId = "e62f550843e121101a24ff53e9b8f23b"; //Sys_id of the Action
var remedialActionEngine = new sn_reacf.RemedialActionEngine();
var isAuthorized = remedialActionEngine.isAuthorized(actionSysId);
gs.info("Is user authorized: " + isAuthorized);
출력:
Is user authorized: true