2 * ============LICENSE_START=======================================================
3 * ONAP : ccsdk features
4 * ================================================================================
5 * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property.
7 * ================================================================================
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
19 * ============LICENSE_END=========================================================
22 package org.onap.ccsdk.features.sdnr.wt.dataprovider.database.elasticsearch.data.entity;
24 import java.util.regex.Matcher;
25 import java.util.regex.Pattern;
26 import javax.annotation.Nonnull;
27 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Fault;
28 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.FaultcurrentEntity;
29 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SeverityType;
31 public class FaultEntityManager {
33 private static final Pattern pattern = Pattern.compile(".*\\[layerProtocol=(.*)\\]");
36 * The leading indication for notification or events that are not in the currentProblem data of the ONF Coremodel
38 private static final String NOCURRENTPROBLEMINDICATION = "#";
41 * Specific problems are not moving into current problem list
43 * @param problemName to be verified
44 * @return true if problem is current
46 public static boolean isManagedAsCurrentProblem(String problemName) {
47 return !problemName.startsWith(NOCURRENTPROBLEMINDICATION);
50 public static boolean isManagedAsCurrentProblem(Fault problem) {
51 return isManagedAsCurrentProblem(problem.getProblem());
55 * Specific problems are not moving into current problem list
57 * @param fault to be verified
58 * @return true if cleared indication
60 public static boolean isNoAlarmIndication(@Nonnull Fault fault) {
61 return SeverityType.NonAlarmed.equals(fault.getSeverity());
65 * Create a specific ES id for the current log.
67 * @return a string with the generated ES Id
69 public static String genSpecificEsId(String nodeName, String objectId, String problemName) {
73 Matcher matcher = pattern.matcher(objectId);
74 if (matcher.matches() && matcher.groupCount() == 1) {
75 uuId = matcher.group(1);
80 StringBuffer strBuf = new StringBuffer();
81 strBuf.append(nodeName);
85 strBuf.append(problemName);
86 return strBuf.toString();
92 * @param fault used to create uuid for faultcurrent
93 * @return String with Id
95 public static String genSpecificEsId(FaultcurrentEntity fault) {
96 return genSpecificEsId(fault.getNodeId(), fault.getObjectId(), fault.getProblem());