RemedialActionEngine - 범위 지정됨

  • 릴리스 버전: Xanadu
  • 업데이트 날짜 2024년 08월 01일
  • 읽기14분
  • RemedialActionEngine API는 정정 작업을 수행하기 위한 메서드를 제공합니다.

    이 API는 정정 작업 프레임워크의 일부이며 다음 작업을 수행하는 데 사용할 수 있습니다.
    • 정정 작업을 시작합니다.
    • 정정 작업의 실행을 트리거합니다.
    • 정정 작업을 실행하려면 로그인한 사용자의 권한 부여를 확인하십시오.
    • 대상 기록에 대한 정정 작업의 적용 가능성을 확인합니다.
    • 대상 작업의 현재 실행 상태 및 출력 페이로드를 가져옵니다.

    이 API에는 com.snc.sn_reacf(정정 작업 프레임워크) 스토어 애플리케이션이 필요하며 sn_reacf 네임스페이스 내에서 제공됩니다.

    RemedialActionEngine - beginRemediation (문자열 remedialAction, 문자열 parentTable, 문자열 parentRecord, 객체 actionParams, 문자열 targetRecord, 문자열 originRecord)

    대상 기록에 대해 상위 기록에서 정정 작업을 시작합니다. 이 방법은 '준비' 상태의 새 정정 작업 실행 기록을 생성합니다.

    주:
    요청 매개변수를 정의할 때는 다음 사항에 유의해야 합니다.
    • 매개 변수 형식이 개체 또는 배열인 경우 각 속성과 해당 형식을 정의합니다.
    • 매개변수 유형이 GlideRecord인 경우 요청에 연결된 테이블을 제공합니다.
    표 1. 매개변수
    이름 유형 설명
    remedialAction 문자열 또는 GlideRecord femedial action [sn_reacf_remedial_action] 테이블의 Sys_id 또는 internal_name 또는 GlideRecord입니다.
    parentTable 문자열 상위 기록의 테이블 이름입니다.
    parentRecord 문자열 상위 기록의 Sys_id입니다.
    actionParams 객체

    옵션입니다. 정정 작업 매개변수 이름 및 값의 맵입니다.

    {
        “<parameter name>”: <parameter value>
    }
    주:
    매개변수 값은 정정 작업 매개변수 [sn_reacf_remedial_action_parameter] 테이블에 정의된 유형이어야 합니다.
    targetRecord 문자열 또는 GlideRecord 옵션입니다. 구성된 대상 테이블의 Sys_id 또는 GlideRecord
    originRecord 문자열 또는 GlideRecord 옵션입니다. 정정 작업 원본 [sn_reacf_remedial_action_origin] 테이블의 Sys_id 또는 GlideRecord입니다.
    표 2. 반환
    유형 설명
    객체
    {
        "statusCode": "String",
        "actionExecutionRequestId": "String",
        "parentRecord": "String",
        "parentTable": "String"
    }
    <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인 경우 요청에 연결된 테이블을 제공합니다.
    표 3. 매개변수
    이름 유형 설명
    remedialActionExecution 문자열 또는 GlideRecord 정정 작업 실행 [sn_reacf_remedial_action_execution] 테이블의 Sys_id 또는 GlideRecord입니다.
    표 4. 반환
    유형 설명
    부울

    정정 작업 실행 요청을 취소할 수 있는지 여부를 나타내는 플래그입니다.

    유효한 값은 다음과 같습니다.
    • true: 지정된 정정 작업 실행 요청을 취소할 수 있습니다.
    • false: 지정된 정정 작업 실행 요청을 취소할 수 없습니다.

    다음 예제에서는 현재 사용자가 현재 상태에서 수정 작업 실행을 취소할 수 있는지 여부를 확인하는 방법을 보여 줍니다.

    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인 경우 요청에 연결된 테이블을 제공합니다.
    표 5. 매개변수
    이름 유형 설명
    remedialActionExecution 문자열 또는 GlideRecord 정정 작업 실행 [sn_reacf_remedial_action_execution] 테이블의 Sys_id 또는 GlideRecord입니다.
    표 6. 반환
    유형 설명
    부울

    정정 작업 실행 요청을 취소할 수 있는지 여부를 나타내는 플래그입니다.

    유효한 값은 다음과 같습니다.
    • true: 지정된 정정 작업 실행 요청이 성공적으로 취소되었습니다. true로 설정하면 실행 기록이 "취소됨" 상태로 업데이트됩니다.
    • false: 지정된 수정 작업 실행 요청이 성공적으로 취소되지 않았습니다.

    다음 예제에서는 현재 상태에서 정정 작업 실행을 취소하는 방법을 보여 줍니다.

    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 작업)을 시작하고 정정 작업 실행 상태를 "진행 중"으로 전환합니다.

    표 7. 매개변수
    이름 유형 설명
    remedialActionExecution 문자열 또는 GlideRecord 정정 작업 실행 [sn_reacf_remedial_action_execution] 테이블의 Sys_id 또는 GlideRecord입니다.
    표 8. 반환
    유형 설명
    객체

    객체에는 정정 작업 실행의 action_execution_table과 action_execution_id이 포함되어 있습니다.

    {
       “action_execution_table”: “String”,
       “action_execution_id”: “Sys_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)

    대상 작업의 현재 실행 상태 및 출력 페이로드를 가져옵니다.

    표 9. 매개변수
    이름 유형 설명
    remedialActionExecution 문자열 또는 GlideRecord 정정 작업 실행 [sn_reacf_remedial_action_execution] 테이블의 Sys_id 또는 GlideRecord입니다.
    표 10. 반환
    유형 설명
    객체

    객체에는 대상 작업 상태의 값과 표시 값을 갖는 상태 객체와 정정 작업 실행의 일부로 실행되는 대상 작업 출력이 있는 페이로드 배열이 포함되어 있습니다.

    데이터 유형: 문자열

    {
      "status": {
        "value": "completed",
        "displayValue": "Completed"
      },
      "payload": [
        "{\"output\":\"SUCCESS: The process with PID 19604 has been terminated.\\r\\n\",\"cmd\":\"taskkill /pid 19604 /f\"}"
      ]
    }

    다음 예시는 대상 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)

    대상 기록에 대한 정정 작업의 적용 가능성을 확인합니다.

    표 11. 매개변수
    이름 유형 설명
    remedialAction 문자열 또는 GlideRecord 정정 작업 [sn_reacf_remedial_action] 테이블의 Sys_id 또는 internal_name 또는 GlideRecord입니다.
    targetRecord 문자열 또는 GlideRecord 구성된 대상 테이블의 Sys_id 또는 GlideRecord
    표 12. 반환
    유형 설명
    부울
    정정 작업에 대한 대상 기록의 적용 가능성을 나타내는 플래그입니다.
    • true: 정정 작업이 지정된 대상 기록에 적용될 수 있습니다.
    • false: 정정 작업이 지정된 대상 기록에 적용되지 않습니다.

    다음 예는 대상 기록에 대한 정정 작업의 적용 가능성을 확인하는 방법을 보여줍니다.

    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)

    사용자에게 정정 작업을 실행할 수 있는 권한이 있는지 확인합니다.

    표 13. 매개변수
    이름 유형 설명
    remedialAction 문자열 또는 GlideRecord 정정 작업 [sn_reacf_remedial_action] 테이블의 Sys_id 또는 internal_name 또는 GlideRecord입니다.
    표 14. 반환
    유형 설명
    부울

    사용자 인증의 결과 성공 상태를 나타내는 플래그입니다.

    • true: 사용자의 권한 부여에 성공했습니다.
    • false: 사용자의 권한 부여가 실패했습니다.

    다음 예제에서는 정정 작업을 실행하기 위한 권한 부여를 확인하는 방법을 보여 줍니다.

    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