Commit 16b57db2 authored by Anastasios Poimenidis's avatar Anastasios Poimenidis
Browse files

feat: introduce new Kafka channel for service monitor requests and implement...

feat: introduce new Kafka channel for service monitor requests and implement logic for services and corresponding monitored resources
parent deb868af
Loading
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -196,7 +196,7 @@
    <dependency>
      <groupId>org.etsi.osl.hypo.api</groupId>
      <artifactId>tmf.schema</artifactId>
      <version>2.5.2</version>
      <version>2.6.1</version>
    </dependency>

    <dependency>
+4 −0
Original line number Diff line number Diff line
@@ -67,6 +67,10 @@ public class ResourceInventoryService {
        return resourceMapper.resourceEntityToResponse(resource);
    }

    public void createResource(Resource resource, UriInfo uriInfo) {
        createResourceEntity(uriInfo, resource);
    }

    private void createResourceEntity(UriInfo uriInfo, Resource resource) {
        findRelatedPartyAndAddItToResource(resource);
        if (uriInfo != null) {
+8 −0
Original line number Diff line number Diff line
@@ -520,4 +520,12 @@ public class ServiceRepositories {
    public boolean isPeeredOrganization(Organization organization) {
        return organizationService.isPeeredOrganization(organization);
    }

    public void persistResource(Resource resourceCreated) {
        resourceInventoryService.createResource(resourceCreated, null);
    }

    public Set<Resource> findResourcesByIdsSet(Set<String> supportingResourceIds) {
        return resourceInventoryService.getResourcesSet(supportingResourceIds);
    }
}
+11 −0
Original line number Diff line number Diff line
@@ -13,6 +13,7 @@ import java.util.concurrent.CompletionStage;
import org.eclipse.microprofile.reactive.messaging.Incoming;
import org.eclipse.microprofile.reactive.messaging.Message;
import org.etsi.osl.hypo.api.tmf.common.api.constants.AlarmLogsConstants;
import org.etsi.osl.hypo.api.tmf.services.inventory.api.kafka.incoming.monitor.ServiceMonitorRequest;
import org.etsi.osl.hypo.api.tmf.services.inventory.api.services.ServiceInventoryService;
import org.etsi.osl.hypo.core.common.service.inventory.CloudEventResourceDashboard;
import org.etsi.osl.hypo.core.common.service.inventory.CloudEventServiceStateUpdate;
@@ -86,4 +87,14 @@ public class ServiceInventoryKafkaListener {
                cloudEventDeleteServiceTelemetry.toStringAsJson(), TMF_SERVICE_DASHBOARD_DELETE);
        serviceInventoryService.updateServiceDeleteDashboardData(cloudEventDeleteServiceTelemetry);
    }

    @WithSpan("ServiceInventoryKafkaListener.receiveServiceMonitoringRequest")
    @Incoming("service-monitor-request")
    @Blocking
    public void receiveServiceMonitorRequest(ServiceMonitorRequest serviceMonitorRequest) {
        logger.debugf(
                "Received event message for service monitor: %s in channel %s",
                serviceMonitorRequest, "service-monitor-request");
        serviceInventoryService.updateServiceWithMonitorInfo(serviceMonitorRequest);
    }
}
+11 −0
Original line number Diff line number Diff line
package org.etsi.osl.hypo.api.tmf.services.inventory.api.kafka.incoming;

import io.quarkus.kafka.client.serialization.ObjectMapperDeserializer;
import org.etsi.osl.hypo.api.tmf.services.inventory.api.kafka.incoming.monitor.ServiceMonitorRequest;

public class ServiceMonitorRequestDeserializer
        extends ObjectMapperDeserializer<ServiceMonitorRequest> {
    public ServiceMonitorRequestDeserializer() {
        super(ServiceMonitorRequest.class);
    }
}
Loading