Loading src/main/java/org/etsi/osl/tmf/metrics/api/GeneralMetricsApi.java 0 → 100644 +48 −0 Original line number Diff line number Diff line package org.etsi.osl.tmf.metrics.api; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.responses.ApiResponse; import io.swagger.v3.oas.annotations.responses.ApiResponses; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.Valid; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import java.util.Map; @Tag(name = "GeneralMetricsApi") public interface GeneralMetricsApi { Logger log = LoggerFactory.getLogger(GeneralMetricsApi.class); @Operation(summary = "Get total number of registered individuals", operationId = "getRegisteredIndividuals") @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "Success"), @ApiResponse(responseCode = "400", description = "Bad Request"), @ApiResponse(responseCode = "500", description = "Internal Server Error") }) @RequestMapping(value = "/tmf-api/metrics/registeredIndividuals", method = RequestMethod.GET, produces = "application/json;charset=utf-8") ResponseEntity<Map<String, Integer>> getRegisteredIndividuals(); @Operation(summary = "Get total number of published service specifications", operationId = "getPublishedServiceSpecifications") @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "Success"), @ApiResponse(responseCode = "400", description = "Bad Request"), @ApiResponse(responseCode = "500", description = "Internal Server Error") }) @RequestMapping(value = "/tmf-api/metrics/publishedServiceSpecifications", method = RequestMethod.GET, produces = "application/json;charset=utf-8") ResponseEntity<Map<String, Integer>> getPublishedServiceSpecifications(); @Operation(summary = "Get total number of registered resource specifications", operationId = "getRegisteredResourceSpecifications") @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "Success"), @ApiResponse(responseCode = "400", description = "Bad Request"), @ApiResponse(responseCode = "500", description = "Internal Server Error") }) @RequestMapping(value = "/tmf-api/metrics/registeredResourceSpecifications", method = RequestMethod.GET, produces = "application/json;charset=utf-8") ResponseEntity<Map<String, Integer>> getRegisteredResourceSpecifications(); } src/main/java/org/etsi/osl/tmf/metrics/api/GerenalMetricsApiController.java 0 → 100644 +64 −0 Original line number Diff line number Diff line package org.etsi.osl.tmf.metrics.api; import org.etsi.osl.tmf.metrics.reposervices.GeneralMetricsRepoService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import java.util.HashMap; import java.util.Map; @Controller public class GerenalMetricsApiController implements GeneralMetricsApi { private static final Logger log = LoggerFactory.getLogger(GerenalMetricsApiController.class); private final GeneralMetricsRepoService generalMetricsRepoService; @Autowired public GerenalMetricsApiController(GeneralMetricsRepoService generalMetricsRepoService) { this.generalMetricsRepoService = generalMetricsRepoService; } @Override public ResponseEntity<Map<String, Integer>> getRegisteredIndividuals() { try { int totalIndividuals = generalMetricsRepoService.countRegisteredIndividuals(); Map<String, Integer> response = new HashMap<>(); response.put("registeredIndividuals", totalIndividuals); return new ResponseEntity<>(response, HttpStatus.OK); } catch (Exception e) { log.error("Couldn't retrieve total registered individuals. ", e); return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); } } @Override public ResponseEntity<Map<String, Integer>> getPublishedServiceSpecifications() { try { int totalSpecifications = generalMetricsRepoService.countPublishedServiceSpecifications(); Map<String, Integer> response = new HashMap<>(); response.put("publishedServiceSpecifications", totalSpecifications); return new ResponseEntity<>(response, HttpStatus.OK); } catch (Exception e) { log.error("Couldn't retrieve total published service specifications. ", e); return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); } } @Override public ResponseEntity<Map<String, Integer>> getRegisteredResourceSpecifications() { try { int totalResourceSpecifications = generalMetricsRepoService.countRegisteredResourceSpecifications(); Map<String, Integer> response = new HashMap<>(); response.put("registeredResourceSpecifications", totalResourceSpecifications); return new ResponseEntity<>(response, HttpStatus.OK); } catch (Exception e) { log.error("Couldn't retrieve total registered resource specifications. ", e); return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); } } } src/main/java/org/etsi/osl/tmf/metrics/reposervices/GeneralMetricsRepoService.java 0 → 100644 +41 −0 Original line number Diff line number Diff line package org.etsi.osl.tmf.metrics.reposervices; import org.etsi.osl.tmf.pm632.repo.IndividualRepository; import org.etsi.osl.tmf.rcm634.repo.ResourceSpecificationRepository; import org.etsi.osl.tmf.scm633.model.ServiceCategory; import org.etsi.osl.tmf.scm633.repo.CategoriesRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service public class GeneralMetricsRepoService { @Autowired IndividualRepository individualRepository; @Autowired ResourceSpecificationRepository resourceSpecificationRepository; @Autowired CategoriesRepository categoriesRepository; public int countRegisteredIndividuals() { return individualRepository.countAll(); } public int countPublishedServiceSpecifications() { List<ServiceCategory> serviceCategories = categoriesRepository.findByOrderByName(); int count = 0; for (ServiceCategory serviceCategory : serviceCategories) { count += serviceCategory.getServiceCandidateObj().size() + serviceCategory.getServiceCandidateRefs().size(); } return count; } public int countRegisteredResourceSpecifications() { return resourceSpecificationRepository.countLogical() + resourceSpecificationRepository.countPhysical(); } } src/main/java/org/etsi/osl/tmf/pm632/repo/IndividualRepository.java +7 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ package org.etsi.osl.tmf.pm632.repo; import java.util.List; import java.util.Optional; import org.etsi.osl.tmf.pm632.model.Individual; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.CrudRepository; import org.springframework.data.repository.PagingAndSortingRepository; import org.springframework.stereotype.Repository; Loading @@ -40,4 +41,10 @@ public interface IndividualRepository extends CrudRepository<Individual, Long>, Optional<Individual> findByPreferredGivenName(String username); //Methods for metrics @Query("SELECT COUNT(ind) FROM Individual ind") int countAll(); } src/main/java/org/etsi/osl/tmf/rcm634/repo/ResourceSpecificationRepository.java +8 −0 Original line number Diff line number Diff line Loading @@ -52,4 +52,12 @@ public interface ResourceSpecificationRepository extends CrudRepository<Resource @Query("SELECT sc FROM PhysicalRspec sc") List<PhysicalResourceSpecification> findAllPhysical(); // Methods for metrics @Query("SELECT COUNT(sc) FROM LogicalRspec sc") int countLogical(); @Query("SELECT COUNT(sc) FROM PhysicalRspec sc") int countPhysical(); } Loading
src/main/java/org/etsi/osl/tmf/metrics/api/GeneralMetricsApi.java 0 → 100644 +48 −0 Original line number Diff line number Diff line package org.etsi.osl.tmf.metrics.api; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.responses.ApiResponse; import io.swagger.v3.oas.annotations.responses.ApiResponses; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.Valid; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import java.util.Map; @Tag(name = "GeneralMetricsApi") public interface GeneralMetricsApi { Logger log = LoggerFactory.getLogger(GeneralMetricsApi.class); @Operation(summary = "Get total number of registered individuals", operationId = "getRegisteredIndividuals") @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "Success"), @ApiResponse(responseCode = "400", description = "Bad Request"), @ApiResponse(responseCode = "500", description = "Internal Server Error") }) @RequestMapping(value = "/tmf-api/metrics/registeredIndividuals", method = RequestMethod.GET, produces = "application/json;charset=utf-8") ResponseEntity<Map<String, Integer>> getRegisteredIndividuals(); @Operation(summary = "Get total number of published service specifications", operationId = "getPublishedServiceSpecifications") @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "Success"), @ApiResponse(responseCode = "400", description = "Bad Request"), @ApiResponse(responseCode = "500", description = "Internal Server Error") }) @RequestMapping(value = "/tmf-api/metrics/publishedServiceSpecifications", method = RequestMethod.GET, produces = "application/json;charset=utf-8") ResponseEntity<Map<String, Integer>> getPublishedServiceSpecifications(); @Operation(summary = "Get total number of registered resource specifications", operationId = "getRegisteredResourceSpecifications") @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "Success"), @ApiResponse(responseCode = "400", description = "Bad Request"), @ApiResponse(responseCode = "500", description = "Internal Server Error") }) @RequestMapping(value = "/tmf-api/metrics/registeredResourceSpecifications", method = RequestMethod.GET, produces = "application/json;charset=utf-8") ResponseEntity<Map<String, Integer>> getRegisteredResourceSpecifications(); }
src/main/java/org/etsi/osl/tmf/metrics/api/GerenalMetricsApiController.java 0 → 100644 +64 −0 Original line number Diff line number Diff line package org.etsi.osl.tmf.metrics.api; import org.etsi.osl.tmf.metrics.reposervices.GeneralMetricsRepoService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import java.util.HashMap; import java.util.Map; @Controller public class GerenalMetricsApiController implements GeneralMetricsApi { private static final Logger log = LoggerFactory.getLogger(GerenalMetricsApiController.class); private final GeneralMetricsRepoService generalMetricsRepoService; @Autowired public GerenalMetricsApiController(GeneralMetricsRepoService generalMetricsRepoService) { this.generalMetricsRepoService = generalMetricsRepoService; } @Override public ResponseEntity<Map<String, Integer>> getRegisteredIndividuals() { try { int totalIndividuals = generalMetricsRepoService.countRegisteredIndividuals(); Map<String, Integer> response = new HashMap<>(); response.put("registeredIndividuals", totalIndividuals); return new ResponseEntity<>(response, HttpStatus.OK); } catch (Exception e) { log.error("Couldn't retrieve total registered individuals. ", e); return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); } } @Override public ResponseEntity<Map<String, Integer>> getPublishedServiceSpecifications() { try { int totalSpecifications = generalMetricsRepoService.countPublishedServiceSpecifications(); Map<String, Integer> response = new HashMap<>(); response.put("publishedServiceSpecifications", totalSpecifications); return new ResponseEntity<>(response, HttpStatus.OK); } catch (Exception e) { log.error("Couldn't retrieve total published service specifications. ", e); return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); } } @Override public ResponseEntity<Map<String, Integer>> getRegisteredResourceSpecifications() { try { int totalResourceSpecifications = generalMetricsRepoService.countRegisteredResourceSpecifications(); Map<String, Integer> response = new HashMap<>(); response.put("registeredResourceSpecifications", totalResourceSpecifications); return new ResponseEntity<>(response, HttpStatus.OK); } catch (Exception e) { log.error("Couldn't retrieve total registered resource specifications. ", e); return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); } } }
src/main/java/org/etsi/osl/tmf/metrics/reposervices/GeneralMetricsRepoService.java 0 → 100644 +41 −0 Original line number Diff line number Diff line package org.etsi.osl.tmf.metrics.reposervices; import org.etsi.osl.tmf.pm632.repo.IndividualRepository; import org.etsi.osl.tmf.rcm634.repo.ResourceSpecificationRepository; import org.etsi.osl.tmf.scm633.model.ServiceCategory; import org.etsi.osl.tmf.scm633.repo.CategoriesRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service public class GeneralMetricsRepoService { @Autowired IndividualRepository individualRepository; @Autowired ResourceSpecificationRepository resourceSpecificationRepository; @Autowired CategoriesRepository categoriesRepository; public int countRegisteredIndividuals() { return individualRepository.countAll(); } public int countPublishedServiceSpecifications() { List<ServiceCategory> serviceCategories = categoriesRepository.findByOrderByName(); int count = 0; for (ServiceCategory serviceCategory : serviceCategories) { count += serviceCategory.getServiceCandidateObj().size() + serviceCategory.getServiceCandidateRefs().size(); } return count; } public int countRegisteredResourceSpecifications() { return resourceSpecificationRepository.countLogical() + resourceSpecificationRepository.countPhysical(); } }
src/main/java/org/etsi/osl/tmf/pm632/repo/IndividualRepository.java +7 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ package org.etsi.osl.tmf.pm632.repo; import java.util.List; import java.util.Optional; import org.etsi.osl.tmf.pm632.model.Individual; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.CrudRepository; import org.springframework.data.repository.PagingAndSortingRepository; import org.springframework.stereotype.Repository; Loading @@ -40,4 +41,10 @@ public interface IndividualRepository extends CrudRepository<Individual, Long>, Optional<Individual> findByPreferredGivenName(String username); //Methods for metrics @Query("SELECT COUNT(ind) FROM Individual ind") int countAll(); }
src/main/java/org/etsi/osl/tmf/rcm634/repo/ResourceSpecificationRepository.java +8 −0 Original line number Diff line number Diff line Loading @@ -52,4 +52,12 @@ public interface ResourceSpecificationRepository extends CrudRepository<Resource @Query("SELECT sc FROM PhysicalRspec sc") List<PhysicalResourceSpecification> findAllPhysical(); // Methods for metrics @Query("SELECT COUNT(sc) FROM LogicalRspec sc") int countLogical(); @Query("SELECT COUNT(sc) FROM PhysicalRspec sc") int countPhysical(); }