diff options
11 files changed, 105 insertions, 723 deletions
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/configuration-dashboard/configuration-dashboard.component.html b/cds-ui/designer-client/src/app/modules/feature-modules/packages/configuration-dashboard/configuration-dashboard.component.html index 9f0028bd9..305ffa6f3 100644 --- a/cds-ui/designer-client/src/app/modules/feature-modules/packages/configuration-dashboard/configuration-dashboard.component.html +++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/configuration-dashboard/configuration-dashboard.component.html @@ -728,9 +728,11 @@ </div> </div> </div> - <button type="button" class="btn btn-sm mb-2 btn-enrich" data-toggle="modal" - data-target="#enrichModal"> - <i class="icon-enrich" aria-hidden="true"></i> Manual Enrich + <button type="button" class="btn btn-sm mb-2 btn-enrich" + (click)="enrichBluePrint()"> + <!-- data-toggle="modal" data-target="#enrichModal"--> + + <i class="icon-enrich" aria-hidden="true"></i> Enrich </button> @@ -758,6 +760,9 @@ <a class="nav-item nav-link" id="nav-authentication-tab" data-toggle="tab" href="#nav-authentication" role="tab" aria-controls="nav-authentication" aria-selected="false">EXTERNAL SYSTEM AUTHENTICATION PROPERTIES</a> + <a class="nav-item nav-link" id="nav-topologytemplate-tab" data-toggle="tab" + href="#nav-topologytemplate" role="tab" aria-controls="nav-authentication" + aria-selected="false">Topology Template</a> </div> </div> @@ -790,6 +795,14 @@ </div> </div> </div> + <div class="tab-pane fade" id="nav-topologytemplate" role="tabpanel" + aria-labelledby="nav-authentication-tab"> + <div class="card creat-card"> + <div class="editor-container"> + <app-topology-template></app-topology-template> + </div> + </div> + </div> </div> </div> </div> diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/topology-template/topology-template.component.css b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/topology-template/topology-template.component.css new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/topology-template/topology-template.component.css diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/topology-template/topology-template.component.html b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/topology-template/topology-template.component.html new file mode 100644 index 000000000..f67364421 --- /dev/null +++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/topology-template/topology-template.component.html @@ -0,0 +1,13 @@ +<p>topology-template works!</p> +<ul class="defintionsNote"> + <li><b>To add new property: </b></li> + <li>1. Use Copy and paste option or</li> + <li>2. Write them manually</li> +</ul> +<ace-editor [(text)]="content" [mode]="'json'" + [autoUpdateContent]="true" [durationBeforeCallback]="1000" [theme]="'eclipse'" + (textChanged)="textChanged($event)" + #editor style="height:300px;" + (autocomplete)="content" +> +</ace-editor> diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/topology-template/topology-template.component.ts b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/topology-template/topology-template.component.ts new file mode 100644 index 000000000..8fce6954d --- /dev/null +++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/topology-template/topology-template.component.ts @@ -0,0 +1,56 @@ +import {Component, OnDestroy, OnInit} from '@angular/core'; +import {distinctUntilChanged, takeUntil} from 'rxjs/operators'; +import {DesignerStore} from '../../designer/designer.store'; +import {Subject} from 'rxjs'; +import {PackageCreationUtils} from '../package-creation.utils'; +import {PackageCreationStore} from '../package-creation.store'; + +@Component({ + selector: 'app-topology-template', + templateUrl: './topology-template.component.html', + styleUrls: ['./topology-template.component.css'] +}) +export class TopologyTemplateComponent implements OnInit, OnDestroy { + + ngUnsubscribe = new Subject(); + content = ' '; + private cbaPackage: any; + private designerState: any; + + constructor(private designerStore: DesignerStore, + private packageCreationUtils: PackageCreationUtils, + private packageCreationStore: PackageCreationStore) { + + this.packageCreationStore.state$ + .pipe(distinctUntilChanged((a: any, b: any) => JSON.stringify(a) === JSON.stringify(b)), + takeUntil(this.ngUnsubscribe)) + .subscribe( + cbaPackage => { + this.cbaPackage = cbaPackage; + }); + this.designerStore.state$.pipe( + distinctUntilChanged((a: any, b: any) => JSON.stringify(a) === JSON.stringify(b)), + takeUntil(this.ngUnsubscribe)) + .subscribe(state => { + this.designerState = state; + this.content = + this.packageCreationUtils.transformToJson(state.template); + console.log(this.content); + console.log(state.template); + }); + } + + ngOnInit() { + } + + textChanged($event: {}) { + this.cbaPackage.templateTopology.content = this.content; + this.designerState.template = JSON.parse(this.content); + + } + + ngOnDestroy() { + this.ngUnsubscribe.next(); + this.ngUnsubscribe.complete(); + } +} diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/packages-dashboard/package-list/package-list.component.css b/cds-ui/designer-client/src/app/modules/feature-modules/packages/packages-dashboard/package-list/package-list.component.css index e69de29bb..953346b89 100644 --- a/cds-ui/designer-client/src/app/modules/feature-modules/packages/packages-dashboard/package-list/package-list.component.css +++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/packages-dashboard/package-list/package-list.component.css @@ -0,0 +1,6 @@ +.dot { + height: 8px; + width: 1px; + background-color: #0ABDE3; + +} diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/packages-dashboard/package-list/package-list.component.html b/cds-ui/designer-client/src/app/modules/feature-modules/packages/packages-dashboard/package-list/package-list.component.html index ca88c6571..dea94dbe6 100644 --- a/cds-ui/designer-client/src/app/modules/feature-modules/packages/packages-dashboard/package-list/package-list.component.html +++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/packages-dashboard/package-list/package-list.component.html @@ -33,6 +33,8 @@ <p class="packageName" tooltip="{{bluePrint.artifactName}}" placement="bottom"> {{bluePrint.artifactName}}</p> <span class="package-version">v{{bluePrint.artifactVersion}}</span> + <button *ngIf="bluePrint.published.includes('Y')" type="button" + class="dot"><i class="glyphicon glyphicon-ok"></i></button> </a> </div> diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/packages.module.ts b/cds-ui/designer-client/src/app/modules/feature-modules/packages/packages.module.ts index ad79a1321..e231ebeb5 100644 --- a/cds-ui/designer-client/src/app/modules/feature-modules/packages/packages.module.ts +++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/packages.module.ts @@ -36,6 +36,8 @@ import { ImportPackageComponent } from './packages-dashboard/import-package/impo import { FunctionsAttributeComponent } from './designer/functions-attribute/functions-attribute.component'; import { ActionAttributesComponent } from './designer/action-attributes/action-attributes.component'; import { MatInputModule, MatPaginatorModule, MatProgressSpinnerModule, MatSortModule, MatTableModule } from '@angular/material'; +import { TopologyTemplateComponent } from './package-creation/topology-template/topology-template.component'; +import {CollapseModule} from 'ngx-bootstrap/collapse'; @NgModule({ declarations: [PackagesDashboardComponent, @@ -61,6 +63,7 @@ import { MatInputModule, MatPaginatorModule, MatProgressSpinnerModule, MatSortMo ImportPackageComponent, FunctionsAttributeComponent, ActionAttributesComponent, + TopologyTemplateComponent, ], imports: [ @@ -80,7 +83,8 @@ import { MatInputModule, MatPaginatorModule, MatProgressSpinnerModule, MatSortMo MatTableModule, MatPaginatorModule, MatSortModule, - MatProgressSpinnerModule + MatProgressSpinnerModule, + CollapseModule ], providers: [ApiService, JsonPipe, ComponentCanDeactivateGuard], bootstrap: [] diff --git a/docs/api-reference/bp-processor.rst b/docs/api-reference/bp-processor.rst index 31efc40fd..ea8880174 100644 --- a/docs/api-reference/bp-processor.rst +++ b/docs/api-reference/bp-processor.rst @@ -23,9 +23,8 @@ Download Here is the automatically created swagger file for CDS Blueprint Processor API: :download:`cds-bp-processor-api-swagger.json <media/cds-bp-processor-api-swagger.json>` -:download:`cds-bp-processor-api-swagger.yaml <media/cds-bp-processor-api-swagger.yaml>` -You can find a postman collection including sample requests for all endpoints here: +You can find a postman collection including sample requests for all endpoints here: :download:`bp-processor.postman_collection.json <media/bp-processor.postman_collection.json>`. Please keep the Postman Collection up-to-date for new endpoints. diff --git a/docs/api-reference/media/cds-bp-processor-api-swagger.yaml b/docs/api-reference/media/cds-bp-processor-api-swagger.yaml deleted file mode 100644 index e16e22cad..000000000 --- a/docs/api-reference/media/cds-bp-processor-api-swagger.yaml +++ /dev/null @@ -1,714 +0,0 @@ ---- -swagger: "2.0" -info: - description: "Shows all resources and endpoints which CDS BP processor currently\ - \ provides with sample requests/responses, parameter description and other information." - version: "v1" - title: "CDS Blueprint Processor API Reference" - termsOfService: "https://www.onap.org/" - contact: - name: "ONAP Community" - url: "https://www.onap.org/" - email: "onap-discuss@lists.onap.org" - license: - name: "Apache 2.0" - url: "http://www.apache.org/licenses/LICENSE-2.0.html" -host: "localhost:8080" -tags: -- name: "Blueprint Model Catalog API" - description: "Manages all blueprint models which are available in CDS" -schemes: -- "http" -paths: - /api/v1/blueprint-model: - get: - tags: - - "Blueprint Model Catalog API" - summary: "List all Blueprint Models" - description: "Lists all meta-data of blueprint models which are saved in CDS." - operationId: "BlueprintModelController_allBlueprintModel_GET.org.onap.ccsdk.cds.blueprintsprocessor.designer.api" - produces: - - "application/json" - parameters: [] - responses: - 200: - description: "OK" - schema: - type: "array" - items: - $ref: "#/definitions/BlueprintModelSearch" - 500: - description: "Internal Server Error" - post: - tags: - - "Blueprint Model Catalog API" - summary: "Save a Blueprint Model" - description: "Saves a blueprint model by the given CBA zip file input. There\ - \ is no validation of the attached CBA happening when this API is called." - operationId: "BlueprintModelController_saveBlueprint_POST.org.onap.ccsdk.cds.blueprintsprocessor.designer.api" - consumes: - - "multipart/form-data" - produces: - - "application/json" - parameters: - - in: "body" - name: "file" - description: "CBA file to be uploaded (example: cba.zip)" - required: true - schema: - $ref: "#/definitions/FilePart" - responses: - 200: - description: "OK" - schema: - type: "object" - 500: - description: "Internal Server Error" - /api/v1/blueprint-model/bootstrap: - post: - tags: - - "Blueprint Model Catalog API" - summary: "Bootstrap CDS" - description: "Loads all Model Types, Resource Dictionaries and Blueprint Models\ - \ which are included in CDS by default. Before starting to work with CDS,\ - \ bootstrap should be called to load all the basic models that each orginization\ - \ might support. Parameter values can be set as `false` to skip loading e.g.\ - \ the Resource Dictionaries but this is not recommended." - operationId: "BlueprintModelController_bootstrap_POST.org.onap.ccsdk.cds.blueprintsprocessor.designer.api" - consumes: - - "application/json" - produces: - - "application/json" - parameters: - - in: "body" - name: "body" - description: "Specifies which elements to load" - required: true - schema: - $ref: "#/definitions/BootstrapRequest" - responses: - 200: - description: "OK" - schema: - type: "object" - 500: - description: "Internal Server Error" - /api/v1/blueprint-model/by-name/{name}/version/{version}: - get: - tags: - - "Blueprint Model Catalog API" - summary: "Get a Blueprint Model by Name and Version" - description: "Get Meta-Data of a Blueprint Model by its name and version." - operationId: "BlueprintModelController_getBlueprintByNameAndVersion_GET.org.onap.ccsdk.cds.blueprintsprocessor.designer.api" - produces: - - "application/json" - parameters: - - name: "name" - in: "path" - description: "Name of the blueprint model" - required: true - type: "string" - x-example: "pnf_netconf" - - name: "version" - in: "path" - description: "Version of the blueprint model" - required: true - type: "string" - x-example: "1.0.0" - responses: - 200: - description: "OK" - schema: - type: "object" - 404: - description: "Not Found" - /api/v1/blueprint-model/download/by-name/{name}/version/{version}: - get: - tags: - - "Blueprint Model Catalog API" - summary: "Download a Blueprint Model" - description: "Gets the CBA of a blueprint model by its name and version. Response\ - \ can be saved to a file to download the CBA." - operationId: "BlueprintModelController_downloadBlueprintByNameAndVersion_GET.org.onap.ccsdk.cds.blueprintsprocessor.designer.api" - produces: - - "application/json" - parameters: - - name: "name" - in: "path" - description: "Name of the blueprint model" - required: true - type: "string" - x-example: "pnf_netconf" - - name: "version" - in: "path" - description: "Version of the blueprint model" - required: true - type: "string" - x-example: "1.0.0" - responses: - 200: - description: "OK" - schema: - type: "object" - 404: - description: "Not Found" - /api/v1/blueprint-model/download/{id}: - get: - tags: - - "Blueprint Model Catalog API" - summary: "Download a Blueprint Model by ID" - description: "Gets the CBA of a blueprint model by its ID. Response can be saved\ - \ to a file to download the CBA." - operationId: "BlueprintModelController_downloadBluePrint_GET.org.onap.ccsdk.cds.blueprintsprocessor.designer.api" - produces: - - "application/json" - parameters: - - name: "id" - in: "path" - description: "ID of the blueprint model to download" - required: true - type: "string" - x-example: "67ec1f96-ab55-4b81-aff9-23ee0ed1d7a4" - responses: - 200: - description: "OK" - schema: - type: "object" - 404: - description: "Not Found" - /api/v1/blueprint-model/enrich: - post: - tags: - - "Blueprint Model Catalog API" - summary: "Enrich a Blueprint Model" - description: "Enriches the attached CBA and returns the enriched CBA zip file\ - \ in the response. The enrichment process will complete the package by providing\ - \ all the definition of types used." - operationId: "BlueprintModelController_enrichBlueprint_POST.org.onap.ccsdk.cds.blueprintsprocessor.designer.api" - consumes: - - "multipart/form-data" - produces: - - "application/json" - parameters: - - in: "body" - name: "file" - description: "CBA zip file to be uploaded (example: cba_unenriched.zip)" - required: true - schema: - $ref: "#/definitions/FilePart" - responses: - 200: - description: "successful operation" - schema: - type: "object" - /api/v1/blueprint-model/enrichandpublish: - post: - tags: - - "Blueprint Model Catalog API" - summary: "Enrich and publish a Blueprint Model" - description: "Enriches the attached CBA, validates it and saves it in CDS if\ - \ validation was successful." - operationId: "BlueprintModelController_enrichAndPubishlueprint_POST.org.onap.ccsdk.cds.blueprintsprocessor.designer.api" - consumes: - - "multipart/form-data" - produces: - - "application/json" - parameters: - - in: "body" - name: "file" - description: "Unenriched CBA zip file to be uploaded (example: cba_unenriched.zip)" - required: true - schema: - $ref: "#/definitions/FilePart" - responses: - 200: - description: "OK" - schema: - type: "object" - 503: - description: "Service Unavailable" - /api/v1/blueprint-model/meta-data/{keyword}: - get: - tags: - - "Blueprint Model Catalog API" - summary: "Search for Blueprints by a Keyword" - description: "Lists all blueprint models by a matching keyword in any of the\ - \ meta-data of the blueprint models. Blueprint models are just returned if\ - \ a whole keyword is matching, not just parts of it. Not case-sensitive. Used\ - \ by CDS UI." - operationId: "BlueprintModelController_allBlueprintModelMetaData_GET.org.onap.ccsdk.cds.blueprintsprocessor.designer.api" - produces: - - "application/json" - parameters: - - name: "keyword" - in: "path" - description: "Keyword to search for in blueprint model meta-data" - required: true - type: "string" - x-example: "pnf_netconf" - responses: - 200: - description: "successful operation" - schema: - type: "object" - /api/v1/blueprint-model/name/{name}/version/{version}: - delete: - tags: - - "Blueprint Model Catalog API" - summary: "Delete a Blueprint Model by Name" - description: "Deletes a blueprint model identified by its name and version from\ - \ CDS." - operationId: "BlueprintModelController_deleteBlueprintByName_DELETE.org.onap.ccsdk.cds.blueprintsprocessor.designer.api" - parameters: - - name: "name" - in: "path" - description: "Name of the blueprint model" - required: true - type: "string" - x-example: "pnf_netconf" - - name: "version" - in: "path" - description: "Version of the blueprint model" - required: true - type: "string" - x-example: "1.0.0" - responses: - 200: - description: "successful operation" - schema: - type: "object" - /api/v1/blueprint-model/paged: - get: - tags: - - "Blueprint Model Catalog API" - summary: "Get Blueprints ordered" - description: "Lists all blueprint models which are saved in CDS in an ordered\ - \ mode." - operationId: "BlueprintModelController_allBlueprintModelPaged_GET.org.onap.ccsdk.cds.blueprintsprocessor.designer.api" - produces: - - "application/json" - parameters: - - name: "limit" - in: "query" - description: "Maximum number of returned blueprint models" - required: false - type: "integer" - default: 20 - format: "int32" - - name: "offset" - in: "query" - description: "Offset" - required: false - type: "integer" - default: 0 - format: "int32" - - name: "sort" - in: "query" - description: "Order of returned blueprint models" - required: false - type: "string" - default: "DATE" - enum: - - "DATE" - - "NAME" - - "VERSION" - - name: "sortType" - in: "query" - description: "Ascend or descend ordering" - required: false - type: "string" - default: "ASC" - responses: - 200: - description: "successful operation" - schema: - $ref: "#/definitions/PageBlueprintModelSearch" - /api/v1/blueprint-model/paged/meta-data/{keyword}: - get: - tags: - - "Blueprint Model Catalog API" - summary: "Search for Blueprints by a Keyword in an ordered mode" - description: "Lists all blueprint models by a matching keyword in any of the\ - \ meta-data of the blueprint models in an ordered mode. Blueprint models are\ - \ just returned if a whole keyword is matching, not just parts of it. Not\ - \ case-sensitive. Used by CDS UI." - operationId: "BlueprintModelController_allBlueprintModelMetaDataPaged_GET.org.onap.ccsdk.cds.blueprintsprocessor.designer.api" - produces: - - "application/json" - parameters: - - name: "keyword" - in: "path" - description: "Keyword to search for in blueprint model meta-data" - required: true - type: "string" - x-example: "pnf_netconf" - - name: "limit" - in: "query" - description: "Maximum number of returned blueprint models" - required: false - type: "integer" - default: 20 - format: "int32" - - name: "offset" - in: "query" - description: "Offset" - required: false - type: "integer" - default: 0 - format: "int32" - - name: "sort" - in: "query" - description: "Order of returned blueprint models" - required: false - type: "string" - default: "DATE" - enum: - - "DATE" - - "NAME" - - "VERSION" - - name: "sortType" - in: "query" - description: "Ascend or descend ordering" - required: false - type: "string" - default: "ASC" - responses: - 200: - description: "successful operation" - schema: - $ref: "#/definitions/PageBlueprintModelSearch" - /api/v1/blueprint-model/publish: - post: - tags: - - "Blueprint Model Catalog API" - summary: "Publish a Blueprint Model" - description: "Validates the attached CBA file and saves it in CDS if validation\ - \ was successful. CBA needs to be already enriched." - operationId: "BlueprintModelController_publishBlueprint_POST.org.onap.ccsdk.cds.blueprintsprocessor.designer.api" - consumes: - - "multipart/form-data" - produces: - - "application/json" - parameters: - - in: "body" - name: "file" - description: "Enriched CBA zip file to be uploaded (example: cba_enriched.zip)" - required: true - schema: - $ref: "#/definitions/FilePart" - responses: - 200: - description: "successful operation" - schema: - type: "object" - /api/v1/blueprint-model/search/{tags}: - get: - tags: - - "Blueprint Model Catalog API" - summary: "Search for a Blueprint by Tag" - description: "Searches for all blueprint models which contain the specified\ - \ input parameter in their tags. Blueprint models which contain just parts\ - \ of the searched word in their tags are also returned." - operationId: "BlueprintModelController_searchBlueprintModels_GET.org.onap.ccsdk.cds.blueprintsprocessor.designer.api" - produces: - - "application/json" - parameters: - - name: "tags" - in: "path" - description: "Tag to search for" - required: true - type: "string" - x-example: "test" - responses: - 200: - description: "successful operation" - schema: - type: "object" - /api/v1/blueprint-model/workflow-spec: - post: - tags: - - "Blueprint Model Catalog API" - summary: "Get Workflow Specification" - description: "Get the workflow of a blueprint identified by Blueprint and workflow\ - \ name. Inputs, outputs and data types of workflow is returned." - operationId: "BlueprintModelController_workflowSpec_POST.org.onap.ccsdk.cds.blueprintsprocessor.designer.api" - consumes: - - "application/json" - produces: - - "application/json" - parameters: - - in: "body" - name: "body" - required: false - schema: - $ref: "#/definitions/WorkFlowSpecRequest" - responses: - 200: - description: "successful operation" - schema: - type: "object" - /api/v1/blueprint-model/workflows/blueprint-name/{name}/version/{version}: - get: - tags: - - "Blueprint Model Catalog API" - summary: "Get Workflows of a Blueprint" - description: "Get all available workflows of a Blueprint identified by its name\ - \ and version." - operationId: "BlueprintModelController_getWorkflowList_GET.org.onap.ccsdk.cds.blueprintsprocessor.designer.api" - produces: - - "application/json" - parameters: - - name: "name" - in: "path" - description: "Name of the blueprint model" - required: true - type: "string" - x-example: "pnf_netconf" - - name: "version" - in: "path" - description: "Version of the blueprint model" - required: true - type: "string" - x-example: "1.0.0" - responses: - 200: - description: "successful operation" - schema: - type: "object" - /api/v1/blueprint-model/{id}: - get: - tags: - - "Blueprint Model Catalog API" - summary: "Get a Blueprint Model by ID" - description: "Get meta-data of a blueprint model by its internally created ID." - operationId: "BlueprintModelController_getBlueprintModel_GET.org.onap.ccsdk.cds.blueprintsprocessor.designer.api" - produces: - - "application/json" - parameters: - - name: "id" - in: "path" - description: "ID of the blueprint model to search for" - required: true - type: "string" - x-example: "67ec1f96-ab55-4b81-aff9-23ee0ed1d7a4" - responses: - 200: - description: "OK" - schema: - type: "object" - 404: - description: "Not Found" - delete: - tags: - - "Blueprint Model Catalog API" - summary: "Delete a Blueprint Model by ID" - description: "Delete a blueprint model by its ID. ID is the internally created\ - \ ID of blueprint, not the name of blueprint." - operationId: "BlueprintModelController_deleteBlueprint_DELETE.org.onap.ccsdk.cds.blueprintsprocessor.designer.api" - parameters: - - name: "id" - in: "path" - description: "ID of the blueprint model to delete" - required: true - type: "string" - x-example: "67ec1f96-ab55-4b81-aff9-23ee0ed1d7a4" - responses: - 200: - description: "OK" - schema: - type: "object" - 404: - description: "RESOURCE_NOT_FOUND" -securityDefinitions: - Basic Auth: - type: "basic" -definitions: - BlueprintModelSearch: - type: "object" - required: - - "artifactName" - - "artifactVersion" - - "createdDate" - - "id" - - "published" - - "tags" - - "updatedBy" - properties: - id: - type: "string" - example: "\"658f9a48-7f54-41ba-ae18-c69f26f3dc94\"" - description: "ID of Blueprint model, is automatically created by CDS" - artifactUUId: - type: "string" - example: "null" - description: "Artifact UUID, usually null" - artifactType: - type: "string" - example: "\"SDNC_MODEL\"" - description: "Artifact Type, usually null" - artifactVersion: - type: "string" - example: "\"1.0.0\"" - description: "Artifact Version, usually 1.0.0" - artifactDescription: - type: "string" - example: "\"\"" - description: "Artifact Description, usually empty" - internalVersion: - type: "integer" - format: "int32" - example: "null" - description: "Internal Version of CBA, usually null" - createdDate: - type: "string" - format: "date-time" - example: "\"2020-11-19T10:34:56.000Z\"" - description: "Datetime of the creation of CBA in CDS" - artifactName: - type: "string" - example: "\"pnf_netconf\"" - description: "Artifact Name, defined in Metadata" - published: - type: "string" - example: "\"pnf_netconf\"" - description: "Artifact Name, defined in Metadata" - updatedBy: - type: "string" - example: "\"Deutsche Telekom AG\"" - description: "Name of publisher, defined in Metadata" - tags: - type: "string" - example: "\"test\"" - description: "Tags to identify the CBA, defined in Metadata" - BootstrapRequest: - type: "object" - required: - - "loadCBA" - - "loadModelType" - - "loadResourceDictionary" - properties: - loadModelType: - type: "boolean" - example: true - description: "Specifies if default model types should be loaded" - loadResourceDictionary: - type: "boolean" - example: true - description: "Specifies if default data dictionaries should be loaded" - loadCBA: - type: "boolean" - example: true - description: "Specifies if default blueprint models should be loaded" - FilePart: - type: "object" - Page: - type: "object" - properties: - totalPages: - type: "integer" - format: "int32" - totalElements: - type: "integer" - format: "int64" - size: - type: "integer" - format: "int32" - content: - type: "array" - items: - type: "object" - number: - type: "integer" - format: "int32" - sort: - $ref: "#/definitions/Sort" - last: - type: "boolean" - numberOfElements: - type: "integer" - format: "int32" - pageable: - $ref: "#/definitions/Pageable" - first: - type: "boolean" - empty: - type: "boolean" - PageBlueprintModelSearch: - type: "object" - properties: - totalPages: - type: "integer" - format: "int32" - totalElements: - type: "integer" - format: "int64" - size: - type: "integer" - format: "int32" - content: - type: "array" - items: - $ref: "#/definitions/BlueprintModelSearch" - number: - type: "integer" - format: "int32" - sort: - $ref: "#/definitions/Sort" - last: - type: "boolean" - numberOfElements: - type: "integer" - format: "int32" - pageable: - $ref: "#/definitions/Pageable" - first: - type: "boolean" - empty: - type: "boolean" - Pageable: - type: "object" - properties: - offset: - type: "integer" - format: "int64" - sort: - $ref: "#/definitions/Sort" - paged: - type: "boolean" - unpaged: - type: "boolean" - pageNumber: - type: "integer" - format: "int32" - pageSize: - type: "integer" - format: "int32" - Sort: - type: "object" - properties: - unsorted: - type: "boolean" - sorted: - type: "boolean" - empty: - type: "boolean" - WorkFlowSpecRequest: - type: "object" - required: - - "blueprintName" - - "workflowName" - properties: - blueprintName: - type: "string" - example: "\"pnf_netconf\"" - description: "Name of the BLueprint" - version: - type: "string" - returnContent: - type: "string" - workflowName: - type: "string" - example: "\"config-assign\"" - description: "Name of the Workflow" - specType: - type: "string" diff --git a/ms/blueprintsprocessor/application/pom.xml b/ms/blueprintsprocessor/application/pom.xml index 76d301338..cccff5228 100755 --- a/ms/blueprintsprocessor/application/pom.xml +++ b/ms/blueprintsprocessor/application/pom.xml @@ -370,7 +370,7 @@ <type>basic</type> </securityDefinition> </securityDefinitions> - <outputFormats>json,yaml</outputFormats> + <outputFormats>json</outputFormats> <swaggerDirectory>${basedir}/../../../docs/api-reference/media</swaggerDirectory> <swaggerFileName>cds-bp-processor-api-swagger</swaggerFileName> <jsonExampleValues>true</jsonExampleValues> diff --git a/ms/blueprintsprocessor/functions/resource-resolution/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/resource/resolution/ResourceResolutionService.kt b/ms/blueprintsprocessor/functions/resource-resolution/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/resource/resolution/ResourceResolutionService.kt index 38c5c99fb..79a00b1f0 100644 --- a/ms/blueprintsprocessor/functions/resource-resolution/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/resource/resolution/ResourceResolutionService.kt +++ b/ms/blueprintsprocessor/functions/resource-resolution/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/resource/resolution/ResourceResolutionService.kt @@ -150,8 +150,11 @@ open class ResourceResolutionServiceImpl( val failedResolution = resourceAssignmentList.filter { it.status != "success" && it.property?.required == true }.map { it.name } if (failedResolution.isNotEmpty()) { - log.error("Failed to resolve required resources($failedResolution)") - bluePrintRuntimeService.setBluePrintError(resourceAssignmentRuntimeService.getBluePrintError()) + // The following error message is returned by default to handle a scenario when + // error message comes empty even when resolution has actually failed. + // Example: input-source type resolution seems to fail with no error code. + bluePrintRuntimeService.getBluePrintError().errors.add("Failed to resolve required resources($failedResolution)") + bluePrintRuntimeService.getBluePrintError().errors.addAll(resourceAssignmentRuntimeService.getBluePrintError().errors) } } return ResourceResolutionResult(templateMap, assignmentMap) |