diff options
Diffstat (limited to 'mso-catalog-db/src')
3 files changed, 77 insertions, 37 deletions
diff --git a/mso-catalog-db/src/main/java/org/onap/so/db/catalog/client/CatalogDbClient.java b/mso-catalog-db/src/main/java/org/onap/so/db/catalog/client/CatalogDbClient.java index d3a1c5d8d6..edfaba0fb2 100644 --- a/mso-catalog-db/src/main/java/org/onap/so/db/catalog/client/CatalogDbClient.java +++ b/mso-catalog-db/src/main/java/org/onap/so/db/catalog/client/CatalogDbClient.java @@ -20,14 +20,6 @@ package org.onap.so.db.catalog.client; -import java.io.IOException; -import java.net.URI; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import javax.ws.rs.core.UriBuilder; - import org.onap.so.db.catalog.beans.BuildingBlockDetail; import org.onap.so.db.catalog.beans.CollectionNetworkResourceCustomization; import org.onap.so.db.catalog.beans.CollectionResourceInstanceGroupCustomization; @@ -40,6 +32,7 @@ import org.onap.so.db.catalog.beans.ResourceType; import org.onap.so.db.catalog.beans.Service; import org.onap.so.db.catalog.beans.VfModuleCustomization; import org.onap.so.db.catalog.beans.VnfcInstanceGroupCustomization; +import org.onap.so.db.catalog.beans.ServiceRecipe; import org.onap.so.db.catalog.beans.macro.NorthBoundRequest; import org.onap.so.db.catalog.beans.macro.OrchestrationFlow; import org.onap.so.db.catalog.beans.macro.RainyDayHandlerStatus; @@ -54,38 +47,58 @@ import org.springframework.http.client.ClientHttpResponse; import org.springframework.http.client.SimpleClientHttpRequestFactory; import org.springframework.stereotype.Component; import org.springframework.web.client.RestTemplate; - import uk.co.blackpepper.bowman.Client; import uk.co.blackpepper.bowman.ClientFactory; import uk.co.blackpepper.bowman.Configuration; import uk.co.blackpepper.bowman.RestTemplateConfigurer; +import javax.annotation.PostConstruct; +import javax.ws.rs.core.UriBuilder; +import java.io.IOException; +import java.net.URI; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + @Component("CatalogDbClient") public class CatalogDbClient { - protected Client<Service> serviceClient; + private static final String SERVICE_RECIPE_SEARCH = "/serviceRecipe/search"; + private static final String SERVICE_MODEL_UUID = "SERVICE_MODEL_UUID"; + private static final String ACTION = "ACTION"; + private static final String MODEL_NAME = "MODEL_NAME"; + private static final String SERVICE_SEARCH = "/service/search"; + private static final String MODEL_VERSION = "MODEL_VERSION"; + private static final String MODEL_INVARIANT_UUID = "MODEL_INVARIANT_UUID"; + private String findFirstByModelNameURI = "/findFirstByModelNameOrderByModelVersionDesc"; + private String findFirstByServiceModelUUIDAndActionURI = "/findFirstByServiceModelUUIDAndAction"; + private String findByModelVersionAndModelInvariantUUIDURI = "/findByModelVersionAndModelInvariantUUID"; + + private Client<Service> serviceClient; - protected Client<VfModuleCustomization> vfModuleCustomizationClient; + private Client<VfModuleCustomization> vfModuleCustomizationClient; - protected Client<OrchestrationFlow> orchestrationClient; + private Client<OrchestrationFlow> orchestrationClient; - protected Client<NorthBoundRequest> northBoundRequestClient; + private Client<NorthBoundRequest> northBoundRequestClient; - protected Client<RainyDayHandlerStatus> rainyDayHandlerStatusClient; + private Client<RainyDayHandlerStatus> rainyDayHandlerStatusClient; - protected Client<BuildingBlockDetail> buildingBlockDetailClient; + private Client<BuildingBlockDetail> buildingBlockDetailClient; - protected Client<OrchestrationStatusStateTransitionDirective> orchestrationStatusStateTransitionDirectiveClient; + private Client<OrchestrationStatusStateTransitionDirective> orchestrationStatusStateTransitionDirectiveClient; - protected Client<VnfcInstanceGroupCustomization> vnfcInstanceGroupCustomizationClient; + private Client<VnfcInstanceGroupCustomization> vnfcInstanceGroupCustomizationClient; - protected Client<CollectionResourceInstanceGroupCustomization> collectionResourceInstanceGroupCustomizationClient; + private Client<CollectionResourceInstanceGroupCustomization> collectionResourceInstanceGroupCustomizationClient; - protected Client<InstanceGroup> instanceGroupClient; + private Client<InstanceGroup> instanceGroupClient; - protected Client<NetworkCollectionResourceCustomization> networkCollectionResourceCustomizationClient; + private Client<NetworkCollectionResourceCustomization> networkCollectionResourceCustomizationClient; - protected Client<CollectionNetworkResourceCustomization> collectionNetworkResourceCustomizationClient; + private Client<CollectionNetworkResourceCustomization> collectionNetworkResourceCustomizationClient; + + private Client<ServiceRecipe> serviceRecipeClient; @Value("${mso.catalog.db.spring.endpoint}") protected String endpoint; @@ -93,6 +106,13 @@ public class CatalogDbClient { @Value("${mso.db.auth}") private String msoAdaptersAuth; + @PostConstruct + public void init(){ + findFirstByModelNameURI = endpoint + SERVICE_SEARCH + findFirstByModelNameURI; + findByModelVersionAndModelInvariantUUIDURI = endpoint + SERVICE_SEARCH + findByModelVersionAndModelInvariantUUIDURI; + findFirstByServiceModelUUIDAndActionURI = endpoint + SERVICE_RECIPE_SEARCH + findFirstByServiceModelUUIDAndActionURI; + } + public CatalogDbClient() { ClientHttpRequestFactory factory = new BufferingClientHttpRequestFactory(new SimpleClientHttpRequestFactory()); @@ -126,6 +146,7 @@ public class CatalogDbClient { instanceGroupClient = clientFactory.create(InstanceGroup.class); networkCollectionResourceCustomizationClient = clientFactory.create(NetworkCollectionResourceCustomization.class); collectionNetworkResourceCustomizationClient = clientFactory.create(CollectionNetworkResourceCustomization.class); + serviceRecipeClient = clientFactory.create(ServiceRecipe.class); } public NetworkCollectionResourceCustomization getNetworkCollectionResourceCustomizationByID(String modelCustomizationUUID) { @@ -198,7 +219,7 @@ public class CatalogDbClient { return this.getMultipleOrchestrationFlows(UriBuilder.fromUri(endpoint + "/orchestrationFlow/").build()); } - protected List<OrchestrationFlow> getMultipleOrchestrationFlows(URI uri) { + private List<OrchestrationFlow> getMultipleOrchestrationFlows(URI uri) { Iterable<OrchestrationFlow> orchIterator = orchestrationClient.getAll(uri); List<OrchestrationFlow> orchList = new ArrayList<>(); Iterator<OrchestrationFlow> it = orchIterator.iterator(); @@ -229,7 +250,7 @@ public class CatalogDbClient { return collectionInstanceGroupCustList; } - protected List<VnfcInstanceGroupCustomization> getMultipleVnfcInstanceGroupCustomizations(URI uri) { + private List<VnfcInstanceGroupCustomization> getMultipleVnfcInstanceGroupCustomizations(URI uri) { Iterable<VnfcInstanceGroupCustomization> vnfcIterator = vnfcInstanceGroupCustomizationClient.getAll(uri); List<VnfcInstanceGroupCustomization> vnfcList = new ArrayList<>(); Iterator<VnfcInstanceGroupCustomization> it = vnfcIterator.iterator(); @@ -264,35 +285,53 @@ public class CatalogDbClient { .build()); } - protected CollectionNetworkResourceCustomization getSingleCollectionNetworkResourceCustomization(URI uri) { + public ServiceRecipe getFirstByServiceModelUUIDAndAction(String modelUUID, String action){ + return this.getSingleServiceRecipe(UriBuilder.fromUri(findFirstByServiceModelUUIDAndActionURI) + .queryParam(SERVICE_MODEL_UUID,modelUUID) + .queryParam(ACTION,action) + .build()); + } + + public Service getFirstByModelNameOrderByModelVersionDesc(String modelName){ + return this.getSingleService(UriBuilder.fromUri(findFirstByModelNameURI) + .queryParam(MODEL_NAME,modelName) + .build()); + } + + + private CollectionNetworkResourceCustomization getSingleCollectionNetworkResourceCustomization(URI uri) { return collectionNetworkResourceCustomizationClient.get(uri); } - protected InstanceGroup getSingleInstanceGroup(URI uri) { + private InstanceGroup getSingleInstanceGroup(URI uri) { return instanceGroupClient.get(uri); } - protected Service getSingleService(URI uri) { + private Service getSingleService(URI uri) { return serviceClient.get(uri); } - protected VfModuleCustomization getSingleVfModuleCustomization(URI uri) { + private VfModuleCustomization getSingleVfModuleCustomization(URI uri) { return vfModuleCustomizationClient.get(uri); } - protected NorthBoundRequest getSingleNorthBoundRequest(URI uri) { + private NorthBoundRequest getSingleNorthBoundRequest(URI uri) { return northBoundRequestClient.get(uri); } - protected RainyDayHandlerStatus getSingleRainyDayHandlerStatus(URI uri) { + private RainyDayHandlerStatus getSingleRainyDayHandlerStatus(URI uri) { return rainyDayHandlerStatusClient.get(uri); } + + private ServiceRecipe getSingleServiceRecipe(URI uri){ + return serviceRecipeClient.get(uri); + } public Service getServiceByModelVersionAndModelInvariantUUID(String modelVersion, String modelInvariantUUID) { return this.getSingleService( - UriBuilder.fromUri(endpoint + "/service/search/findByModelVersionAndModelInvariantUUID") - .queryParam("MODEL_VERSION", modelVersion) - .queryParam("MODEL_INVARIANT_UUID", modelInvariantUUID).build()); + UriBuilder.fromUri(findByModelVersionAndModelInvariantUUIDURI) + .queryParam(MODEL_VERSION, modelVersion) + .queryParam(MODEL_INVARIANT_UUID, modelInvariantUUID).build()); } //USED FOR TEST ONLY diff --git a/mso-catalog-db/src/main/java/org/onap/so/db/catalog/data/repository/ServiceRecipeRepository.java b/mso-catalog-db/src/main/java/org/onap/so/db/catalog/data/repository/ServiceRecipeRepository.java index 57578cfb07..cd46846d78 100644 --- a/mso-catalog-db/src/main/java/org/onap/so/db/catalog/data/repository/ServiceRecipeRepository.java +++ b/mso-catalog-db/src/main/java/org/onap/so/db/catalog/data/repository/ServiceRecipeRepository.java @@ -22,6 +22,7 @@ package org.onap.so.db.catalog.data.repository; import org.onap.so.db.catalog.beans.ServiceRecipe; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.repository.query.Param; import org.springframework.data.rest.core.annotation.RepositoryRestResource; @RepositoryRestResource(collectionResourceRel = "serviceRecipe", path = "serviceRecipe") @@ -30,5 +31,5 @@ public interface ServiceRecipeRepository extends JpaRepository<ServiceRecipe, Lo public ServiceRecipe findByAction(String action); - public ServiceRecipe findFirstByServiceModelUUIDAndAction(String serviceModelUUID, String action); + public ServiceRecipe findFirstByServiceModelUUIDAndAction(@Param("SERVICE_MODEL_UUID") String serviceModelUUID, @Param("ACTION") String action); }
\ No newline at end of file diff --git a/mso-catalog-db/src/main/java/org/onap/so/db/catalog/data/repository/ServiceRepository.java b/mso-catalog-db/src/main/java/org/onap/so/db/catalog/data/repository/ServiceRepository.java index eac432a4dd..25b1757185 100644 --- a/mso-catalog-db/src/main/java/org/onap/so/db/catalog/data/repository/ServiceRepository.java +++ b/mso-catalog-db/src/main/java/org/onap/so/db/catalog/data/repository/ServiceRepository.java @@ -41,7 +41,7 @@ public interface ServiceRepository extends JpaRepository<Service, String> { * @return */ @Query(value = "SELECT * FROM service WHERE MODEL_NAME = ?1 ORDER BY INET_ATON(SUBSTRING_INDEX(CONCAT(MODEL_VERSION,'.0.0.0'),'.',4)) DESC LIMIT 1;", nativeQuery = true) - Service findFirstByModelNameOrderByModelVersionDesc(String modelName); + Service findFirstByModelNameOrderByModelVersionDesc(@Param("MODEL_NAME") String modelName); /** * This method will not work for versions greater than 255, as it is utilizing an ip address function to do the sorting @@ -59,7 +59,7 @@ public interface ServiceRepository extends JpaRepository<Service, String> { /** * This method will not work for versions greater than 255, as it is utilizing an ip address function to do the sorting - * @param modelName + * @param modelUUID * @return */ @Query(value = "SELECT * FROM service WHERE MODEL_UUID = ?1 ORDER BY INET_ATON(SUBSTRING_INDEX(CONCAT(MODEL_VERSION,'.0.0.0'),'.',4)) DESC LIMIT 1;", nativeQuery = true) @@ -67,7 +67,7 @@ public interface ServiceRepository extends JpaRepository<Service, String> { /** * This method will not work for versions greater than 255, as it is utilizing an ip address function to do the sorting - * @param modelName + * @param modelUUID * @return */ @Query(value = "SELECT * FROM service WHERE MODEL_UUID = ?1 ORDER BY INET_ATON(SUBSTRING_INDEX(CONCAT(MODEL_VERSION,'.0.0.0'),'.',4)) DESC LIMIT 1;", nativeQuery = true) @@ -78,7 +78,7 @@ public interface ServiceRepository extends JpaRepository<Service, String> { /** * This method will not work for versions greater than 255, as it is utilizing an ip address function to do the sorting - * @param modelName + * @param modelInvariantUUID * @return */ @Query(value = "SELECT * FROM service WHERE MODEL_INVARIANT_UUID = ?1 ORDER BY INET_ATON(SUBSTRING_INDEX(CONCAT(MODEL_VERSION,'.0.0.0'),'.',4)) DESC LIMIT 1;", nativeQuery = true) |