public SnmpNotifier(final SnmpProperties snmpProperties) {
this.alarmTrap = snmpProperties.getAlarmTrap();
this.clearTrap = snmpProperties.getClearTrap();
- this.target = new CommunityTarget();
+ this.target = new CommunityTarget<>();
target.setCommunity(new OctetString("public"));
target.setVersion(SnmpConstants.version2c);
target.setAddress(new UdpAddress(snmpProperties.getDestiny()));
${project.reporting.outputDirectory}/jacoco-aggregate
</jacoco.reportDirectory.aggregate>
<sonar.coverage.jacoco.xmlReportPaths>
- ../ves-nf-oam-adopter/ves-nf-oam-adopter-event-notifier/target/site/jacoco-ut/jacoco.xml,
- ../ves-nf-oam-adopter/ves-nf-oam-adopter-event-notifier/target/site/jacoco-aggregate/jacoco.xml,
- ../ves-nf-oam-adopter/ves-nf-oam-adopter-snmp-manager/target/site/jacoco-ut/jacoco.xml,
- ../ves-nf-oam-adopter/ves-nf-oam-adopter-snmp-manager/target/site/jacoco-aggregate/jacoco.xml,
- ../ves-nf-oam-adopter/ves-nf-oam-adopter-pm-manager/target/site/jacoco-ut/jacoco.xml,
- ../ves-nf-oam-adopter/ves-nf-oam-adopter-pm-manager/target/site/jacoco-aggregate/jacoco.xml,
- ../ves-nf-oam-adopter/ves-nf-oam-adopter-pm-sb-rest-client/target/site/jacoco-ut/jacoco.xml,
- ../ves-nf-oam-adopter/ves-nf-oam-adopter-pm-sb-rest-client/target/site/jacoco-aggregate/jacoco.xml,
- ../ves-nf-oam-adopter/ves-nf-oam-adopter-app/target/site/jacoco-ut/jacoco.xml,
- ../ves-nf-oam-adopter/ves-nf-oam-adopter-app/target/site/jacoco-aggregate/jacoco.xml
+ ../ves-nf-oam-adopter-event-notifier/target/site/jacoco-ut/jacoco.xml,
+ ../ves-nf-oam-adopter-event-notifier/target/site/jacoco-aggregate/jacoco.xml,
+ ../ves-nf-oam-adopter-snmp-manager/target/site/jacoco-ut/jacoco.xml,
+ ../ves-nf-oam-adopter-snmp-manager/target/site/jacoco-aggregate/jacoco.xml,
+ ../ves-nf-oam-adopter-pm-manager/target/site/jacoco-ut/jacoco.xml,
+ ../ves-nf-oam-adopter-pm-manager/target/site/jacoco-aggregate/jacoco.xml,
+ ../ves-nf-oam-adopter-pm-sb-rest-client/target/site/jacoco-ut/jacoco.xml,
+ ../ves-nf-oam-adopter-pm-sb-rest-client/target/site/jacoco-aggregate/jacoco.xml,
+ ../ves-nf-oam-adopter-app/target/site/jacoco-ut/jacoco.xml,
+ ../ves-nf-oam-adopter-app/target/site/jacoco-aggregate/jacoco.xml
</sonar.coverage.jacoco.xmlReportPaths>
<sonar.scanner.version>4.4.0.2170</sonar.scanner.version>
<sonar.exclusions>
private static final String CSV_EXTENSION = ".csv";
private final PerformanceManagementMapperConfigProvider pmConfigProvider;
+ private static final int THRESHOLD_SIZE = 1000000000; // 1 GB
@Autowired
public PerformanceManagementFile2VesMapper(final PerformanceManagementMapperConfigProvider pmConfigProvider) {
ZipEntry entry;
final VesMappingConfiguration mappingConfiguration = pmConfigProvider.getVesMappingConfiguration();
while ((entry = zipInputStream.getNextEntry()) != null) {
+ if (entry.getSize() > THRESHOLD_SIZE || entry.getSize() == -1) {
+ throw new IllegalStateException("File to be unzipped too big.");
+ }
final String entryName = entry.getName();
if (!entryName.endsWith(CSV_EXTENSION)) {
return Single.error(new Exception("Wrong file type :" + entryName));
package org.o.ran.oam.nf.oam.adopter.pm.rest.manager;
-import static java.lang.Thread.sleep;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertThrows;
private static List<String> getVesNotification(final VesEventNotifierMock listener, final int expectedSize)
throws InterruptedException {
List<String> events = null;
- for (int i = 0; i < 100000; i++) {
- sleep(1000);
- events = listener.getEvents();
- if (events != null && !events.isEmpty() && events.size() == expectedSize) {
- break;
+ synchronized (listener) {
+ for (int i = 0; i < 100000; i++) {
+ listener.wait(1000);
+ events = listener.getEvents();
+ if (events != null && !events.isEmpty() && events.size() == expectedSize) {
+ break;
+ }
}
}
return events;
CacheBuilder.newBuilder().refreshAfterWrite(59, TimeUnit.MINUTES).build(new CacheLoader<>() {
@Override
public String load(final Adapter adapter) throws ExecutionException, InterruptedException {
- try {
- return returnToken(DefaultHttpRestClient.this.client, DefaultHttpRestClient.this.tokenEndpoint,
- adapter);
- } catch (final Exception error) {
- LOG.error("Failed to read time zone", error);
- throw error;
- }
+ return returnToken(DefaultHttpRestClient.this.client, DefaultHttpRestClient.this.tokenEndpoint,
+ adapter);
}
});
final String statusLine = new StatusLine(response).toString();
final ContentType contentType = response.getContentType();
final SimpleBody entity = response.getBody();
- if (response.getCode() == HttpStatus.SC_OK && entity != null) {
- if (ContentType.APPLICATION_OCTET_STREAM.getMimeType().equals(contentType.getMimeType())) {
- return Single.just(entity);
- }
+ if (response.getCode() == HttpStatus.SC_OK && entity != null && ContentType.APPLICATION_OCTET_STREAM
+ .getMimeType().equals(contentType.getMimeType())) {
+ return Single.just(entity);
}
return Single.error(new PerformanceManagementException(
"Download files from " + adapter.getHostIpAddress() + " failed: " + statusLine));
}
@SuppressFBWarnings("WA_NOT_IN_LOOP")
- private void listenSnmp(final MessageDispatcher dispatcher, final DefaultUdpTransportMapping snmpTarget) {
+ private synchronized void listenSnmp(final MessageDispatcher dispatcher,
+ final DefaultUdpTransportMapping snmpTarget) {
try (final Snmp snmp = new Snmp(dispatcher, snmpTarget)) {
snmp.addCommandResponder(this);
snmpTarget.listen();
@ExtendWith(SpringExtension.class)
@SpringBootTest(classes = {VesEventNotifierMock.class, SnmpMappingConfigurationProvider.class,
SnmpMapperImpl.class, SnmpManagerProperties.class, SnmpManagerConfig.class})
-public class SnmpManagerTest {
+class SnmpManagerTest {
@Autowired
@Qualifier("test")
private VesEventNotifierMock listener;
when(timeZoneOffsetService.getTimeZone(anyString())).thenReturn(ZoneId.of("+02:00"));
}
- private static String getVesNotification(final VesEventNotifierMock notificationProvider)
- throws InterruptedException {
- for (int i = 0; i < 1000; i++) {
- Thread.sleep(100);
- if (notificationProvider.getEvent() != null) {
- break;
+ private String getVesNotification(final VesEventNotifierMock notificationProvider) throws InterruptedException {
+ synchronized (notificationProvider) {
+ for (int i = 0; i < 1000; i++) {
+ notificationProvider.wait(200);
+ if (notificationProvider.getEvent() != null) {
+ break;
+ }
}
}
final String event = notificationProvider.getEvent();
}
@Test
- public void testDefaultTrap() throws Exception {
+ void testDefaultTrap() throws Exception {
SnmpTestUtil
.sendDefaultTrapV2(snmpManagerProperties.getHost(), Integer.toString(snmpManagerProperties.getPort()));
final String expected = JsonUtils.readJson("/json/VESMessageDefaultTrap.json");
}
@Test
- public void testBoxDown() throws Exception {
+ void testBoxDown() throws Exception {
SnmpTestUtil.sendPortDownTrapV2(snmpManagerProperties.getHost(),
Integer.toString(snmpManagerProperties.getPort()));
final String expected = JsonUtils.readJson("/json/PortDOWN.json");
import org.snmp4j.PDU;
import org.snmp4j.Snmp;
import org.snmp4j.mp.SnmpConstants;
-import org.snmp4j.smi.Address;
import org.snmp4j.smi.OID;
import org.snmp4j.smi.OctetString;
import org.snmp4j.smi.TimeTicks;
public static final OID NOTIFICATION_INTERFACE = new OID(new int[] {1, 3, 6, 1, 4, 1, 1007, 0, 0, 1, 0, 7});
private static void sndTrap(final PDU trap, final String host, final String port) throws IOException {
- final Address targetaddress = new UdpAddress(host + "/" + port);
- final CommunityTarget target = new CommunityTarget();
+ final UdpAddress targetaddress = new UdpAddress(host + "/" + port);
+ final CommunityTarget<UdpAddress> target = new CommunityTarget<>();
target.setCommunity(new OctetString("public"));
target.setVersion(SnmpConstants.version2c);
target.setAddress(targetaddress);