Search in sources :

Example 6 with Recipe

use of org.onap.so.db.catalog.beans.Recipe in project so by onap.

the class RequestHandlerUtils method getNetworkUri.

private RecipeLookupResult getNetworkUri(ServiceInstancesRequest sir, Actions action) throws ValidationException {
    String defaultNetworkType = getDefaultModel(sir);
    ModelInfo modelInfo = sir.getRequestDetails().getModelInfo();
    String modelName = modelInfo.getModelName();
    Recipe recipe = null;
    if (modelInfo.getModelCustomizationId() != null) {
        NetworkResourceCustomization networkResourceCustomization = catalogDbClient.getNetworkResourceCustomizationByModelCustomizationUUID(modelInfo.getModelCustomizationId());
        if (networkResourceCustomization != null) {
            NetworkResource networkResource = networkResourceCustomization.getNetworkResource();
            if (networkResource != null) {
                if (modelInfo.getModelVersionId() == null) {
                    modelInfo.setModelVersionId(networkResource.getModelUUID());
                }
                recipe = catalogDbClient.getFirstNetworkRecipeByModelNameAndAction(networkResource.getModelName(), action.toString());
            } else {
                throw new ValidationException("no catalog entry found");
            }
        } else if (action != Action.deleteInstance) {
            throw new ValidationException("modelCustomizationId for networkResourceCustomization lookup", true);
        }
    } else {
        // ok for version < 3 and action delete
        if (modelName != null) {
            recipe = catalogDbClient.getFirstNetworkRecipeByModelNameAndAction(modelName, action.toString());
        }
    }
    if (recipe == null) {
        recipe = catalogDbClient.getFirstNetworkRecipeByModelNameAndAction(defaultNetworkType, action.toString());
    }
    return recipe != null ? new RecipeLookupResult(recipe.getOrchestrationUri(), recipe.getRecipeTimeout()) : null;
}
Also used : NetworkResource(org.onap.so.db.catalog.beans.NetworkResource) ModelInfo(org.onap.so.serviceinstancebeans.ModelInfo) ValidationException(org.onap.so.exceptions.ValidationException) VnfRecipe(org.onap.so.db.catalog.beans.VnfRecipe) ServiceRecipe(org.onap.so.db.catalog.beans.ServiceRecipe) Recipe(org.onap.so.db.catalog.beans.Recipe) NetworkResourceCustomization(org.onap.so.db.catalog.beans.NetworkResourceCustomization)

Example 7 with Recipe

use of org.onap.so.db.catalog.beans.Recipe in project so by onap.

the class QueryResourceRecipeTest method convertToJson.

@Test
public void convertToJson() {
    Recipe recipe = createRecipe();
    QueryResourceRecipe queryResourceRecipe = new QueryResourceRecipe(recipe);
    assertEquals("{\"orchestrationUri\":\"uriTest\",\"action\":\"actionTest\",\"description\":\"descrTest\",\"id\":\"123\",\"recipeTimeout\":\"100\",\"paramXSD\":\"paramsXsdTest\"}", queryResourceRecipe.JSON2(false, false));
}
Also used : Recipe(org.onap.so.db.catalog.beans.Recipe) VnfRecipe(org.onap.so.db.catalog.beans.VnfRecipe) NetworkRecipe(org.onap.so.db.catalog.beans.NetworkRecipe) ArRecipe(org.onap.so.db.catalog.beans.ArRecipe) ServiceRecipe(org.onap.so.db.catalog.beans.ServiceRecipe) Test(org.junit.Test)

Example 8 with Recipe

use of org.onap.so.db.catalog.beans.Recipe in project so by onap.

the class CatalogDbAdapterRest method resourceRecipe.

/**
 * Get the resource recipe info from catalog <br>
 *
 * @param rmUuid resource model uuid
 * @return the recipe information of the resource.
 * @since ONAP Beijing Release
 */
