Seed code
[nonrtric/rapp/orufhrecovery.git] / apexpolicyversion / LinkMonitor / models / TaskSelectionLogic.js
1 /*
2  * ============LICENSE_START=======================================================
3  * Copyright (C) 2021 Nordix Foundation.
4  * ================================================================================
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  *      http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  * SPDX-License-Identifier: Apache-2.0
18  * ============LICENSE_END=========================================================
19  */
20
21 executor.logger.info("Task Selection Execution: '"+executor.subject.id+
22     "'. InputFields: '"+executor.inFields+"'");
23
24 var linkFailureInput = executor.inFields.get("LinkFailureInput");
25 var commonEventHeader = linkFailureInput.get("event").get("commonEventHeader");
26 var domain = commonEventHeader.get("domain");
27
28 taskFailure = executor.subject.getTaskKey("CreateLinkFailureOutfieldsTask");
29 taskCleared = executor.subject.getTaskKey("CreateLinkClearedOutfieldsTask");
30 taskDefault = executor.subject.getDefaultTaskKey();
31
32 if (domain == "fault") {
33     var faultFields = linkFailureInput.get("event").get("faultFields");
34     var alarmCondition = faultFields.get("alarmCondition");
35     var eventSeverity = faultFields.get("eventSeverity");
36     if (alarmCondition == "28" && eventSeverity != "NORMAL") {
37         taskFailure.copyTo(executor.selectedTask);
38     } else if (alarmCondition == "28" && eventSeverity == "NORMAL") {
39         taskCleared.copyTo(executor.selectedTask);
40     } else {
41         taskDefault.copyTo(executor.selectedTask);
42     }
43 } else {
44     taskDefault.copyTo(executor.selectedTask);
45 }
46
47 true;