Fix Sonar complains
[oam/nf-oam-adopter.git] / ves-nf-oam-adopter / ves-nf-oam-adopter-pm-manager / src / main / java / org / o / ran / oam / nf / oam / adopter / pm / rest / manager / mapper / MeasurementFieldsHandler.java
1 /*
2  *  ============LICENSE_START=======================================================
3  *  O-RAN-SC
4  *  ================================================================================
5  *  Copyright © 2021 AT&T Intellectual Property. All rights reserved.
6  *  ================================================================================
7  *  Licensed under the Apache License, Version 2.0 (the "License");
8  *  you may not use this file except in compliance with the License.
9  *  You may obtain a copy of the License at
10  *        http://www.apache.org/licenses/LICENSE-2.0
11  *
12  *  Unless required by applicable law or agreed to in writing, software
13  *  distributed under the License is distributed on an "AS IS" BASIS,
14  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  *  See the License for the specific language governing permissions and
16  *  limitations under the License.
17  *  ============LICENSE_END=========================================================
18  */
19
20 package org.o.ran.oam.nf.oam.adopter.pm.rest.manager.mapper;
21
22 import java.util.Collections;
23 import java.util.Map;
24 import java.util.function.Function;
25 import java.util.stream.Collectors;
26 import lombok.AccessLevel;
27 import lombok.NoArgsConstructor;
28 import org.o.ran.oam.nf.oam.adopter.api.MeasurementFields;
29 import org.o.ran.oam.nf.oam.adopter.api.NamedHashMap;
30 import org.o.ran.oam.nf.oam.adopter.pm.rest.manager.pojos.CsvConfiguration;
31 import org.o.ran.oam.nf.oam.adopter.pm.rest.manager.pojos.VesMappingConfiguration;
32
33 @NoArgsConstructor(access = AccessLevel.PRIVATE)
34 final class MeasurementFieldsHandler {
35     private static void setOptionalsFields(final MeasurementFields measurementFields, final Map<String, String> records,
36             final VesMappingConfiguration config) {
37         final CsvConfiguration csv = config.getCsv();
38         measurementFields.setAdditionalFields(csv.getAdditionalFields()
39                 .stream().filter(records::containsKey)
40                 .collect(Collectors.toMap(Function.identity(), records::get)));
41
42         final var namedHashMap = new NamedHashMap();
43         namedHashMap.setName(csv.getAdditionalMeasurementsName());
44         namedHashMap.setHashMap(csv.getAdditionalMeasurements().stream()
45                 .filter(records::containsKey)
46                 .collect(Collectors.toMap(Function.identity(), records::get)));
47         measurementFields.setAdditionalMeasurements(Collections.singletonList(namedHashMap));
48         measurementFields.setAdditionalObjects(null);
49         measurementFields.setCodecUsageArray(null);
50         measurementFields.setConfiguredEntities(null);
51         measurementFields.setCpuUsageArray(null);
52         measurementFields.setDiskUsageArray(null);
53         measurementFields.setFeatureUsageArray(null);
54         measurementFields.setFilesystemUsageArray(null);
55         measurementFields.setHugePagesArray(null);
56         measurementFields.setIpmi(null);
57         measurementFields.setLatencyDistribution(null);
58         measurementFields.setLoadArray(null);
59         measurementFields.setMachineCheckExceptionArray(null);
60         measurementFields.setMeanRequestLatency(null);
61         measurementFields.setMemoryUsageArray(null);
62         measurementFields.setNfcScalingMetric(null);
63         measurementFields.setNicPerformanceArray(null);
64         measurementFields.setNumberOfMediaPortsInUse(null);
65         measurementFields.setProcessStatsArray(null);
66         measurementFields.setRequestRate(null);
67     }
68
69     static MeasurementFields toMeasurementFields(final VesMappingConfiguration config,
70             final Map<String, String> records) {
71         final var measurementFields = new MeasurementFields();
72         setMandatoryFields(measurementFields, config);
73         setOptionalsFields(measurementFields, records, config);
74         return measurementFields;
75     }
76
77     private static void setMandatoryFields(final MeasurementFields measurementFields,
78             final VesMappingConfiguration config) {
79         measurementFields.setMeasurementFieldsVersion(MeasurementFields.MeasurementFieldsVersion._4_0);
80         measurementFields.setMeasurementInterval(config.getMeasurementInterval());
81     }
82 }