diff options
author | Oleg Mitsura <oleg.mitsura@amdocs.com> | 2020-07-09 11:19:44 -0400 |
---|---|---|
committer | KAPIL SINGAL <ks220y@att.com> | 2020-07-09 17:43:44 +0000 |
commit | 90b49b479b13ffb17baf6de0ca73d1442da9c423 (patch) | |
tree | c4b3dcd0efb93f88dc875f6c31b80064f116b045 /ms/blueprintsprocessor/modules/inbounds/designer-api/src | |
parent | f71ba4e81f04a2a3c5e97d565d34c09f46885fe6 (diff) |
single /enrichandupload endpoint.
Issue-ID: CCSDK-2540
rev1. initial commit
rev2. spacing
Signed-off-by: Oleg Mitsura <oleg.mitsura@amdocs.com>
Change-Id: I14c8ffa42214faf064d8697b00190dee80f5da1c
Diffstat (limited to 'ms/blueprintsprocessor/modules/inbounds/designer-api/src')
2 files changed, 37 insertions, 0 deletions
diff --git a/ms/blueprintsprocessor/modules/inbounds/designer-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/designer/api/BlueprintModelController.kt b/ms/blueprintsprocessor/modules/inbounds/designer-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/designer/api/BlueprintModelController.kt index 3973f3620..bb7a4b15c 100644 --- a/ms/blueprintsprocessor/modules/inbounds/designer-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/designer/api/BlueprintModelController.kt +++ b/ms/blueprintsprocessor/modules/inbounds/designer-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/designer/api/BlueprintModelController.kt @@ -182,6 +182,17 @@ open class BlueprintModelController(private val bluePrintModelHandler: BluePrint bluePrintModelHandler.enrichBlueprint(file) } + @PostMapping( + "/enrichandpublish", produces = [MediaType.APPLICATION_JSON_VALUE], consumes = [MediaType + .MULTIPART_FORM_DATA_VALUE] + ) + @ResponseBody + @Throws(BluePrintException::class) + @PreAuthorize("hasRole('USER')") + suspend fun enrichAndPubishlueprint(@RequestPart("file") file: FilePart): BlueprintModelSearch = mdcWebCoroutineScope { + bluePrintModelHandler.enrichAndPublishBlueprint(file) + } + @PostMapping("/publish", produces = [MediaType.APPLICATION_JSON_VALUE]) @ResponseBody @Throws(BluePrintException::class) diff --git a/ms/blueprintsprocessor/modules/inbounds/designer-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/designer/api/handler/BluePrintModelHandler.kt b/ms/blueprintsprocessor/modules/inbounds/designer-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/designer/api/handler/BluePrintModelHandler.kt index b5d20f4c8..b94b21252 100644 --- a/ms/blueprintsprocessor/modules/inbounds/designer-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/designer/api/handler/BluePrintModelHandler.kt +++ b/ms/blueprintsprocessor/modules/inbounds/designer-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/designer/api/handler/BluePrintModelHandler.kt @@ -440,6 +440,7 @@ open class BluePrintModelHandler( /** * This is a publishBlueprintModel method to change the status published to YES + * NOTE: this method is meant for enriched blueprints only. * * @param filePart filePart * @return BlueprintModelSearch @@ -460,6 +461,31 @@ open class BluePrintModelHandler( } } + /** + * Enrich and publish the blueprint. + * NOTE: this method is meant for the unenriched vs publishBlueprint(filePart) + * which is used for enriched blueprints. + * + * @param filePart filePart + * @return BlueprintModelSearch + * @throws BluePrintException BluePrintException + */ + @Throws(BluePrintException::class) + open suspend fun enrichAndPublishBlueprint(filePart: FilePart): BlueprintModelSearch { + try { + val enhancedByteArray = enrichBlueprintFileSource(filePart) + return upload(enhancedByteArray, true) + } catch (e: BluePrintProcessorException) { + e.http(ErrorCatalogCodes.IO_FILE_INTERRUPT) + val errorMsg = "Error while enhancing and uploading the CBA package." + throw e.updateErrorMessage(DesignerApiDomains.DESIGNER_API, errorMsg, + "Wrong CBA file provided, please verify the source CBA.") + } catch (e: Exception) { + throw httpProcessorException(ErrorCatalogCodes.IO_FILE_INTERRUPT, DesignerApiDomains.DESIGNER_API, + "EnrichBlueprint: ${e.message}", e.errorCauseOrDefault()) + } + } + /** Common CBA Save and Publish function for RestController and GRPC Handler, the [fileSource] may be * byteArray or File Part type.*/ open suspend fun upload(fileSource: Any, validate: Boolean): BlueprintModelSearch { |