Standalone TCA with EELF Logger
[dcaegen2/analytics/tca-gen2.git] / dcae-analytics / dcae-analytics-tca-core / src / main / java / org / onap / dcae / analytics / tca / core / util / function / calculation / TcaAaiEnrichmentFunction.java
1 /*
2  * ================================================================================
3  * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved.
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  * ============LICENSE_END=========================================================
17  *
18  */
19
20 package org.onap.dcae.analytics.tca.core.util.function.calculation;
21
22 import java.util.Optional;
23
24 import org.onap.dcae.analytics.tca.core.service.TcaAaiEnrichmentContext;
25 import org.onap.dcae.analytics.tca.core.service.TcaAaiEnrichmentService;
26 import org.onap.dcae.analytics.tca.core.service.TcaExecutionContext;
27 import org.onap.dcae.analytics.tca.model.facade.TcaAlert;
28 import org.onap.dcae.analytics.tca.model.policy.ClosedLoopEventStatus;
29
30 /**
31  * @author Rajiv Singla
32  */
33 public class TcaAaiEnrichmentFunction implements TcaCalculationFunction {
34
35     @Override
36     public TcaExecutionContext calculate(final TcaExecutionContext tcaExecutionContext) {
37
38         final TcaAaiEnrichmentContext aaiEnrichmentContext = tcaExecutionContext.getTcaAaiEnrichmentContext();
39         final Optional<TcaAlert> tcaAlertOptional =
40                 Optional.ofNullable(tcaExecutionContext.getTcaResultContext().getTcaAlert());
41
42         // Skip Aai Enrichment - if aai enrichment is not enabled or no alert is present
43         if (!aaiEnrichmentContext.isAaiEnrichmentEnabled() || !tcaAlertOptional.isPresent()) {
44             return tcaExecutionContext;
45         }
46
47         // Skip Aai Enrichment - if Alert Closed Loop Event status is not ONSET
48         final TcaAlert tcaAlert = tcaAlertOptional.get();
49         final ClosedLoopEventStatus closedLoopEventStatus =
50                 ClosedLoopEventStatus.valueOf(tcaAlert.getClosedLoopEventStatus());
51         if (closedLoopEventStatus != ClosedLoopEventStatus.ONSET) {
52             return tcaExecutionContext;
53         }
54
55         // do Aai Enrichment
56         final TcaAaiEnrichmentService aaiEnrichmentService = aaiEnrichmentContext.getAaiEnrichmentService();
57         final TcaAlert enrichedTcaAlert = aaiEnrichmentService.doAaiEnrichment(tcaExecutionContext);
58         tcaExecutionContext.getTcaResultContext().setTcaAlert(enrichedTcaAlert);
59
60         return tcaExecutionContext;
61     }
62 }