@GET
@Path("resourceRecipe")
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
public Response resourceRecipe(@QueryParam("resourceModelUuid") String rmUuid, @QueryParam("action") String action) {
    int respStatus = HttpStatus.SC_OK;
    String entity = "";
    try {
        if (rmUuid != null && !"".equals(rmUuid)) {
            logger.debug("Query recipe by resource model uuid: {}", rmUuid);
            // check vnf and network and ar, the resource could be any resource.
            Recipe recipe = null;
            VnfResource vnf = vnfResourceRepo.findResourceByModelUUID(rmUuid);
            if (vnf != null) {
                recipe = vnfRecipeRepo.findFirstVnfRecipeByNfRoleAndActionAndVersionStr(vnf.getModelName(), action, vnf.getModelVersion());
                // for network service fetch the default recipe
                if (recipe == null && vnf.getSubCategory().equalsIgnoreCase(NETWORK_SERVICE)) {
                    recipe = vnfRecipeRepo.findFirstVnfRecipeByNfRoleAndAction("NS_DEFAULT", action);
                }
            }
            if (null == recipe) {
                NetworkResource nResource = networkResourceRepo.findResourceByModelUUID(rmUuid);
                if (nResource != null) {
                    recipe = networkRecipeRepo.findFirstByModelNameAndActionAndVersionStr(nResource.getModelName(), action, nResource.getModelVersion());
                    // for network fetch the default recipe
                    if (recipe == null) {
                        recipe = networkRecipeRepo.findFirstByModelNameAndAction("SDNC_DEFAULT", action);
                    }
                }
            }
            if (null == recipe) {
                AllottedResource arResource = arResourceRepo.findResourceByModelUUID(rmUuid);
                if (arResource != null) {
                    recipe = arRecipeRepo.findByModelNameAndActionAndVersion(arResource.getModelName(), action, arResource.getModelVersion());
                }
            }
            if (null == recipe) {
                InstanceGroup grpResource = instanceGroupRepository.findByModelUUID(rmUuid);
                if (grpResource != null) {
                    recipe = vnfRecipeRepo.findFirstVnfRecipeByNfRoleAndActionAndVersionStr(grpResource.getModelName(), action, grpResource.getModelVersion());
                }
            }
            if (recipe != null) {
                QueryResourceRecipe resourceRecipe = new QueryResourceRecipe(recipe);
                entity = resourceRecipe.JSON2(false, false);
            } else {
                respStatus = HttpStatus.SC_NOT_FOUND;
            }
        } else {
            throw new Exception("Incoming parameter is null or blank");
        }
        return Response.status(respStatus).entity(entity).header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON).build();
    } catch (Exception e) {
        logger.error("Exception during query recipe by resource model uuid: ", e);
        CatalogQueryException excResp = new CatalogQueryException(e.getMessage(), CatalogQueryExceptionCategory.INTERNAL, Boolean.FALSE, null);
        return Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR).entity(new GenericEntity<CatalogQueryException>(excResp) {
        }).build();
    }
}
Also used : NetworkResource(org.onap.so.db.catalog.beans.NetworkResource) VnfResource(org.onap.so.db.catalog.beans.VnfResource) QueryResourceRecipe(org.onap.so.adapters.catalogdb.catalogrest.QueryResourceRecipe) VnfRecipe(org.onap.so.db.catalog.beans.VnfRecipe) Recipe(org.onap.so.db.catalog.beans.Recipe) QueryResourceRecipe(org.onap.so.adapters.catalogdb.catalogrest.QueryResourceRecipe) CatalogQueryException(org.onap.so.adapters.catalogdb.catalogrest.CatalogQueryException) AllottedResource(org.onap.so.db.catalog.beans.AllottedResource) CatalogQueryException(org.onap.so.adapters.catalogdb.catalogrest.CatalogQueryException) InstanceGroup(org.onap.so.db.catalog.beans.InstanceGroup) Path(javax.ws.rs.Path) Produces(javax.ws.rs.Produces) GET(javax.ws.rs.GET)

Example 9 with Recipe

use of org.onap.so.db.catalog.beans.Recipe in project so by onap.

the class ServiceInstance method deleteServiceInstance.

@DELETE
@ResponseUpdater
@Path("/{version:[vV][8]}/serviceInstances/{serviceInstanceId}")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@Operation(description = "Delete a Service instance", responses = @ApiResponse(content = @Content(array = @ArraySchema(schema = @Schema(implementation = ServiceInstancesResponse.class)))))
@Transactional
public Response deleteServiceInstance(@PathParam("version") String version, @PathParam("serviceInstanceId") String serviceInstanceId, @Context ContainerRequestContext requestContext) throws AAIEntityNotFound, NoRecipeException, JsonProcessingException, WorkflowEngineConnectionException, ValidateException {
    String requestId = requestHandler.getRequestId(requestContext);
    String requestorId = MDC.get(HttpHeadersConstants.REQUESTOR_ID);
    String source = MDC.get(ONAPLogConstants.MDCs.PARTNER_NAME);
    String requestURI = requestContext.getUriInfo().getAbsolutePath().toString();
    InfraActiveRequests currentRequest = requestHandler.createInfraActiveRequestForDelete(requestId, serviceInstanceId, requestorId, source, requestURI);
    ServiceInstancesRequest request = requestBuilder.buildServiceDeleteRequest(serviceInstanceId);
    requestHandler.saveInstanceName(request, currentRequest);
    requestHandler.checkDuplicateRequest(serviceInstanceId, request.getRequestDetails().getRequestInfo().getInstanceName(), currentRequest.getRequestId());
    Recipe recipe = requestHandler.findServiceRecipe(request.getRequestDetails().getModelInfo().getModelUuid(), Action.deleteInstance.toString());
    requestHandler.callWorkflowEngine(requestHandler.buildRequestParams(request, requestHandler.getRequestUri(requestContext), requestId, serviceInstanceId), recipe.getOrchestrationUri());
    ServiceInstancesResponse response = requestHandler.createResponse(serviceInstanceId, requestId, requestContext);
    return Response.status(HttpStatus.ACCEPTED.value()).entity(response).build();
}
Also used : Recipe(org.onap.so.db.catalog.beans.Recipe) ServiceInstancesResponse(org.onap.so.serviceinstancebeans.ServiceInstancesResponse) InfraActiveRequests(org.onap.so.db.request.beans.InfraActiveRequests) ServiceInstancesRequest(org.onap.so.serviceinstancebeans.ServiceInstancesRequest) Path(javax.ws.rs.Path) ResponseUpdater(org.onap.so.apihandler.filters.ResponseUpdater) DELETE(javax.ws.rs.DELETE) Consumes(javax.ws.rs.Consumes) Produces(javax.ws.rs.Produces) Operation(io.swagger.v3.oas.annotations.Operation) Transactional(javax.transaction.Transactional)

