Add recipe data in catalogdb 84/123284/1
authorMukesh Paliwal <mukesh.paliwal1@huawei.com>
Mon, 16 Aug 2021 14:38:16 +0000 (20:08 +0530)
committerMukesh Paliwal <mukesh.paliwal1@huawei.com>
Mon, 16 Aug 2021 14:39:34 +0000 (20:09 +0530)
Issue-ID: SO-3741

Signed-off-by: Mukesh Paliwal <mukesh.paliwal1@huawei.com>
Change-Id: Ie873e250111b7ab61afa2581624df8ae8c7212e0

mso-catalog-db/src/main/java/org/onap/so/db/catalog/client/CatalogDbClient.java

index 91cfb00..ae6d51c 100644 (file)
@@ -70,6 +70,7 @@ 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;
 import org.onap.so.logging.jaxrs.filter.SOSpringClientFilter;
+import org.onap.so.rest.catalog.beans.Vnf;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -276,6 +277,8 @@ public class CatalogDbClient {
 
     private final Client<ServiceRecipe> serviceRecipeClient;
 
+    private final Client<NetworkResource> networkResourceClient;
+
     private final Client<ExternalServiceToInternalService> externalServiceToInternalServiceClient;
 
     private final Client<CloudSite> cloudSiteClient;
@@ -441,7 +444,7 @@ public class CatalogDbClient {
         workflowClient = clientFactory.create(Workflow.class);
         bbNameSelectionReferenceClient = clientFactory.create(BBNameSelectionReference.class);
         processingFlagsClient = clientFactory.create(ProcessingFlags.class);
-
+        networkResourceClient = clientFactory.create(NetworkResource.class);
     }
 
     public CatalogDbClient(String baseUri, String auth) {
@@ -494,6 +497,7 @@ public class CatalogDbClient {
         workflowClient = clientFactory.create(Workflow.class);
         bbNameSelectionReferenceClient = clientFactory.create(BBNameSelectionReference.class);
         processingFlagsClient = clientFactory.create(ProcessingFlags.class);
+        networkResourceClient = clientFactory.create(NetworkResource.class);
     }
 
     public NetworkCollectionResourceCustomization getNetworkCollectionResourceCustomizationByID(
@@ -630,7 +634,6 @@ public class CatalogDbClient {
     }
 
 
-
     public BuildingBlockDetail getBuildingBlockDetail(String buildingBlockName) {
         BuildingBlockDetail buildingBlockDetail =
                 getSingleResource(buildingBlockDetailClient, getUri(UriBuilder.fromUri(findOneByBuildingBlockName)
@@ -722,7 +725,6 @@ public class CatalogDbClient {
     }
 
 
-
     public NetworkRecipe getFirstNetworkRecipeByModelNameAndAction(String modelName, String action) {
         return this.getSingleResource(networkRecipeClient, UriBuilder.fromUri(findFirstByModelNameAndAction)
                 .queryParam(MODEL_NAME, modelName).queryParam(ACTION, action).build());
@@ -1042,6 +1044,72 @@ public class CatalogDbClient {
         }
     }
 
+    public void deleteServiceRecipe(String recipeId) {
+        this.deleteSingleResource(serviceRecipeClient,
+                UriBuilder.fromUri(endpoint + SERVICE_RECIPE + URI_SEPARATOR + recipeId).build());
+    }
+
+    public void postServiceRecipe(ServiceRecipe recipe) {
+        try {
+            HttpHeaders headers = getHttpHeaders();
+            HttpEntity<ServiceRecipe> entity = new HttpEntity<>(recipe, headers);
+            restTemplate.exchange(
+                    UriComponentsBuilder.fromUriString(endpoint + "/serviceRecipe").build().encode().toString(),
+                    HttpMethod.POST, entity, ServiceRecipe.class).getBody();
+        } catch (HttpClientErrorException e) {
+            if (HttpStatus.SC_NOT_FOUND == e.getStatusCode().value()) {
+                throw new EntityNotFoundException("Unable to find ServiceRecipe with  Id: " + recipe.getId());
+            }
+            throw e;
+        }
+    }
+
+    public void postVnfRecipe(VnfRecipe recipe) {
+        try {
+            HttpHeaders headers = getHttpHeaders();
+            HttpEntity<VnfRecipe> entity = new HttpEntity<>(recipe, headers);
+            restTemplate
+                    .exchange(UriComponentsBuilder.fromUriString(endpoint + "/vnfRecipe").build().encode().toString(),
+                            HttpMethod.POST, entity, VnfRecipe.class)
+                    .getBody();
+        } catch (HttpClientErrorException e) {
+            if (HttpStatus.SC_NOT_FOUND == e.getStatusCode().value()) {
+                throw new EntityNotFoundException("Unable to find VnfRecipe with  Id: " + recipe.getId());
+            }
+            throw e;
+        }
+    }
+
+    public void postNetworkRecipe(NetworkRecipe recipe) {
+        try {
+            HttpHeaders headers = getHttpHeaders();
+            HttpEntity<NetworkRecipe> entity = new HttpEntity<>(recipe, headers);
+            restTemplate.exchange(
+                    UriComponentsBuilder.fromUriString(endpoint + "/networkRecipe").build().encode().toString(),
+                    HttpMethod.POST, entity, NetworkRecipe.class).getBody();
+        } catch (HttpClientErrorException e) {
+            if (HttpStatus.SC_NOT_FOUND == e.getStatusCode().value()) {
+                throw new EntityNotFoundException("Unable to find NetworkRecipe with  Id: " + recipe.getId());
+            }
+            throw e;
+        }
+    }
+
+    public List<ServiceRecipe> getServiceRecipes() {
+        return this.getMultipleResources(serviceRecipeClient,
+                UriBuilder.fromUri(endpoint + SERVICE_RECIPE).queryParam("size", "1000").build());
+    }
+
+    public List<NetworkRecipe> getNetworkRecipes() {
+        return this.getMultipleResources(networkRecipeClient,
+                UriBuilder.fromUri(endpoint + NETWORK_RECIPE).queryParam("size", "1000").build());
+    }
+
+    public List<NetworkResource> getNetworkResources() {
+        return this.getMultipleResources(networkResourceClient,
+                UriBuilder.fromUri(endpoint + "/networkResource").queryParam("size", "1000").build());
+    }
+
     public List<org.onap.so.rest.catalog.beans.Service> getServices() {
         try {
             HttpEntity<?> entity = getHttpEntity();
@@ -1058,6 +1126,20 @@ public class CatalogDbClient {
         }
     }
 
+    public List<VnfResource> getVnfResources() {
+        return this.getMultipleResources(vnfResourceClient,
+                UriBuilder.fromUri(endpoint + "/vnfResource").queryParam("size", "1000").build());
+    }
+
+    public List<VnfRecipe> getVnfRecipes() {
+        return this.getMultipleResources(vnfRecipeClient,
+                UriBuilder.fromUri(endpoint + VNF_RECIPE).queryParam("size", "1000").build());
+    }
+
+    private <T> void deleteSingleResource(Client<T> client, URI uri) {
+        client.delete(uri);
+    }
+
     public org.onap.so.rest.catalog.beans.Vnf getVnfModelInformation(String serviceModelUUID,
             String vnfCustomizationUUID, String depth) {
         if (Strings.isNullOrEmpty(serviceModelUUID)) {