Example 10 with Recipe

use of org.onap.so.db.catalog.beans.Recipe in project so by onap.

the class Network method deleteNetworkInstance.

@DELETE
@ResponseUpdater
@Path("/{version:[vV][8]}/serviceInstances/{serviceInstanceId}/networks/{networkInstanceId}")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@Operation(description = "Delete provided Network instance", responses = @ApiResponse(content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
@Transactional
public Response deleteNetworkInstance(@PathParam("version") String version, @PathParam("serviceInstanceId") String serviceInstanceId, @PathParam("networkInstanceId") String networkInstanceId, @Context ContainerRequestContext requestContext) throws AAIEntityNotFound, NoRecipeException, JsonProcessingException, WorkflowEngineConnectionException, ValidateException {
    String requestId = networkRestHandler.getRequestId(requestContext);
    String requestorId = MDC.get(HttpHeadersConstants.REQUESTOR_ID);
    String source = MDC.get(ONAPLogConstants.MDCs.PARTNER_NAME);
    String requestURI = requestContext.getUriInfo().getAbsolutePath().toString();
    InfraActiveRequests currentRequest = networkRestHandler.createInfraActiveRequestForDelete(requestId, serviceInstanceId, networkInstanceId, requestorId, source, requestURI);
    ServiceInstancesRequest request = requestBuilder.buildNetworkDeleteRequest(networkInstanceId);
    networkRestHandler.saveInstanceName(request, currentRequest);
    networkRestHandler.checkDuplicateRequest(serviceInstanceId, networkInstanceId, request.getRequestDetails().getRequestInfo().getInstanceName(), currentRequest.getRequestId());
    Recipe recipe = networkRestHandler.findNetworkRecipe(Action.deleteInstance.toString());
    networkRestHandler.callWorkflowEngine(networkRestHandler.buildRequestParams(request, networkRestHandler.getRequestUri(requestContext), requestId, serviceInstanceId, networkInstanceId), recipe.getOrchestrationUri());
    ServiceInstancesResponse response = networkRestHandler.createResponse(networkInstanceId, requestId, requestContext);
    return Response.status(HttpStatus.ACCEPTED.value()).entity(response).build();
}
Also used : Recipe(org.onap.so.db.catalog.beans.Recipe) ServiceInstancesResponse(org.onap.so.serviceinstancebeans.ServiceInstancesResponse) InfraActiveRequests(org.onap.so.db.request.beans.InfraActiveRequests) ServiceInstancesRequest(org.onap.so.serviceinstancebeans.ServiceInstancesRequest) Path(javax.ws.rs.Path) ResponseUpdater(org.onap.so.apihandler.filters.ResponseUpdater) DELETE(javax.ws.rs.DELETE) Consumes(javax.ws.rs.Consumes) Produces(javax.ws.rs.Produces) Operation(io.swagger.v3.oas.annotations.Operation) Transactional(javax.transaction.Transactional)

Aggregations

Recipe (org.onap.so.db.catalog.beans.Recipe)14 Path (javax.ws.rs.Path)6 Produces (javax.ws.rs.Produces)6 Test (org.junit.Test)6 ServiceRecipe (org.onap.so.db.catalog.beans.ServiceRecipe)6 Operation (io.swagger.v3.oas.annotations.Operation)5 Transactional (javax.transaction.Transactional)5 Consumes (javax.ws.rs.Consumes)5 DELETE (javax.ws.rs.DELETE)5 ResponseUpdater (org.onap.so.apihandler.filters.ResponseUpdater)5 InfraActiveRequests (org.onap.so.db.request.beans.InfraActiveRequests)5 ServiceInstancesRequest (org.onap.so.serviceinstancebeans.ServiceInstancesRequest)5 ServiceInstancesResponse (org.onap.so.serviceinstancebeans.ServiceInstancesResponse)5 VnfRecipe (org.onap.so.db.catalog.beans.VnfRecipe)4 NetworkResource (org.onap.so.db.catalog.beans.NetworkResource)2 VnfComponentsRecipe (org.onap.so.db.catalog.beans.VnfComponentsRecipe)2 VnfResource (org.onap.so.db.catalog.beans.VnfResource)2 ValidationException (org.onap.so.exceptions.ValidationException)2 ModelInfo (org.onap.so.serviceinstancebeans.ModelInfo)2 GET (javax.ws.rs.GET)1