summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README.md43
-rw-r--r--cds-ui/designer-client/angular.json14
-rw-r--r--cds-ui/designer-client/package-lock.json516
-rw-r--r--cds-ui/designer-client/package.json3
-rw-r--r--cds-ui/designer-client/src/app/app.module.ts2
-rw-r--r--cds-ui/designer-client/src/app/common/core/pipes/search.pipe.ts44
-rw-r--r--cds-ui/designer-client/src/app/modules/feature-modules/packages/configuration-dashboard/configuration-dashboard.component.html542
-rw-r--r--cds-ui/designer-client/src/app/modules/feature-modules/packages/configuration-dashboard/configuration-dashboard.component.ts6
-rw-r--r--cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/designer.component.html4
-rw-r--r--cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/designer.component.ts18
-rw-r--r--cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/designer.service.ts16
-rw-r--r--cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/source-view/source-view.component.html4
-rw-r--r--cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/source-view/source-view.component.ts21
-rw-r--r--cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/source-view/source-view.service.ts26
-rw-r--r--cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/imports-tab/imports-tab.component.html58
-rw-r--r--cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/imports-tab/imports-tab.component.ts28
-rw-r--r--cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/metadata-tab/metadata-tab.component.html2
-rw-r--r--cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/package-creation.component.html4
-rw-r--r--cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/package-creation.store.ts4
-rw-r--r--cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/scripts-tab/scripts-tab.component.html16
-rw-r--r--cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/scripts-tab/scripts-tab.component.ts6
-rw-r--r--cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/template-mapping/shared-service.ts25
-rw-r--r--cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/template-mapping/templ-mapp-creation/templ-mapp-creation.component.css9
-rw-r--r--cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/template-mapping/templ-mapp-creation/templ-mapp-creation.component.html53
-rw-r--r--cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/template-mapping/templ-mapp-creation/templ-mapp-creation.component.ts128
-rw-r--r--cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/template-mapping/templ-mapp-listing/templ-mapp-listing.component.html15
-rw-r--r--cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/template-mapping/templ-mapp-listing/templ-mapp-listing.component.ts29
-rw-r--r--cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/template-mapping/template-mapping.component.html11
-rw-r--r--cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/template-mapping/template-mapping.component.ts11
-rw-r--r--cds-ui/designer-client/src/app/modules/feature-modules/packages/packages-api.service.ts9
-rw-r--r--cds-ui/designer-client/src/app/modules/feature-modules/packages/packages-dashboard/filter-by-tags/filter-by-tags.component.html2
-rw-r--r--cds-ui/designer-client/src/app/modules/feature-modules/packages/packages-dashboard/package-list/package-list.component.html15
-rw-r--r--cds-ui/designer-client/src/app/modules/feature-modules/packages/packages-dashboard/package-pagination/package-pagination.component.ts5
-rw-r--r--cds-ui/designer-client/src/app/modules/feature-modules/packages/packages.routing.module.ts6
-rw-r--r--cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/model/definition.model.ts4
-rw-r--r--cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/model/metaData.model.ts3
-rw-r--r--cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/model/resource-dictionary.model.ts26
-rw-r--r--cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/model/sources.model.ts2
-rw-r--r--cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/dictionary-creation.service.spec.ts31
-rw-r--r--cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/dictionary-creation.service.ts37
-rw-r--r--cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/dictionary-creation.store.ts53
-rw-r--r--cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/dictionary-editor/dictionary-editor.component.css19
-rw-r--r--cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/dictionary-editor/dictionary-editor.component.html22
-rw-r--r--cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/dictionary-editor/dictionary-editor.component.spec.ts44
-rw-r--r--cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/dictionary-editor/dictionary-editor.component.ts38
-rw-r--r--cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/dictionary-metadata/dictionary-metadata.component.css19
-rw-r--r--cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/dictionary-metadata/dictionary-metadata.component.html91
-rw-r--r--cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/dictionary-metadata/dictionary-metadata.component.spec.ts44
-rw-r--r--cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/dictionary-metadata/dictionary-metadata.component.ts78
-rw-r--r--cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/resource-dictionary-creation.component.css37
-rw-r--r--cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/resource-dictionary-creation.component.html122
-rw-r--r--cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/resource-dictionary-creation.component.spec.ts44
-rw-r--r--cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/resource-dictionary-creation.component.ts76
-rw-r--r--cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/sources-template/sources-template.component.css208
-rw-r--r--cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/sources-template/sources-template.component.html85
-rw-r--r--cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/sources-template/sources-template.component.spec.ts44
-rw-r--r--cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/sources-template/sources-template.component.ts109
-rw-r--r--cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/sources-template/sources.store.ts60
-rw-r--r--cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-dashboard/dictionary-list/dictionary-list.component.html2
-rw-r--r--cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-routing.module.ts6
-rw-r--r--cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary.module.ts14
-rwxr-xr-xcds-ui/designer-client/src/assets/icomoon/fonts/icomoon.eotbin22112 -> 22348 bytes
-rwxr-xr-xcds-ui/designer-client/src/assets/icomoon/fonts/icomoon.svg2
-rwxr-xr-xcds-ui/designer-client/src/assets/icomoon/fonts/icomoon.ttfbin21948 -> 22184 bytes
-rwxr-xr-xcds-ui/designer-client/src/assets/icomoon/fonts/icomoon.woffbin22028 -> 22264 bytes
-rwxr-xr-xcds-ui/designer-client/src/assets/icomoon/style.css18
-rw-r--r--cds-ui/designer-client/src/assets/img/icon-action-custom-hover.svg27
-rw-r--r--cds-ui/designer-client/src/assets/img/icon-action-custom.svg27
-rw-r--r--cds-ui/designer-client/src/assets/img/icon-action-default-hover.svg92
-rw-r--r--cds-ui/designer-client/src/assets/img/icon-action-default.svg92
-rw-r--r--cds-ui/designer-client/src/assets/img/icon-action-import-hover.svg78
-rw-r--r--cds-ui/designer-client/src/assets/img/icon-action-import.svg78
-rw-r--r--cds-ui/designer-client/src/assets/img/icon-action-recent-hover.svg52
-rw-r--r--cds-ui/designer-client/src/assets/img/icon-action-recent.svg52
-rw-r--r--cds-ui/designer-client/src/assets/img/icon-error.sketchbin0 -> 20734 bytes
-rw-r--r--cds-ui/designer-client/src/styles.css440
-rw-r--r--cds-ui/server/src/controllers/blueprint-rest.controller.ts34
-rw-r--r--cds-ui/server/src/datasources/blueprint.datasource-template.ts8
-rw-r--r--cds-ui/server/src/services/blueprint.service.ts4
-rw-r--r--components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/artifact_types.json6
-rw-r--r--components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/data_types.json1925
-rw-r--r--components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/node_types.json806
-rw-r--r--components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/relationship_types.json8
-rw-r--r--components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/resources_definition_types.json4803
-rw-r--r--components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/vLB_CDS.json861
-rw-r--r--components/model-catalog/blueprint-model/service-blueprint/vLB/Scripts/kotlin/ConfigDeploy.kt126
-rw-r--r--components/model-catalog/blueprint-model/service-blueprint/vLB/Scripts/kotlin/HealthCheck.kt136
-rw-r--r--components/model-catalog/blueprint-model/service-blueprint/vLB/Scripts/kotlin/README.md1
-rw-r--r--components/model-catalog/blueprint-model/service-blueprint/vLB/Scripts/python/ConfigDeploy.py54
-rw-r--r--components/model-catalog/blueprint-model/service-blueprint/vLB/TOSCA-Metadata/TOSCA.meta8
-rw-r--r--components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/base_template-mapping.json893
-rw-r--r--components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/base_template-template.vtl144
-rw-r--r--components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/baseconfig-template.vtl18
-rw-r--r--components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/incremental-config-template.vtl18
-rw-r--r--components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/nf-params-mapping.json1
-rw-r--r--components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vdns-mapping.json1567
-rw-r--r--components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vdns-template.vtl302
-rw-r--r--components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vlb-mapping.json1782
-rw-r--r--components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vlb-template.vtl330
-rw-r--r--components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vnf-mapping.json1357
-rw-r--r--components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vnf-template.vtl284
-rw-r--r--components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vpkg-mapping.json106
-rw-r--r--components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vpkg-template.vtl273
-rw-r--r--docs/conf.py2
-rw-r--r--docs/datadictionary/complexResponse.rst24
-rw-r--r--docs/datadictionary/create_netbox_ip_address.rst8
-rw-r--r--docs/datadictionary/dbsystemcode.rst16
-rw-r--r--docs/datadictionary/resourcedefinitioncodesnip.rst80
-rw-r--r--docs/datadictionary/resourcesource.rst33
-rw-r--r--docs/datadictionary/restauth.rst54
-rw-r--r--docs/datadictionary/restsourcecode.rst162
-rw-r--r--docs/datadictionary/sourcecapabilitycode.rst64
-rw-r--r--docs/datadictionary/sourcedefaultcode.rst10
-rw-r--r--docs/datadictionary/sourceinputcode.rst10
-rw-r--r--docs/datadictionary/sourceprimarydbcode.rst92
-rw-r--r--docs/designtime.rst2
-rw-r--r--docs/installation.rst4
-rw-r--r--docs/media/CDS.pngbin0 -> 23391 bytes
-rw-r--r--docs/microservices/workflow.rst78
-rwxr-xr-xms/blueprintsprocessor/application/src/main/resources/application-dev.properties16
-rw-r--r--ms/blueprintsprocessor/functions/python-executor/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/python/executor/ComponentRemotePythonExecutor.kt97
-rw-r--r--ms/blueprintsprocessor/functions/python-executor/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/python/executor/ComponentRemotePythonExecutorTest.kt11
-rw-r--r--ms/blueprintsprocessor/modules/blueprints/blueprint-core/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/BluePrintConstants.kt2
-rw-r--r--ms/blueprintsprocessor/modules/commons/message-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/BluePrintMessageLibData.kt6
-rw-r--r--ms/blueprintsprocessor/modules/commons/message-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/service/KafkaMessageProducerService.kt52
-rw-r--r--ms/blueprintsprocessor/modules/commons/message-lib/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/service/BlueprintMessageConsumerServiceTest.kt2
-rw-r--r--ms/blueprintsprocessor/modules/commons/message-lib/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/service/BlueprintMessageProducerServiceTest.kt2
-rw-r--r--ms/blueprintsprocessor/modules/inbounds/designer-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/designer/api/BlueprintModelController.kt12
-rw-r--r--ms/blueprintsprocessor/modules/inbounds/selfservice-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/selfservice/api/BluePrintProcessingKafkaConsumer.kt25
-rw-r--r--ms/blueprintsprocessor/modules/inbounds/selfservice-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/selfservice/api/ExecutionServiceHandler.kt4
-rw-r--r--ms/blueprintsprocessor/modules/inbounds/selfservice-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/selfservice/api/KafkaPublishAuditService.kt76
-rw-r--r--ms/blueprintsprocessor/modules/inbounds/selfservice-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/selfservice/api/NoPublishAuditService.kt2
-rw-r--r--ms/blueprintsprocessor/modules/inbounds/selfservice-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/selfservice/api/PublishAuditService.kt2
-rw-r--r--ms/blueprintsprocessor/modules/inbounds/selfservice-api/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/selfservice/api/ExecutionServiceHandlerTest.kt2
-rw-r--r--ms/command-executor/src/main/docker/Dockerfile2
-rw-r--r--ms/command-executor/src/main/python/command_executor_handler.py72
-rw-r--r--ms/command-executor/src/main/python/command_executor_server.py31
-rw-r--r--ms/command-executor/src/main/python/utils.py52
138 files changed, 12473 insertions, 8460 deletions
diff --git a/README.md b/README.md
index 5c7ef103a..ba9c29357 100644
--- a/README.md
+++ b/README.md
@@ -5,3 +5,46 @@
## Reference
https://github.com/pinterest/ktlint
+
+## Getting started
+
+![Basic_Architecture](./docs/media/CDS.png)
+
+## Basic Requirements
+Before you can build this project, you must install and configure the following dependencies on your machine:
+
+ 1- Java 8 SDK
+
+ 2- Node and npm installed
+
+ 3- Angular CLI & Angular v8
+
+ 4- MySQL Database
+
+ 5- maven
+
+## Running in Development Mode
+
+* In the main project folder run `mvn clean install` command to install all libraries and dependencies for maven and npm.
+
+ 1- Back-end MS
+
+ * create `sdnctl` table in MySQL
+ * (Optional) You could run the project in a specific profile(dev, local) by adding `-Dspring.profiles.active=profile-name`
+
+2- Loop-back server: that allow your request to reach the backend from cds-ui
+ * move to `./cds-ui/server/` folder and run the command `npm start`
+
+ 3- cds-ui
+
+ * move to `./cds-ui/designer-client/` folder and run the command `npm start`, This command will make sure all the files follow the linting rules and then connect to the loopback server.
+
+## Using an IDE
+
+**Front-end** you could use `vscode` or `webstorm`.
+
+**Back-end** `Intellij` with kotlin plugin or any other editor
+
+
+---
+For more information check the `docs` folder. \ No newline at end of file
diff --git a/cds-ui/designer-client/angular.json b/cds-ui/designer-client/angular.json
index 256c35c1e..e503c1535 100644
--- a/cds-ui/designer-client/angular.json
+++ b/cds-ui/designer-client/angular.json
@@ -25,6 +25,7 @@
],
"styles": [
"src/styles.css",
+ "node_modules/ngx-toastr/toastr.css",
"./node_modules/datatables.net-dt/css/jquery.dataTables.css",
"./node_modules/bootstrap/dist/css/bootstrap.min.css",
"./node_modules/@angular/material/prebuilt-themes/purple-green.css",
@@ -61,12 +62,10 @@
},
"configurations": {
"production": {
- "fileReplacements": [
- {
- "replace": "src/environments/environment.ts",
- "with": "src/environments/environment.prod.ts"
- }
- ],
+ "fileReplacements": [{
+ "replace": "src/environments/environment.ts",
+ "with": "src/environments/environment.prod.ts"
+ }],
"optimization": true,
"outputHashing": "all",
"sourceMap": false,
@@ -76,8 +75,7 @@
"extractLicenses": true,
"vendorChunk": false,
"buildOptimizer": true,
- "budgets": [
- {
+ "budgets": [{
"type": "initial",
"maximumWarning": "2mb",
"maximumError": "5mb"
diff --git a/cds-ui/designer-client/package-lock.json b/cds-ui/designer-client/package-lock.json
index 46997c4ab..c46ca55c7 100644
--- a/cds-ui/designer-client/package-lock.json
+++ b/cds-ui/designer-client/package-lock.json
@@ -8,6 +8,7 @@
"version": "0.803.25",
"resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.803.25.tgz",
"integrity": "sha512-usV/zEncKCKQuF6AD3pRU6N5i5fbaAux/qZb+nbOz9/2G5jrXwe5sH+y3vxbgqB83e3LqusEQCTu7/tfg6LwZg==",
+ "dev": true,
"requires": {
"@angular-devkit/core": "8.3.25",
"rxjs": "6.4.0"
@@ -167,6 +168,7 @@
"version": "8.3.25",
"resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-8.3.25.tgz",
"integrity": "sha512-l7Gqy1tMrTpRmPVlovcFX8UA3mtXRlgO8kcSsbJ9MKRKNTCcxlfsWEYY5igyDBUVh6ADkgSIu0nuk31ZGTe0lw==",
+ "dev": true,
"requires": {
"ajv": "6.10.2",
"fast-json-stable-stringify": "2.0.0",
@@ -179,6 +181,7 @@
"version": "8.3.25",
"resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-8.3.25.tgz",
"integrity": "sha512-/p1MkfursfLy+JRGXlJGPEmX55lrFCsR/2khWAVXZcMaFR3QlR/b6/zvB8I2pHFfr0/XWnYTT/BsF7rJjO3RmA==",
+ "dev": true,
"requires": {
"@angular-devkit/core": "8.3.25",
"rxjs": "6.4.0"
@@ -205,6 +208,7 @@
"version": "8.3.25",
"resolved": "https://registry.npmjs.org/@angular/cli/-/cli-8.3.25.tgz",
"integrity": "sha512-CPJI5nnbBvvyBUFwOHfRXy/KVwsiYlcbDAeIk1klcjQjbVFYZbnY0iAhNupy9j7rPQhb7jle5oslU3TLfbqOTQ==",
+ "dev": true,
"requires": {
"@angular-devkit/architect": "0.803.25",
"@angular-devkit/core": "8.3.25",
@@ -2071,6 +2075,7 @@
"version": "8.3.25",
"resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-8.3.25.tgz",
"integrity": "sha512-/vEPtE+fvgsWPml/MVqzmlGPBujadPPNwaTuuj5Uz1aVcKeEYzLkbN8YQOpml4vxZHCF8RDwNdGiU4SZg63Jfg==",
+ "dev": true,
"requires": {
"@angular-devkit/core": "8.3.25",
"@angular-devkit/schematics": "8.3.25"
@@ -2080,6 +2085,7 @@
"version": "0.803.25",
"resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.803.25.tgz",
"integrity": "sha512-VIlqhJsCStA3aO4llxZ7lAOvQUqppyZdrEO7f/ApIJmuofPQTkO5Hx21tnv0dyExwoqPCSIHzEu4Tmc0/TWM1A==",
+ "dev": true,
"requires": {
"@angular-devkit/core": "8.3.25",
"@angular-devkit/schematics": "8.3.25",
@@ -2101,6 +2107,11 @@
"@types/underscore": "*"
}
},
+ "@types/color-name": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz",
+ "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ=="
+ },
"@types/datatables.net": {
"version": "1.10.18",
"resolved": "https://registry.npmjs.org/@types/datatables.net/-/datatables.net-1.10.18.tgz",
@@ -2516,11 +2527,346 @@
}
},
"angular-datatables": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/angular-datatables/-/angular-datatables-8.1.0.tgz",
- "integrity": "sha512-UJmF8qLdxIALyabwslvMvJ8zjkJWIfn/IfzEKO1vv6z+DhwfHlTS7oFOF40x0ZbSGfq0E1Yyscl7MOl71AulHw==",
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/angular-datatables/-/angular-datatables-9.0.1.tgz",
+ "integrity": "sha512-F3mieJK0qkxGaX+uoKD2kVLDGM8HR2ZmLboN5vWAu4yKAOYI7x3NFfC+patBt39RZyEC2ajzKitOMyYKm6KUgA==",
"requires": {
- "@angular/cli": "^8.0.2"
+ "@angular/cli": "^9.0.6"
+ },
+ "dependencies": {
+ "@angular-devkit/architect": {
+ "version": "0.901.4",
+ "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.901.4.tgz",
+ "integrity": "sha512-w4RMj7eLhUSh70HUy5tW4EXjLQFXk0Lfr9WiSy5gvPGp+zzYxknI+Wn4Xid1wU/WS+4tuMv5nJIaNaH2sABESQ==",
+ "requires": {
+ "@angular-devkit/core": "9.1.4",
+ "rxjs": "6.5.4"
+ }
+ },
+ "@angular-devkit/core": {
+ "version": "9.1.4",
+ "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-9.1.4.tgz",
+ "integrity": "sha512-OPFQDmT4XabLMSRDgmnzedlOrc83DzQIgLcfoh/UhZ7aJKf/2Vq4l09p/DkMNI36vN5BRL0zDZt7TjvKNgyYgA==",
+ "requires": {
+ "ajv": "6.12.0",
+ "fast-json-stable-stringify": "2.1.0",
+ "magic-string": "0.25.7",
+ "rxjs": "6.5.4",
+ "source-map": "0.7.3"
+ }
+ },
+ "@angular-devkit/schematics": {
+ "version": "9.1.4",
+ "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-9.1.4.tgz",
+ "integrity": "sha512-RAbdnUEZ3JTLmWSBiXT5trsVx8Fi72fxN9CiRaluM09Cytg6BUc1wC5XCO0YPvhI400+3Ro1nwjPXezjg7LXzQ==",
+ "requires": {
+ "@angular-devkit/core": "9.1.4",
+ "ora": "4.0.3",
+ "rxjs": "6.5.4"
+ }
+ },
+ "@angular/cli": {
+ "version": "9.1.4",
+ "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-9.1.4.tgz",
+ "integrity": "sha512-H9MqoT4zyIv+Yo3cvRVkzafWGHsqt7jUvtvGwMHIDMTfEX+Q8yiYlDLL6WM3Eb6/hDmLcRGC/GI495sKS1z5qA==",
+ "requires": {
+ "@angular-devkit/architect": "0.901.4",
+ "@angular-devkit/core": "9.1.4",
+ "@angular-devkit/schematics": "9.1.4",
+ "@schematics/angular": "9.1.4",
+ "@schematics/update": "0.901.4",
+ "@yarnpkg/lockfile": "1.1.0",
+ "ansi-colors": "4.1.1",
+ "debug": "4.1.1",
+ "ini": "1.3.5",
+ "inquirer": "7.1.0",
+ "npm-package-arg": "8.0.1",
+ "npm-pick-manifest": "6.0.0",
+ "open": "7.0.3",
+ "pacote": "9.5.12",
+ "read-package-tree": "5.3.1",
+ "rimraf": "3.0.2",
+ "semver": "7.1.3",
+ "symbol-observable": "1.2.0",
+ "universal-analytics": "0.4.20",
+ "uuid": "7.0.2"
+ }
+ },
+ "@schematics/angular": {
+ "version": "9.1.4",
+ "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-9.1.4.tgz",
+ "integrity": "sha512-7nbiYBRgXc+f0sa5iXTcF6/VMy/Xq0wyKKnDFiLCb2aFYR7EXRHWF2GuwDIg2bvFugLuCBDoNnXeddLE1TXGWg==",
+ "requires": {
+ "@angular-devkit/core": "9.1.4",
+ "@angular-devkit/schematics": "9.1.4"
+ }
+ },
+ "@schematics/update": {
+ "version": "0.901.4",
+ "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.901.4.tgz",
+ "integrity": "sha512-jCtZY2Fbj502gKN5gdu1brnRy/ssyzTrWm69Ty73V+t8uL7nLr+/hny/VBJ8CiQnKQvxcgVl1xgvI1cXzpysVA==",
+ "requires": {
+ "@angular-devkit/core": "9.1.4",
+ "@angular-devkit/schematics": "9.1.4",
+ "@yarnpkg/lockfile": "1.1.0",
+ "ini": "1.3.5",
+ "npm-package-arg": "^8.0.0",
+ "pacote": "9.5.12",
+ "rxjs": "6.5.4",
+ "semver": "7.1.3",
+ "semver-intersect": "1.4.0"
+ }
+ },
+ "ajv": {
+ "version": "6.12.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz",
+ "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==",
+ "requires": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "ansi-styles": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
+ "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
+ "requires": {
+ "@types/color-name": "^1.1.1",
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
+ "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+ },
+ "fast-deep-equal": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
+ "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA=="
+ },
+ "fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ },
+ "hosted-git-info": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.4.tgz",
+ "integrity": "sha512-4oT62d2jwSDBbLLFLZE+1vPuQ1h8p9wjrJ8Mqx5TjsyWmBMV5B13eJqn8pvluqubLf3cJPTfiYCIwNwDNmzScQ==",
+ "requires": {
+ "lru-cache": "^5.1.1"
+ }
+ },
+ "inquirer": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.1.0.tgz",
+ "integrity": "sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg==",
+ "requires": {
+ "ansi-escapes": "^4.2.1",
+ "chalk": "^3.0.0",
+ "cli-cursor": "^3.1.0",
+ "cli-width": "^2.0.0",
+ "external-editor": "^3.0.3",
+ "figures": "^3.0.0",
+ "lodash": "^4.17.15",
+ "mute-stream": "0.0.8",
+ "run-async": "^2.4.0",
+ "rxjs": "^6.5.3",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0",
+ "through": "^2.3.6"
+ }
+ },
+ "is-wsl": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
+ "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
+ "requires": {
+ "is-docker": "^2.0.0"
+ }
+ },
+ "magic-string": {
+ "version": "0.25.7",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz",
+ "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==",
+ "requires": {
+ "sourcemap-codec": "^1.4.4"
+ }
+ },
+ "npm-package-arg": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.0.1.tgz",
+ "integrity": "sha512-/h5Fm6a/exByzFSTm7jAyHbgOqErl9qSNJDQF32Si/ZzgwT2TERVxRxn3Jurw1wflgyVVAxnFR4fRHPM7y1ClQ==",
+ "requires": {
+ "hosted-git-info": "^3.0.2",
+ "semver": "^7.0.0",
+ "validate-npm-package-name": "^3.0.0"
+ }
+ },
+ "npm-pick-manifest": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.0.0.tgz",
+ "integrity": "sha512-PdJpXMvjqt4nftNEDpCgjBUF8yI3Q3MyuAmVB9nemnnCg32F4BPL/JFBfdj8DubgHCYUFQhtLWmBPvdsFtjWMg==",
+ "requires": {
+ "npm-install-checks": "^4.0.0",
+ "npm-package-arg": "^8.0.0",
+ "semver": "^7.0.0"
+ }
+ },
+ "open": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/open/-/open-7.0.3.tgz",
+ "integrity": "sha512-sP2ru2v0P290WFfv49Ap8MF6PkzGNnGlAwHweB4WR4mr5d2d0woiCluUeJ218w7/+PmoBy9JmYgD5A4mLcWOFA==",
+ "requires": {
+ "is-docker": "^2.0.0",
+ "is-wsl": "^2.1.1"
+ }
+ },
+ "pacote": {
+ "version": "9.5.12",
+ "resolved": "https://registry.npmjs.org/pacote/-/pacote-9.5.12.tgz",
+ "integrity": "sha512-BUIj/4kKbwWg4RtnBncXPJd15piFSVNpTzY0rysSr3VnMowTYgkGKcaHrbReepAkjTr8lH2CVWRi58Spg2CicQ==",
+ "requires": {
+ "bluebird": "^3.5.3",
+ "cacache": "^12.0.2",
+ "chownr": "^1.1.2",
+ "figgy-pudding": "^3.5.1",
+ "get-stream": "^4.1.0",
+ "glob": "^7.1.3",
+ "infer-owner": "^1.0.4",
+ "lru-cache": "^5.1.1",
+ "make-fetch-happen": "^5.0.0",
+ "minimatch": "^3.0.4",
+ "minipass": "^2.3.5",
+ "mississippi": "^3.0.0",
+ "mkdirp": "^0.5.1",
+ "normalize-package-data": "^2.4.0",
+ "npm-normalize-package-bin": "^1.0.0",
+ "npm-package-arg": "^6.1.0",
+ "npm-packlist": "^1.1.12",
+ "npm-pick-manifest": "^3.0.0",
+ "npm-registry-fetch": "^4.0.0",
+ "osenv": "^0.1.5",
+ "promise-inflight": "^1.0.1",
+ "promise-retry": "^1.1.1",
+ "protoduck": "^5.0.1",
+ "rimraf": "^2.6.2",
+ "safe-buffer": "^5.1.2",
+ "semver": "^5.6.0",
+ "ssri": "^6.0.1",
+ "tar": "^4.4.10",
+ "unique-filename": "^1.1.1",
+ "which": "^1.3.1"
+ },
+ "dependencies": {
+ "hosted-git-info": {
+ "version": "2.8.8",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz",
+ "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg=="
+ },
+ "npm-package-arg": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.1.tgz",
+ "integrity": "sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==",
+ "requires": {
+ "hosted-git-info": "^2.7.1",
+ "osenv": "^0.1.5",
+ "semver": "^5.6.0",
+ "validate-npm-package-name": "^3.0.0"
+ }
+ },
+ "npm-pick-manifest": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-3.0.2.tgz",
+ "integrity": "sha512-wNprTNg+X5nf+tDi+hbjdHhM4bX+mKqv6XmPh7B5eG+QY9VARfQPfCEH013H5GqfNj6ee8Ij2fg8yk0mzps1Vw==",
+ "requires": {
+ "figgy-pudding": "^3.5.1",
+ "npm-package-arg": "^6.0.0",
+ "semver": "^5.4.1"
+ }
+ },
+ "rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ },
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
+ }
+ }
+ },
+ "rimraf": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ },
+ "rxjs": {
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz",
+ "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==",
+ "requires": {
+ "tslib": "^1.9.0"
+ }
+ },
+ "semver": {
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.3.tgz",
+ "integrity": "sha512-ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA=="
+ },
+ "strip-ansi": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+ "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+ "requires": {
+ "ansi-regex": "^5.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
+ "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "uuid": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.2.tgz",
+ "integrity": "sha512-vy9V/+pKG+5ZTYKf+VcphF5Oc6EFiu3W8Nv3P3zIh0EqVI80ZxOzuPfe9EHjkFNvf8+xuTHVeei4Drydlx4zjw=="
+ }
}
},
"angular-font-awesome": {
@@ -3517,6 +3863,11 @@
"restore-cursor": "^3.1.0"
}
},
+ "cli-spinners": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.3.0.tgz",
+ "integrity": "sha512-Xs2Hf2nzrvJMFKimOR7YR0QwZ8fc0u98kdtwN1eNAZzNQgH3vK2pXzff6GJtKh7S5hoJ87ECiAiZFS2fb5Ii2w=="
+ },
"cli-width": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz",
@@ -4225,6 +4576,21 @@
"strip-bom": "^3.0.0"
}
},
+ "defaults": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz",
+ "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=",
+ "requires": {
+ "clone": "^1.0.2"
+ },
+ "dependencies": {
+ "clone": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
+ "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4="
+ }
+ }
+ },
"define-properties": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
@@ -5988,6 +6354,7 @@
"version": "6.5.1",
"resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.1.tgz",
"integrity": "sha512-uxNHBeQhRXIoHWTSNYUFhQVrHYFThIt6IVo2fFmSe8aBwdR3/w6b58hJpiL/fMukFkvGzjg+hSxFtwvVmKZmXw==",
+ "dev": true,
"requires": {
"ansi-escapes": "^4.2.1",
"chalk": "^2.4.2",
@@ -6154,6 +6521,11 @@
"integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=",
"dev": true
},
+ "is-docker": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.0.0.tgz",
+ "integrity": "sha512-pJEdRugimx4fBMra5z2/5iRdZ63OhYV0vr0Dwm5+xtW4D1FvRkB8hamMIhnWfyJeDdyr/aa7BDyNbtG38VxgoQ=="
+ },
"is-extendable": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
@@ -6180,6 +6552,11 @@
"is-extglob": "^2.1.1"
}
},
+ "is-interactive": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz",
+ "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w=="
+ },
"is-number": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
@@ -6266,7 +6643,8 @@
"is-wsl": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
- "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0="
+ "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=",
+ "dev": true
},
"isarray": {
"version": "1.0.0",
@@ -7559,6 +7937,14 @@
"integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=",
"dev": true
},
+ "log-symbols": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz",
+ "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==",
+ "requires": {
+ "chalk": "^2.4.2"
+ }
+ },
"log4js": {
"version": "4.5.1",
"resolved": "https://registry.npmjs.org/log4js/-/log4js-4.5.1.tgz",
@@ -7599,6 +7985,7 @@
"version": "0.25.3",
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.3.tgz",
"integrity": "sha512-6QK0OpF/phMz0Q2AxILkX2mFhi7m+WMwTRg0LQKq/WBB0cDP4rYH3Wp4/d3OTXlrPLVJT/RFqj8tFeAR4nk8AA==",
+ "dev": true,
"requires": {
"sourcemap-codec": "^1.4.4"
}
@@ -8101,6 +8488,14 @@
"tslib": "^1.9.0"
}
},
+ "ngx-toastr": {
+ "version": "11.3.3",
+ "resolved": "https://registry.npmjs.org/ngx-toastr/-/ngx-toastr-11.3.3.tgz",
+ "integrity": "sha512-DbLFkSZHsVPuuIIrsY1ziEhdkFUQ0V1yG1N0+1nKXGI5QBVesEDxLUVtntjzxJcWw/uUV+bKApo//tGHHORabQ==",
+ "requires": {
+ "tslib": "^1.9.0"
+ }
+ },
"nice-try": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
@@ -8221,6 +8616,21 @@
"npm-normalize-package-bin": "^1.0.1"
}
},
+ "npm-install-checks": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-4.0.0.tgz",
+ "integrity": "sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==",
+ "requires": {
+ "semver": "^7.1.1"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "7.3.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz",
+ "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ=="
+ }
+ }
+ },
"npm-normalize-package-bin": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz",
@@ -8258,6 +8668,7 @@
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-3.0.2.tgz",
"integrity": "sha512-wNprTNg+X5nf+tDi+hbjdHhM4bX+mKqv6XmPh7B5eG+QY9VARfQPfCEH013H5GqfNj6ee8Ij2fg8yk0mzps1Vw==",
+ "dev": true,
"requires": {
"figgy-pudding": "^3.5.1",
"npm-package-arg": "^6.0.0",
@@ -8267,7 +8678,8 @@
"semver": {
"version": "5.7.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true
}
}
},
@@ -8455,6 +8867,7 @@
"version": "6.4.0",
"resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz",
"integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==",
+ "dev": true,
"requires": {
"is-wsl": "^1.1.0"
}
@@ -8486,6 +8899,75 @@
}
}
},
+ "ora": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/ora/-/ora-4.0.3.tgz",
+ "integrity": "sha512-fnDebVFyz309A73cqCipVL1fBZewq4vwgSHfxh43vVy31mbyoQ8sCH3Oeaog/owYOs/lLlGVPCISQonTneg6Pg==",
+ "requires": {
+ "chalk": "^3.0.0",
+ "cli-cursor": "^3.1.0",
+ "cli-spinners": "^2.2.0",
+ "is-interactive": "^1.0.0",
+ "log-symbols": "^3.0.0",
+ "mute-stream": "0.0.8",
+ "strip-ansi": "^6.0.0",
+ "wcwidth": "^1.0.1"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
+ "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
+ "requires": {
+ "@types/color-name": "^1.1.1",
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
+ "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ },
+ "strip-ansi": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+ "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+ "requires": {
+ "ansi-regex": "^5.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
+ "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
"original": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz",
@@ -8600,6 +9082,7 @@
"version": "9.5.5",
"resolved": "https://registry.npmjs.org/pacote/-/pacote-9.5.5.tgz",
"integrity": "sha512-jAEP+Nqj4kyMWyNpfTU/Whx1jA7jEc5cCOlurm0/0oL+v8TAp1QSsK83N7bYe+2bEdFzMAtPG5TBebjzzGV0cA==",
+ "dev": true,
"requires": {
"bluebird": "^3.5.3",
"cacache": "^12.0.2",
@@ -8635,6 +9118,7 @@
"version": "2.2.3",
"resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-2.2.3.tgz",
"integrity": "sha512-+IluBC5K201+gRU85vFlUwX3PFShZAbAgDNp2ewJdWMVSppdo/Zih0ul2Ecky/X7b51J7LrrUAP+XOmOCvYZqA==",
+ "dev": true,
"requires": {
"figgy-pudding": "^3.5.1",
"npm-package-arg": "^6.0.0",
@@ -8645,6 +9129,7 @@
"version": "2.7.1",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
"integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "dev": true,
"requires": {
"glob": "^7.1.3"
}
@@ -8652,7 +9137,8 @@
"semver": {
"version": "5.7.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true
}
}
},
@@ -9692,6 +10178,7 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.0.tgz",
"integrity": "sha512-NDGVxTsjqfunkds7CqsOiEnxln4Bo7Nddl3XhS4pXg5OzwkLqJ971ZVAAnB+DDLnF76N+VnDEiBHaVV8I06SUg==",
+ "dev": true,
"requires": {
"glob": "^7.1.3"
}
@@ -9855,7 +10342,8 @@
"semver": {
"version": "6.3.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true
},
"semver-dsl": {
"version": "1.0.1",
@@ -10775,6 +11263,7 @@
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
"integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dev": true,
"requires": {
"ansi-regex": "^4.1.0"
},
@@ -10782,7 +11271,8 @@
"ansi-regex": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
- "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "dev": true
}
}
},
@@ -12211,6 +12701,14 @@
"minimalistic-assert": "^1.0.0"
}
},
+ "wcwidth": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",
+ "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=",
+ "requires": {
+ "defaults": "^1.0.3"
+ }
+ },
"webdriver-js-extender": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/webdriver-js-extender/-/webdriver-js-extender-2.1.0.tgz",
diff --git a/cds-ui/designer-client/package.json b/cds-ui/designer-client/package.json
index ec968ba7a..a8427ee9e 100644
--- a/cds-ui/designer-client/package.json
+++ b/cds-ui/designer-client/package.json
@@ -24,7 +24,7 @@
"@angular/router": "~8.2.9",
"@ng-bootstrap/ng-bootstrap": "^5.1.1",
"angular-animations": "0.0.10",
- "angular-datatables": "^8.0.0",
+ "angular-datatables": "^9.0.1",
"angular-font-awesome": "^3.1.2",
"angular-material-expansion-panel": "^0.7.2",
"backbone": "^1.4.0",
@@ -43,6 +43,7 @@
"ng2-ace-editor": "^0.3.9",
"ngx-bootstrap": "^5.6.1",
"ngx-file-drop": "^8.0.8",
+ "ngx-toastr": "^11.3.3",
"rxjs": "~6.4.0",
"stream": "0.0.2",
"tslib": "^1.10.0",
diff --git a/cds-ui/designer-client/src/app/app.module.ts b/cds-ui/designer-client/src/app/app.module.ts
index da7ddfbd0..fd07d34c0 100644
--- a/cds-ui/designer-client/src/app/app.module.ts
+++ b/cds-ui/designer-client/src/app/app.module.ts
@@ -34,6 +34,7 @@ import {SidebarModule} from 'ng-sidebar';
import {SharedModulesModule} from './modules/shared-modules/shared-modules.module';
import {NgxFileDropModule} from 'ngx-file-drop';
import {ResourceDictionaryModule} from './modules/feature-modules/resource-dictionary/resource-dictionary.module';
+import { ToastrModule } from 'ngx-toastr';
@NgModule({
@@ -53,6 +54,7 @@ import {ResourceDictionaryModule} from './modules/feature-modules/resource-dicti
NgxFileDropModule,
ResourceDictionaryModule,
SidebarModule,
+ ToastrModule.forRoot() // ToastrModule added
],
providers: [ApiService],
diff --git a/cds-ui/designer-client/src/app/common/core/pipes/search.pipe.ts b/cds-ui/designer-client/src/app/common/core/pipes/search.pipe.ts
new file mode 100644
index 000000000..104fe0090
--- /dev/null
+++ b/cds-ui/designer-client/src/app/common/core/pipes/search.pipe.ts
@@ -0,0 +1,44 @@
+/*
+* ============LICENSE_START=======================================================
+* ONAP : CDS
+* ================================================================================
+* Copyright (C) 2020 TechMahindra
+*=================================================================================
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+* ============LICENSE_END=========================================================
+*/
+import { Pipe, PipeTransform } from '@angular/core';
+
+@Pipe({
+ name: 'search'
+})
+
+export class SearchPipe implements PipeTransform {
+ transform(items: any[], searchText: string): any[] {
+ if (!items) {
+ return [];
+ }
+ if (!searchText) {
+ return items;
+ }
+ searchText = searchText.toLowerCase();
+ return items.filter( it => {
+ if (it.name) {
+ return it.name.toLowerCase().includes(searchText);
+ } else {
+ return items;
+ }
+ });
+ }
+
+}
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 6c7e1efc6..a549d54a2 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
@@ -8,7 +8,7 @@
<ul class="breadcrumb-header">
<li><a routerLink="/packages">CBA Packages</a></li>
<i class="fa fa-angle-right ml-2 mr-2"></i>
- <li>Package Name</li>
+ <li>{{viewedPackage.artifactName}}</li>
</ul>
</h2>
<div class="col">
@@ -107,9 +107,547 @@
</div>
</div>
<div class="col-2 package-view-button pt-3">
- <button class="btn btn-sm btn-primary mb-2" (click)="goToDesignerMode()">Designer
+ <!-- <button class="btn btn-sm btn-primary mb-2" (click)="goToDesignerMode()">Designer
Mode
+ </button> -->
+ <!-- Button trigger modal - 1st Action -->
+ <button type="button" class="btn btn-sm btn-primary mb-2" data-toggle="modal"
+ data-target="#exampleModalLong">
+ Designer Mode
</button>
+ <!-- Modal -->
+ <div class="modal fade createActionModal" id="exampleModalLong" tabindex="-1" role="dialog"
+ aria-labelledby="exampleModalLongTitle" aria-hidden="true">
+ <div class="modal-dialog" role="document">
+ <div class="modal-content">
+ <div class="modal-content">
+ <div class="modal-header">
+ <h5 class="modal-title" id="exampleModalLongTitle"></h5>
+ <button type="button" class="close" data-dismiss="modal"
+ aria-label="Close" title="Close">
+ <i class="icon-action-close"></i>
+ </button>
+ </div>
+ <div class="modal-body">
+ <div id="carouselExampleIndicators" class="carousel slide"
+ data-ride="carousel" data-interval="false">
+ <div class="carousel-inner" style="height: 480px">
+ <!--OPTIONS SLIDE-->
+ <div class="carousel-item active">
+ <h1>Let’s create the 1st Action</h1>
+ <div class="row">
+ <!--Custom Action-->
+ <div class="col-3 d-flex">
+ <a class="d-flex" data-target="#carouselExampleIndicators"
+ data-slide-to="1">
+ <div class="card actionType custom">
+ <div class="card-body">
+ <h3>Custom</h3>
+ <p>Start with your own settings</p>
+ <button
+ data-target="#carouselExampleIndicators"
+ data-slide-to="1" class="btn">
+ Create
+ </button>
+ </div>
+ </div>
+ </a>
+ </div>
+ <!--Default Action-->
+ <div class="col-3 d-flex">
+ <a class="d-flex" data-target="#carouselExampleIndicators"
+ data-slide-to="2">
+ <div class="card actionType default">
+ <div class="card-body">
+ <h3>Default</h3>
+ <p>Explore preset actions from CDS
+ Action Catalog</p>
+ <button
+ data-target="#carouselExampleIndicators"
+ data-slide-to="2" class="btn">
+ Select
+ </button>
+ </div>
+ </div>
+ </a>
+ </div>
+ <!--Recent Action-->
+ <div class="col-3 d-flex">
+ <a class="d-flex" data-target="#carouselExampleIndicators"
+ data-slide-to="3">
+ <div class="card actionType recent">
+ <div class="card-body">
+ <h3>Recent</h3>
+ <p>Re-use recent actions of your
+ recent
+ packages</p>
+ <button
+ data-target="#carouselExampleIndicators"
+ data-slide-to="3" class="btn">
+ Select
+ </button>
+ </div>
+ </div>
+ </a>
+ </div>
+ <!--Import Action-->
+ <div class="col-3 d-flex">
+ <a class="d-flex" data-target="#carouselExampleIndicators"
+ data-slide-to="4">
+ <div class="card actionType import">
+ <div class="card-body">
+ <h3>Import</h3>
+ <p>Import your own action files</p>
+ <button
+ data-target="#carouselExampleIndicators"
+ data-slide-to="4" class="btn">
+ Browse</button>
+ </div>
+ </div>
+ </a>
+ </div>
+ </div>
+ <div class="row">
+ <div class="col text-center">
+ <button class="btn skip-btn">Skip to Designer Canvas</button>
+ </div>
+ </div>
+ </div>
+ <!--Custom Action Form-->
+ <div class="carousel-item">
+ <button data-target="#carouselExampleIndicators"
+ data-slide-to="0" title="Back" class="btn back"><i
+ class="icon-action-back"></i></button>
+ <h1>Create Custom Action</h1>
+ <div class="form-group text-center">
+ <input type="text" class="form-control customAction"
+ placeholder="Type Action Name" autofocus>
+ <button type="button" (click)="goToDesignerMode(viewedPackage.id)" class="btn submit">Start</button>
+ </div>
+
+ </div>
+ <!--Default Actions Form-->
+ <div class="carousel-item">
+ <button data-target="#carouselExampleIndicators"
+ data-slide-to="0" title="Back" class="btn back"><i
+ class="icon-action-back"></i></button>
+ <h1>Choose Action(s) from CDS Default Package </h1>
+ <div class="actionFormWrapper">
+ <div class="row mb-3">
+ <div class="col sort-packages">
+ <label class="actionlabel">Version</label>
+ <div class="dropdown" style="width: 90px">
+ <input class="dropdown-toggle" type="text">
+ <div class="dropdown-text">1.6.2</div>
+ <ul class="dropdown-content">
+ <li>
+ <a>1.1.8</a>
+ </li>
+ <li>
+ <a>2.1.8</a>
+ </li>
+ </ul>
+ </div>
+ </div>
+ <div class="col">
+ <input type="text"
+ class="form-control searchInput"
+ placeholder="Search">
+ </div>
+ </div>
+ <div class="row actionsListScroll">
+ <div class="col-6">
+ <div class="actionName">
+ <div class="custom-control custom-checkbox">
+ <input type="checkbox"
+ class="custom-control-input"
+ id="customControlValidation1"
+ required>
+ <label class="custom-control-label"
+ for="customControlValidation1">config-assign</label>
+ </div>
+ </div>
+ </div>
+ <div class="col-6">
+ <div class="actionName">
+ <div class="custom-control custom-checkbox">
+ <input type="checkbox"
+ class="custom-control-input"
+ id="customControlValidation2"
+ required>
+ <label class="custom-control-label"
+ for="customControlValidation2">config-assign-test</label>
+ </div>
+ </div>
+ </div>
+ <div class="col-6">
+ <div class="actionName">
+ <div class="custom-control custom-checkbox">
+ <input type="checkbox"
+ class="custom-control-input"
+ id="customControlValidation3"
+ required>
+ <label class="custom-control-label"
+ for="customControlValidation3">config-deploy</label>
+ </div>
+ </div>
+ </div>
+ <div class="col-6">
+ <div class="actionName">
+ <div class="custom-control custom-checkbox">
+ <input type="checkbox"
+ class="custom-control-input"
+ id="customControlValidation4"
+ required>
+ <label class="custom-control-label"
+ for="customControlValidation4">config-modify</label>
+ </div>
+ </div>
+ </div>
+ <div class="col-6">
+ <div class="actionName">
+ <div class="custom-control custom-checkbox">
+ <input type="checkbox"
+ class="custom-control-input"
+ id="customControlValidation5"
+ required>
+ <label class="custom-control-label"
+ for="customControlValidation5">config-assign1</label>
+ </div>
+ </div>
+ </div>
+ <div class="col-6">
+ <div class="actionName">
+ <div class="custom-control custom-checkbox">
+ <input type="checkbox"
+ class="custom-control-input"
+ id="customControlValidation5"
+ required>
+ <label class="custom-control-label"
+ for="customControlValidation5">config-assign1</label>
+ </div>
+ </div>
+ </div>
+ <div class="col-6">
+ <div class="actionName">
+ <div class="custom-control custom-checkbox">
+ <input type="checkbox"
+ class="custom-control-input"
+ id="customControlValidation5"
+ required>
+ <label class="custom-control-label"
+ for="customControlValidation5">config-assign1</label>
+ </div>
+ </div>
+ </div>
+ <div class="col-6">
+ <div class="actionName">
+ <div class="custom-control custom-checkbox">
+ <input type="checkbox"
+ class="custom-control-input"
+ id="customControlValidation5"
+ required>
+ <label class="custom-control-label"
+ for="customControlValidation5">config-assign1</label>
+ </div>
+ </div>
+ </div>
+ <div class="col-6">
+ <div class="actionName">
+ <div class="custom-control custom-checkbox">
+ <input type="checkbox"
+ class="custom-control-input"
+ id="customControlValidation5"
+ required>
+ <label class="custom-control-label"
+ for="customControlValidation5">config-assign1</label>
+ </div>
+ </div>
+ </div>
+ <div class="col-6">
+ <div class="actionName">
+ <div class="custom-control custom-checkbox">
+ <input type="checkbox"
+ class="custom-control-input"
+ id="customControlValidation5"
+ required>
+ <label class="custom-control-label"
+ for="customControlValidation5">config-assign1</label>
+ </div>
+ </div>
+ </div>
+ <div class="col-6">
+ <div class="actionName">
+ <div class="custom-control custom-checkbox">
+ <input type="checkbox"
+ class="custom-control-input"
+ id="customControlValidation5"
+ required>
+ <label class="custom-control-label"
+ for="customControlValidation5">config-assign1</label>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="row">
+ <div class="col text-center">
+ <p class="selectedActions">0 selected</p>
+ <button type="button" (click)="goToDesignerMode(viewedPackage.id)"
+ class="btn submit">Start</button>
+ </div>
+ </div>
+ </div>
+ </div>
+ <!--Recent Actions Form-->
+ <div class="carousel-item">
+ <button data-target="#carouselExampleIndicators"
+ data-slide-to="0" title="Back" class="btn back"><i
+ class="icon-action-back"></i></button>
+ <h1>Choose Action(s) from Recent Packages</h1>
+ <div class="actionFormWrapper">
+ <div class="row mb-3">
+ <div class="col sort-packages">
+ <label class="actionlabel">Package
+ Name</label>
+ <div class="dropdown">
+ <input class="dropdown-toggle" type="text">
+ <div class="dropdown-text">CDS (v 1.0.0)
+ </div>
+ <ul class="dropdown-content">
+ <li>
+ <a>Test Package (v 1.1.8)</a>
+ </li>
+ <li>
+ <a>Test Package (v 1.1.8)</a>
+ </li>
+ <li>
+ <a>Test Package (v 1.1.8)</a>
+ </li>
+ <li>
+ <a>Test Package (v 1.1.8)</a>
+ </li>
+ </ul>
+ </div>
+ </div>
+ <div class="col">
+ <input type="text"
+ class="form-control searchInput"
+ placeholder="Search">
+ </div>
+ </div>
+ <div class="row actionsListScroll">
+ <div class="col-6">
+ <div class="actionName">
+ <div class="custom-control custom-checkbox">
+ <input type="checkbox"
+ class="custom-control-input"
+ id="customControlValidation1"
+ required>
+ <label class="custom-control-label"
+ for="customControlValidation1">config-assign</label>
+ </div>
+ </div>
+ </div>
+ <div class="col-6">
+ <div class="actionName">
+ <div class="custom-control custom-checkbox">
+ <input type="checkbox"
+ class="custom-control-input"
+ id="customControlValidation2"
+ required>
+ <label class="custom-control-label"
+ for="customControlValidation2">config-assign-test</label>
+ </div>
+ </div>
+ </div>
+ <div class="col-6">
+ <div class="actionName">
+ <div class="custom-control custom-checkbox">
+ <input type="checkbox"
+ class="custom-control-input"
+ id="customControlValidation3"
+ required>
+ <label class="custom-control-label"
+ for="customControlValidation3">config-deploy</label>
+ </div>
+ </div>
+ </div>
+ <div class="col-6">
+ <div class="actionName">
+ <div class="custom-control custom-checkbox">
+ <input type="checkbox"
+ class="custom-control-input"
+ id="customControlValidation4"
+ required>
+ <label class="custom-control-label"
+ for="customControlValidation4">config-modify</label>
+ </div>
+ </div>
+ </div>
+ <div class="col-6">
+ <div class="actionName">
+ <div class="custom-control custom-checkbox">
+ <input type="checkbox"
+ class="custom-control-input"
+ id="customControlValidation5"
+ required>
+ <label class="custom-control-label"
+ for="customControlValidation5">config-assign1</label>
+ </div>
+ </div>
+ </div>
+ <div class="col-6">
+ <div class="actionName">
+ <div class="custom-control custom-checkbox">
+ <input type="checkbox"
+ class="custom-control-input"
+ id="customControlValidation5"
+ required>
+ <label class="custom-control-label"
+ for="customControlValidation5">config-assign1</label>
+ </div>
+ </div>
+ </div>
+ <div class="col-6">
+ <div class="actionName">
+ <div class="custom-control custom-checkbox">
+ <input type="checkbox"
+ class="custom-control-input"
+ id="customControlValidation5"
+ required>
+ <label class="custom-control-label"
+ for="customControlValidation5">config-assign1</label>
+ </div>
+ </div>
+ </div>
+ <div class="col-6">
+ <div class="actionName">
+ <div class="custom-control custom-checkbox">
+ <input type="checkbox"
+ class="custom-control-input"
+ id="customControlValidation5"
+ required>
+ <label class="custom-control-label"
+ for="customControlValidation5">config-assign1</label>
+ </div>
+ </div>
+ </div>
+ <div class="col-6">
+ <div class="actionName">
+ <div class="custom-control custom-checkbox">
+ <input type="checkbox"
+ class="custom-control-input"
+ id="customControlValidation5"
+ required>
+ <label class="custom-control-label"
+ for="customControlValidation5">config-assign1</label>
+ </div>
+ </div>
+ </div>
+ <div class="col-6">
+ <div class="actionName">
+ <div class="custom-control custom-checkbox">
+ <input type="checkbox"
+ class="custom-control-input"
+ id="customControlValidation5"
+ required>
+ <label class="custom-control-label"
+ for="customControlValidation5">config-assign1</label>
+ </div>
+ </div>
+ </div>
+ <div class="col-6">
+ <div class="actionName">
+ <div class="custom-control custom-checkbox">
+ <input type="checkbox"
+ class="custom-control-input"
+ id="customControlValidation5"
+ required>
+ <label class="custom-control-label"
+ for="customControlValidation5">config-assign1</label>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="row">
+ <div class="col text-center">
+ <p class="selectedActions">0 selected</p>
+ <button type="button"
+ class="btn submit">Start</button>
+ </div>
+ </div>
+ </div>
+ </div>
+ <!--Import Actions Form-->
+ <div class="carousel-item">
+ <button data-target="#carouselExampleIndicators"
+ data-slide-to="0" title="Back" class="btn back"><i
+ class="icon-action-back"></i></button>
+ <h1>Import Action(s)</h1>
+ <div class="actionFormWrapper">
+ <div class="row">
+ <div class="col">
+ <ngx-file-drop accept=".json"
+ dropZoneLabel="Drop files here"
+ (onFileDrop)="dropped($event)"
+ (onFileOver)="fileOver($event)"
+ (onFileLeave)="fileLeave($event)">
+ <ng-template ngx-file-drop-content-tmp
+ let-openFileSelector="openFileSelector">
+ <div class="folder-upload">
+ <img
+ src="assets/img/folder-upload.svg" />
+ </div>
+ <div class="folder-upload-text">
+ Drag & Drop file
+ </div>
+ <div class="folder-upload-text">or
+ <button type="button"
+ class="btn btn-sm btn-primary"
+ (click)="openFileSelector()">Browse
+ Files
+ </button>
+ </div>
+ <div class="folder-upload-type">
+ Allowed file
+ type: json</div>
+ </ng-template>
+ </ngx-file-drop>
+ <div class="upload-table">
+ <table class="table">
+ <thead>
+ <tr
+ *ngFor="let item of uploadedFiles; let i=index">
+ <th width="40"><img
+ src="assets/img/icon-file-code.svg" />
+ </th>
+ <th>{{ item.name }}</th>
+ <th width="40"
+ class="text-right">
+ <img
+ src="assets/img/icon-remove-file.svg" />
+ </th>
+ </tr>
+ </thead>
+ </table>
+ </div>
+ </div>
+ </div>
+ <div class="row">
+ <div class="col text-center">
+ <button type="button"
+ class="btn submit mt-4">Import</button>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
<button class="btn btn-sm btn-outline-secondary" (click)="deployCurrentPackage()"><i
class="fa fa-play-circle"></i> Deploy
</button>
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/configuration-dashboard/configuration-dashboard.component.ts b/cds-ui/designer-client/src/app/modules/feature-modules/packages/configuration-dashboard/configuration-dashboard.component.ts
index 6de76f949..0578b10f8 100644
--- a/cds-ui/designer-client/src/app/modules/feature-modules/packages/configuration-dashboard/configuration-dashboard.component.ts
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/configuration-dashboard/configuration-dashboard.component.ts
@@ -206,7 +206,7 @@ export class ConfigurationDashboardComponent implements OnInit {
this.router.navigate(['/packages']);
}
- goToDesignerMode() {
- this.router.navigate(['/packages/designer']);
- }
+ goToDesignerMode(id) {
+ this.router.navigate(['/packages/designer', id]);
+ }
}
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/designer.component.html b/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/designer.component.html
index 6e072b18d..3e3528c00 100644
--- a/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/designer.component.html
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/designer.component.html
@@ -10,7 +10,7 @@
</li>
<i class="fa fa-angle-right ml-2 mr-2"></i>
<li class="breadcrumb-item">
- <a href="#">Package Name</a>
+ <a href="/package/{{viewedPackage.id}}">{{viewedPackage.artifactName}}</a>
<button type="button" class="btn package-info-btn" data-toggle="modal"
data-target="#exampleModalLong">
<i class="icon-info" aria-hidden="true"></i>
@@ -102,7 +102,7 @@
<div class="source-button editBar">
<div class="btn-group viewBtns" role="group">
<button type="button" class="btn btn-secondary topologySource active">Designer</button>
- <button [routerLink]="['/designer/source']" type="button"
+ <button [routerLink]="['/designer/source', viewedPackage.id]" type="button"
class="btn btn-secondary topologyView">Scripting</button>
</div>
</div>
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/designer.component.ts b/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/designer.component.ts
index 5adce7ea0..fa3a99b49 100644
--- a/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/designer.component.ts
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/designer.component.ts
@@ -3,6 +3,8 @@
===================================================================
Copyright (C) 2019 Orange. All rights reserved.
===================================================================
+Modification Copyright (c) 2020 IBM
+===================================================================
Unless otherwise specified, all software contained herein is licensed
under the Apache License, Version 2.0 (the License);
@@ -34,6 +36,9 @@ import { FunctionsStore } from './functions.store';
import { Subject } from 'rxjs';
import { takeUntil } from 'rxjs/operators';
import { distinctUntilChanged } from 'rxjs/operators';
+import { BluePrintDetailModel } from '../model/BluePrint.detail.model';
+import { ActivatedRoute } from '@angular/router';
+import { DesignerService } from './designer.service';
@Component({
@@ -46,6 +51,7 @@ export class DesignerComponent implements OnInit, OnDestroy {
private controllerSideBar: boolean;
private attributesSideBar: boolean;
+ viewedPackage: BluePrintDetailModel = new BluePrintDetailModel();
boardGraph: joint.dia.Graph;
boardPaper: joint.dia.Paper;
@@ -58,7 +64,9 @@ export class DesignerComponent implements OnInit, OnDestroy {
constructor(private designerStore: DesignerStore,
private functionStore: FunctionsStore,
private graphUtil: GraphUtil,
- private graphGenerator: GraphGenerator) {
+ private graphGenerator: GraphGenerator,
+ private route: ActivatedRoute,
+ private designerService: DesignerService) {
this.controllerSideBar = true;
this.attributesSideBar = false;
@@ -88,6 +96,14 @@ export class DesignerComponent implements OnInit, OnDestroy {
this.initializePalette();
this.stencilPaperEventListeners();
+ const id = this.route.snapshot.paramMap.get('id');
+ this.designerService.getPagedPackages(id).subscribe(
+ (bluePrintDetailModels) => {
+ if (bluePrintDetailModels) {
+ this.viewedPackage = bluePrintDetailModels[0];
+ }
+ });
+
/**
* the code to retrieve from server is commented
*/
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/designer.service.ts b/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/designer.service.ts
index aa3a6a668..771c44ba8 100644
--- a/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/designer.service.ts
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/designer.service.ts
@@ -3,6 +3,8 @@
===================================================================
Copyright (C) 2019 Orange. All rights reserved.
===================================================================
+Modification Copyright (c) 2020 IBM
+===================================================================
Unless otherwise specified, all software contained herein is licensed
under the Apache License, Version 2.0 (the License);
@@ -22,8 +24,9 @@ limitations under the License.
import {Injectable} from '@angular/core';
import {Observable} from 'rxjs';
import {ApiService} from '../../../../common/core/services/api.typed.service';
-import {ResourceDictionaryURLs} from '../../../../common/constants/app-constants';
+import {ResourceDictionaryURLs, BlueprintURLs} from '../../../../common/constants/app-constants';
import {ModelType} from './model/ModelType.model';
+import { BluePrintDetailModel } from '../model/BluePrint.detail.model';
@Injectable({
@@ -31,11 +34,20 @@ import {ModelType} from './model/ModelType.model';
})
export class DesignerService {
- constructor(private api: ApiService<ModelType>) {
+ constructor(private api: ApiService<ModelType>,
+ private api2: ApiService<BluePrintDetailModel>) {
}
getFunctions(modelDefinitionType: string): Observable<ModelType[]> {
return this.api.get(ResourceDictionaryURLs.getResourceDictionary + '/' + modelDefinitionType);
}
+ private getBluePrintModel(id: string): Observable<BluePrintDetailModel> {
+ return this.api2.getOne(BlueprintURLs.getOneBlueprint + '/' + id);
+ }
+
+ getPagedPackages(id: string) {
+ return this.getBluePrintModel(id);
+ }
+
}
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/source-view/source-view.component.html b/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/source-view/source-view.component.html
index 2a558517c..05f6eeb5a 100644
--- a/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/source-view/source-view.component.html
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/source-view/source-view.component.html
@@ -8,7 +8,7 @@
<a href="#">CBA Packages</a>
</li>
<li class="breadcrumb-item">
- <a href="#">Package Name</a>
+ <a href="/package/{{viewedPackage.id}}">{{viewedPackage.artifactName}}</a>
</li>
<li class="breadcrumb-item active" aria-current="page">
<p class="mb-0">Topology View</p>
@@ -56,7 +56,7 @@
</header>
<div class="source-button editBar">
<div class="btn-group viewBtns" role="group">
- <button (click)="convertAndOpenInDesingerView()" type="button" class="btn btn-secondary topologySource">Designer</button>
+ <button (click)="convertAndOpenInDesingerView(viewedPackage.id)" type="button" class="btn btn-secondary topologySource">Designer</button>
<button type="button"
class="btn btn-secondary topologyView active">Scripting</button>
</div>
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/source-view/source-view.component.ts b/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/source-view/source-view.component.ts
index 34194e42f..e70d98d04 100644
--- a/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/source-view/source-view.component.ts
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/source-view/source-view.component.ts
@@ -1,8 +1,11 @@
import { Component, OnInit, OnDestroy } from '@angular/core';
import { DesignerStore } from '../designer.store';
import { PackageCreationUtils } from '../../package-creation/package-creation.utils';
-import { RouterLink, Router } from '@angular/router';
+import { RouterLink, Router, ActivatedRoute } from '@angular/router';
import { Subject } from 'rxjs';
+import { BluePrintDetailModel } from '../../model/BluePrint.detail.model';
+import { viewClassName } from '@angular/compiler';
+import { SourceViewService } from './source-view.service';
@Component({
selector: 'app-designer-source-view',
@@ -15,10 +18,13 @@ export class DesignerSourceViewComponent implements OnInit, OnDestroy {
lang = 'json';
private controllerSideBar: boolean;
private ngUnsubscribe = new Subject();
+ viewedPackage: BluePrintDetailModel = new BluePrintDetailModel();
constructor(private store: DesignerStore,
private packageCreationUtils: PackageCreationUtils,
- private router: Router) {
+ private router: Router,
+ private route: ActivatedRoute,
+ private sourceViewService: SourceViewService) {
this.controllerSideBar = true;
}
@@ -29,13 +35,20 @@ export class DesignerSourceViewComponent implements OnInit, OnDestroy {
this.content = this.packageCreationUtils.transformToJson(state.template);
});
+ const id = this.route.snapshot.paramMap.get('id');
+ this.sourceViewService.getPagedPackages(id).subscribe(
+ (bluePrintDetailModels) => {
+ if (bluePrintDetailModels) {
+ this.viewedPackage = bluePrintDetailModels[0];
+ }
+ });
}
- convertAndOpenInDesingerView() {
+ convertAndOpenInDesingerView(id) {
// TODO validate json against scheme
console.log('convertAndOpenInDesingerView ...', this.content);
this.store.saveSourceContent(this.content);
- this.router.navigateByUrl('/packages/designer');
+ this.router.navigate(['/packages/designer', id]);
}
ngOnDestroy() {
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/source-view/source-view.service.ts b/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/source-view/source-view.service.ts
new file mode 100644
index 000000000..758952221
--- /dev/null
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/source-view/source-view.service.ts
@@ -0,0 +1,26 @@
+import {Injectable} from '@angular/core';
+import {Observable} from 'rxjs';
+import { ApiService } from 'src/app/common/core/services/api.typed.service';
+import { BluePrintDetailModel } from '../../model/BluePrint.detail.model';
+import { ModelType } from '../model/ModelType.model';
+import { ResourceDictionaryURLs, BlueprintURLs } from 'src/app/common/constants/app-constants';
+
+
+
+@Injectable({
+ providedIn: 'root'
+})
+export class SourceViewService {
+
+ constructor(private api1: ApiService<BluePrintDetailModel>) {
+ }
+
+
+ private getBluePrintModel(id: string): Observable<BluePrintDetailModel> {
+ return this.api1.getOne(BlueprintURLs.getOneBlueprint + '/' + id);
+ }
+ getPagedPackages(id: string) {
+ return this.getBluePrintModel(id);
+ }
+
+}
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/imports-tab/imports-tab.component.html b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/imports-tab/imports-tab.component.html
index ac02c50e2..d487de3d1 100644
--- a/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/imports-tab/imports-tab.component.html
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/imports-tab/imports-tab.component.html
@@ -36,38 +36,39 @@
<div class="card">
<div class="card-header" [id]="'head-'+mapIndex">
<h5 class="mb-0 d-flex justify-content-between">
- <button class="btn btn-link " data-toggle="collapse"
- aria-expanded="false"
- (click)="changeDivShow(mapIndex)" >
+ <button class="btn btn-link " data-toggle="collapse" aria-expanded="false"
+ (click)="changeDivShow(mapIndex)">
<i class="icon-file-code"></i> {{file.key}}
</button>
-
- <a data-toggle="modal" data-target="#exampleModal" class="accordion-delete"><i
- class="icon-delete-sm"></i></a>
-
- <!-- <a class="accordion-delete" (click)="removeFile(mapIndex)"><i class="icon-delete-sm"></i></a> -->
- <!-- Delete Modal -->
- <div class="modal fade" id="exampleModal" tabindex="-1" role="dialog"
- aria-labelledby="exampleModalLabel" aria-hidden="true">
- <div class="modal-dialog" role="document">
- <div class="modal-content">
- <div class="modal-header">
- <h5 class="modal-title" id="exampleModalLabel">Delete File</h5>
- <button type="button" class="close" data-dismiss="modal" aria-label="Close">
- <span aria-hidden="true">&times;</span>
- </button>
- </div>
- <div class="modal-body">
- <p>Are you sure you want to delete file <span>artifact_types.json</span>?</p>
- </div>
- <div class="modal-footer">
- <button type="button" class="btn btn-secondary"
- data-dismiss="modal">Cancel</button>
- <button type="button" class="btn btn-primary">Delete</button>
+
+ <a data-toggle="modal" (click)="initDelete(file)" data-target="#exampleModal"
+ class="accordion-delete"><i class="icon-delete-sm"></i></a>
+
+ <!-- <a class="accordion-delete" (click)="removeFile(mapIndex)"><i class="icon-delete-sm"></i></a> -->
+ <!-- Delete Modal -->
+ <div class="modal fade" id="exampleModal" tabindex="-1" role="dialog"
+ aria-labelledby="exampleModalLabel" aria-hidden="true">
+ <div class="modal-dialog" role="document">
+ <div class="modal-content">
+ <div class="modal-header">
+ <h5 class="modal-title" id="exampleModalLabel">Delete File</h5>
+ <button type="button" class="close" data-dismiss="modal" aria-label="Close">
+ <span aria-hidden="true">&times;</span>
+ </button>
+ </div>
+ <div class="modal-body">
+ <p>Are you sure you want to delete file
+ <span>{{fileToDelete?.key?.split('/')[1]}}</span>?</p>
+ </div>
+ <div class="modal-footer">
+ <button type="button" class="btn btn-secondary"
+ data-dismiss="modal">Cancel</button>
+ <button type="button" data-dismiss="modal" (click)="removeFile()"
+ class="btn btn-primary">Delete</button>
+ </div>
</div>
</div>
</div>
- </div>
</h5>
</div>
<div [id]="'id-'+mapIndex" class="collapse" [attr.aria-labelledby]="'head-'+mapIndex"
@@ -153,7 +154,8 @@
<button type="button" class="btn btn-sm btn-secondary" data-dismiss="modal"
(click)="resetTheUploadedFiles()">Cancel
</button>
- <button type="button" class="btn btn-sm btn-primary" data-dismiss="modal" (click)="setFilesToStore()">
+ <button type="button" class="btn btn-sm btn-primary" [disabled]="uploadedFiles?.length<=0"
+ data-dismiss="modal" (click)="setFilesToStore()">
Import
</button>
</div>
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/imports-tab/imports-tab.component.ts b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/imports-tab/imports-tab.component.ts
index 35c0918de..9858fd580 100644
--- a/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/imports-tab/imports-tab.component.ts
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/imports-tab/imports-tab.component.ts
@@ -1,7 +1,7 @@
-import {Component, OnInit} from '@angular/core';
-import {FileSystemFileEntry, NgxFileDropEntry} from 'ngx-file-drop';
-import {PackageCreationStore} from '../package-creation.store';
-import {PackageCreationUtils} from '../package-creation.utils';
+import { Component, OnInit } from '@angular/core';
+import { FileSystemFileEntry, NgxFileDropEntry } from 'ngx-file-drop';
+import { PackageCreationStore } from '../package-creation.store';
+import { PackageCreationUtils } from '../package-creation.utils';
@Component({
@@ -14,7 +14,7 @@ export class ImportsTabComponent implements OnInit {
public definitionFiles: Map<string, string> = new Map<string, string>();
public uploadedFiles: FileSystemFileEntry[] = [];
private fileNames: Set<string> = new Set();
-
+ fileToDelete: any = {};
public files: NgxFileDropEntry[] = [];
constructor(private packageCreationStore: PackageCreationStore, private packageCreationUtils: PackageCreationUtils) {
@@ -40,11 +40,21 @@ export class ImportsTabComponent implements OnInit {
}
}
}
-
- removeFile(fileIndex: number) {
- const filename = 'Definitions/' + this.uploadedFiles[fileIndex].name;
+ initDelete(file) {
+ console.log(file);
+ this.fileToDelete = file;
+ }
+ removeFile() {
+ const filename = this.fileToDelete.key;
this.packageCreationStore.removeFileFromDefinition(filename);
- this.uploadedFiles.splice(fileIndex, 1);
+
+ for (let i = 0; i < this.uploadedFiles.length; i++) {
+ console.log(this.uploadedFiles[i]);
+ if (this.uploadedFiles[i].name === filename) {
+ this.uploadedFiles.splice(i, 1);
+ break;
+ }
+ }
}
public fileOver(event) {
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/metadata-tab/metadata-tab.component.html b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/metadata-tab/metadata-tab.component.html
index 6622f6700..50d9eea08 100644
--- a/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/metadata-tab/metadata-tab.component.html
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/metadata-tab/metadata-tab.component.html
@@ -50,7 +50,7 @@
<div class="model-note-container error-message">{{errorMessage}}</div>
</div>
<div class="single-line-model">
- <label class="label-name">Description</label>
+ <label class="label-name">Description <span>*</span></label>
<div class="label-input">
<input type="input" [(ngModel)]="metaDataTab.description" placeholder="Descripe the package">
</div>
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/package-creation.component.html b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/package-creation.component.html
index ee4368711..baf6ea9e3 100644
--- a/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/package-creation.component.html
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/package-creation.component.html
@@ -20,7 +20,7 @@
<div class="container-fluid body-container">
<div class="container">
<div class="creat-action-container">
- <a href="#" class="action-button save" (click)="saveBluePrint()">
+ <a class="action-button save" (click)="saveBluePrint()">
<i class="icon-save-sm" aria-hidden="true"></i>
<span>Save</span>
</a>
@@ -106,4 +106,4 @@
</div>
</div>
</div>
-</div> \ No newline at end of file
+</div>
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/package-creation.store.ts b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/package-creation.store.ts
index 0808223cd..8302697fe 100644
--- a/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/package-creation.store.ts
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/package-creation.store.ts
@@ -84,6 +84,10 @@ export class PackageCreationStore extends Store<CBAPackage> {
this.state.scripts.files.delete(name);
}
+ fileExist(key: string) {
+ return this.state.templates.files.has(key);
+ }
+
removeFileFromDefinition(filename) {
this.state.definitions.imports.delete(filename);
}
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/scripts-tab/scripts-tab.component.html b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/scripts-tab/scripts-tab.component.html
index 79c444061..1ecf2985e 100644
--- a/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/scripts-tab/scripts-tab.component.html
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/scripts-tab/scripts-tab.component.html
@@ -20,12 +20,12 @@
<div class="card">
<div [id]="'head-script-'+mapIndex" class="card-header">
<h5 class="mb-0 d-flex justify-content-between">
- <button (click)="changeDivShow(mapIndex)"
- aria-expanded="false" class="btn btn-link collapsed" data-toggle="collapse">
+ <button (click)="changeDivShow(mapIndex)" aria-expanded="false" class="btn btn-link collapsed"
+ data-toggle="collapse">
<i class="icon-file-code"></i> {{file.key}}
</button>
- <a data-toggle="modal" data-target="#exampleModal" class="accordion-delete"><i
- class="icon-delete-sm"></i></a>
+ <a data-toggle="modal" (click)="initDelete(file)" data-target="#exampleModal"
+ class="accordion-delete"><i class="icon-delete-sm"></i></a>
<!-- <a (click)="removeFile(file.key,mapIndex)" data-toggle="modal" data-target="#exampleModal" class="accordion-delete"><i
class="icon-delete-sm"></i></a> -->
<!-- Delete Modal -->
@@ -40,12 +40,14 @@
</button>
</div>
<div class="modal-body">
- <p>Are you sure you want to delete script file <span>ConfigDeploy.py</span>?</p>
+ <p>Are you sure you want to delete script file
+ <span>{{fileToDelete?.key?.split('/')[2]}}</span>?</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary"
data-dismiss="modal">Cancel</button>
- <button type="button" class="btn btn-primary">Delete</button>
+ <button type="button" (click)="removeFile(fileToDelete?.key,0)"
+ data-dismiss="modal" class="btn btn-primary">Delete</button>
</div>
</div>
</div>
@@ -120,4 +122,4 @@
</div>
</div>
</div>
-</div>
+</div> \ No newline at end of file
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/scripts-tab/scripts-tab.component.ts b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/scripts-tab/scripts-tab.component.ts
index efe28e9a4..a85ccf146 100644
--- a/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/scripts-tab/scripts-tab.component.ts
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/scripts-tab/scripts-tab.component.ts
@@ -3,6 +3,7 @@ import { FileSystemFileEntry, NgxFileDropEntry } from 'ngx-file-drop';
import { PackageCreationStore } from '../package-creation.store';
import 'ace-builds/src-noconflict/ace';
import 'ace-builds/webpack-resolver';
+declare var $: any;
@Component({
selector: 'app-scripts-tab',
@@ -15,6 +16,7 @@ export class ScriptsTabComponent implements OnInit {
public uploadedFiles: FileSystemFileEntry[] = [];
public files: NgxFileDropEntry[] = [];
private fileNames: Set<string> = new Set();
+ fileToDelete: any = {};
constructor(
private packageCreationStore: PackageCreationStore,
@@ -42,7 +44,9 @@ export class ScriptsTabComponent implements OnInit {
}
}
}
-
+ initDelete(file) {
+ this.fileToDelete = file;
+ }
removeFile(filePath: string, FileIndex: number) {
const filename = filePath.split('/')[2] || '';
// const filename = 'Scripts/' + this.getFileType(this.uploadedFiles[fileIndex].name) + '/' + this.uploadedFiles[fileIndex].name;
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/template-mapping/shared-service.ts b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/template-mapping/shared-service.ts
new file mode 100644
index 000000000..f2b73016c
--- /dev/null
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/template-mapping/shared-service.ts
@@ -0,0 +1,25 @@
+import { Injectable } from '@angular/core';
+
+import { Observable, of, BehaviorSubject } from 'rxjs';
+
+@Injectable({
+ providedIn: 'root'
+})
+export class SharedService {
+
+ // based on edit Mode, edit=false
+ mode = new BehaviorSubject(false);
+ constructor() {
+ }
+
+ isEdit(): Observable<boolean> {
+ return this.mode.asObservable();
+ }
+ enableEdit() {
+ this.mode.next(true);
+ }
+ disableEdit() {
+ this.mode.next(false);
+ }
+
+}
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/template-mapping/templ-mapp-creation/templ-mapp-creation.component.css b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/template-mapping/templ-mapp-creation/templ-mapp-creation.component.css
index e69de29bb..3a0d9461c 100644
--- a/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/template-mapping/templ-mapp-creation/templ-mapp-creation.component.css
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/template-mapping/templ-mapp-creation/templ-mapp-creation.component.css
@@ -0,0 +1,9 @@
+.accordian-title {
+ color: #a09e9e;
+ font-size: .9em;
+}
+
+.mapping-source-load {
+ background-color: white;
+ border: 0
+} \ No newline at end of file
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/template-mapping/templ-mapp-creation/templ-mapp-creation.component.html b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/template-mapping/templ-mapp-creation/templ-mapp-creation.component.html
index 16c3101f2..164f0ac73 100644
--- a/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/template-mapping/templ-mapp-creation/templ-mapp-creation.component.html
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/template-mapping/templ-mapp-creation/templ-mapp-creation.component.html
@@ -1,4 +1,13 @@
-<h6 class="create-title">CREATE</h6>
+
+<div class="row template-mapping-action">
+ <div class="col">
+ <h6 class="create-title">Create Template</h6>
+ </div>
+ <div class="col text-right">
+ <button (click)="cancel()" [disabled]="fileName?.length <=0" class="btn btn-outline-secondary">Cancel</button>
+ <button (click)="saveToStore()" [disabled]="fileName?.length <=0" class="btn btn-primary">Finish</button>
+ </div>
+</div>
<div class="card creat-card">
<div class="single-line-model">
<label class="label-name">Name
@@ -6,19 +15,20 @@
</label>
<div class="label-input">
- <input type="input" [(ngModel)]="fileName" placeholder="Template name">
+ <input type="input" [disabled]="edit" [(ngModel)]="fileName" placeholder="Template name" name="templateName"
+ autofocus [autofocus]="true">
</div>
</div>
</div>
<div class="template-mapping-accordion">
- <div id="accordion">
+ <div class="accordion" id="accordion">
<div class="card">
<div class="card-header" id="headingOne">
<h5 class="mb-0 d-flex justify-content-between">
<button class="btn btn-link" data-toggle="collapse" data-target="#collapseOne" aria-expanded="true"
aria-controls="collapseOne">
- 1. Create Template
+ 1. Template <span class="accordian-title">{{currentTemplate?.fileName?.split('/')[1]}}</span>
</button>
</h5>
@@ -70,7 +80,8 @@
<h5 class="mb-0">
<button class="btn btn-link collapsed" data-toggle="collapse" data-target="#collapseTwo"
aria-expanded="false" aria-controls="collapseTwo">
- 2. Manage Mapping
+ 2. Manage Mapping <span
+ class="accordian-title">{{currentMapping?.fileName?.split('/')[1]}}</span>
</button>
</h5>
</div>
@@ -78,11 +89,13 @@
<div class="card-body">
<p class="text-center"><b>Select a source to load config parameters</b></p>
<div class="text-center">
- <a href="#" (click)="getMappingTableFromTemplate($event)" class="mapping-source-load">
+ <button [disabled]="!(variables?.length>0 && templateFileContent?.trim()?.length > 0)"
+ (click)="getMappingTableFromTemplate($event)" class="mapping-source-load" [ngClass]="variables?.length>0 && templateFileContent?.trim()?.length > 0
+ ?'hover-enable':'hover-disable'">
<i class="icon-use-attributes"></i>
<br />
<span>Use Current Template Instance</span>
- </a>
+ </button>
<a href="#" (click)="allowedExt=['.csv']" data-toggle="modal" data-target="#templateModal"
class="mapping-source-load">
<i class="icon-upload-attributes"></i>
@@ -119,8 +132,10 @@
<tbody>
<tr *ngFor="let dict of resourceDictionaryRes">
<td>
- <img *ngIf="dict.definition?.property?.required" src="/assets/img/icon-required-yes.svg">
- <img *ngIf="!dict.definition?.property?.required" src="/assets/img/icon-required-no.svg">
+ <img *ngIf="dict.definition?.property?.required"
+ src="/assets/img/icon-required-yes.svg">
+ <img *ngIf="!dict.definition?.property?.required"
+ src="/assets/img/icon-required-no.svg">
</td>
<td>{{ dict.name }}</td>
<td>{{ dict.name }}</td>
@@ -166,8 +181,10 @@
<tbody>
<tr *ngFor="let dict of mappingRes">
<td>
- <img *ngIf="dict.definition?.property?.required" src="/assets/img/icon-required-yes.svg">
- <img *ngIf="!dict.definition?.property?.required" src="/assets/img/icon-required-no.svg">
+ <img *ngIf="dict.definition?.property?.required"
+ src="/assets/img/icon-required-yes.svg">
+ <img *ngIf="!dict.definition?.property?.required"
+ src="/assets/img/icon-required-no.svg">
</td>
<td>{{ dict['name'] }}</td>
<td>{{ dict['name'] }}</td>
@@ -193,10 +210,7 @@
</div>
- <div class="template-mapping-action">
- <button class="btn btn-outline-secondary">Cancel</button>
- <button (click)="saveToStore()" class="btn btn-primary">Submit</button>
- </div>
+
</div>
</div>
@@ -212,8 +226,8 @@
</button>
</div>
<div class="modal-body">
- <ngx-file-drop [multiple]="false" [accept]="allowedExt" dropZoneLabel="Drop files here" (onFileDrop)="dropped($event)"
- (onFileOver)="fileOver($event)" (onFileLeave)="fileLeave($event)">
+ <ngx-file-drop [multiple]="false" [accept]="allowedExt" dropZoneLabel="Drop files here"
+ (onFileDrop)="dropped($event)" (onFileOver)="fileOver($event)" (onFileLeave)="fileLeave($event)">
<ng-template ngx-file-drop-content-tmp let-openFileSelector="openFileSelector">
<div class="folder-upload">
<img src="assets/img/folder-upload.svg" />
@@ -248,8 +262,9 @@
<button type="button" class="btn btn-sm btn-secondary" data-dismiss="modal"
(click)="resetTheUploadedFiles()">Cancel
</button>
- <button type="button" class="btn btn-sm btn-primary" data-dismiss="modal"
- (click)="uploadFile();openListView()">
+
+ <button (click)="uploadFile();openListView()" class="btn btn-sm btn-primary" data-dismiss="modal"
+ type="button">
Import
</button>
</div>
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/template-mapping/templ-mapp-creation/templ-mapp-creation.component.ts b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/template-mapping/templ-mapp-creation/templ-mapp-creation.component.ts
index 628d963ce..5129b38d9 100644
--- a/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/template-mapping/templ-mapp-creation/templ-mapp-creation.component.ts
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/template-mapping/templ-mapp-creation/templ-mapp-creation.component.ts
@@ -1,4 +1,4 @@
-import { Component, EventEmitter, OnDestroy, OnInit, Output, ViewChild } from '@angular/core';
+import { Component, EventEmitter, OnDestroy, OnInit, Output, ViewChild, AfterViewInit, ElementRef } from '@angular/core';
import { FileSystemFileEntry, NgxFileDropEntry } from 'ngx-file-drop';
import { PackageCreationStore } from '../../package-creation.store';
import { TemplateInfo, TemplateStore } from '../../template.store';
@@ -7,7 +7,10 @@ import { ResourceDictionary } from '../../mapping-models/ResourceDictionary.mode
import { DataTableDirective } from 'angular-datatables';
import { Mapping, MappingAdapter } from '../../mapping-models/mappingAdapter.model';
import { PackageCreationUtils } from '../../package-creation.utils';
-import { JsonConvert } from 'json2typescript';
+import { JsonConvert, Any } from 'json2typescript';
+import { ToastrService } from 'ngx-toastr';
+import { Router, ActivatedRoute } from '@angular/router';
+import { SharedService } from '../shared-service';
@Component({
selector: 'app-templ-mapp-creation',
@@ -16,14 +19,14 @@ import { JsonConvert } from 'json2typescript';
})
export class TemplMappCreationComponent implements OnInit, OnDestroy {
@Output() showListViewParent = new EventEmitter<any>();
-
+ @Output() openList = new EventEmitter<any>();
public uploadedFiles: FileSystemFileEntry[] = [];
private fileNames: Set<string> = new Set();
private jsonConvert = new JsonConvert();
public files: NgxFileDropEntry[] = [];
fileName: any;
templateInfo = new TemplateInfo();
- private variables: string[] = [];
+ variables: string[] = [];
dtOptions: DataTables.Settings = {};
// We use this trigger because fetching the list of persons can be quite long,
// thus we ensure the data is fetched before rendering
@@ -40,35 +43,74 @@ export class TemplMappCreationComponent implements OnInit, OnDestroy {
dependancies = new Map<string, Array<string>>();
dependanciesSource = new Map<string, string>();
mappingRes = [];
-
-
+ currentTemplate: any;
+ currentMapping: any;
+ edit = false;
constructor(
private packageCreationStore: PackageCreationStore,
private templateStore: TemplateStore,
- private packageCreationUtils: PackageCreationUtils
+ private packageCreationUtils: PackageCreationUtils,
+ private toastr: ToastrService,
+ private router: ActivatedRoute,
+ private sharedService: SharedService
) {
}
ngOnInit() {
+ if (this.router.snapshot.paramMap.has('id')) {
+ console.log('URL contains Id');
+ this.sharedService.enableEdit();
+ }
+
this.templateStore.state$.subscribe(templateInfo => {
- console.log('----------');
+ // init Template&mapping vars
+ console.log('Oninit');
console.log(templateInfo);
this.templateInfo = templateInfo;
this.fileName = templateInfo.fileName.split('/')[1];
- if (templateInfo.type === 'mapping') {
+ if (this.fileName) {
+ this.fileName = this.fileName.split('-')[0];
+ }
+ if (templateInfo.type === 'mapping' || templateInfo.type.includes('mapping')) {
this.mappingRes = templateInfo.mapping;
+ this.currentMapping = Object.assign({}, templateInfo);
this.resourceDictionaryRes = [];
this.resTableDtTrigger.next();
} else {
+ this.mappingRes = [];
+ this.currentMapping = Any;
+ }
+ this.templateFileContent = templateInfo.fileContent;
+ this.currentTemplate = Object.assign({}, templateInfo);
+
+ if (templateInfo.type === 'template' || templateInfo.type.includes('template')) {
+ this.currentTemplate.fileName = 'Templates/' + this.fileName + '-template.vtl';
+ } else {
+ this.currentTemplate = Any;
+ }
+
+ });
+
+ this.sharedService.isEdit().subscribe(res => {
+ console.log('------------------------');
+ console.log(res);
+ this.edit = res;
- this.templateFileContent = templateInfo.fileContent;
+ if (!this.edit) {
+ console.log('remove ----');
+ this.currentMapping = {};
+ this.currentTemplate = {};
+ this.fileName = '';
+ this.templateFileContent = '';
+ this.resourceDictionaryRes = [];
+ this.mappingRes = [];
}
});
this.dtOptions = {
pagingType: 'full_numbers',
- pageLength: 10,
+ pageLength: 25,
destroy: true,
retrieve: true,
};
@@ -202,7 +244,12 @@ export class TemplMappCreationComponent implements OnInit, OnDestroy {
this.showListViewParent.emit('tell parent to open create views');
}
+ closeCreationForm() {
+ this.openList.emit('close create form and open list');
+ }
+
getMappingTableFromTemplate(e) {
+ console.log('-' + this.templateFileContent + '-');
this.resourceDictionaryRes = [];
if (e) {
e.preventDefault();
@@ -210,10 +257,17 @@ export class TemplMappCreationComponent implements OnInit, OnDestroy {
if (this.variables && this.variables.length > 0) {
console.log('base');
this.packageCreationStore.getTemplateAndMapping(this.variables).subscribe(res => {
+ let message = 'Attributes are Fetched';
this.mappingRes = [];
this.resourceDictionaryRes = res;
console.log(this.resourceDictionaryRes);
this.rerender();
+ if (this.resourceDictionaryRes && this.resourceDictionaryRes.length <= 0) {
+ message = 'No values for those attributes';
+ }
+ this.toastr.success(message, 'Success');
+ }, err => {
+ this.toastr.error('Error');
});
}
}
@@ -224,28 +278,50 @@ export class TemplMappCreationComponent implements OnInit, OnDestroy {
}
return map.key;
}
+ cancel() {
+ this.fileName = '';
+ this.templateFileContent = '';
+ this.resourceDictionaryRes = [];
+ this.mappingRes = [];
+ this.currentMapping = {};
+ this.currentTemplate = {};
+ this.closeCreationForm();
+ }
saveToStore() {
- console.log(this.dependancies);
- console.log(this.dependanciesSource);
if (this.fileName) {
- // Save Mapping to Store
- if (this.resourceDictionaryRes && this.resourceDictionaryRes.length > 0) {
- const mapArray = this.convertDictionaryToMap(this.resourceDictionaryRes);
- this.packageCreationStore.addMapping('Templates/' + this.fileName + '-mapping.json',
- this.packageCreationUtils.transformToJson(this.jsonConvert.serialize(mapArray)));
- this.resourceDictionaryRes = [];
- }
- // Save Template to store
- if (this.templateFileContent) {
- this.packageCreationStore.addTemplate('Templates/' + this.fileName + '-template' + this.getFileExtension(),
- this.templateFileContent);
- this.templateFileContent = '';
+ // check file duplication
+ console.log('----------- mode ' + this.edit);
+ if (
+ (!(this.packageCreationStore.fileExist('Templates/' + this.fileName + '-mapping.json')
+ || this.packageCreationStore.fileExist('Templates/' + this.fileName + '-template' + this.getFileExtension())))
+ || this.edit
+ ) {
+ // Save Mapping to Store
+ if (this.resourceDictionaryRes && this.resourceDictionaryRes.length > 0) {
+ const mapArray = this.convertDictionaryToMap(this.resourceDictionaryRes);
+ this.packageCreationStore.addMapping('Templates/' + this.fileName + '-mapping.json',
+ this.packageCreationUtils.transformToJson(this.jsonConvert.serialize(mapArray)));
+ this.resourceDictionaryRes = [];
+ }
+ // Save Template to store
+ if (this.templateFileContent) {
+ this.packageCreationStore.addTemplate('Templates/' + this.fileName + '-template' + this.getFileExtension(),
+ this.templateFileContent);
+ this.templateFileContent = '';
+ }
+ this.fileName = '';
+ this.toastr.success('File is created', 'success');
+ this.closeCreationForm();
+ } else {
+ console.log('this file already exist');
+ this.toastr.error('File name already exist', 'Error');
}
} else {
-
+ this.toastr.error('Add the file name', 'Error');
}
}
+
selectSource(dict, e) {
const source = e.target.value;
let keyDepend = null;
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/template-mapping/templ-mapp-listing/templ-mapp-listing.component.html b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/template-mapping/templ-mapp-listing/templ-mapp-listing.component.html
index f5e683f28..6ae5c1122 100644
--- a/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/template-mapping/templ-mapp-listing/templ-mapp-listing.component.html
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/template-mapping/templ-mapp-listing/templ-mapp-listing.component.html
@@ -1,10 +1,10 @@
-<a *ngIf="isCreate" (click)="openCreationView()" class="create-template-mapping-button">
+<a (click)="openCreationView()" class="create-template-mapping-button">
<i class="fa fa-plus"></i> <span>Create</span>
</a>
-<div class="template-mapping-accordion">
- <div id="accordion">
+<div class="template-mapping-accordion" [hidden]="templateAndMappingMap?.size <= 0">
+ <div class="accordion" id="listAccordion">
<div class="card">
<div class="card-header" id="headingThree">
<h5 class="mb-0 d-flex justify-content-between">
@@ -16,15 +16,20 @@
</h5>
</div>
- <div id="collapseThree" class="collapse show" aria-labelledby="headingThree" data-parent="#accordion">
+ <div id="collapseThree" class="collapse show" aria-labelledby="headingThree" data-parent="#listAccordion">
<div class="card-body max-height-list">
<div class="row">
<!-- <div class="col-4" style="color:white" *ngFor="let file of templates.files | keyvalue; let mapIndex = index">-->
<div class="col-4" *ngFor="let file of getKeys(templateAndMappingMap)">
- <a (click)="setSourceCodeEditor(file)" class="template-mapping-list active">{{file}}
+ <a (click)="setSourceCodeEditor(file)" class="template-mapping-list"
+ [ngClass]="{'active':currentFile == file}">{{file}}
<span *ngIf="getValue(file).isMapping">Mapping</span>
<span *ngIf="getValue(file).isTemplate">Template</span>
+ <button type="button" class="deleteTemplate" title="Delete Template">
+ <i class="icon-delete-sm"></i>
+ </button>
</a>
+
</div>
</div>
</div>
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/template-mapping/templ-mapp-listing/templ-mapp-listing.component.ts b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/template-mapping/templ-mapp-listing/templ-mapp-listing.component.ts
index 372fbca03..338c8f7cd 100644
--- a/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/template-mapping/templ-mapp-listing/templ-mapp-listing.component.ts
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/template-mapping/templ-mapp-listing/templ-mapp-listing.component.ts
@@ -4,6 +4,7 @@ import { Mapping, Template } from '../../mapping-models/CBAPacakge.model';
import { TemplateInfo, TemplateStore } from '../../template.store';
import { TemplateAndMapping } from '../TemplateAndMapping';
import { ActivatedRoute } from '@angular/router';
+import { SharedService } from '../shared-service';
@Component({
@@ -13,21 +14,29 @@ import { ActivatedRoute } from '@angular/router';
})
export class TemplMappListingComponent implements OnInit {
@Output() showCreationViewParentNotification = new EventEmitter<any>();
+ @Output() showFullView = new EventEmitter<any>();
private templateAndMappingMap = new Map<string, TemplateAndMapping>();
private templates: Template;
private mapping: Mapping;
isCreate = true;
+ currentFile: string;
+ edit = false;
constructor(
private packageCreationStore: PackageCreationStore,
private templateStore: TemplateStore,
- private route: ActivatedRoute
+ private route: ActivatedRoute,
+ private sharedService: SharedService
) {
}
ngOnInit() {
if (this.route.snapshot.paramMap.has('id')) {
this.isCreate = false;
+ this.sharedService.isEdit().subscribe(res => {
+ this.edit = res;
+ });
+
}
this.packageCreationStore.state$.subscribe(cba => {
if (cba.templates) {
@@ -69,32 +78,40 @@ export class TemplMappListingComponent implements OnInit {
openCreationView() {
this.showCreationViewParentNotification.emit('tell parent to open create views');
+ console.log('disable edit mode');
+ this.sharedService.disableEdit();
+
+ }
+ FullView() {
+ this.showFullView.emit('show full view');
}
setSourceCodeEditor(key: string) {
+ this.currentFile = key;
const templateKey = 'Templates/' + key + '-template.vtl';
this.packageCreationStore.state$.subscribe(cba => {
console.log('cba ------');
console.log(cba);
console.log(key);
console.log(this.templateAndMappingMap);
+ const templateInfo = new TemplateInfo();
if (cba.templates && cba.templates.files.has(templateKey)) {
const fileContent = cba.templates.getValue(templateKey.trim());
console.log(fileContent);
- const templateInfo = new TemplateInfo();
templateInfo.fileContent = fileContent;
templateInfo.fileName = templateKey;
- this.templateStore.changeTemplateInfo(templateInfo);
+ templateInfo.type = 'template';
}
const mappingKey = 'Templates/' + key + '-mapping.json';
if (cba.mapping && cba.mapping.files.has(mappingKey)) {
const obj = JSON.parse(cba.mapping.getValue(mappingKey));
- const templateInfo = new TemplateInfo();
templateInfo.mapping = obj;
templateInfo.fileName = mappingKey;
- templateInfo.type = 'mapping';
- this.templateStore.changeTemplateInfo(templateInfo);
+ templateInfo.type += 'mapping';
}
+ this.templateStore.changeTemplateInfo(templateInfo);
+ this.FullView();
+ this.sharedService.enableEdit();
});
}
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/template-mapping/template-mapping.component.html b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/template-mapping/template-mapping.component.html
index f8cfe7a6a..80df7c637 100644
--- a/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/template-mapping/template-mapping.component.html
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/template-mapping/template-mapping.component.html
@@ -1,9 +1,10 @@
<div *ngIf="!listView">
- <app-templ-mapp-listing
- (showCreationViewParentNotification)="openCreationView($event)">
+ <app-templ-mapp-listing (showCreationViewParentNotification)="openCreationView($event)"
+ (showFullView)="openListView($event)">
</app-templ-mapp-listing>
</div>
-<div *ngIf="!creationView">
- <app-templ-mapp-creation (showListViewParent)="openListView($event)"></app-templ-mapp-creation>
-</div>
+<div [hidden]="creationView">
+ <app-templ-mapp-creation (showListViewParent)="openListView($event)" (openList)="closeCreationView()">
+ </app-templ-mapp-creation>
+</div> \ No newline at end of file
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/template-mapping/template-mapping.component.ts b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/template-mapping/template-mapping.component.ts
index 106765834..d2e25ef6f 100644
--- a/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/template-mapping/template-mapping.component.ts
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/template-mapping/template-mapping.component.ts
@@ -8,8 +8,8 @@ import { PackageCreationStore } from '../package-creation.store';
styleUrls: ['./template-mapping.component.css']
})
export class TemplateMappingComponent implements OnInit {
- creationView = true;
- listView = false;
+ creationView = false;
+ listView = true;
constructor(private route: ActivatedRoute, private pakcageStore: PackageCreationStore) {
}
@@ -17,7 +17,7 @@ export class TemplateMappingComponent implements OnInit {
ngOnInit() {
if (this.route.snapshot.paramMap.has('id')) {
console.log('Edit mode');
- this.creationView = false;
+ this.creationView = true;
this.listView = false;
} else {
console.log('Create mode');
@@ -34,4 +34,9 @@ export class TemplateMappingComponent implements OnInit {
this.creationView = false;
}
+ closeCreationView() {
+ this.creationView = true;
+ this.listView = false;
+ }
+
}
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/packages-api.service.ts b/cds-ui/designer-client/src/app/modules/feature-modules/packages/packages-api.service.ts
index 2332d8e53..8275f8c6c 100644
--- a/cds-ui/designer-client/src/app/modules/feature-modules/packages/packages-api.service.ts
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/packages-api.service.ts
@@ -37,10 +37,12 @@ export class PackagesApiService {
}
getPagedPackages(pageNumber: number, pageSize: number, sortBy: string): Observable<BluePrintPage[]> {
+ const sortType = sortBy.includes('DATE') ? 'DESC' : 'ASC';
return this.api.get(BlueprintURLs.getPagedBlueprints, {
offset: pageNumber,
limit: pageSize,
- sort: sortBy
+ sort: sortBy,
+ sortType
});
}
@@ -56,11 +58,12 @@ export class PackagesApiService {
}
getPagedPackagesByKeyWord(keyWord: string, pageNumber: number, pageSize: number, sortBy: string) {
-
+ const sortType = sortBy.includes('DATE') ? 'DESC' : 'ASC';
return this.api.get(BlueprintURLs.getMetaDatePageable + '/' + keyWord, {
offset: pageNumber,
limit: pageSize,
- sort: sortBy
+ sort: sortBy,
+ sortType
});
}
}
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/packages-dashboard/filter-by-tags/filter-by-tags.component.html b/cds-ui/designer-client/src/app/modules/feature-modules/packages/packages-dashboard/filter-by-tags/filter-by-tags.component.html
index 07c192d2c..c65d08e77 100644
--- a/cds-ui/designer-client/src/app/modules/feature-modules/packages/packages-dashboard/filter-by-tags/filter-by-tags.component.html
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/packages-dashboard/filter-by-tags/filter-by-tags.component.html
@@ -1,6 +1,6 @@
<div class="dropdown packagesFilter w-100">
<input class="dropdown-toggle" type="text">
- <div class="dropdown-text">Filter By Tags {{checkBoxTages.substr(0,checkBoxTages.length-1)}}</div>
+ <div class="dropdown-text">Filter By Tags <span class="fillteredTags">{{checkBoxTages.substr(0,checkBoxTages.length-1)}}</span></div>
<ul class="dropdown-content w-100">
<li>
<div class="form-group">
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 9db3ce110..9c789941d 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
@@ -3,7 +3,7 @@
<!--Add Package Card-->
<div class="card addPaackage-card">
<div class="card-body text-center">
- <img src="/assets/img/icon-addPackage.svg" width="40%">
+ <img src="/assets/img/icon-addPackage.svg" width="30%">
</div>
<div class="card-footer row">
<div class="col text-center">
@@ -12,7 +12,7 @@
Package
</a>
<br />
- <a href="#" role="button" aria-pressed="true" class="btn-import-package float mb-3"><i
+ <a href="#" role="button" aria-pressed="true" class="btn-import-package float"><i
class="icon-import-blue" aria-hidden="true"></i>Import Package
</a>
</div>
@@ -30,7 +30,7 @@
<!-- <img class="icon-deployed" src="/assets/img/icon-deploy.svg"> -->
<p class="packageName" tooltip="{{bluePrint.artifactName}}" placement="bottom">
{{bluePrint.artifactName}}</p>
- <span class="package-version">{{bluePrint.artifactVersion}}</span>
+ <span class="package-version">version {{bluePrint.artifactVersion}}</span>
</a>
</div>
@@ -107,15 +107,16 @@
</div>
<div class="card-footer">
<div class="row">
+
+ <div class="col">
+ <button type="button" (click)="view(bluePrint.id)" class="btn btn-card-config"><i
+ class="icon-btn-card-config" aria-hidden="true"></i>Configuration</button>
+ </div>
<div class="col">
<button type="button" class="btn btn-card-topology"><i class="icon-btn-card-topology"
aria-hidden="true"></i>Designer Mode
</button>
</div>
- <div class="col">
- <button type="button" (click)="view(bluePrint.id)" class="btn btn-card-config"><i
- class="icon-btn-card-config" aria-hidden="true"></i>Configuration</button>
- </div>
</div>
</div>
</div>
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/packages-dashboard/package-pagination/package-pagination.component.ts b/cds-ui/designer-client/src/app/modules/feature-modules/packages/packages-dashboard/package-pagination/package-pagination.component.ts
index 49f91316b..c242b7e72 100644
--- a/cds-ui/designer-client/src/app/modules/feature-modules/packages/packages-dashboard/package-pagination/package-pagination.component.ts
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/packages-dashboard/package-pagination/package-pagination.component.ts
@@ -1,6 +1,5 @@
-import {Component, OnInit, ChangeDetectionStrategy} from '@angular/core';
+import {Component, OnInit} from '@angular/core';
import {PackagesStore} from '../../packages.store';
-import {map} from 'rxjs/operators';
@Component({
selector: 'app-package-pagination',
@@ -18,7 +17,7 @@ export class PackagePaginationComponent implements OnInit {
this.packagesStore.state$
.subscribe(state => {
- this.pageNumber = state.currentPage;
+ this.pageNumber = state.currentPage + 1;
this.totalCount = state.totalPackages;
});
}
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/packages.routing.module.ts b/cds-ui/designer-client/src/app/modules/feature-modules/packages/packages.routing.module.ts
index ad06cf15f..f357bc167 100644
--- a/cds-ui/designer-client/src/app/modules/feature-modules/packages/packages.routing.module.ts
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/packages.routing.module.ts
@@ -12,10 +12,10 @@ const routes: Routes = [
path: '',
component: PackagesDashboardComponent
},
- {path: 'designer', component: DesignerComponent},
- { path: 'designer/source', component: DesignerSourceViewComponent },
+ {path: 'designer/:id', component: DesignerComponent},
+ {path: 'designer/source/:id', component: DesignerSourceViewComponent},
{path: 'package/:id', component: ConfigurationDashboardComponent},
- {path: 'createPackage', component: PackageCreationComponent},
+ {path: 'createPackage', component: PackageCreationComponent}
];
@NgModule({
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/model/definition.model.ts b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/model/definition.model.ts
index 96d188a54..7911c028c 100644
--- a/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/model/definition.model.ts
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/model/definition.model.ts
@@ -21,10 +21,6 @@
import { Sources } from './sources.model';
export class Definition {
- tag: string;
- name: string;
- property: string;
- updatedBy: string;
sources: Sources[];
}
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/model/metaData.model.ts b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/model/metaData.model.ts
index e4b9be75f..609b066e2 100644
--- a/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/model/metaData.model.ts
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/model/metaData.model.ts
@@ -26,4 +26,7 @@ export class MetaData {
public entrySchema: string;
public updatedBy: string;
public createdDate: string;
+ public libraryInstance: string;
+ public required: string;
+ public derivedFrom: string;
}
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/model/resource-dictionary.model.ts b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/model/resource-dictionary.model.ts
new file mode 100644
index 000000000..85686551e
--- /dev/null
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/model/resource-dictionary.model.ts
@@ -0,0 +1,26 @@
+/*
+* ============LICENSE_START=======================================================
+* ONAP : CDS
+* ================================================================================
+* Copyright (C) 2020 TechMahindra
+*=================================================================================
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+* ============LICENSE_END=========================================================
+*/
+import { MetaData } from './metaData.model';
+import { Definition } from './definition.model';
+
+export class ResourceDictionary {
+ public metaData: MetaData;
+ public definition: Definition;
+}
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/model/sources.model.ts b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/model/sources.model.ts
index 4074e5138..35d3f77c3 100644
--- a/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/model/sources.model.ts
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/model/sources.model.ts
@@ -17,8 +17,6 @@
* limitations under the License.
* ============LICENSE_END=========================================================
*/
-
export class Sources {
sources: [];
-
}
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/dictionary-creation.service.spec.ts b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/dictionary-creation.service.spec.ts
new file mode 100644
index 000000000..896c7caf0
--- /dev/null
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/dictionary-creation.service.spec.ts
@@ -0,0 +1,31 @@
+/*
+* ============LICENSE_START=======================================================
+* ONAP : CDS
+* ================================================================================
+* Copyright (C) 2020 TechMahindra
+*=================================================================================
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+* ============LICENSE_END=========================================================
+*/
+import { TestBed } from '@angular/core/testing';
+
+import { DictionaryCreationService } from './dictionary-creation.service';
+
+describe('DictionaryCreationService', () => {
+ beforeEach(() => TestBed.configureTestingModule({}));
+
+ it('should be created', () => {
+ const service: DictionaryCreationService = TestBed.get(DictionaryCreationService);
+ expect(service).toBeTruthy();
+ });
+});
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/dictionary-creation.service.ts b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/dictionary-creation.service.ts
new file mode 100644
index 000000000..df90e6cd1
--- /dev/null
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/dictionary-creation.service.ts
@@ -0,0 +1,37 @@
+/*
+* ============LICENSE_START=======================================================
+* ONAP : CDS
+* ================================================================================
+* Copyright (C) 2020 TechMahindra
+*=================================================================================
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+* ============LICENSE_END=========================================================
+*/
+import { Injectable } from '@angular/core';
+import { ResourceDictionaryURLs } from 'src/app/common/constants/app-constants';
+import { Observable } from 'rxjs';
+import { Sources } from '../model/sources.model';
+import { ApiService } from 'src/app/common/core/services/api.service';
+
+@Injectable({
+ providedIn: 'root'
+})
+export class DictionaryCreationService {
+
+ constructor(private api: ApiService) { }
+
+ getSources() {
+ return this.api.get(ResourceDictionaryURLs.getSources);
+}
+
+}
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/dictionary-creation.store.ts b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/dictionary-creation.store.ts
new file mode 100644
index 000000000..20cec7448
--- /dev/null
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/dictionary-creation.store.ts
@@ -0,0 +1,53 @@
+/*
+* ============LICENSE_START=======================================================
+* ONAP : CDS
+* ================================================================================
+* Copyright (C) 2020 TechMahindra
+*=================================================================================
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+* ============LICENSE_END=========================================================
+*/
+import { Injectable } from '@angular/core';
+import { Store } from 'src/app/common/core/stores/Store';
+import { ResourceDictionary } from '../model/resource-dictionary.model';
+import { DictionaryCreationService } from './dictionary-creation.service';
+import { MetaData } from '../model/metaData.model';
+import { Sources } from '../model/sources.model';
+import { SourcesStore } from './sources-template/sources.store';
+
+@Injectable({
+ providedIn: 'root'
+})
+export class DictionaryCreationStore extends Store<ResourceDictionary> {
+ constructor(private dictionaryCreationService: DictionaryCreationService, private sourcesStore: SourcesStore) {
+ super(new ResourceDictionary());
+ }
+
+ changeMetaData(metaDataObject: MetaData) {
+ console.log(metaDataObject);
+ this.setState({
+ ...this.state,
+ metaData: metaDataObject
+ });
+ }
+
+ getSources() {
+ this.sourcesStore.state$.subscribe(data => {
+ console.log(data);
+ });
+ }
+
+ SaveResourceDictionary(resourceDictionary: ResourceDictionary) {
+ console.log(this.setState);
+ }
+}
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/dictionary-editor/dictionary-editor.component.css b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/dictionary-editor/dictionary-editor.component.css
new file mode 100644
index 000000000..f263c0086
--- /dev/null
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/dictionary-editor/dictionary-editor.component.css
@@ -0,0 +1,19 @@
+/*
+* ============LICENSE_START=======================================================
+* ONAP : CDS
+* ================================================================================
+* Copyright (C) 2020 TechMahindra
+*=================================================================================
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+* ============LICENSE_END=========================================================
+*/ \ No newline at end of file
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/dictionary-editor/dictionary-editor.component.html b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/dictionary-editor/dictionary-editor.component.html
new file mode 100644
index 000000000..93d7df7d1
--- /dev/null
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/dictionary-editor/dictionary-editor.component.html
@@ -0,0 +1,22 @@
+<!--/*
+* ============LICENSE_START=======================================================
+* ONAP : CDS
+* ================================================================================
+* Copyright (C) 2020 TechMahindra
+*=================================================================================
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+* ============LICENSE_END=========================================================
+*/-->
+<ace-editor [(text)]="text" [mode]="'javascript'" [autoUpdateContent]="true"
+[durationBeforeCallback]="1000" (textChanged)="textChanged($event)" [theme]="'tomorrow_night_bright'" #editor style="height:500px;">
+</ace-editor>
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/dictionary-editor/dictionary-editor.component.spec.ts b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/dictionary-editor/dictionary-editor.component.spec.ts
new file mode 100644
index 000000000..09dcdbd37
--- /dev/null
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/dictionary-editor/dictionary-editor.component.spec.ts
@@ -0,0 +1,44 @@
+/*
+* ============LICENSE_START=======================================================
+* ONAP : CDS
+* ================================================================================
+* Copyright (C) 2020 TechMahindra
+*=================================================================================
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+* ============LICENSE_END=========================================================
+*/
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { DictionaryEditorComponent } from './dictionary-editor.component';
+
+describe('DictionaryEditorComponent', () => {
+ let component: DictionaryEditorComponent;
+ let fixture: ComponentFixture<DictionaryEditorComponent>;
+
+ beforeEach(async(() => {
+ TestBed.configureTestingModule({
+ declarations: [ DictionaryEditorComponent ]
+ })
+ .compileComponents();
+ }));
+
+ beforeEach(() => {
+ fixture = TestBed.createComponent(DictionaryEditorComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/dictionary-editor/dictionary-editor.component.ts b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/dictionary-editor/dictionary-editor.component.ts
new file mode 100644
index 000000000..92b27c24c
--- /dev/null
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/dictionary-editor/dictionary-editor.component.ts
@@ -0,0 +1,38 @@
+/*
+* ============LICENSE_START=======================================================
+* ONAP : CDS
+* ================================================================================
+* Copyright (C) 2020 TechMahindra
+*=================================================================================
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+* ============LICENSE_END=========================================================
+*/
+import { Component, OnInit } from '@angular/core';
+
+@Component({
+ selector: 'app-dictionary-editor',
+ templateUrl: './dictionary-editor.component.html',
+ styleUrls: ['./dictionary-editor.component.css']
+})
+export class DictionaryEditorComponent implements OnInit {
+ constructor() {
+ }
+
+ ngOnInit() {
+ }
+
+ textChanged(event) {
+ console.log(event);
+ }
+}
+
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/dictionary-metadata/dictionary-metadata.component.css b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/dictionary-metadata/dictionary-metadata.component.css
new file mode 100644
index 000000000..f263c0086
--- /dev/null
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/dictionary-metadata/dictionary-metadata.component.css
@@ -0,0 +1,19 @@
+/*
+* ============LICENSE_START=======================================================
+* ONAP : CDS
+* ================================================================================
+* Copyright (C) 2020 TechMahindra
+*=================================================================================
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+* ============LICENSE_END=========================================================
+*/ \ No newline at end of file
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/dictionary-metadata/dictionary-metadata.component.html b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/dictionary-metadata/dictionary-metadata.component.html
new file mode 100644
index 000000000..bea6081c0
--- /dev/null
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/dictionary-metadata/dictionary-metadata.component.html
@@ -0,0 +1,91 @@
+<!--/*
+* ============LICENSE_START=======================================================
+* ONAP : CDS
+* ================================================================================
+* Copyright (C) 2020 TechMahindra
+*=================================================================================
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+* ============LICENSE_END=========================================================
+*/-->
+<div class="card creat-card col-11">
+ <div class="single-line-model">
+ <label class="label-name">Name</label>
+ <div class="label-input">
+ <input type="input" [(ngModel)]="metaDataTab.name"
+ placeholder="Topology name.vLB.CDS">
+ </div>
+ <!-- <div class="model-note-container error-message">
+ Package name already exists with this version. Please enter a different name or enter different version
+ number.
+ </div> -->
+ </div>
+
+ <!-- <div class="single-line-model">
+ <label class="label-name">Version <span>*</span></label>
+ <div class="label-input">
+ <input type="input" [readOnly]="!packageNameAndVersionEnables" [(ngModel)]="metaDataTab.version"
+ (input)="validatePackageNameAndVersion()" placeholder="Example: 1.0.0">
+ </div>
+ <div class="model-note-container error-message">{{errorMessage}}</div>
+ </div> -->
+ <div class="single-line-model">
+ <label class="label-name">Entry Schema</label>
+ <div class="label-input">
+ <input type="input" [(ngModel)]="metaDataTab.entrySchema" placeholder="Entry Schema">
+ </div>
+ </div>
+ <div class="single-line-model">
+ <label class="label-name">Data Type</label>
+ <div class="label-input">
+ <input type="input" [(ngModel)]="metaDataTab.dataType" placeholder="Data Type">
+ </div>
+ </div>
+ <div class="single-line-model">
+ <label class="label-name">Description</label>
+ <div class="label-input">
+ <input type="input" [(ngModel)]="metaDataTab.description" placeholder="Descripe the package">
+ </div>
+ </div>
+ <div class="single-line-model">
+ <label class="label-name">Required</label>
+ <div class="label-input">
+ <input type="input" [(ngModel)]="metaDataTab.updatedBy" placeholder="required">
+ </div>
+ </div>
+ <div class="single-line-model">
+ <label class="label-name">Library Instance</label>
+ <div class="label-input">
+ <input type="input" [(ngModel)]="metaDataTab.libraryInstance" placeholder="Library Instance">
+ </div>
+ </div>
+ <div class="single-line-model">
+ <label class="label-name">Derived From</label>
+ <div class="label-input">
+ <input type="input" [(ngModel)]="metaDataTab.derivedFrom" placeholder="Derived From">
+ </div>
+ </div>
+
+ <div class="single-line-model">
+ <label class="label-name">Tags</label>
+ <div class="label-input">
+ <input type="input" (keyup.enter)="addTag($event)" [(ngModel)]="metaDataTab.tags"
+ placeholder="Ex., vDNS-CDS">
+
+ </div>
+ <div class="model-note-container tag-notes">Seprate tags with comma or space</div>
+ <div class="model-note-container tages-container">
+ <span *ngFor="let tag of tags" class="single-tage">{{tag}} <i (click)="removeTag(tag)"
+ class="fa fa-times-circle"></i></span>
+ </div>
+ </div>
+</div>
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/dictionary-metadata/dictionary-metadata.component.spec.ts b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/dictionary-metadata/dictionary-metadata.component.spec.ts
new file mode 100644
index 000000000..ce9335ff9
--- /dev/null
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/dictionary-metadata/dictionary-metadata.component.spec.ts
@@ -0,0 +1,44 @@
+/*
+* ============LICENSE_START=======================================================
+* ONAP : CDS
+* ================================================================================
+* Copyright (C) 2020 TechMahindra
+*=================================================================================
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+* ============LICENSE_END=========================================================
+*/
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { DictionaryMetadataComponent } from './dictionary-metadata.component';
+
+describe('DictionaryMetadataComponent', () => {
+ let component: DictionaryMetadataComponent;
+ let fixture: ComponentFixture<DictionaryMetadataComponent>;
+
+ beforeEach(async(() => {
+ TestBed.configureTestingModule({
+ declarations: [ DictionaryMetadataComponent ]
+ })
+ .compileComponents();
+ }));
+
+ beforeEach(() => {
+ fixture = TestBed.createComponent(DictionaryMetadataComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/dictionary-metadata/dictionary-metadata.component.ts b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/dictionary-metadata/dictionary-metadata.component.ts
new file mode 100644
index 000000000..d5c4a109b
--- /dev/null
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/dictionary-metadata/dictionary-metadata.component.ts
@@ -0,0 +1,78 @@
+/*
+* ============LICENSE_START=======================================================
+* ONAP : CDS
+* ================================================================================
+* Copyright (C) 2020 TechMahindra
+*=================================================================================
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+* ============LICENSE_END=========================================================
+*/
+import { Component, OnInit } from '@angular/core';
+import { ActivatedRoute } from '@angular/router';
+import { DictionaryModel } from '../../model/dictionary.model';
+import { DictionaryCreationService } from '../dictionary-creation.service';
+import { DictionaryCreationStore } from '../dictionary-creation.store';
+import { MetaData } from '../../model/metaData.model';
+
+@Component({
+ selector: 'app-dictionary-metadata',
+ templateUrl: './dictionary-metadata.component.html',
+ styleUrls: ['./dictionary-metadata.component.css']
+})
+export class DictionaryMetadataComponent implements OnInit {
+ packageNameAndVersionEnables = true;
+ counter = 0;
+ tags = new Set<string>();
+ private metaDataTab: MetaData = new MetaData();
+ private errorMessage: string;
+
+ constructor(
+ private route: ActivatedRoute,
+ private dictionaryCreationService: DictionaryCreationService,
+ private dictionaryCreationStore: DictionaryCreationStore
+ ) {}
+
+ ngOnInit() {
+ this.dictionaryCreationStore.state$.subscribe(element => {
+ if (element && element.metaData) {
+ this.metaDataTab.name = element.metaData.name;
+ this.metaDataTab.description = element.metaData.description;
+ this.metaDataTab.dataType = element.metaData.dataType;
+ this.metaDataTab.tags = element.metaData.tags;
+ this.metaDataTab.entrySchema = element.metaData.entrySchema;
+ this.metaDataTab.required = element.metaData.required;
+ this.metaDataTab.libraryInstance = element.metaData.libraryInstance;
+ this.metaDataTab.derivedFrom = element.metaData.derivedFrom;
+ console.log(element);
+ }
+ });
+ console.log(this.metaDataTab.name);
+ }
+
+ removeTag(value) {
+ this.tags.delete(value);
+ }
+
+ addTag(event) {
+ const value = event.target.value;
+ console.log(value);
+ if (value && value.trim().length > 0) {
+ event.target.value = '';
+ this.tags.add(value);
+ }
+ }
+
+ saveMetaDataToStore() {
+ this.dictionaryCreationStore.changeMetaData(this.metaDataTab);
+ }
+}
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/resource-dictionary-creation.component.css b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/resource-dictionary-creation.component.css
new file mode 100644
index 000000000..f02bd233d
--- /dev/null
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/resource-dictionary-creation.component.css
@@ -0,0 +1,37 @@
+/*
+* ============LICENSE_START=======================================================
+* ONAP : CDS
+* ================================================================================
+* Copyright (C) 2020 TechMahindra
+*=================================================================================
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+* ============LICENSE_END=========================================================
+*/
+.edit-button{
+ color:white;
+ background:#1B3E6F;
+ margin-right: 60px;
+ border: none;
+ width: 80px;
+ height: 20px;
+ margin-top: 25px;
+ font-size: 10px;
+ padding-left:5px;
+ padding-top: 3px;
+ }
+ .ed{
+ justify-content: space-between;
+ }
+ .single-line-model{
+ margin:20px;
+ } \ No newline at end of file
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/resource-dictionary-creation.component.html b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/resource-dictionary-creation.component.html
new file mode 100644
index 000000000..bf183216d
--- /dev/null
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/resource-dictionary-creation.component.html
@@ -0,0 +1,122 @@
+<!--/*
+* ============LICENSE_START=======================================================
+* ONAP : CDS
+* ================================================================================
+* Copyright (C) 2020 TechMahindra
+*=================================================================================
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+* ============LICENSE_END=========================================================
+*/-->
+<app-header></app-header>
+
+<div class="new-wrapper">
+ <div class="container-fluid main-container">
+ <header class="page-title">
+ <div class="row">
+ <h2 class="col m-0 pb-0">
+ <ul class="breadcrumb-header">
+ <li><a routerLink="/resource-dictionary">Resource Dictionary</a></li>
+ <i class="fa fa-angle-right ml-2 mr-2"></i>
+ <li>Dictionary Name</li>
+ </ul>
+ </h2>
+ </div>
+ </header>
+ <div class="container-fluid body-container">
+ <div class="container card creat-card col-11">
+ <div class="single-line-model customKeyTitle">
+ <h5 class="label-name w-100 ">
+ Dictionary Name
+ </h5>
+ <!-- <label class="label-name"></label> -->
+ <span>Last modified {{createDate}} by me</span>
+ </div>
+ </div>
+ </div>
+ <div class="container-fluid body-container">
+ <div class="container">
+ <div class="creat-action-container">
+ <a class="action-button" (click)="saveDictionaryToStore()">
+ <i class="icon-save-sm" aria-hidden="true"></i>
+ <span>Save</span>
+ </a>
+ <a href="#" class="action-button" (click)="goBackToDashBorad()">
+ <i class="icon-discard-sm" aria-hidden="true"></i>
+ <span>Discard Changes</span>
+ </a>
+ <a href="#" class="action-button">
+ <i class="icon-clone-sm" aria-hidden="true"></i>
+ <span>Clone</span>
+ </a>
+ <a href="#" class="action-button delete">
+ <i class="icon-delete-sm" aria-hidden="true"></i>
+ <span>Delete</span>
+ </a>
+ </div>
+ <nav class="row">
+ <!--Nav Tabs-->
+ <div class="col">
+ <div class="nav nav-tabs ed" id="nav-tab" role="tablist">
+ <a class="nav-item nav-link active" id="nav-metadata-tab" data-toggle="tab"
+ href="#nav-metadata" role="tab" aria-controls="nav-metadata" aria-selected="false"
+ autofocus #nameit (focusout)="test()">METADATA</a>
+ <a class="edit-button" id="nav-editor-tab" data-toggle="tab" href="#nav-editor"
+ role="tab" aria-controls="nav-editor" aria-selected="false">EDITOR MODE</a>
+
+ </div>
+ </div>
+ </nav>
+ <div>
+ <div class="row mt-4">
+ <div class="col">
+ <div class="tab-content" id="nav-tabContent">
+ <div class="tab-pane fade show active" id="nav-metadata" role="tabpanel"
+ aria-labelledby="nav-metadata-tab">
+ <app-dictionary-metadata></app-dictionary-metadata>
+ <nav class="row">
+ <!--Nav Tabs-->
+ <div class="col">
+ <div class="nav nav-tabs " id="nav-tab" role="tablist">
+ <a class="nav-item nav-link active" id="nav-source-tab" data-toggle="tab"
+ href="#nav-source" role="tab" aria-controls="nav-source" aria-selected="false"
+ >SOURCES</a>
+ </div>
+ </div>
+ </nav>
+ <div class="row mt-4">
+ <div class="col">
+ <div class="tab-content" id="nav-tabContent">
+ <div class="tab-pane fade show active" id="nav-source" role="tabpanel"
+ aria-labelledby="nav-source-tab">
+ <app-sources-template></app-sources-template>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="tab-pane fade col-11" id="nav-editor" role="tabpanel"
+ aria-labelledby="nav-editor-tab">
+ <div class="card creat-card">
+ <div class="editor-container">
+ <app-dictionary-editor></app-dictionary-editor>
+ </div></div>
+ </div>
+ </div>
+ </div>
+ </div>
+
+
+ </div>
+ </div>
+ </div>
+</div> \ No newline at end of file
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/resource-dictionary-creation.component.spec.ts b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/resource-dictionary-creation.component.spec.ts
new file mode 100644
index 000000000..b1e6b6d24
--- /dev/null
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/resource-dictionary-creation.component.spec.ts
@@ -0,0 +1,44 @@
+/*
+* ============LICENSE_START=======================================================
+* ONAP : CDS
+* ================================================================================
+* Copyright (C) 2020 TechMahindra
+*=================================================================================
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+* ============LICENSE_END=========================================================
+*/
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { ResourceDictionaryCreationComponent } from './resource-dictionary-creation.component';
+
+describe('ResourceDictionaryCreationComponent', () => {
+ let component: ResourceDictionaryCreationComponent;
+ let fixture: ComponentFixture<ResourceDictionaryCreationComponent>;
+
+ beforeEach(async(() => {
+ TestBed.configureTestingModule({
+ declarations: [ ResourceDictionaryCreationComponent ]
+ })
+ .compileComponents();
+ }));
+
+ beforeEach(() => {
+ fixture = TestBed.createComponent(ResourceDictionaryCreationComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/resource-dictionary-creation.component.ts b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/resource-dictionary-creation.component.ts
new file mode 100644
index 000000000..1a3484bae
--- /dev/null
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/resource-dictionary-creation.component.ts
@@ -0,0 +1,76 @@
+/*
+* ============LICENSE_START=======================================================
+* ONAP : CDS
+* ================================================================================
+* Copyright (C) 2020 TechMahindra
+*=================================================================================
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+* ============LICENSE_END=========================================================
+*/
+import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';
+import { Router } from '@angular/router';
+import { DictionaryCreationStore } from './dictionary-creation.store';
+import { DictionaryModel } from '../model/dictionary.model';
+import { Definition } from '../model/definition.model';
+import { DictionaryMetadataComponent } from './dictionary-metadata/dictionary-metadata.component';
+import { SourcesTemplateComponent } from './sources-template/sources-template.component';
+
+@Component({
+ selector: 'app-resource-dictionary-creation',
+ templateUrl: './resource-dictionary-creation.component.html',
+ styleUrls: ['./resource-dictionary-creation.component.css']
+})
+export class ResourceDictionaryCreationComponent implements OnInit {
+
+ constructor(private router: Router, private dictionaryCreationStore: DictionaryCreationStore) {
+ }
+
+ modes: object[] = [
+ {name: 'Designer Mode', style: 'mode-icon icon-designer-mode'},
+ {name: 'Scripting Mode', style: 'mode-icon icon-scripting-mode'}
+ ];
+
+ private metaDataTab: DictionaryModel = new DictionaryModel();
+ private definition: Definition = new Definition();
+
+ @ViewChild(DictionaryMetadataComponent, {static: false})
+ private metadataTabComponent: DictionaryMetadataComponent;
+
+ @ViewChild(SourcesTemplateComponent, {static: false})
+ private sourcesTemplateComponent: SourcesTemplateComponent;
+
+ @ViewChild('nameit', {static: true})
+ private elementRef: ElementRef;
+
+ ngOnInit() {
+ this.elementRef.nativeElement.focus();
+ // this.elementRef2.nativeElement.focus();
+ }
+
+ saveDictionaryToStore() {
+ this.dictionaryCreationStore.getSources();
+ this.dictionaryCreationStore.state$.subscribe(dd => {
+ console.log(dd);
+ });
+ }
+
+ test() {
+ this.metadataTabComponent.saveMetaDataToStore();
+ this.sourcesTemplateComponent.saveSorcesDataToStore();
+ }
+
+ goBackToDashBorad() {
+ this.router.navigate(['/resource-dictionary']);
+ }
+
+}
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/sources-template/sources-template.component.css b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/sources-template/sources-template.component.css
new file mode 100644
index 000000000..7799d915f
--- /dev/null
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/sources-template/sources-template.component.css
@@ -0,0 +1,208 @@
+/*
+* ============LICENSE_START=======================================================
+* ONAP : CDS
+* ================================================================================
+* Copyright (C) 2020 TechMahindra
+*=================================================================================
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+* ============LICENSE_END=========================================================
+*/
+.source{
+ left: 20px;
+ width: 72%;
+}
+.source1{
+ width: 25%;
+ background-color:#F4F9FE;
+}
+h5{
+ padding-top: 10px;
+ padding-left: 10px;
+ background-color:white;
+ height: 40px;
+ width: 100%;
+}
+.mat-form-field + .mat-form-field {
+ margin-left: 8px;
+}
+mat-expansion-panel-header{
+ background-color:#E0E8F2;
+}
+mat-panel-title{
+ color:#1B3E6F;
+}
+mat-expansion-panel{
+ border-radius: 0px;
+ border-left: none;
+}
+.example-list .card{
+ margin-bottom: 10px !important;
+}
+.expansion-panel{
+ border: none;
+ background: white;
+ border-radius: 0px;
+ overflow: hidden;
+ display: block;
+ width: 100%;
+ color:#1B3E6F;
+ }
+.example-container {
+ width: 230px;
+ max-width: 100%;
+ margin: 10px 10px 15px 0;
+ display: inline-block;
+ vertical-align: top;
+ border-radius: 2px;
+ height: 260px;
+ background-color:#F4F9FE;
+ }
+ .example-container2 {
+ width: 630px;
+ max-width: 100%;
+ margin: 10px 10px 5px 0;
+ display: inline-block;
+ vertical-align: top;
+ border-radius: 2px;
+ height: 300px;
+ background-color:#F4F9FE;
+ }
+
+ .example-list {
+ min-height: 12px;
+ border-radius: 0px;
+ overflow: hidden;
+ display: block;
+ margin: 5px;
+ overflow-y:scroll;
+ overflow-x:hidden;
+ margin-left: 15px;
+ width: 195px;
+ margin-top: 15px;
+ }
+
+ .example-list1 {
+ min-height: 12px;
+ border-radius: 0px;
+ overflow: hidden;
+ display: block;
+ margin: 5px;
+ overflow-y:hidden;
+ overflow-x:hidden;
+ }
+
+ .checkbox{
+ margin-left: 11%;
+ }
+ .example-box {
+ padding: 2px 1px;
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+ justify-content: left;
+ box-sizing: border-box;
+ cursor: move;
+ font-size: 14px;
+
+ }
+ .example-box1 {
+ padding: 1px 1px;
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+ justify-content: left;
+ box-sizing: border-box;
+ cursor: move;
+ font-size: 14px;
+ border-radius: 0px !important;
+ }
+
+ .cdk-drag-preview {
+ box-sizing: border-box;
+ border-radius: 4px;
+ box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2),
+ 0 8px 10px 1px rgba(0, 0, 0, 0.14),
+ 0 3px 14px 2px rgba(0, 0, 0, 0.12);
+ }
+
+ .cdk-drag-placeholder {
+ opacity: 0;
+ }
+
+ .cdk-drag-animating {
+ transition: transform 250ms cubic-bezier(0, 0, 0.2, 1);
+ }
+
+ .example-box:last-child {
+ border: none;
+ }
+
+ .example-list.cdk-drop-list-dragging .example-box:not(.cdk-drag-placeholder) {
+ transition: transform 250ms cubic-bezier(0, 0, 0.2, 1);
+ }
+
+.searchText{
+ width: 180px;
+ /* border-top: solid 2px #F4F9FE; */
+ border: 0px;
+ color: #1B3E6F;
+ font-size: 13px;
+ margin-top: 2px;
+}
+.searchBox{
+ position: relative;
+ top: 0%;
+ right: 0%;
+ height: 35px;
+ border-top: solid 2px #F4F9FE;
+ width: 100%;
+ margin-left:0px;
+ background-color:white;
+}
+
+.searchButton1{
+ float: left;
+ padding-left: 0 !important;
+ height: 30px;
+ width:30px;
+ background: url(src/assets/img/icon-search.svg) center center no-repeat;
+ border: 0 !important;
+ margin-right:0px;
+}
+.action-button1{
+ margin-left:50px;
+ padding: 1px 6px;
+ box-shadow: none;
+ color:white;
+ font-size: 14px;
+ height: 25px;
+ background-color:#007bff;
+ border-radius:16px;
+ border:solid 0.5px #ededed;
+}
+.footer{
+ margin: 1px 0px;
+}
+.delete{
+ color: red;
+ font-size: 14px;
+ margin: 2px;
+}
+.footer input{
+ margin: 6px 0px 1px 5px;
+}
+.select-button{
+ color: #007bff;
+ font-size: 14px;
+ margin: 2px;
+} \ No newline at end of file
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/sources-template/sources-template.component.html b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/sources-template/sources-template.component.html
new file mode 100644
index 000000000..b274ce95d
--- /dev/null
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/sources-template/sources-template.component.html
@@ -0,0 +1,85 @@
+<!--/*
+* ============LICENSE_START=======================================================
+* ONAP : CDS
+* ================================================================================
+* Copyright (C) 2020 TechMahindra
+*=================================================================================
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+* ============LICENSE_END=========================================================
+*/-->
+<div class="col-11">
+ <div class= "row ">
+ <div class="card creat-card source1">
+ <h5 class="label-name"> Sources Options</h5>
+ <div class="searchBox row"><i class="searchButton1 col-1" aria-hidden="true"></i>
+ <input class="searchText col-8" [(ngModel)]="searchText" type="input" placeholder="filter sources">
+ </div>
+
+ <div class="example-container">
+ <div
+ cdkDropList
+ #todoList="cdkDropList"
+ [cdkDropListData]="option"
+ [cdkDropListConnectedTo]="[doneList]"
+ class="example-list"
+ (cdkDropListDropped)="drop($event)">
+ <div class="example-box card creat-card" *ngFor="let item of option| search :searchText" cdkDrag>
+ <input type="checkbox" class="checkbox" [(ngModel)]="checked" (change)="onChange(item, $event.target.checked)">
+ {{item.name}}
+ </div>
+
+ </div>
+
+ </div>
+ <div class="footer row">
+ <a class="select-button col-sm-05">Select all</a>
+ <button class="action-button1 col-sm-04" >Add to list</button>
+ </div>
+ </div>
+
+ <div class="card creat-card source">
+ <h5 class="label-name">Sources List</h5>
+ <div class="example-container2 card creat-card">
+ <div
+ cdkDropList
+ #doneList="cdkDropList"
+ [cdkDropListData]="sourcesOptions"
+ [cdkDropListConnectedTo]="[todoList]"
+ class="example-list1"
+ (cdkDropListDropped)="drop($event)">
+
+ <div class="example-box1" *ngFor="let item of sourcesOptions" cdkDrag>
+ <input type="checkbox" value="item.name">
+ <mat-expansion-panel class="expansion-panel">
+ <mat-expansion-panel-header [collapsedHeight]="'23px'" [expandedHeight]="'23px'">
+ <mat-panel-title>
+ {{item.name}}
+ </mat-panel-title>
+ </mat-expansion-panel-header>
+ <br>
+ <ace-editor [(text)]=item.value [mode]="'javascript'" [autoUpdateContent]="true"
+ [durationBeforeCallback]="1000" (textChanged)="textChanged($event,item)" [theme]="'tomorrow_night_bright'" #editor style="height:300px;">
+ </ace-editor>
+ </mat-expansion-panel>
+ </div>
+
+ </div>
+
+ </div>
+ <div>
+ <a type="submit" class="delete">Delete</a>
+ </div>
+ </div>
+</div>
+</div>
+
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/sources-template/sources-template.component.spec.ts b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/sources-template/sources-template.component.spec.ts
new file mode 100644
index 000000000..e9bd4ff43
--- /dev/null
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/sources-template/sources-template.component.spec.ts
@@ -0,0 +1,44 @@
+/*
+* ============LICENSE_START=======================================================
+* ONAP : CDS
+* ================================================================================
+* Copyright (C) 2020 TechMahindra
+*=================================================================================
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+* ============LICENSE_END=========================================================
+*/
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { SourcesTemplateComponent } from './sources-template.component';
+
+describe('SourcesTemplateComponent', () => {
+ let component: SourcesTemplateComponent;
+ let fixture: ComponentFixture<SourcesTemplateComponent>;
+
+ beforeEach(async(() => {
+ TestBed.configureTestingModule({
+ declarations: [ SourcesTemplateComponent ]
+ })
+ .compileComponents();
+ }));
+
+ beforeEach(() => {
+ fixture = TestBed.createComponent(SourcesTemplateComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/sources-template/sources-template.component.ts b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/sources-template/sources-template.component.ts
new file mode 100644
index 000000000..4a4f215cd
--- /dev/null
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/sources-template/sources-template.component.ts
@@ -0,0 +1,109 @@
+/*
+* ============LICENSE_START=======================================================
+* ONAP : CDS
+* ================================================================================
+* Copyright (C) 2020 TechMahindra
+*=================================================================================
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+* ============LICENSE_END=========================================================
+*/
+import { Component, OnInit} from '@angular/core';
+import { CdkDragDrop, moveItemInArray, transferArrayItem } from '@angular/cdk/drag-drop';
+import { SourcesStore } from './sources.store';
+
+@Component({
+ selector: 'app-sources-template',
+ templateUrl: './sources-template.component.html',
+ styleUrls: ['./sources-template.component.css']
+})
+export class SourcesTemplateComponent implements OnInit {
+ private searchQuery = '';
+ lang = 'json';
+ sources = [];
+ option = [];
+ sourcesOptions = [];
+ textValue: any;
+ selectItem: boolean;
+ ddSource = [];
+ checked: boolean;
+ selectedArray = [];
+ constructor(private sourcesStore: SourcesStore) {
+ this.sourcesStore.state$.subscribe(sources => {
+ this.sources = sources.sources;
+ for (const key in this.sources) {
+ if (key) {
+ const sourceObj = { name: key, value: JSON.stringify(this.sources[key] )};
+ this.option.push(sourceObj);
+ }
+ }
+ });
+ }
+
+ ngOnInit() {
+ this.sourcesStore.getAllSources();
+ }
+
+ saveSorcesDataToStore() {
+ this.sourcesStore.saveSources(this.ddSource);
+ }
+
+ drop(event: CdkDragDrop<string[]>) {
+ this.ddSource = [];
+ if (event.previousContainer === event.container) {
+ moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);
+ } else {
+ transferArrayItem(event.previousContainer.data,
+ event.container.data,
+ event.previousIndex,
+ event.currentIndex);
+ }
+
+ for (const key2 in this.sources) {
+ if (key2) {
+ const originalSources = this.sourcesOptions;
+ for (const key of originalSources) {
+ if (key.name === key2) {
+ const obj = `{${key.name}: ${key.value}}`;
+ this.ddSource.push(obj);
+ }
+ }
+ }
+ }
+ }
+
+ searchDictionary(event: any) {
+ this.searchQuery = event.target.value;
+ this.searchQuery = this.searchQuery.trim();
+ console.log(this.searchQuery);
+ // this.dictionaryStore.search(this.searchQuery);
+ }
+
+ onChange(item: string, isChecked: boolean) {
+ if (isChecked) {
+ this.selectedArray.push(item);
+ }
+ }
+
+ textChanged(event, item) {
+ const editedData = JSON.parse(event);
+ const originalSources = this.sources;
+ for (const key in originalSources) {
+ if (key === item.name) {
+ this.sources[key] = editedData;
+ }
+ }
+ this.option = [];
+ this.sourcesStore.changeSources(this.sources);
+ }
+
+}
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/sources-template/sources.store.ts b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/sources-template/sources.store.ts
new file mode 100644
index 000000000..7da8f03d3
--- /dev/null
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/sources-template/sources.store.ts
@@ -0,0 +1,60 @@
+/*
+* ============LICENSE_START=======================================================
+* ONAP : CDS
+* ================================================================================
+* Copyright (C) 2020 TechMahindra
+*=================================================================================
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+* ============LICENSE_END=========================================================
+*/
+import { Sources } from '../../model/sources.model';
+import { Store } from 'src/app/common/core/stores/Store';
+import { Injectable } from '@angular/core';
+import { DictionaryCreationService } from '../dictionary-creation.service';
+import { Definition } from '../../model/definition.model';
+
+@Injectable({
+ providedIn: 'root'
+})
+export class SourcesStore extends Store<Sources> {
+ constructor(private dictionaryCreationService: DictionaryCreationService) {
+ super(new Sources());
+ }
+
+ public getAllSources() {
+ console.log('getting all sources...');
+ this.getSources();
+ }
+
+ protected getSources() {
+ this.dictionaryCreationService.getSources()
+ .subscribe((sou) => {
+ console.log(sou);
+ this.setState({
+ ...this.state,
+ sources: sou
+ });
+ });
+ }
+
+ public changeSources(sou) {
+ this.setState({
+ ...this.state,
+ sources: sou
+ });
+ }
+
+ public saveSources(sources) {
+ console.log(sources);
+ }
+}
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-dashboard/dictionary-list/dictionary-list.component.html b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-dashboard/dictionary-list/dictionary-list.component.html
index 1cedeeb09..b6fbf5939 100644
--- a/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-dashboard/dictionary-list/dictionary-list.component.html
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-dashboard/dictionary-list/dictionary-list.component.html
@@ -28,7 +28,7 @@
<div class="card-footer row">
<div class="col text-center">
<a routerLink="/resource-dictionary/createDictionary" role="button" aria-pressed="true"
- class="btn-create-package float"><i class="icon-create-white" aria-hidden="true"></i>Create Package
+ class="btn-create-package float"><i class="icon-create-white" aria-hidden="true"></i>Create Dictionary
</a>
<br/>
<a href="#" role="button" aria-pressed="true" class="btn-import-package float mb-3"><i class="icon-import-blue" aria-hidden="true"></i>Import Package
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-routing.module.ts b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-routing.module.ts
index eb29c4c87..04b66c7bd 100644
--- a/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-routing.module.ts
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-routing.module.ts
@@ -17,15 +17,19 @@
* limitations under the License.
* ============LICENSE_END=========================================================
*/
-
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { ResourceDictionaryDashboardComponent } from './resource-dictionary-dashboard/resource-dictionary-dashboard.component';
+import { ResourceDictionaryCreationComponent } from './resource-dictionary-creation/resource-dictionary-creation.component';
const routes: Routes = [
{
path: '',
component: ResourceDictionaryDashboardComponent
+ },
+ {
+ path: 'createDictionary',
+ component: ResourceDictionaryCreationComponent
}
];
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary.module.ts b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary.module.ts
index 5bd6710f8..3f0f89b0d 100644
--- a/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary.module.ts
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary.module.ts
@@ -36,6 +36,13 @@ import { SortDictionaryComponent } from './resource-dictionary-dashboard/sort-di
import { DictionaryPaginationComponent } from './resource-dictionary-dashboard/dictionary-pagination/dictionary-pagination.component';
import { SharedModulesModule } from '../../shared-modules/shared-modules.module';
import { DictionaryListComponent } from './resource-dictionary-dashboard/dictionary-list/dictionary-list.component';
+import { SearchPipe } from 'src/app/common/core/pipes/search.pipe';
+import { ResourceDictionaryCreationComponent } from './resource-dictionary-creation/resource-dictionary-creation.component';
+import { DictionaryMetadataComponent } from './resource-dictionary-creation/dictionary-metadata/dictionary-metadata.component';
+import { SourcesTemplateComponent } from './resource-dictionary-creation/sources-template/sources-template.component';
+import { DragDropModule } from '@angular/cdk/drag-drop';
+import { MatExpansionModule } from '@angular/material';
+import { DictionaryEditorComponent } from './resource-dictionary-creation/dictionary-editor/dictionary-editor.component';
@NgModule({
declarations: [
@@ -46,6 +53,11 @@ import { DictionaryListComponent } from './resource-dictionary-dashboard/diction
SortDictionaryComponent,
DictionaryPaginationComponent,
DictionaryListComponent,
+ ResourceDictionaryCreationComponent,
+ DictionaryMetadataComponent,
+ SourcesTemplateComponent,
+ SearchPipe,
+ DictionaryEditorComponent,
],
imports: [
CommonModule,
@@ -57,6 +69,8 @@ import { DictionaryListComponent } from './resource-dictionary-dashboard/diction
NgxFileDropModule,
AceEditorModule,
DataTablesModule,
+ DragDropModule,
+ MatExpansionModule,
]
})
export class ResourceDictionaryModule { }
diff --git a/cds-ui/designer-client/src/assets/icomoon/fonts/icomoon.eot b/cds-ui/designer-client/src/assets/icomoon/fonts/icomoon.eot
index 3f1e99995..01dd66cf8 100755
--- a/cds-ui/designer-client/src/assets/icomoon/fonts/icomoon.eot
+++ b/cds-ui/designer-client/src/assets/icomoon/fonts/icomoon.eot
Binary files differ
diff --git a/cds-ui/designer-client/src/assets/icomoon/fonts/icomoon.svg b/cds-ui/designer-client/src/assets/icomoon/fonts/icomoon.svg
index 456e5d20d..6d0d75fd1 100755
--- a/cds-ui/designer-client/src/assets/icomoon/fonts/icomoon.svg
+++ b/cds-ui/designer-client/src/assets/icomoon/fonts/icomoon.svg
@@ -10,6 +10,8 @@
<glyph unicode="&#xe900;" glyph-name="icon-use-attributes" horiz-adv-x="1317" d="M503.303 834.341l-16.724 93.659h-468.293v-967.805h1280v874.146h-794.983zM611.456 459.707v-249.756h-93.659v249.756h93.659zM424.139 553.366v-343.415h-93.659v343.415h93.659zM798.774 209.951h-93.659v374.634h93.659v-374.634zM986.091 209.951h-93.659v312.195h93.659v-312.195z" />
<glyph unicode="&#xe901;" glyph-name="icon-upload-attributes" horiz-adv-x="922" d="M529.527 737.239h109.614l-167.773 176.492v-118.106c0-31.992 25.947-58.386 58.159-58.386zM347.671 292.095h-194.394c-9.841 0-17.894 8.045-17.894 17.894 0 9.841 8.053 17.894 17.894 17.894h206.25c11.402 29.076 26.614 53.689 45.409 78.295h-251.659c-9.841 0-17.894 8.045-17.894 17.894 0 9.841 8.053 17.894 17.894 17.894h285.659c53.682 46.977 124.818 76.947 202.439 76.947 7.379 0 13.424-0.667 22.371-1.341v183.879h-134.22c-51.894 0-93.947 42.5-93.947 94.174v145.174h-343.144c-44.295 0-79.636-36.235-79.636-80.75v-682.712c0-44.515 35.341-79.856 79.636-79.856h269.545c-15.432 35.788-23.932 76.053-23.932 118.106-0.227 26.394 3.356 51.902 9.621 76.508zM153.277 553.815h226.606c9.841 0 17.894-8.053 17.894-17.902 0-9.841-8.053-17.894-17.894-17.894h-226.606c-9.841 0-17.894 8.053-17.894 17.894 0 9.848 8.053 17.902 17.894 17.902zM641.148 482.452c-147.409 0-267.311-119.894-267.311-267.311 0-147.409 119.902-267.311 267.311-267.311 147.417 0 267.318 119.902 267.318 267.311 0 147.417-119.902 267.311-267.318 267.311zM784.095 211.118c-3.356-3.136-7.833-4.705-12.083-4.705-4.697 0-9.394 2.015-12.977 5.598l-99.765 107.371v-255.455c0-9.848-8.053-17.902-17.894-17.902s-17.894 8.053-17.894 17.902v255.674l-100.212-107.371c-6.712-7.159-18.348-7.606-25.508-0.894-7.152 6.712-7.606 18.121-0.894 25.28l131.083 140.705c3.356 3.576 8.053 5.591 13.197 5.591 5.152 0 9.621-2.015 13.205-5.591l131.083-140.705c6.265-7.386 5.811-18.795-1.341-25.5z" />
<glyph unicode="&#xe902;" glyph-name="icon-enter-link" d="M677.571 421.241h-644.248c-18.395 0-33.323 14.929-33.323 33.323s14.929 33.323 33.323 33.323h644.248c18.395 0 33.323-14.929 33.323-33.323s-14.929-33.323-33.323-33.323zM499.849 243.519c-8.534 0-17.060 3.238-23.552 9.771-13.017 13.017-13.017 34.121 0 47.146l154.177 154.169-154.177 154.177c-13.017 13.017-13.017 34.129 0 47.146 13.025 13.017 34.129 13.017 47.146 0l177.722-177.73c13.017-13.017 13.017-34.121 0-47.137l-177.722-177.722c-6.533-6.582-15.059-9.82-23.593-9.82v0zM533.173-34.18c-202.21 0-380.728 121.651-454.884 309.957-6.753 17.060 1.684 36.431 18.793 43.184 17.060 6.663 36.48-1.643 43.232-18.842 64.027-162.573 218.245-267.652 392.859-267.652 232.726 0 422.098 189.372 422.098 422.098s-189.372 422.098-422.098 422.098c-174.614 0-328.832-105.079-392.859-267.652-6.801-17.199-26.172-25.505-43.232-18.842-17.109 6.753-25.546 26.123-18.793 43.184 74.156 188.306 252.675 309.957 454.884 309.957 269.475 0 488.744-219.27 488.744-488.744s-219.27-488.744-488.744-488.744z" />
+<glyph unicode="&#xe903;" glyph-name="icon-action-close" d="M1011.886 947.884c-16.154 16.154-42.344 16.154-58.498 0l-941.272-941.27c-16.154-16.154-16.154-42.344 0-58.498 8.076-8.080 18.664-12.116 29.25-12.116s21.172 4.039 29.25 12.119l941.27 941.27c16.152 16.152 16.152 42.342 0 58.496zM1011.884 6.612l-941.272 941.27c-16.152 16.154-42.344 16.154-58.496 0-16.154-16.152-16.154-42.342 0-58.496l941.272-941.272c8.076-8.078 18.664-12.117 29.25-12.117s21.174 4.039 29.248 12.115c16.15 16.156 16.15 42.346-0.002 58.5z" />
+<glyph unicode="&#xe904;" glyph-name="icon-action-back" horiz-adv-x="1422" d="M479.778 915.244c19.067 19.733 50.8 19.733 70.533 0 19.067-19.067 19.067-50.8 0-69.822l-357.644-357.644h1180.178c27.511-0.044 49.378-21.911 49.378-49.422s-21.867-50.089-49.378-50.089h-1180.178l357.644-356.978c19.067-19.733 19.067-51.511 0-70.533-19.733-19.733-51.511-19.733-70.533 0l-442.311 442.311c-19.733 19.067-19.733 50.8 0 69.822l442.311 442.356z" />
<glyph unicode="&#xe915;" glyph-name="icon-add" d="M512 960c-282.785 0-512-229.215-512-512s229.215-512 512-512c282.785 0 512 229.249 512 512s-229.215 512-512 512zM512 0c-247.425 0-448 200.575-448 448s200.575 448 448 448c247.425 0 448-200.575 448-448s-200.575-448-448-448zM704 480h-160v160c0 17.664-14.336 32-32 32s-32-14.336-32-32v-160h-160c-17.664 0-32-14.336-32-32s14.336-32 32-32h160v-160c0-17.664 14.336-32 32-32s32 14.336 32 32v160h160c17.664 0 32 14.336 32 32s-14.336 32-32 32z" />
<glyph unicode="&#xe952;" glyph-name="icon-archive-sm" d="M943.405 684.258h-864.783c-10.653 0-19.867-3.887-27.644-11.668-7.781-7.777-11.668-16.991-11.668-27.637v-589.626c0-10.644 3.887-19.863 11.668-27.637 7.777-7.781 16.991-11.677 27.644-11.677h864.783c10.647 0 19.854 3.896 27.637 11.677 7.775 7.773 11.662 16.991 11.662 27.637v589.626c0 10.653-3.872 19.858-11.662 27.637-7.775 7.781-16.991 11.668-27.637 11.668zM617.255 499.387c-7.773-7.779-16.991-11.668-27.637-11.668h-157.233c-10.64 0-19.854 3.892-27.637 11.668-7.777 7.781-11.668 16.991-11.668 27.644 0 10.644 3.892 19.858 11.668 27.637 7.781 7.781 16.995 11.673 27.637 11.673h157.249c10.638 0 19.85-3.892 27.637-11.673 7.775-7.777 11.662-16.991 11.662-27.637 0-10.651-3.896-19.863-11.677-27.644zM1010.357 947.749c-7.783 7.781-16.991 11.668-27.639 11.668h-943.409c-10.644 0-19.858-3.887-27.637-11.668-7.779-7.777-11.671-16.991-11.671-27.637v-157.233c0-10.644 3.892-19.854 11.673-27.637 7.779-7.781 16.991-11.668 27.637-11.668h943.394c10.644 0 19.863 3.887 27.652 11.668 7.773 7.781 11.66 16.991 11.66 27.637v157.233c0 10.653-3.887 19.86-11.66 27.637z" />
<glyph unicode="&#xe953;" glyph-name="icon-btn-card-config" d="M971.283 561.778h-95.801c-15.398 0-28.084 8.476-33.982 22.699s-2.901 29.203 7.964 40.088l67.736 67.717c9.956 9.956 15.436 23.211 15.436 37.281 0 14.089-5.48 27.326-15.436 37.3l-86.338 86.338c-19.911 19.911-54.632 19.949-74.581 0l-67.717-67.717c-10.885-10.866-25.903-13.9-40.088-7.983-14.222 5.897-22.699 18.584-22.699 33.982v95.801c0 29.070-23.647 52.717-52.717 52.717h-122.121c-29.070 0-52.717-23.647-52.717-52.717v-95.801c0-15.398-8.476-28.084-22.699-33.982-14.184-5.935-29.203-2.882-40.088 7.983l-67.717 67.717c-19.949 19.949-54.67 19.911-74.581 0l-86.338-86.338c-9.956-9.956-15.436-23.211-15.436-37.3 0-14.071 5.48-27.307 15.436-37.281l67.736-67.717c10.866-10.885 13.843-25.865 7.964-40.088s-18.584-22.699-33.982-22.699h-95.801c-29.070 0-52.717-23.647-52.717-52.717v-122.103c0-29.089 23.647-52.736 52.717-52.736h95.801c15.398 0 28.084-8.476 33.982-22.699s2.901-29.203-7.964-40.088l-67.736-67.717c-9.956-9.956-15.436-23.211-15.436-37.281 0-14.089 5.48-27.326 15.436-37.3l86.338-86.338c19.93-19.93 54.632-19.968 74.581 0l67.717 67.736c10.885 10.866 25.847 13.862 40.088 7.964 14.222-5.897 22.699-18.584 22.699-33.982v-95.801c0-29.070 23.647-52.717 52.717-52.717h122.103c29.070 0 52.717 23.647 52.717 52.717v95.801c0 15.398 8.476 28.084 22.699 33.982 14.241 5.916 29.203 2.901 40.088-7.964l67.717-67.736c19.949-19.949 54.67-19.911 74.581 0l86.338 86.338c9.956 9.956 15.436 23.211 15.436 37.3 0 14.071-5.48 27.307-15.436 37.281l-67.736 67.717c-10.866 10.885-13.843 25.865-7.964 40.088s18.603 22.699 34.001 22.699h95.801c29.070 0 52.717 23.647 52.717 52.717v122.121c0 29.070-23.647 52.717-52.717 52.717zM986.074 386.939c0-8.154-6.637-14.791-14.791-14.791h-95.801c-30.796 0-57.249-17.673-69.025-46.118-11.795-28.444-5.594-59.657 16.194-81.427l67.736-67.717c5.784-5.784 5.784-15.17 0-20.935l-86.338-86.338c-5.765-5.765-15.151-5.803-20.935 0l-67.717 67.736c-21.788 21.788-52.983 27.951-81.427 16.194-28.444-11.776-46.118-38.229-46.118-69.025v-95.801c0-8.154-6.637-14.791-14.791-14.791h-122.121c-8.154 0-14.791 6.637-14.791 14.791v95.801c0 30.796-17.673 57.249-46.118 69.025-9.538 3.963-19.361 5.897-29.070 5.897-19.228 0-37.869-7.585-52.357-22.073l-67.717-67.736c-5.803-5.803-15.189-5.765-20.935 0l-86.338 86.338c-5.784 5.784-5.784 15.17 0 20.935l67.736 67.717c21.769 21.769 27.989 52.983 16.194 81.427-11.776 28.425-38.229 46.099-69.025 46.099h-95.801c-8.154 0-14.791 6.637-14.791 14.791v122.121c0 8.154 6.637 14.791 14.791 14.791h95.801c30.796 0 57.249 17.673 69.025 46.118 11.795 28.444 5.594 59.657-16.194 81.427l-67.736 67.717c-5.784 5.784-5.784 15.17 0 20.935l86.338 86.338c5.765 5.784 15.151 5.784 20.935 0l67.717-67.717c21.751-21.751 52.945-27.989 81.427-16.194 28.444 11.757 46.118 38.21 46.118 69.006v95.801c0 8.154 6.637 14.791 14.791 14.791h122.103c8.173 0 14.81-6.637 14.81-14.791v-95.801c0-30.796 17.673-57.249 46.118-69.025 28.482-11.795 59.657-5.575 81.427 16.194l67.717 67.717c5.803 5.784 15.189 5.784 20.935 0l86.338-86.338c5.784-5.784 5.784-15.17 0-20.935l-67.736-67.717c-21.769-21.769-27.989-52.983-16.194-81.427 11.776-28.444 38.229-46.118 69.025-46.118h95.801c8.154 0.019 14.791-6.618 14.791-14.772v-122.121zM512 618.667c-94.113 0-170.667-76.553-170.667-170.667s76.553-170.667 170.667-170.667c94.113 0 170.667 76.553 170.667 170.667s-76.553 170.667-170.667 170.667zM512 315.259c-73.178 0-132.741 59.563-132.741 132.741s59.563 132.741 132.741 132.741c73.178 0 132.741-59.563 132.741-132.741s-59.563-132.741-132.741-132.741z" />
diff --git a/cds-ui/designer-client/src/assets/icomoon/fonts/icomoon.ttf b/cds-ui/designer-client/src/assets/icomoon/fonts/icomoon.ttf
index 85433c9af..d08d2740b 100755
--- a/cds-ui/designer-client/src/assets/icomoon/fonts/icomoon.ttf
+++ b/cds-ui/designer-client/src/assets/icomoon/fonts/icomoon.ttf
Binary files differ
diff --git a/cds-ui/designer-client/src/assets/icomoon/fonts/icomoon.woff b/cds-ui/designer-client/src/assets/icomoon/fonts/icomoon.woff
index 7062f6c01..b6d35bcac 100755
--- a/cds-ui/designer-client/src/assets/icomoon/fonts/icomoon.woff
+++ b/cds-ui/designer-client/src/assets/icomoon/fonts/icomoon.woff
Binary files differ
diff --git a/cds-ui/designer-client/src/assets/icomoon/style.css b/cds-ui/designer-client/src/assets/icomoon/style.css
index 4e99ab416..dc7de38e5 100755
--- a/cds-ui/designer-client/src/assets/icomoon/style.css
+++ b/cds-ui/designer-client/src/assets/icomoon/style.css
@@ -1,10 +1,10 @@
@font-face {
font-family: 'icomoon';
- src: url('fonts/icomoon.eot?njx1om');
- src: url('fonts/icomoon.eot?njx1om#iefix') format('embedded-opentype'),
- url('fonts/icomoon.ttf?njx1om') format('truetype'),
- url('fonts/icomoon.woff?njx1om') format('woff'),
- url('fonts/icomoon.svg?njx1om#icomoon') format('svg');
+ src: url('fonts/icomoon.eot?hdnbak');
+ src: url('fonts/icomoon.eot?hdnbak#iefix') format('embedded-opentype'),
+ url('fonts/icomoon.ttf?hdnbak') format('truetype'),
+ url('fonts/icomoon.woff?hdnbak') format('woff'),
+ url('fonts/icomoon.svg?hdnbak#icomoon') format('svg');
font-weight: normal;
font-style: normal;
font-display: block;
@@ -35,6 +35,14 @@
-moz-osx-font-smoothing: grayscale;
}
+.icon-action-back:before {
+ content: "\e904";
+ color: #1b3e6f;
+}
+.icon-action-close:before {
+ content: "\e903";
+ color: #1b3e6f;
+}
.icon-enter-link:before {
content: "\e902";
}
diff --git a/cds-ui/designer-client/src/assets/img/icon-action-custom-hover.svg b/cds-ui/designer-client/src/assets/img/icon-action-custom-hover.svg
new file mode 100644
index 000000000..593fc5cc7
--- /dev/null
+++ b/cds-ui/designer-client/src/assets/img/icon-action-custom-hover.svg
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="131px" height="157px" viewBox="0 0 131 157" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!-- Generator: Sketch 61.2 (89653) - https://sketch.com -->
+ <title>icon+hover</title>
+ <desc>Created with Sketch.</desc>
+ <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+ <g id="7.1.1-Designer---Blank-action" transform="translate(-280.000000, -393.000000)" fill-rule="nonzero">
+ <g id="modal-new" transform="translate(120.000000, 222.000000)">
+ <g id="options" transform="translate(100.000000, 132.000000)">
+ <g id="custom">
+ <g id="icon+text" transform="translate(30.000000, 40.000000)">
+ <g id="icon+hover" transform="translate(30.000000, 0.000000)">
+ <g id="Group" transform="translate(-0.000000, 7.222222)">
+ <polygon id="Path" fill="#E0E8F2" points="113.218678 86.6995804 11.9100839 86.3986545 11.6173865 11.7737269 11.9100839 11.7737269 11.9100839 7.25043403 0 7.25043403 0 98.6096644 115.480324 98.6096644 115.480324 86.6995804"></polygon>
+ <polygon id="Path" fill="#5DBDBA" points="21.5585214 0.0141059028 26.3827402 0.0141059028 26.3827402 4.53739873 21.5585214 4.53739873"></polygon>
+ <polygon id="Path" fill="#5DBDBA" points="31.2069589 0.0141059028 36.0311777 0.0141059028 36.0311777 4.53739873 31.2069589 4.53739873"></polygon>
+ <polygon id="Path" fill="#5DBDBA" points="40.8553964 0.0141059028 45.6796152 0.0141059028 45.6796152 4.53739873 40.8553964 4.53739873"></polygon>
+ </g>
+ <path d="M125.279225,-3.83693077e-13 L14.3221933,-3.83693077e-13 C11.7443396,-3.83693077e-13 9.6484375,2.09590213 9.6484375,4.67375579 L9.6484375,96.1834491 L120.455006,96.1834491 L120.455006,91.6601562 L14.1717303,91.6601562 L14.1717303,18.9959491 L125.429687,18.9959491 L125.429687,110.806568 C125.429687,110.890028 125.362685,110.957031 125.279225,110.957031 L96.333912,110.957031 C93.7572338,110.957031 91.6601562,113.054109 91.6601562,115.630787 L91.6601562,120.605469 L12.0605469,120.605469 L12.0605469,154.074074 L117.892433,154.074074 L117.892433,120.605469 L96.1834491,120.605469 L96.1834491,115.630787 C96.1834491,115.547327 96.2516275,115.480324 96.333912,115.480324 L125.279225,115.480324 C127.855903,115.480324 129.95298,113.383247 129.95298,110.806568 L129.95298,4.67375579 C129.95298,2.09590213 127.855903,-3.83693077e-13 125.279225,-3.83693077e-13 Z M60.0018084,125.128762 L69.9511719,125.128762 L69.9511719,130.253906 L60.0018084,130.253906 L60.0018084,125.128762 Z M60.0018084,134.777199 L69.9511719,134.777199 L69.9511719,139.902344 L60.0018084,139.902344 L60.0018084,134.777199 Z M45.5291522,125.128762 L55.4785156,125.128762 L55.4785156,130.253906 L45.5291522,130.253906 L45.5291522,125.128762 Z M45.5291522,134.777199 L55.4785156,134.777199 L55.4785156,139.902344 L45.5291522,139.902344 L45.5291522,134.777199 Z M26.5332031,149.550781 L16.5838397,149.550781 L16.5838397,144.425637 L26.5332031,144.425637 L26.5332031,149.550781 Z M26.5332031,139.902344 L16.5838397,139.902344 L16.5838397,134.777199 L26.5332031,134.777199 L26.5332031,139.902344 Z M26.5332031,130.253906 L16.5838397,130.253906 L16.5838397,125.128762 L26.5332031,125.128762 L26.5332031,130.253906 Z M41.0058594,149.550781 L31.0564959,149.550781 L31.0564959,144.425637 L41.0058594,144.425637 L41.0058594,149.550781 Z M41.0058594,139.902344 L31.0564959,139.902344 L31.0564959,134.777199 L41.0058594,134.777199 L41.0058594,139.902344 Z M41.0058594,130.253906 L31.0564959,130.253906 L31.0564959,125.128762 L41.0058594,125.128762 L41.0058594,130.253906 Z M84.4238281,149.550781 L45.5291522,149.550781 L45.5291522,144.425637 L84.4238281,144.425637 L84.4238281,149.550781 Z M84.4238281,139.902344 L74.4744647,139.902344 L74.4744647,134.777199 L84.4238281,134.777199 L84.4238281,139.902344 Z M84.4238281,130.253906 L74.4744647,130.253906 L74.4744647,125.128762 L84.4238281,125.128762 L84.4238281,130.253906 Z M98.8964844,149.550781 L88.9471209,149.550781 L88.9471209,144.425637 L98.8964844,144.425637 L98.8964844,149.550781 Z M98.8964844,139.902344 L88.9471209,139.902344 L88.9471209,134.777199 L98.8964844,134.777199 L98.8964844,139.902344 Z M103.419777,125.128762 L113.369141,125.128762 L113.369141,130.253906 L103.419777,130.253906 L103.419777,125.128762 Z M103.419777,134.777199 L113.369141,134.777199 L113.369141,139.902344 L103.419777,139.902344 L103.419777,134.777199 Z M103.419777,144.425637 L113.369141,144.425637 L113.369141,149.550781 L103.419777,149.550781 L103.419777,144.425637 Z M98.8964844,130.253906 L88.9471209,130.253906 L88.9471209,125.128762 L98.8964844,125.128762 L98.8964844,130.253906 Z M14.1717303,14.4726562 L14.1717303,4.67375579 C14.1717303,4.59029579 14.2387333,4.52329282 14.3221933,4.52329282 L125.279225,4.52329282 C125.362685,4.52329282 125.429688,4.59029579 125.429688,4.67375579 L125.429688,14.4726562 L14.1717303,14.4726562 Z" id="Shape" stroke="#FFFFFF" stroke-width="2" fill="#1B3E6F"></path>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+</svg> \ No newline at end of file
diff --git a/cds-ui/designer-client/src/assets/img/icon-action-custom.svg b/cds-ui/designer-client/src/assets/img/icon-action-custom.svg
new file mode 100644
index 000000000..2ecdf204c
--- /dev/null
+++ b/cds-ui/designer-client/src/assets/img/icon-action-custom.svg
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="131px" height="157px" viewBox="0 0 131 157" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!-- Generator: Sketch 61.2 (89653) - https://sketch.com -->
+ <title>icon</title>
+ <desc>Created with Sketch.</desc>
+ <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+ <g id="7.0-Designer---First-action-options" transform="translate(-280.000000, -393.000000)" fill-rule="nonzero">
+ <g id="modal-new" transform="translate(120.000000, 222.000000)">
+ <g id="options" transform="translate(100.000000, 132.000000)">
+ <g id="custom">
+ <g id="icon+text" transform="translate(30.000000, 40.000000)">
+ <g id="icon" transform="translate(30.000000, 0.000000)">
+ <g id="Group" transform="translate(-0.000000, 7.222222)" fill="#E0E8F2">
+ <polygon id="Path" points="113.218678 86.6995804 11.9100839 86.3986545 11.6173865 11.7737269 11.9100839 11.7737269 11.9100839 7.25043403 0 7.25043403 0 98.6096644 115.480324 98.6096644 115.480324 86.6995804"></polygon>
+ <polygon id="Path" points="21.5585214 0.0141059028 26.3827402 0.0141059028 26.3827402 4.53739873 21.5585214 4.53739873"></polygon>
+ <polygon id="Path" points="31.2069589 0.0141059028 36.0311777 0.0141059028 36.0311777 4.53739873 31.2069589 4.53739873"></polygon>
+ <polygon id="Path" points="40.8553964 0.0141059028 45.6796152 0.0141059028 45.6796152 4.53739873 40.8553964 4.53739873"></polygon>
+ </g>
+ <path d="M125.279225,-3.83693077e-13 L14.3221933,-3.83693077e-13 C11.7443396,-3.83693077e-13 9.6484375,2.09590213 9.6484375,4.67375579 L9.6484375,96.1834491 L120.455006,96.1834491 L120.455006,91.6601562 L14.1717303,91.6601562 L14.1717303,18.9959491 L125.429687,18.9959491 L125.429687,110.806568 C125.429687,110.890028 125.362685,110.957031 125.279225,110.957031 L96.333912,110.957031 C93.7572338,110.957031 91.6601562,113.054109 91.6601562,115.630787 L91.6601562,120.605469 L12.0605469,120.605469 L12.0605469,154.074074 L117.892433,154.074074 L117.892433,120.605469 L96.1834491,120.605469 L96.1834491,115.630787 C96.1834491,115.547327 96.2516275,115.480324 96.333912,115.480324 L125.279225,115.480324 C127.855903,115.480324 129.95298,113.383247 129.95298,110.806568 L129.95298,4.67375579 C129.95298,2.09590213 127.855903,-3.83693077e-13 125.279225,-3.83693077e-13 Z M60.0018084,125.128762 L69.9511719,125.128762 L69.9511719,130.253906 L60.0018084,130.253906 L60.0018084,125.128762 Z M60.0018084,134.777199 L69.9511719,134.777199 L69.9511719,139.902344 L60.0018084,139.902344 L60.0018084,134.777199 Z M45.5291522,125.128762 L55.4785156,125.128762 L55.4785156,130.253906 L45.5291522,130.253906 L45.5291522,125.128762 Z M45.5291522,134.777199 L55.4785156,134.777199 L55.4785156,139.902344 L45.5291522,139.902344 L45.5291522,134.777199 Z M26.5332031,149.550781 L16.5838397,149.550781 L16.5838397,144.425637 L26.5332031,144.425637 L26.5332031,149.550781 Z M26.5332031,139.902344 L16.5838397,139.902344 L16.5838397,134.777199 L26.5332031,134.777199 L26.5332031,139.902344 Z M26.5332031,130.253906 L16.5838397,130.253906 L16.5838397,125.128762 L26.5332031,125.128762 L26.5332031,130.253906 Z M41.0058594,149.550781 L31.0564959,149.550781 L31.0564959,144.425637 L41.0058594,144.425637 L41.0058594,149.550781 Z M41.0058594,139.902344 L31.0564959,139.902344 L31.0564959,134.777199 L41.0058594,134.777199 L41.0058594,139.902344 Z M41.0058594,130.253906 L31.0564959,130.253906 L31.0564959,125.128762 L41.0058594,125.128762 L41.0058594,130.253906 Z M84.4238281,149.550781 L45.5291522,149.550781 L45.5291522,144.425637 L84.4238281,144.425637 L84.4238281,149.550781 Z M84.4238281,139.902344 L74.4744647,139.902344 L74.4744647,134.777199 L84.4238281,134.777199 L84.4238281,139.902344 Z M84.4238281,130.253906 L74.4744647,130.253906 L74.4744647,125.128762 L84.4238281,125.128762 L84.4238281,130.253906 Z M98.8964844,149.550781 L88.9471209,149.550781 L88.9471209,144.425637 L98.8964844,144.425637 L98.8964844,149.550781 Z M98.8964844,139.902344 L88.9471209,139.902344 L88.9471209,134.777199 L98.8964844,134.777199 L98.8964844,139.902344 Z M103.419777,125.128762 L113.369141,125.128762 L113.369141,130.253906 L103.419777,130.253906 L103.419777,125.128762 Z M103.419777,134.777199 L113.369141,134.777199 L113.369141,139.902344 L103.419777,139.902344 L103.419777,134.777199 Z M103.419777,144.425637 L113.369141,144.425637 L113.369141,149.550781 L103.419777,149.550781 L103.419777,144.425637 Z M98.8964844,130.253906 L88.9471209,130.253906 L88.9471209,125.128762 L98.8964844,125.128762 L98.8964844,130.253906 Z M14.1717303,14.4726562 L14.1717303,4.67375579 C14.1717303,4.59029579 14.2387333,4.52329282 14.3221933,4.52329282 L125.279225,4.52329282 C125.362685,4.52329282 125.429688,4.59029579 125.429688,4.67375579 L125.429688,14.4726562 L14.1717303,14.4726562 Z" id="Shape" stroke="#FFFFFF" stroke-width="2" fill="#1B3E6F"></path>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+</svg> \ No newline at end of file
diff --git a/cds-ui/designer-client/src/assets/img/icon-action-default-hover.svg b/cds-ui/designer-client/src/assets/img/icon-action-default-hover.svg
new file mode 100644
index 000000000..22959e9f0
--- /dev/null
+++ b/cds-ui/designer-client/src/assets/img/icon-action-default-hover.svg
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="131px" height="157px" viewBox="0 0 131 157" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!-- Generator: Sketch 61.2 (89653) - https://sketch.com -->
+ <title>icon-hover</title>
+ <desc>Created with Sketch.</desc>
+ <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+ <g id="7.2.1-Designer---Default-action" transform="translate(-530.000000, -393.000000)" fill-rule="nonzero">
+ <g id="modal-new" transform="translate(120.000000, 222.000000)">
+ <g id="options" transform="translate(130.000000, 132.000000)">
+ <g id="default" transform="translate(220.000000, 0.000000)">
+ <g id="icon+text" transform="translate(30.000000, 40.000000)">
+ <g id="icon-hover" transform="translate(30.000000, 0.000000)">
+ <g id="Group" transform="translate(0.000000, 7.222222)">
+ <polygon id="Path" fill="#E0E8F2" points="110.957031 86.6995804 110.957031 86.8406395 12.0605469 86.3986545 11.4751518 11.7737269 11.9100839 11.7737269 11.9100839 7.25043403 0 7.25043403 0 98.6096644 115.480324 98.6096644 115.480324 86.6995804"></polygon>
+ <polygon id="Path" fill="#5DBDBA" points="21.5585214 0.0141059028 26.3827402 0.0141059028 26.3827402 4.53739873 21.5585214 4.53739873"></polygon>
+ <polygon id="Path" fill="#5DBDBA" points="31.2069589 0.0141059028 36.0311777 0.0141059028 36.0311777 4.53739873 31.2069589 4.53739873"></polygon>
+ <polygon id="Path" fill="#5DBDBA" points="40.8553964 0.0141059028 45.6796152 0.0141059028 45.6796152 4.53739873 40.8553964 4.53739873"></polygon>
+ </g>
+ <path d="M129.95298,38.443287 C129.95298,29.2156758 122.446289,21.7089844 113.218678,21.7089844 C103.991066,21.7089844 96.484375,29.2156758 96.484375,38.443287 C96.484375,46.9033022 102.796766,53.9127604 110.957031,55.0200739 L110.957031,62.5643808 L115.480324,62.5643808 L115.480324,55.0200739 C123.641764,53.9127604 129.95298,46.9033022 129.95298,38.443287 Z M113.218678,50.6542969 C106.48546,50.6542969 101.007668,45.1765046 101.007668,38.443287 C101.007668,31.7100694 106.48546,26.2322772 113.218678,26.2322772 C119.951895,26.2322772 125.429688,31.7100694 125.429688,38.443287 C125.429688,45.1765046 119.951895,50.6542969 113.218678,50.6542969 Z" id="Shape" stroke="#FFFFFF" stroke-width="2" fill="#1B3E6F"></path>
+ <path d="M106.132812,60.3027344 L106.132812,79.4491464 C106.132812,82.0258247 108.22989,84.1229022 110.806568,84.1229022 L115.630787,84.1229022 C118.207465,84.1229022 120.304543,82.0258247 120.304543,79.4491464 L120.304543,60.3027344 L106.132812,60.3027344 Z" id="Path" fill="#E0E8F2"></path>
+ <path d="M125.279225,-5.40012479e-13 L14.3221933,-5.40012479e-13 C11.7443396,-5.40012479e-13 9.6484375,2.09590213 9.6484375,4.67375579 L9.6484375,96.1834491 L120.455006,96.1834491 L120.455006,91.6601562 L14.1717303,91.6601562 L14.1717303,18.9959491 L125.429688,18.9959491 L125.429688,23.9706308 L129.95298,23.9706308 L129.95298,4.67375579 C129.95298,2.09590213 127.855903,-5.40012479e-13 125.279225,-5.40012479e-13 Z M14.1717303,14.4726562 L14.1717303,4.67375579 C14.1717303,4.59029579 14.2387333,4.52329282 14.3221933,4.52329282 L125.279225,4.52329282 C125.362685,4.52329282 125.429688,4.59029579 125.429688,4.67375579 L125.429688,14.4726562 L14.1717303,14.4726562 Z" id="Shape" stroke="#FFFFFF" stroke-width="2" fill="#1B3E6F"></path>
+ <path d="M125.429688,110.806568 C125.429688,110.890028 125.362685,110.957031 125.279225,110.957031 L96.333912,110.957031 C93.7572338,110.957031 91.6601563,113.054109 91.6601563,115.630787 L91.6601563,120.605469 L12.0605469,120.605469 L12.0605469,154.074074 L117.892433,154.074074 L117.892433,120.605469 L96.1834491,120.605469 L96.1834491,115.630787 C96.1834491,115.548502 96.250452,115.480324 96.333912,115.480324 L125.279225,115.480324 C127.855903,115.480324 129.95298,113.383247 129.95298,110.806568 L129.95298,52.9159433 L125.429688,52.9159433 L125.429688,110.806568 Z M60.0018084,125.128762 L69.9511719,125.128762 L69.9511719,130.253906 L60.0018084,130.253906 L60.0018084,125.128762 Z M60.0018084,134.777199 L69.9511719,134.777199 L69.9511719,139.902344 L60.0018084,139.902344 L60.0018084,134.777199 Z M45.5291522,125.128762 L55.4785156,125.128762 L55.4785156,130.253906 L45.5291522,130.253906 L45.5291522,125.128762 Z M45.5291522,134.777199 L55.4785156,134.777199 L55.4785156,139.902344 L45.5291522,139.902344 L45.5291522,134.777199 Z M26.5332031,149.550781 L16.5838397,149.550781 L16.5838397,144.425637 L26.5332031,144.425637 L26.5332031,149.550781 Z M26.5332031,139.902344 L16.5838397,139.902344 L16.5838397,134.777199 L26.5332031,134.777199 L26.5332031,139.902344 Z M26.5332031,130.253906 L16.5838397,130.253906 L16.5838397,125.128762 L26.5332031,125.128762 L26.5332031,130.253906 Z M41.0058594,149.550781 L31.0564959,149.550781 L31.0564959,144.425637 L41.0058594,144.425637 L41.0058594,149.550781 Z M41.0058594,139.902344 L31.0564959,139.902344 L31.0564959,134.777199 L41.0058594,134.777199 L41.0058594,139.902344 Z M41.0058594,130.253906 L31.0564959,130.253906 L31.0564959,125.128762 L41.0058594,125.128762 L41.0058594,130.253906 Z M84.4238281,149.550781 L45.5291522,149.550781 L45.5291522,144.425637 L84.4238281,144.425637 L84.4238281,149.550781 Z M84.4238281,139.902344 L74.4744647,139.902344 L74.4744647,134.777199 L84.4238281,134.777199 L84.4238281,139.902344 Z M84.4238281,130.253906 L74.4744647,130.253906 L74.4744647,125.128762 L84.4238281,125.128762 L84.4238281,130.253906 Z M98.8964844,149.550781 L88.9471209,149.550781 L88.9471209,144.425637 L98.8964844,144.425637 L98.8964844,149.550781 Z M98.8964844,139.902344 L88.9471209,139.902344 L88.9471209,134.777199 L98.8964844,134.777199 L98.8964844,139.902344 Z M103.419777,125.128762 L113.369141,125.128762 L113.369141,130.253906 L103.419777,130.253906 L103.419777,125.128762 Z M103.419777,134.777199 L113.369141,134.777199 L113.369141,139.902344 L103.419777,139.902344 L103.419777,134.777199 Z M103.419777,144.425637 L113.369141,144.425637 L113.369141,149.550781 L103.419777,149.550781 L103.419777,144.425637 Z M98.8964844,125.128762 L98.8964844,130.253906 L88.9471209,130.253906 L88.9471209,125.128762 L98.8964844,125.128762 Z" id="Shape" stroke="#FFFFFF" stroke-width="2" fill="#1B3E6F"></path>
+ <g id="action" transform="translate(34.000000, 35.000000)">
+ <g id="1">
+ <g id="Group" transform="translate(2.836930, 2.684715)" fill="#E0E8F2">
+ <polygon id="Path" points="0.349703874 0.411818739 9.98166155 0.411818739 9.98166155 5.18449572 0.349703874 5.18449572"></polygon>
+ <polygon id="Path" points="5.90316753 12.212929 9.98166155 12.212929 9.98166155 16.291423 5.90316753 16.291423"></polygon>
+ </g>
+ <path d="M0.40990173,21.7528702 L15.5953231,21.7528702 L15.5953231,0.319802285 L0.40990173,0.319802285 L0.40990173,21.7528702 Z M1.71166392,1.62156448 L14.2935609,1.62156448 L14.2935609,20.451108 L1.71166392,20.451108 L1.71166392,1.62156448 Z" id="Shape" fill="#1B3E6F"></path>
+ <path d="M8.74009721,13.4226747 L12.8185912,13.4226747 L12.8185912,9.34418073 L8.74009721,9.34418073 L8.74009721,13.4226747 Z M10.0418594,10.6459429 L11.516829,10.6459429 L11.516829,12.1209126 L10.0418594,12.1209126 L10.0418594,10.6459429 Z" id="Shape" fill="#5DBDBA"></path>
+ <path d="M3.18663356,18.9761384 L7.26512758,18.9761384 L7.26512758,14.8976444 L3.18663356,14.8976444 L3.18663356,18.9761384 Z M4.48839575,16.1994066 L5.96336539,16.1994066 L5.96336539,17.6743762 L4.48839575,17.6743762 L4.48839575,16.1994066 Z" id="Shape" fill="#5DBDBA"></path>
+ <path d="M3.18663356,13.4226747 L7.26512758,13.4226747 L7.26512758,9.34418073 L3.18663356,9.34418073 L3.18663356,13.4226747 Z M4.48839575,10.6459429 L5.96336539,10.6459429 L5.96336539,12.1209126 L4.48839575,12.1209126 L4.48839575,10.6459429 Z" id="Shape" fill="#5DBDBA"></path>
+ </g>
+ <g id="2" transform="translate(21.000000, 0.000000)">
+ <g id="Group" transform="translate(2.836930, 2.684715)" fill="#E0E8F2">
+ <polygon id="Path" points="0.349703874 0.411818739 9.98166155 0.411818739 9.98166155 5.18449572 0.349703874 5.18449572"></polygon>
+ <polygon id="Path" points="5.90316753 12.212929 9.98166155 12.212929 9.98166155 16.291423 5.90316753 16.291423"></polygon>
+ </g>
+ <path d="M0.40990173,21.7528702 L15.5953231,21.7528702 L15.5953231,0.319802285 L0.40990173,0.319802285 L0.40990173,21.7528702 Z M1.71166392,1.62156448 L14.2935609,1.62156448 L14.2935609,20.451108 L1.71166392,20.451108 L1.71166392,1.62156448 Z" id="Shape" fill="#1B3E6F"></path>
+ <path d="M8.74009721,13.4226747 L12.8185912,13.4226747 L12.8185912,9.34418073 L8.74009721,9.34418073 L8.74009721,13.4226747 Z M10.0418594,10.6459429 L11.516829,10.6459429 L11.516829,12.1209126 L10.0418594,12.1209126 L10.0418594,10.6459429 Z" id="Shape" fill="#5DBDBA"></path>
+ <path d="M3.18663356,18.9761384 L7.26512758,18.9761384 L7.26512758,14.8976444 L3.18663356,14.8976444 L3.18663356,18.9761384 Z M4.48839575,16.1994066 L5.96336539,16.1994066 L5.96336539,17.6743762 L4.48839575,17.6743762 L4.48839575,16.1994066 Z" id="Shape" fill="#5DBDBA"></path>
+ <path d="M3.18663356,13.4226747 L7.26512758,13.4226747 L7.26512758,9.34418073 L3.18663356,9.34418073 L3.18663356,13.4226747 Z M4.48839575,10.6459429 L5.96336539,10.6459429 L5.96336539,12.1209126 L4.48839575,12.1209126 L4.48839575,10.6459429 Z" id="Shape" fill="#5DBDBA"></path>
+ </g>
+ <g id="3" transform="translate(41.000000, 0.000000)">
+ <g id="Group" transform="translate(2.836930, 2.684715)" fill="#E0E8F2">
+ <polygon id="Path" points="0.349703874 0.411818739 9.98166155 0.411818739 9.98166155 5.18449572 0.349703874 5.18449572"></polygon>
+ <polygon id="Path" points="5.90316753 12.212929 9.98166155 12.212929 9.98166155 16.291423 5.90316753 16.291423"></polygon>
+ </g>
+ <path d="M0.40990173,21.7528702 L15.5953231,21.7528702 L15.5953231,0.319802285 L0.40990173,0.319802285 L0.40990173,21.7528702 Z M1.71166392,1.62156448 L14.2935609,1.62156448 L14.2935609,20.451108 L1.71166392,20.451108 L1.71166392,1.62156448 Z" id="Shape" fill="#1B3E6F"></path>
+ <path d="M8.74009721,13.4226747 L12.8185912,13.4226747 L12.8185912,9.34418073 L8.74009721,9.34418073 L8.74009721,13.4226747 Z M10.0418594,10.6459429 L11.516829,10.6459429 L11.516829,12.1209126 L10.0418594,12.1209126 L10.0418594,10.6459429 Z" id="Shape" fill="#5DBDBA"></path>
+ <path d="M3.18663356,18.9761384 L7.26512758,18.9761384 L7.26512758,14.8976444 L3.18663356,14.8976444 L3.18663356,18.9761384 Z M4.48839575,16.1994066 L5.96336539,16.1994066 L5.96336539,17.6743762 L4.48839575,17.6743762 L4.48839575,16.1994066 Z" id="Shape" fill="#5DBDBA"></path>
+ <path d="M3.18663356,13.4226747 L7.26512758,13.4226747 L7.26512758,9.34418073 L3.18663356,9.34418073 L3.18663356,13.4226747 Z M4.48839575,10.6459429 L5.96336539,10.6459429 L5.96336539,12.1209126 L4.48839575,12.1209126 L4.48839575,10.6459429 Z" id="Shape" fill="#5DBDBA"></path>
+ </g>
+ <g id="4" transform="translate(0.000000, 25.000000)">
+ <g id="Group" transform="translate(2.836930, 2.684715)" fill="#E0E8F2">
+ <polygon id="Path" points="0.349703874 0.411818739 9.98166155 0.411818739 9.98166155 5.18449572 0.349703874 5.18449572"></polygon>
+ <polygon id="Path" points="5.90316753 12.212929 9.98166155 12.212929 9.98166155 16.291423 5.90316753 16.291423"></polygon>
+ </g>
+ <path d="M0.40990173,21.7528702 L15.5953231,21.7528702 L15.5953231,0.319802285 L0.40990173,0.319802285 L0.40990173,21.7528702 Z M1.71166392,1.62156448 L14.2935609,1.62156448 L14.2935609,20.451108 L1.71166392,20.451108 L1.71166392,1.62156448 Z" id="Shape" fill="#1B3E6F"></path>
+ <path d="M8.74009721,13.4226747 L12.8185912,13.4226747 L12.8185912,9.34418073 L8.74009721,9.34418073 L8.74009721,13.4226747 Z M10.0418594,10.6459429 L11.516829,10.6459429 L11.516829,12.1209126 L10.0418594,12.1209126 L10.0418594,10.6459429 Z" id="Shape" fill="#5DBDBA"></path>
+ <path d="M3.18663356,18.9761384 L7.26512758,18.9761384 L7.26512758,14.8976444 L3.18663356,14.8976444 L3.18663356,18.9761384 Z M4.48839575,16.1994066 L5.96336539,16.1994066 L5.96336539,17.6743762 L4.48839575,17.6743762 L4.48839575,16.1994066 Z" id="Shape" fill="#5DBDBA"></path>
+ <path d="M3.18663356,13.4226747 L7.26512758,13.4226747 L7.26512758,9.34418073 L3.18663356,9.34418073 L3.18663356,13.4226747 Z M4.48839575,10.6459429 L5.96336539,10.6459429 L5.96336539,12.1209126 L4.48839575,12.1209126 L4.48839575,10.6459429 Z" id="Shape" fill="#5DBDBA"></path>
+ </g>
+ <g id="5" transform="translate(21.000000, 25.000000)">
+ <g id="Group" transform="translate(2.836930, 2.684715)" fill="#E0E8F2">
+ <polygon id="Path" points="0.349703874 0.411818739 9.98166155 0.411818739 9.98166155 5.18449572 0.349703874 5.18449572"></polygon>
+ <polygon id="Path" points="5.90316753 12.212929 9.98166155 12.212929 9.98166155 16.291423 5.90316753 16.291423"></polygon>
+ </g>
+ <path d="M0.40990173,21.7528702 L15.5953231,21.7528702 L15.5953231,0.319802285 L0.40990173,0.319802285 L0.40990173,21.7528702 Z M1.71166392,1.62156448 L14.2935609,1.62156448 L14.2935609,20.451108 L1.71166392,20.451108 L1.71166392,1.62156448 Z" id="Shape" fill="#1B3E6F"></path>
+ <path d="M8.74009721,13.4226747 L12.8185912,13.4226747 L12.8185912,9.34418073 L8.74009721,9.34418073 L8.74009721,13.4226747 Z M10.0418594,10.6459429 L11.516829,10.6459429 L11.516829,12.1209126 L10.0418594,12.1209126 L10.0418594,10.6459429 Z" id="Shape" fill="#5DBDBA"></path>
+ <path d="M3.18663356,18.9761384 L7.26512758,18.9761384 L7.26512758,14.8976444 L3.18663356,14.8976444 L3.18663356,18.9761384 Z M4.48839575,16.1994066 L5.96336539,16.1994066 L5.96336539,17.6743762 L4.48839575,17.6743762 L4.48839575,16.1994066 Z" id="Shape" fill="#5DBDBA"></path>
+ <path d="M3.18663356,13.4226747 L7.26512758,13.4226747 L7.26512758,9.34418073 L3.18663356,9.34418073 L3.18663356,13.4226747 Z M4.48839575,10.6459429 L5.96336539,10.6459429 L5.96336539,12.1209126 L4.48839575,12.1209126 L4.48839575,10.6459429 Z" id="Shape" fill="#5DBDBA"></path>
+ </g>
+ <g id="6" transform="translate(41.000000, 25.000000)">
+ <g id="Group" transform="translate(2.836930, 2.684715)" fill="#E0E8F2">
+ <polygon id="Path" points="0.349703874 0.411818739 9.98166155 0.411818739 9.98166155 5.18449572 0.349703874 5.18449572"></polygon>
+ <polygon id="Path" points="5.90316753 12.212929 9.98166155 12.212929 9.98166155 16.291423 5.90316753 16.291423"></polygon>
+ </g>
+ <path d="M0.40990173,21.7528702 L15.5953231,21.7528702 L15.5953231,0.319802285 L0.40990173,0.319802285 L0.40990173,21.7528702 Z M1.71166392,1.62156448 L14.2935609,1.62156448 L14.2935609,20.451108 L1.71166392,20.451108 L1.71166392,1.62156448 Z" id="Shape" fill="#1B3E6F"></path>
+ <path d="M8.74009721,13.4226747 L12.8185912,13.4226747 L12.8185912,9.34418073 L8.74009721,9.34418073 L8.74009721,13.4226747 Z M10.0418594,10.6459429 L11.516829,10.6459429 L11.516829,12.1209126 L10.0418594,12.1209126 L10.0418594,10.6459429 Z" id="Shape" fill="#5DBDBA"></path>
+ <path d="M3.18663356,18.9761384 L7.26512758,18.9761384 L7.26512758,14.8976444 L3.18663356,14.8976444 L3.18663356,18.9761384 Z M4.48839575,16.1994066 L5.96336539,16.1994066 L5.96336539,17.6743762 L4.48839575,17.6743762 L4.48839575,16.1994066 Z" id="Shape" fill="#5DBDBA"></path>
+ <path d="M3.18663356,13.4226747 L7.26512758,13.4226747 L7.26512758,9.34418073 L3.18663356,9.34418073 L3.18663356,13.4226747 Z M4.48839575,10.6459429 L5.96336539,10.6459429 L5.96336539,12.1209126 L4.48839575,12.1209126 L4.48839575,10.6459429 Z" id="Shape" fill="#5DBDBA"></path>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+</svg> \ No newline at end of file
diff --git a/cds-ui/designer-client/src/assets/img/icon-action-default.svg b/cds-ui/designer-client/src/assets/img/icon-action-default.svg
new file mode 100644
index 000000000..98c1e2bd3
--- /dev/null
+++ b/cds-ui/designer-client/src/assets/img/icon-action-default.svg
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="131px" height="157px" viewBox="0 0 131 157" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!-- Generator: Sketch 61.2 (89653) - https://sketch.com -->
+ <title>icon</title>
+ <desc>Created with Sketch.</desc>
+ <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+ <g id="7.0-Designer---First-action-options" transform="translate(-530.000000, -393.000000)" fill-rule="nonzero">
+ <g id="modal-new" transform="translate(120.000000, 222.000000)">
+ <g id="options" transform="translate(100.000000, 132.000000)">
+ <g id="default" transform="translate(250.000000, 0.000000)">
+ <g id="icon+text" transform="translate(30.000000, 40.000000)">
+ <g id="icon" transform="translate(30.000000, 0.000000)">
+ <g id="Group" transform="translate(0.000000, 7.222222)" fill="#E0E8F2">
+ <polygon id="Path" points="110.957031 86.6995804 110.957031 86.8406395 12.0605469 86.3986545 11.4751518 11.7737269 11.9100839 11.7737269 11.9100839 7.25043403 0 7.25043403 0 98.6096644 115.480324 98.6096644 115.480324 86.6995804"></polygon>
+ <polygon id="Path" points="21.5585214 0.0141059028 26.3827402 0.0141059028 26.3827402 4.53739873 21.5585214 4.53739873"></polygon>
+ <polygon id="Path" points="31.2069589 0.0141059028 36.0311777 0.0141059028 36.0311777 4.53739873 31.2069589 4.53739873"></polygon>
+ <polygon id="Path" points="40.8553964 0.0141059028 45.6796152 0.0141059028 45.6796152 4.53739873 40.8553964 4.53739873"></polygon>
+ </g>
+ <path d="M129.95298,38.443287 C129.95298,29.2156758 122.446289,21.7089844 113.218678,21.7089844 C103.991066,21.7089844 96.484375,29.2156758 96.484375,38.443287 C96.484375,46.9033022 102.796766,53.9127604 110.957031,55.0200739 L110.957031,62.5643808 L115.480324,62.5643808 L115.480324,55.0200739 C123.641764,53.9127604 129.95298,46.9033022 129.95298,38.443287 Z M113.218678,50.6542969 C106.48546,50.6542969 101.007668,45.1765046 101.007668,38.443287 C101.007668,31.7100694 106.48546,26.2322772 113.218678,26.2322772 C119.951895,26.2322772 125.429688,31.7100694 125.429688,38.443287 C125.429688,45.1765046 119.951895,50.6542969 113.218678,50.6542969 Z" id="Shape" stroke="#FFFFFF" stroke-width="2" fill="#1B3E6F"></path>
+ <path d="M106.132812,60.3027344 L106.132812,79.4491464 C106.132812,82.0258247 108.22989,84.1229022 110.806568,84.1229022 L115.630787,84.1229022 C118.207465,84.1229022 120.304543,82.0258247 120.304543,79.4491464 L120.304543,60.3027344 L106.132812,60.3027344 Z" id="Path" fill="#E0E8F2"></path>
+ <path d="M125.279225,-5.40012479e-13 L14.3221933,-5.40012479e-13 C11.7443396,-5.40012479e-13 9.6484375,2.09590213 9.6484375,4.67375579 L9.6484375,96.1834491 L120.455006,96.1834491 L120.455006,91.6601562 L14.1717303,91.6601562 L14.1717303,18.9959491 L125.429688,18.9959491 L125.429688,23.9706308 L129.95298,23.9706308 L129.95298,4.67375579 C129.95298,2.09590213 127.855903,-5.40012479e-13 125.279225,-5.40012479e-13 Z M14.1717303,14.4726562 L14.1717303,4.67375579 C14.1717303,4.59029579 14.2387333,4.52329282 14.3221933,4.52329282 L125.279225,4.52329282 C125.362685,4.52329282 125.429688,4.59029579 125.429688,4.67375579 L125.429688,14.4726562 L14.1717303,14.4726562 Z" id="Shape" stroke="#FFFFFF" stroke-width="2" fill="#1B3E6F"></path>
+ <path d="M125.429688,110.806568 C125.429688,110.890028 125.362685,110.957031 125.279225,110.957031 L96.333912,110.957031 C93.7572338,110.957031 91.6601563,113.054109 91.6601563,115.630787 L91.6601563,120.605469 L12.0605469,120.605469 L12.0605469,154.074074 L117.892433,154.074074 L117.892433,120.605469 L96.1834491,120.605469 L96.1834491,115.630787 C96.1834491,115.548502 96.250452,115.480324 96.333912,115.480324 L125.279225,115.480324 C127.855903,115.480324 129.95298,113.383247 129.95298,110.806568 L129.95298,52.9159433 L125.429688,52.9159433 L125.429688,110.806568 Z M60.0018084,125.128762 L69.9511719,125.128762 L69.9511719,130.253906 L60.0018084,130.253906 L60.0018084,125.128762 Z M60.0018084,134.777199 L69.9511719,134.777199 L69.9511719,139.902344 L60.0018084,139.902344 L60.0018084,134.777199 Z M45.5291522,125.128762 L55.4785156,125.128762 L55.4785156,130.253906 L45.5291522,130.253906 L45.5291522,125.128762 Z M45.5291522,134.777199 L55.4785156,134.777199 L55.4785156,139.902344 L45.5291522,139.902344 L45.5291522,134.777199 Z M26.5332031,149.550781 L16.5838397,149.550781 L16.5838397,144.425637 L26.5332031,144.425637 L26.5332031,149.550781 Z M26.5332031,139.902344 L16.5838397,139.902344 L16.5838397,134.777199 L26.5332031,134.777199 L26.5332031,139.902344 Z M26.5332031,130.253906 L16.5838397,130.253906 L16.5838397,125.128762 L26.5332031,125.128762 L26.5332031,130.253906 Z M41.0058594,149.550781 L31.0564959,149.550781 L31.0564959,144.425637 L41.0058594,144.425637 L41.0058594,149.550781 Z M41.0058594,139.902344 L31.0564959,139.902344 L31.0564959,134.777199 L41.0058594,134.777199 L41.0058594,139.902344 Z M41.0058594,130.253906 L31.0564959,130.253906 L31.0564959,125.128762 L41.0058594,125.128762 L41.0058594,130.253906 Z M84.4238281,149.550781 L45.5291522,149.550781 L45.5291522,144.425637 L84.4238281,144.425637 L84.4238281,149.550781 Z M84.4238281,139.902344 L74.4744647,139.902344 L74.4744647,134.777199 L84.4238281,134.777199 L84.4238281,139.902344 Z M84.4238281,130.253906 L74.4744647,130.253906 L74.4744647,125.128762 L84.4238281,125.128762 L84.4238281,130.253906 Z M98.8964844,149.550781 L88.9471209,149.550781 L88.9471209,144.425637 L98.8964844,144.425637 L98.8964844,149.550781 Z M98.8964844,139.902344 L88.9471209,139.902344 L88.9471209,134.777199 L98.8964844,134.777199 L98.8964844,139.902344 Z M103.419777,125.128762 L113.369141,125.128762 L113.369141,130.253906 L103.419777,130.253906 L103.419777,125.128762 Z M103.419777,134.777199 L113.369141,134.777199 L113.369141,139.902344 L103.419777,139.902344 L103.419777,134.777199 Z M103.419777,144.425637 L113.369141,144.425637 L113.369141,149.550781 L103.419777,149.550781 L103.419777,144.425637 Z M98.8964844,125.128762 L98.8964844,130.253906 L88.9471209,130.253906 L88.9471209,125.128762 L98.8964844,125.128762 Z" id="Shape" stroke="#FFFFFF" stroke-width="2" fill="#1B3E6F"></path>
+ <g id="action" transform="translate(34.000000, 35.000000)">
+ <g id="1">
+ <g id="Group" transform="translate(2.836930, 2.684715)" fill="#E0E8F2">
+ <polygon id="Path" points="0.349703874 0.411818739 9.98166155 0.411818739 9.98166155 5.18449572 0.349703874 5.18449572"></polygon>
+ <polygon id="Path" points="5.90316753 12.212929 9.98166155 12.212929 9.98166155 16.291423 5.90316753 16.291423"></polygon>
+ </g>
+ <path d="M0.40990173,21.7528702 L15.5953231,21.7528702 L15.5953231,0.319802285 L0.40990173,0.319802285 L0.40990173,21.7528702 Z M1.71166392,1.62156448 L14.2935609,1.62156448 L14.2935609,20.451108 L1.71166392,20.451108 L1.71166392,1.62156448 Z" id="Shape" fill="#1B3E6F"></path>
+ <path d="M8.74009721,13.4226747 L12.8185912,13.4226747 L12.8185912,9.34418073 L8.74009721,9.34418073 L8.74009721,13.4226747 Z M10.0418594,10.6459429 L11.516829,10.6459429 L11.516829,12.1209126 L10.0418594,12.1209126 L10.0418594,10.6459429 Z" id="Shape" fill="#1B3E6F"></path>
+ <path d="M3.18663356,18.9761384 L7.26512758,18.9761384 L7.26512758,14.8976444 L3.18663356,14.8976444 L3.18663356,18.9761384 Z M4.48839575,16.1994066 L5.96336539,16.1994066 L5.96336539,17.6743762 L4.48839575,17.6743762 L4.48839575,16.1994066 Z" id="Shape" fill="#1B3E6F"></path>
+ <path d="M3.18663356,13.4226747 L7.26512758,13.4226747 L7.26512758,9.34418073 L3.18663356,9.34418073 L3.18663356,13.4226747 Z M4.48839575,10.6459429 L5.96336539,10.6459429 L5.96336539,12.1209126 L4.48839575,12.1209126 L4.48839575,10.6459429 Z" id="Shape" fill="#1B3E6F"></path>
+ </g>
+ <g id="2" transform="translate(21.000000, 0.000000)">
+ <g id="Group" transform="translate(2.836930, 2.684715)" fill="#E0E8F2">
+ <polygon id="Path" points="0.349703874 0.411818739 9.98166155 0.411818739 9.98166155 5.18449572 0.349703874 5.18449572"></polygon>
+ <polygon id="Path" points="5.90316753 12.212929 9.98166155 12.212929 9.98166155 16.291423 5.90316753 16.291423"></polygon>
+ </g>
+ <path d="M0.40990173,21.7528702 L15.5953231,21.7528702 L15.5953231,0.319802285 L0.40990173,0.319802285 L0.40990173,21.7528702 Z M1.71166392,1.62156448 L14.2935609,1.62156448 L14.2935609,20.451108 L1.71166392,20.451108 L1.71166392,1.62156448 Z" id="Shape" fill="#1B3E6F"></path>
+ <path d="M8.74009721,13.4226747 L12.8185912,13.4226747 L12.8185912,9.34418073 L8.74009721,9.34418073 L8.74009721,13.4226747 Z M10.0418594,10.6459429 L11.516829,10.6459429 L11.516829,12.1209126 L10.0418594,12.1209126 L10.0418594,10.6459429 Z" id="Shape" fill="#1B3E6F"></path>
+ <path d="M3.18663356,18.9761384 L7.26512758,18.9761384 L7.26512758,14.8976444 L3.18663356,14.8976444 L3.18663356,18.9761384 Z M4.48839575,16.1994066 L5.96336539,16.1994066 L5.96336539,17.6743762 L4.48839575,17.6743762 L4.48839575,16.1994066 Z" id="Shape" fill="#1B3E6F"></path>
+ <path d="M3.18663356,13.4226747 L7.26512758,13.4226747 L7.26512758,9.34418073 L3.18663356,9.34418073 L3.18663356,13.4226747 Z M4.48839575,10.6459429 L5.96336539,10.6459429 L5.96336539,12.1209126 L4.48839575,12.1209126 L4.48839575,10.6459429 Z" id="Shape" fill="#1B3E6F"></path>
+ </g>
+ <g id="3" transform="translate(41.000000, 0.000000)">
+ <g id="Group" transform="translate(2.836930, 2.684715)" fill="#E0E8F2">
+ <polygon id="Path" points="0.349703874 0.411818739 9.98166155 0.411818739 9.98166155 5.18449572 0.349703874 5.18449572"></polygon>
+ <polygon id="Path" points="5.90316753 12.212929 9.98166155 12.212929 9.98166155 16.291423 5.90316753 16.291423"></polygon>
+ </g>
+ <path d="M0.40990173,21.7528702 L15.5953231,21.7528702 L15.5953231,0.319802285 L0.40990173,0.319802285 L0.40990173,21.7528702 Z M1.71166392,1.62156448 L14.2935609,1.62156448 L14.2935609,20.451108 L1.71166392,20.451108 L1.71166392,1.62156448 Z" id="Shape" fill="#1B3E6F"></path>
+ <path d="M8.74009721,13.4226747 L12.8185912,13.4226747 L12.8185912,9.34418073 L8.74009721,9.34418073 L8.74009721,13.4226747 Z M10.0418594,10.6459429 L11.516829,10.6459429 L11.516829,12.1209126 L10.0418594,12.1209126 L10.0418594,10.6459429 Z" id="Shape" fill="#1B3E6F"></path>
+ <path d="M3.18663356,18.9761384 L7.26512758,18.9761384 L7.26512758,14.8976444 L3.18663356,14.8976444 L3.18663356,18.9761384 Z M4.48839575,16.1994066 L5.96336539,16.1994066 L5.96336539,17.6743762 L4.48839575,17.6743762 L4.48839575,16.1994066 Z" id="Shape" fill="#1B3E6F"></path>
+ <path d="M3.18663356,13.4226747 L7.26512758,13.4226747 L7.26512758,9.34418073 L3.18663356,9.34418073 L3.18663356,13.4226747 Z M4.48839575,10.6459429 L5.96336539,10.6459429 L5.96336539,12.1209126 L4.48839575,12.1209126 L4.48839575,10.6459429 Z" id="Shape" fill="#1B3E6F"></path>
+ </g>
+ <g id="4" transform="translate(0.000000, 25.000000)">
+ <g id="Group" transform="translate(2.836930, 2.684715)" fill="#E0E8F2">
+ <polygon id="Path" points="0.349703874 0.411818739 9.98166155 0.411818739 9.98166155 5.18449572 0.349703874 5.18449572"></polygon>
+ <polygon id="Path" points="5.90316753 12.212929 9.98166155 12.212929 9.98166155 16.291423 5.90316753 16.291423"></polygon>
+ </g>
+ <path d="M0.40990173,21.7528702 L15.5953231,21.7528702 L15.5953231,0.319802285 L0.40990173,0.319802285 L0.40990173,21.7528702 Z M1.71166392,1.62156448 L14.2935609,1.62156448 L14.2935609,20.451108 L1.71166392,20.451108 L1.71166392,1.62156448 Z" id="Shape" fill="#1B3E6F"></path>
+ <path d="M8.74009721,13.4226747 L12.8185912,13.4226747 L12.8185912,9.34418073 L8.74009721,9.34418073 L8.74009721,13.4226747 Z M10.0418594,10.6459429 L11.516829,10.6459429 L11.516829,12.1209126 L10.0418594,12.1209126 L10.0418594,10.6459429 Z" id="Shape" fill="#1B3E6F"></path>
+ <path d="M3.18663356,18.9761384 L7.26512758,18.9761384 L7.26512758,14.8976444 L3.18663356,14.8976444 L3.18663356,18.9761384 Z M4.48839575,16.1994066 L5.96336539,16.1994066 L5.96336539,17.6743762 L4.48839575,17.6743762 L4.48839575,16.1994066 Z" id="Shape" fill="#1B3E6F"></path>
+ <path d="M3.18663356,13.4226747 L7.26512758,13.4226747 L7.26512758,9.34418073 L3.18663356,9.34418073 L3.18663356,13.4226747 Z M4.48839575,10.6459429 L5.96336539,10.6459429 L5.96336539,12.1209126 L4.48839575,12.1209126 L4.48839575,10.6459429 Z" id="Shape" fill="#1B3E6F"></path>
+ </g>
+ <g id="5" transform="translate(21.000000, 25.000000)">
+ <g id="Group" transform="translate(2.836930, 2.684715)" fill="#E0E8F2">
+ <polygon id="Path" points="0.349703874 0.411818739 9.98166155 0.411818739 9.98166155 5.18449572 0.349703874 5.18449572"></polygon>
+ <polygon id="Path" points="5.90316753 12.212929 9.98166155 12.212929 9.98166155 16.291423 5.90316753 16.291423"></polygon>
+ </g>
+ <path d="M0.40990173,21.7528702 L15.5953231,21.7528702 L15.5953231,0.319802285 L0.40990173,0.319802285 L0.40990173,21.7528702 Z M1.71166392,1.62156448 L14.2935609,1.62156448 L14.2935609,20.451108 L1.71166392,20.451108 L1.71166392,1.62156448 Z" id="Shape" fill="#1B3E6F"></path>
+ <path d="M8.74009721,13.4226747 L12.8185912,13.4226747 L12.8185912,9.34418073 L8.74009721,9.34418073 L8.74009721,13.4226747 Z M10.0418594,10.6459429 L11.516829,10.6459429 L11.516829,12.1209126 L10.0418594,12.1209126 L10.0418594,10.6459429 Z" id="Shape" fill="#1B3E6F"></path>
+ <path d="M3.18663356,18.9761384 L7.26512758,18.9761384 L7.26512758,14.8976444 L3.18663356,14.8976444 L3.18663356,18.9761384 Z M4.48839575,16.1994066 L5.96336539,16.1994066 L5.96336539,17.6743762 L4.48839575,17.6743762 L4.48839575,16.1994066 Z" id="Shape" fill="#1B3E6F"></path>
+ <path d="M3.18663356,13.4226747 L7.26512758,13.4226747 L7.26512758,9.34418073 L3.18663356,9.34418073 L3.18663356,13.4226747 Z M4.48839575,10.6459429 L5.96336539,10.6459429 L5.96336539,12.1209126 L4.48839575,12.1209126 L4.48839575,10.6459429 Z" id="Shape" fill="#1B3E6F"></path>
+ </g>
+ <g id="6" transform="translate(41.000000, 25.000000)">
+ <g id="Group" transform="translate(2.836930, 2.684715)" fill="#E0E8F2">
+ <polygon id="Path" points="0.349703874 0.411818739 9.98166155 0.411818739 9.98166155 5.18449572 0.349703874 5.18449572"></polygon>
+ <polygon id="Path" points="5.90316753 12.212929 9.98166155 12.212929 9.98166155 16.291423 5.90316753 16.291423"></polygon>
+ </g>
+ <path d="M0.40990173,21.7528702 L15.5953231,21.7528702 L15.5953231,0.319802285 L0.40990173,0.319802285 L0.40990173,21.7528702 Z M1.71166392,1.62156448 L14.2935609,1.62156448 L14.2935609,20.451108 L1.71166392,20.451108 L1.71166392,1.62156448 Z" id="Shape" fill="#1B3E6F"></path>
+ <path d="M8.74009721,13.4226747 L12.8185912,13.4226747 L12.8185912,9.34418073 L8.74009721,9.34418073 L8.74009721,13.4226747 Z M10.0418594,10.6459429 L11.516829,10.6459429 L11.516829,12.1209126 L10.0418594,12.1209126 L10.0418594,10.6459429 Z" id="Shape" fill="#1B3E6F"></path>
+ <path d="M3.18663356,18.9761384 L7.26512758,18.9761384 L7.26512758,14.8976444 L3.18663356,14.8976444 L3.18663356,18.9761384 Z M4.48839575,16.1994066 L5.96336539,16.1994066 L5.96336539,17.6743762 L4.48839575,17.6743762 L4.48839575,16.1994066 Z" id="Shape" fill="#1B3E6F"></path>
+ <path d="M3.18663356,13.4226747 L7.26512758,13.4226747 L7.26512758,9.34418073 L3.18663356,9.34418073 L3.18663356,13.4226747 Z M4.48839575,10.6459429 L5.96336539,10.6459429 L5.96336539,12.1209126 L4.48839575,12.1209126 L4.48839575,10.6459429 Z" id="Shape" fill="#1B3E6F"></path>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+</svg> \ No newline at end of file
diff --git a/cds-ui/designer-client/src/assets/img/icon-action-import-hover.svg b/cds-ui/designer-client/src/assets/img/icon-action-import-hover.svg
new file mode 100644
index 000000000..4d5a11202
--- /dev/null
+++ b/cds-ui/designer-client/src/assets/img/icon-action-import-hover.svg
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="131px" height="173px" viewBox="0 0 131 173" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!-- Generator: Sketch 61.2 (89653) - https://sketch.com -->
+ <title>icon-hover</title>
+ <desc>Created with Sketch.</desc>
+ <defs>
+ <rect id="path-1" x="0" y="0" width="40.5" height="47"></rect>
+ </defs>
+ <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+ <g id="7.4.1-Designer---Import-action" transform="translate(-1030.000000, -377.000000)">
+ <g id="modal-new" transform="translate(120.000000, 222.000000)">
+ <g id="options" transform="translate(100.000000, 132.000000)">
+ <g id="import" transform="translate(750.000000, 0.000000)">
+ <g id="icon+text" transform="translate(30.000000, 23.000000)">
+ <g id="icon-hover" transform="translate(30.000000, 0.000000)">
+ <g id="Group" transform="translate(0.000000, 24.222222)" fill-rule="nonzero">
+ <polygon id="Path" fill="#E0E8F2" points="113.218678 86.6995804 11.9100839 86.3986545 11.6173865 11.7737269 11.9100839 11.7737269 11.9100839 7.25043403 0 7.25043403 0 98.6096644 115.480324 98.6096644 115.480324 86.6995804"></polygon>
+ <polygon id="Path" fill="#5DBDBA" points="21.5585214 0.0141059028 26.3827402 0.0141059028 26.3827402 4.53739873 21.5585214 4.53739873"></polygon>
+ <polygon id="Path" fill="#5DBDBA" points="31.2069589 0.0141059028 36.0311777 0.0141059028 36.0311777 4.53739873 31.2069589 4.53739873"></polygon>
+ <polygon id="Path" fill="#5DBDBA" points="40.8553964 0.0141059028 45.6796152 0.0141059028 45.6796152 4.53739873 40.8553964 4.53739873"></polygon>
+ </g>
+ <path d="M125.279225,17 L14.3221933,17 C11.7443396,17 9.6484375,19.0959021 9.6484375,21.6737558 L9.6484375,113.183449 L120.455006,113.183449 L120.455006,108.660156 L14.1717303,108.660156 L14.1717303,35.9959491 L125.429687,35.9959491 L125.429687,127.806568 C125.429687,127.890028 125.362685,127.957031 125.279225,127.957031 L96.333912,127.957031 C93.7572338,127.957031 91.6601562,130.054109 91.6601562,132.630787 L91.6601562,137.605469 L12.0605469,137.605469 L12.0605469,171.074074 L117.892433,171.074074 L117.892433,137.605469 L96.1834491,137.605469 L96.1834491,132.630787 C96.1834491,132.547327 96.2516275,132.480324 96.333912,132.480324 L125.279225,132.480324 C127.855903,132.480324 129.95298,130.383247 129.95298,127.806568 L129.95298,21.6737558 C129.95298,19.0959021 127.855903,17 125.279225,17 Z M60.0018084,142.128762 L69.9511719,142.128762 L69.9511719,147.253906 L60.0018084,147.253906 L60.0018084,142.128762 Z M60.0018084,151.777199 L69.9511719,151.777199 L69.9511719,156.902344 L60.0018084,156.902344 L60.0018084,151.777199 Z M45.5291522,142.128762 L55.4785156,142.128762 L55.4785156,147.253906 L45.5291522,147.253906 L45.5291522,142.128762 Z M45.5291522,151.777199 L55.4785156,151.777199 L55.4785156,156.902344 L45.5291522,156.902344 L45.5291522,151.777199 Z M26.5332031,166.550781 L16.5838397,166.550781 L16.5838397,161.425637 L26.5332031,161.425637 L26.5332031,166.550781 Z M26.5332031,156.902344 L16.5838397,156.902344 L16.5838397,151.777199 L26.5332031,151.777199 L26.5332031,156.902344 Z M26.5332031,147.253906 L16.5838397,147.253906 L16.5838397,142.128762 L26.5332031,142.128762 L26.5332031,147.253906 Z M41.0058594,166.550781 L31.0564959,166.550781 L31.0564959,161.425637 L41.0058594,161.425637 L41.0058594,166.550781 Z M41.0058594,156.902344 L31.0564959,156.902344 L31.0564959,151.777199 L41.0058594,151.777199 L41.0058594,156.902344 Z M41.0058594,147.253906 L31.0564959,147.253906 L31.0564959,142.128762 L41.0058594,142.128762 L41.0058594,147.253906 Z M84.4238281,166.550781 L45.5291522,166.550781 L45.5291522,161.425637 L84.4238281,161.425637 L84.4238281,166.550781 Z M84.4238281,156.902344 L74.4744647,156.902344 L74.4744647,151.777199 L84.4238281,151.777199 L84.4238281,156.902344 Z M84.4238281,147.253906 L74.4744647,147.253906 L74.4744647,142.128762 L84.4238281,142.128762 L84.4238281,147.253906 Z M98.8964844,166.550781 L88.9471209,166.550781 L88.9471209,161.425637 L98.8964844,161.425637 L98.8964844,166.550781 Z M98.8964844,156.902344 L88.9471209,156.902344 L88.9471209,151.777199 L98.8964844,151.777199 L98.8964844,156.902344 Z M103.419777,142.128762 L113.369141,142.128762 L113.369141,147.253906 L103.419777,147.253906 L103.419777,142.128762 Z M103.419777,151.777199 L113.369141,151.777199 L113.369141,156.902344 L103.419777,156.902344 L103.419777,151.777199 Z M103.419777,161.425637 L113.369141,161.425637 L113.369141,166.550781 L103.419777,166.550781 L103.419777,161.425637 Z M98.8964844,147.253906 L88.9471209,147.253906 L88.9471209,142.128762 L98.8964844,142.128762 L98.8964844,147.253906 Z M14.1717303,31.4726562 L14.1717303,21.6737558 C14.1717303,21.5902958 14.2387333,21.5232928 14.3221933,21.5232928 L125.279225,21.5232928 C125.362685,21.5232928 125.429688,21.5902958 125.429688,21.6737558 L125.429688,31.4726562 L14.1717303,31.4726562 Z" id="Shape" stroke="#FFFFFF" stroke-width="2" fill="#1B3E6F" fill-rule="nonzero"></path>
+ <polygon id="Path" stroke="#FFFFFF" fill="#1B3E6F" fill-rule="nonzero" points="96.7252852 92.4505702 92.6085365 96.5673189 92.6085365 73 89.3914635 73 89.3914635 96.5673189 85.2747148 92.4505702 83 94.7252853 90.9999999 102.725285 99 94.7252853"></polygon>
+ <g id="action" transform="translate(64.000000, 0.000000)">
+ <g id="Group" transform="translate(0.000000, 4.959849)" fill-rule="nonzero">
+ <polygon id="Path" fill="#E0E8F2" points="43.7054389 57.9271781 5.84230707 57.9271781 5.84230707 0.0230647733 0 0.0230647733 0 63.7694851 44.8148545 63.7694851 44.8148545 57.9271781"></polygon>
+ <polygon id="Path" fill="#5DBDBA" points="11.7584214 50.9016481 14.1248671 50.9016481 14.1248671 53.1204793 11.7584214 53.1204793"></polygon>
+ <polygon id="Path" fill="#5DBDBA" points="16.4913129 50.9016481 18.8577586 50.9016481 18.8577586 53.1204793 16.4913129 53.1204793"></polygon>
+ <polygon id="Path" fill="#5DBDBA" points="21.2242044 50.9016481 23.5906501 50.9016481 23.5906501 53.1204793 21.2242044 53.1204793"></polygon>
+ </g>
+ <path d="M49.8148545,12.4820787 L37.3327757,0 L5,0 L5,63.7464203 L49.8148545,63.7464203 L49.8148545,17.6745358 L47.5960233,17.6745358 L47.5960233,61.5275892 L7.21883119,61.5275892 L7.21883119,2.21883119 L35.7637946,2.21883119 L35.7637946,15.2342827 L49.8148545,15.2342827 L49.8148545,12.4820787 Z M37.9826258,13.0154516 L37.9826258,3.78723577 L47.2108416,13.0154516 L37.9826258,13.0154516 Z" id="Shape" fill="#1B3E6F" fill-rule="nonzero"></path>
+ <g id="3" transform="translate(7.000000, 15.000000)">
+ <mask id="mask-2" fill="white">
+ <use xlink:href="#path-1"></use>
+ </mask>
+ <use id="Mask" fill="#FFFFFF" xlink:href="#path-1"></use>
+ <g mask="url(#mask-2)">
+ <g transform="translate(2.000000, 31.000000)">
+ <g id="Group" stroke-width="1" fill="none" fill-rule="evenodd" transform="translate(2.836930, 2.684715)">
+ <polygon id="Path" fill="#E0E8F2" fill-rule="nonzero" points="0.349703874 0.411818739 9.98166155 0.411818739 9.98166155 5.18449572 0.349703874 5.18449572"></polygon>
+ <polygon id="Path" fill="#E0E8F2" fill-rule="nonzero" points="5.90316753 12.212929 9.98166155 12.212929 9.98166155 16.291423 5.90316753 16.291423"></polygon>
+ </g>
+ <path d="M0.40990173,21.7528702 L15.5953231,21.7528702 L15.5953231,0.319802285 L0.40990173,0.319802285 L0.40990173,21.7528702 Z M1.71166392,1.62156448 L14.2935609,1.62156448 L14.2935609,20.451108 L1.71166392,20.451108 L1.71166392,1.62156448 Z" id="Shape" fill="#1B3E6F" fill-rule="nonzero"></path>
+ <path d="M8.74009721,13.4226747 L12.8185912,13.4226747 L12.8185912,9.34418073 L8.74009721,9.34418073 L8.74009721,13.4226747 Z M10.0418594,10.6459429 L11.516829,10.6459429 L11.516829,12.1209126 L10.0418594,12.1209126 L10.0418594,10.6459429 Z" id="Shape" fill="#5DBDBA" fill-rule="nonzero"></path>
+ <path d="M3.18663356,18.9761384 L7.26512758,18.9761384 L7.26512758,14.8976444 L3.18663356,14.8976444 L3.18663356,18.9761384 Z M4.48839575,16.1994066 L5.96336539,16.1994066 L5.96336539,17.6743762 L4.48839575,17.6743762 L4.48839575,16.1994066 Z" id="Shape" fill="#5DBDBA" fill-rule="nonzero"></path>
+ <path d="M3.18663356,13.4226747 L7.26512758,13.4226747 L7.26512758,9.34418073 L3.18663356,9.34418073 L3.18663356,13.4226747 Z M4.48839575,10.6459429 L5.96336539,10.6459429 L5.96336539,12.1209126 L4.48839575,12.1209126 L4.48839575,10.6459429 Z" id="Shape" fill="#5DBDBA" fill-rule="nonzero"></path>
+ </g>
+ </g>
+ </g>
+ <g id="1" transform="translate(9.000000, 15.000000)" fill-rule="nonzero">
+ <g id="Group" transform="translate(2.836930, 2.684715)" fill="#E0E8F2">
+ <polygon id="Path" points="0.349703874 0.411818739 9.98166155 0.411818739 9.98166155 5.18449572 0.349703874 5.18449572"></polygon>
+ <polygon id="Path" points="5.90316753 12.212929 9.98166155 12.212929 9.98166155 16.291423 5.90316753 16.291423"></polygon>
+ </g>
+ <path d="M0.40990173,21.7528702 L15.5953231,21.7528702 L15.5953231,0.319802285 L0.40990173,0.319802285 L0.40990173,21.7528702 Z M1.71166392,1.62156448 L14.2935609,1.62156448 L14.2935609,20.451108 L1.71166392,20.451108 L1.71166392,1.62156448 Z" id="Shape" fill="#1B3E6F"></path>
+ <path d="M8.74009721,13.4226747 L12.8185912,13.4226747 L12.8185912,9.34418073 L8.74009721,9.34418073 L8.74009721,13.4226747 Z M10.0418594,10.6459429 L11.516829,10.6459429 L11.516829,12.1209126 L10.0418594,12.1209126 L10.0418594,10.6459429 Z" id="Shape" fill="#5DBDBA"></path>
+ <path d="M3.18663356,18.9761384 L7.26512758,18.9761384 L7.26512758,14.8976444 L3.18663356,14.8976444 L3.18663356,18.9761384 Z M4.48839575,16.1994066 L5.96336539,16.1994066 L5.96336539,17.6743762 L4.48839575,17.6743762 L4.48839575,16.1994066 Z" id="Shape" fill="#5DBDBA"></path>
+ <path d="M3.18663356,13.4226747 L7.26512758,13.4226747 L7.26512758,9.34418073 L3.18663356,9.34418073 L3.18663356,13.4226747 Z M4.48839575,10.6459429 L5.96336539,10.6459429 L5.96336539,12.1209126 L4.48839575,12.1209126 L4.48839575,10.6459429 Z" id="Shape" fill="#5DBDBA"></path>
+ </g>
+ <g id="2" transform="translate(29.000000, 24.000000)" fill-rule="nonzero">
+ <g id="Group" transform="translate(2.836930, 2.684715)" fill="#E0E8F2">
+ <polygon id="Path" points="0.349703874 0.411818739 9.98166155 0.411818739 9.98166155 5.18449572 0.349703874 5.18449572"></polygon>
+ <polygon id="Path" points="5.90316753 12.212929 9.98166155 12.212929 9.98166155 16.291423 5.90316753 16.291423"></polygon>
+ </g>
+ <path d="M0.40990173,21.7528702 L15.5953231,21.7528702 L15.5953231,0.319802285 L0.40990173,0.319802285 L0.40990173,21.7528702 Z M1.71166392,1.62156448 L14.2935609,1.62156448 L14.2935609,20.451108 L1.71166392,20.451108 L1.71166392,1.62156448 Z" id="Shape" fill="#1B3E6F"></path>
+ <path d="M8.74009721,13.4226747 L12.8185912,13.4226747 L12.8185912,9.34418073 L8.74009721,9.34418073 L8.74009721,13.4226747 Z M10.0418594,10.6459429 L11.516829,10.6459429 L11.516829,12.1209126 L10.0418594,12.1209126 L10.0418594,10.6459429 Z" id="Shape" fill="#5DBDBA"></path>
+ <path d="M3.18663356,18.9761384 L7.26512758,18.9761384 L7.26512758,14.8976444 L3.18663356,14.8976444 L3.18663356,18.9761384 Z M4.48839575,16.1994066 L5.96336539,16.1994066 L5.96336539,17.6743762 L4.48839575,17.6743762 L4.48839575,16.1994066 Z" id="Shape" fill="#5DBDBA"></path>
+ <path d="M3.18663356,13.4226747 L7.26512758,13.4226747 L7.26512758,9.34418073 L3.18663356,9.34418073 L3.18663356,13.4226747 Z M4.48839575,10.6459429 L5.96336539,10.6459429 L5.96336539,12.1209126 L4.48839575,12.1209126 L4.48839575,10.6459429 Z" id="Shape" fill="#5DBDBA"></path>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+</svg> \ No newline at end of file
diff --git a/cds-ui/designer-client/src/assets/img/icon-action-import.svg b/cds-ui/designer-client/src/assets/img/icon-action-import.svg
new file mode 100644
index 000000000..1c7fd6b1b
--- /dev/null
+++ b/cds-ui/designer-client/src/assets/img/icon-action-import.svg
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="131px" height="173px" viewBox="0 0 131 173" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!-- Generator: Sketch 61.2 (89653) - https://sketch.com -->
+ <title>icon</title>
+ <desc>Created with Sketch.</desc>
+ <defs>
+ <rect id="path-1" x="0" y="0" width="40.5" height="47"></rect>
+ </defs>
+ <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+ <g id="7.0-Designer---First-action-options" transform="translate(-1030.000000, -377.000000)">
+ <g id="modal-new" transform="translate(120.000000, 222.000000)">
+ <g id="options" transform="translate(100.000000, 132.000000)">
+ <g id="import" transform="translate(750.000000, 0.000000)">
+ <g id="icon+text" transform="translate(30.000000, 23.000000)">
+ <g id="icon" transform="translate(30.000000, 0.000000)">
+ <g id="Group" transform="translate(0.000000, 24.222222)" fill="#E0E8F2" fill-rule="nonzero">
+ <polygon id="Path" points="113.218678 86.6995804 11.9100839 86.3986545 11.6173865 11.7737269 11.9100839 11.7737269 11.9100839 7.25043403 0 7.25043403 0 98.6096644 115.480324 98.6096644 115.480324 86.6995804"></polygon>
+ <polygon id="Path" points="21.5585214 0.0141059028 26.3827402 0.0141059028 26.3827402 4.53739873 21.5585214 4.53739873"></polygon>
+ <polygon id="Path" points="31.2069589 0.0141059028 36.0311777 0.0141059028 36.0311777 4.53739873 31.2069589 4.53739873"></polygon>
+ <polygon id="Path" points="40.8553964 0.0141059028 45.6796152 0.0141059028 45.6796152 4.53739873 40.8553964 4.53739873"></polygon>
+ </g>
+ <path d="M125.279225,17 L14.3221933,17 C11.7443396,17 9.6484375,19.0959021 9.6484375,21.6737558 L9.6484375,113.183449 L120.455006,113.183449 L120.455006,108.660156 L14.1717303,108.660156 L14.1717303,35.9959491 L125.429687,35.9959491 L125.429687,127.806568 C125.429687,127.890028 125.362685,127.957031 125.279225,127.957031 L96.333912,127.957031 C93.7572338,127.957031 91.6601562,130.054109 91.6601562,132.630787 L91.6601562,137.605469 L12.0605469,137.605469 L12.0605469,171.074074 L117.892433,171.074074 L117.892433,137.605469 L96.1834491,137.605469 L96.1834491,132.630787 C96.1834491,132.547327 96.2516275,132.480324 96.333912,132.480324 L125.279225,132.480324 C127.855903,132.480324 129.95298,130.383247 129.95298,127.806568 L129.95298,21.6737558 C129.95298,19.0959021 127.855903,17 125.279225,17 Z M60.0018084,142.128762 L69.9511719,142.128762 L69.9511719,147.253906 L60.0018084,147.253906 L60.0018084,142.128762 Z M60.0018084,151.777199 L69.9511719,151.777199 L69.9511719,156.902344 L60.0018084,156.902344 L60.0018084,151.777199 Z M45.5291522,142.128762 L55.4785156,142.128762 L55.4785156,147.253906 L45.5291522,147.253906 L45.5291522,142.128762 Z M45.5291522,151.777199 L55.4785156,151.777199 L55.4785156,156.902344 L45.5291522,156.902344 L45.5291522,151.777199 Z M26.5332031,166.550781 L16.5838397,166.550781 L16.5838397,161.425637 L26.5332031,161.425637 L26.5332031,166.550781 Z M26.5332031,156.902344 L16.5838397,156.902344 L16.5838397,151.777199 L26.5332031,151.777199 L26.5332031,156.902344 Z M26.5332031,147.253906 L16.5838397,147.253906 L16.5838397,142.128762 L26.5332031,142.128762 L26.5332031,147.253906 Z M41.0058594,166.550781 L31.0564959,166.550781 L31.0564959,161.425637 L41.0058594,161.425637 L41.0058594,166.550781 Z M41.0058594,156.902344 L31.0564959,156.902344 L31.0564959,151.777199 L41.0058594,151.777199 L41.0058594,156.902344 Z M41.0058594,147.253906 L31.0564959,147.253906 L31.0564959,142.128762 L41.0058594,142.128762 L41.0058594,147.253906 Z M84.4238281,166.550781 L45.5291522,166.550781 L45.5291522,161.425637 L84.4238281,161.425637 L84.4238281,166.550781 Z M84.4238281,156.902344 L74.4744647,156.902344 L74.4744647,151.777199 L84.4238281,151.777199 L84.4238281,156.902344 Z M84.4238281,147.253906 L74.4744647,147.253906 L74.4744647,142.128762 L84.4238281,142.128762 L84.4238281,147.253906 Z M98.8964844,166.550781 L88.9471209,166.550781 L88.9471209,161.425637 L98.8964844,161.425637 L98.8964844,166.550781 Z M98.8964844,156.902344 L88.9471209,156.902344 L88.9471209,151.777199 L98.8964844,151.777199 L98.8964844,156.902344 Z M103.419777,142.128762 L113.369141,142.128762 L113.369141,147.253906 L103.419777,147.253906 L103.419777,142.128762 Z M103.419777,151.777199 L113.369141,151.777199 L113.369141,156.902344 L103.419777,156.902344 L103.419777,151.777199 Z M103.419777,161.425637 L113.369141,161.425637 L113.369141,166.550781 L103.419777,166.550781 L103.419777,161.425637 Z M98.8964844,147.253906 L88.9471209,147.253906 L88.9471209,142.128762 L98.8964844,142.128762 L98.8964844,147.253906 Z M14.1717303,31.4726562 L14.1717303,21.6737558 C14.1717303,21.5902958 14.2387333,21.5232928 14.3221933,21.5232928 L125.279225,21.5232928 C125.362685,21.5232928 125.429688,21.5902958 125.429688,21.6737558 L125.429688,31.4726562 L14.1717303,31.4726562 Z" id="Shape" stroke="#FFFFFF" stroke-width="2" fill="#1B3E6F" fill-rule="nonzero"></path>
+ <polygon id="Path" stroke="#FFFFFF" fill="#1B3E6F" fill-rule="nonzero" points="96.7252852 92.4505702 92.6085365 96.5673189 92.6085365 73 89.3914635 73 89.3914635 96.5673189 85.2747148 92.4505702 83 94.7252853 90.9999999 102.725285 99 94.7252853"></polygon>
+ <g id="action" transform="translate(64.000000, 0.000000)">
+ <g id="Group" transform="translate(0.000000, 4.959849)" fill-rule="nonzero">
+ <polygon id="Path" fill="#E0E8F2" points="43.7054389 57.9271781 5.84230707 57.9271781 5.84230707 0.0230647733 0 0.0230647733 0 63.7694851 44.8148545 63.7694851 44.8148545 57.9271781"></polygon>
+ <polygon id="Path" fill="#5DBDBA" points="11.7584214 50.9016481 14.1248671 50.9016481 14.1248671 53.1204793 11.7584214 53.1204793"></polygon>
+ <polygon id="Path" fill="#5DBDBA" points="16.4913129 50.9016481 18.8577586 50.9016481 18.8577586 53.1204793 16.4913129 53.1204793"></polygon>
+ <polygon id="Path" fill="#5DBDBA" points="21.2242044 50.9016481 23.5906501 50.9016481 23.5906501 53.1204793 21.2242044 53.1204793"></polygon>
+ </g>
+ <path d="M49.8148545,12.4820787 L37.3327757,0 L5,0 L5,63.7464203 L49.8148545,63.7464203 L49.8148545,17.6745358 L47.5960233,17.6745358 L47.5960233,61.5275892 L7.21883119,61.5275892 L7.21883119,2.21883119 L35.7637946,2.21883119 L35.7637946,15.2342827 L49.8148545,15.2342827 L49.8148545,12.4820787 Z M37.9826258,13.0154516 L37.9826258,3.78723577 L47.2108416,13.0154516 L37.9826258,13.0154516 Z" id="Shape" fill="#1B3E6F" fill-rule="nonzero"></path>
+ <g id="3" transform="translate(7.000000, 15.000000)">
+ <mask id="mask-2" fill="white">
+ <use xlink:href="#path-1"></use>
+ </mask>
+ <use id="Mask" fill="#FFFFFF" xlink:href="#path-1"></use>
+ <g mask="url(#mask-2)">
+ <g transform="translate(2.000000, 31.000000)">
+ <g id="Group" stroke-width="1" fill="none" fill-rule="evenodd" transform="translate(2.836930, 2.684715)">
+ <polygon id="Path" fill="#E0E8F2" fill-rule="nonzero" points="0.349703874 0.411818739 9.98166155 0.411818739 9.98166155 5.18449572 0.349703874 5.18449572"></polygon>
+ <polygon id="Path" fill="#E0E8F2" fill-rule="nonzero" points="5.90316753 12.212929 9.98166155 12.212929 9.98166155 16.291423 5.90316753 16.291423"></polygon>
+ </g>
+ <path d="M0.40990173,21.7528702 L15.5953231,21.7528702 L15.5953231,0.319802285 L0.40990173,0.319802285 L0.40990173,21.7528702 Z M1.71166392,1.62156448 L14.2935609,1.62156448 L14.2935609,20.451108 L1.71166392,20.451108 L1.71166392,1.62156448 Z" id="Shape" fill="#1B3E6F" fill-rule="nonzero"></path>
+ <path d="M8.74009721,13.4226747 L12.8185912,13.4226747 L12.8185912,9.34418073 L8.74009721,9.34418073 L8.74009721,13.4226747 Z M10.0418594,10.6459429 L11.516829,10.6459429 L11.516829,12.1209126 L10.0418594,12.1209126 L10.0418594,10.6459429 Z" id="Shape" fill="#1B3E6F" fill-rule="nonzero"></path>
+ <path d="M3.18663356,18.9761384 L7.26512758,18.9761384 L7.26512758,14.8976444 L3.18663356,14.8976444 L3.18663356,18.9761384 Z M4.48839575,16.1994066 L5.96336539,16.1994066 L5.96336539,17.6743762 L4.48839575,17.6743762 L4.48839575,16.1994066 Z" id="Shape" fill="#1B3E6F" fill-rule="nonzero"></path>
+ <path d="M3.18663356,13.4226747 L7.26512758,13.4226747 L7.26512758,9.34418073 L3.18663356,9.34418073 L3.18663356,13.4226747 Z M4.48839575,10.6459429 L5.96336539,10.6459429 L5.96336539,12.1209126 L4.48839575,12.1209126 L4.48839575,10.6459429 Z" id="Shape" fill="#1B3E6F" fill-rule="nonzero"></path>
+ </g>
+ </g>
+ </g>
+ <g id="1" transform="translate(9.000000, 15.000000)" fill-rule="nonzero">
+ <g id="Group" transform="translate(2.836930, 2.684715)" fill="#E0E8F2">
+ <polygon id="Path" points="0.349703874 0.411818739 9.98166155 0.411818739 9.98166155 5.18449572 0.349703874 5.18449572"></polygon>
+ <polygon id="Path" points="5.90316753 12.212929 9.98166155 12.212929 9.98166155 16.291423 5.90316753 16.291423"></polygon>
+ </g>
+ <path d="M0.40990173,21.7528702 L15.5953231,21.7528702 L15.5953231,0.319802285 L0.40990173,0.319802285 L0.40990173,21.7528702 Z M1.71166392,1.62156448 L14.2935609,1.62156448 L14.2935609,20.451108 L1.71166392,20.451108 L1.71166392,1.62156448 Z" id="Shape" fill="#1B3E6F"></path>
+ <path d="M8.74009721,13.4226747 L12.8185912,13.4226747 L12.8185912,9.34418073 L8.74009721,9.34418073 L8.74009721,13.4226747 Z M10.0418594,10.6459429 L11.516829,10.6459429 L11.516829,12.1209126 L10.0418594,12.1209126 L10.0418594,10.6459429 Z" id="Shape" fill="#1B3E6F"></path>
+ <path d="M3.18663356,18.9761384 L7.26512758,18.9761384 L7.26512758,14.8976444 L3.18663356,14.8976444 L3.18663356,18.9761384 Z M4.48839575,16.1994066 L5.96336539,16.1994066 L5.96336539,17.6743762 L4.48839575,17.6743762 L4.48839575,16.1994066 Z" id="Shape" fill="#1B3E6F"></path>
+ <path d="M3.18663356,13.4226747 L7.26512758,13.4226747 L7.26512758,9.34418073 L3.18663356,9.34418073 L3.18663356,13.4226747 Z M4.48839575,10.6459429 L5.96336539,10.6459429 L5.96336539,12.1209126 L4.48839575,12.1209126 L4.48839575,10.6459429 Z" id="Shape" fill="#1B3E6F"></path>
+ </g>
+ <g id="2" transform="translate(29.000000, 24.000000)" fill-rule="nonzero">
+ <g id="Group" transform="translate(2.836930, 2.684715)" fill="#E0E8F2">
+ <polygon id="Path" points="0.349703874 0.411818739 9.98166155 0.411818739 9.98166155 5.18449572 0.349703874 5.18449572"></polygon>
+ <polygon id="Path" points="5.90316753 12.212929 9.98166155 12.212929 9.98166155 16.291423 5.90316753 16.291423"></polygon>
+ </g>
+ <path d="M0.40990173,21.7528702 L15.5953231,21.7528702 L15.5953231,0.319802285 L0.40990173,0.319802285 L0.40990173,21.7528702 Z M1.71166392,1.62156448 L14.2935609,1.62156448 L14.2935609,20.451108 L1.71166392,20.451108 L1.71166392,1.62156448 Z" id="Shape" fill="#1B3E6F"></path>
+ <path d="M8.74009721,13.4226747 L12.8185912,13.4226747 L12.8185912,9.34418073 L8.74009721,9.34418073 L8.74009721,13.4226747 Z M10.0418594,10.6459429 L11.516829,10.6459429 L11.516829,12.1209126 L10.0418594,12.1209126 L10.0418594,10.6459429 Z" id="Shape" fill="#1B3E6F"></path>
+ <path d="M3.18663356,18.9761384 L7.26512758,18.9761384 L7.26512758,14.8976444 L3.18663356,14.8976444 L3.18663356,18.9761384 Z M4.48839575,16.1994066 L5.96336539,16.1994066 L5.96336539,17.6743762 L4.48839575,17.6743762 L4.48839575,16.1994066 Z" id="Shape" fill="#1B3E6F"></path>
+ <path d="M3.18663356,13.4226747 L7.26512758,13.4226747 L7.26512758,9.34418073 L3.18663356,9.34418073 L3.18663356,13.4226747 Z M4.48839575,10.6459429 L5.96336539,10.6459429 L5.96336539,12.1209126 L4.48839575,12.1209126 L4.48839575,10.6459429 Z" id="Shape" fill="#1B3E6F"></path>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+</svg> \ No newline at end of file
diff --git a/cds-ui/designer-client/src/assets/img/icon-action-recent-hover.svg b/cds-ui/designer-client/src/assets/img/icon-action-recent-hover.svg
new file mode 100644
index 000000000..193961656
--- /dev/null
+++ b/cds-ui/designer-client/src/assets/img/icon-action-recent-hover.svg
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="144px" height="157px" viewBox="0 0 144 157" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!-- Generator: Sketch 61.2 (89653) - https://sketch.com -->
+ <title>icon-hover</title>
+ <desc>Created with Sketch.</desc>
+ <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+ <g id="7.3.1-Designer---Recent-action" transform="translate(-780.000000, -393.000000)" fill-rule="nonzero">
+ <g id="modal-new" transform="translate(120.000000, 222.000000)">
+ <g id="options" transform="translate(100.000000, 132.000000)">
+ <g id="recent" transform="translate(500.000000, 0.000000)">
+ <g id="icon+text" transform="translate(30.000000, 40.000000)">
+ <g id="icon-hover" transform="translate(30.000000, 0.000000)">
+ <g id="Group" transform="translate(-0.000000, 7.222222)">
+ <polygon id="Path" fill="#E0E8F2" points="113.218678 86.6995804 11.9100839 86.3986545 11.6173865 11.7737269 11.9100839 11.7737269 11.9100839 7.25043403 0 7.25043403 0 98.6096644 115.480324 98.6096644 115.480324 86.6995804"></polygon>
+ <polygon id="Path" fill="#5DBDBA" points="21.5585214 0.0141059028 26.3827402 0.0141059028 26.3827402 4.53739873 21.5585214 4.53739873"></polygon>
+ <polygon id="Path" fill="#5DBDBA" points="31.2069589 0.0141059028 36.0311777 0.0141059028 36.0311777 4.53739873 31.2069589 4.53739873"></polygon>
+ <polygon id="Path" fill="#5DBDBA" points="40.8553964 0.0141059028 45.6796152 0.0141059028 45.6796152 4.53739873 40.8553964 4.53739873"></polygon>
+ </g>
+ <path d="M125.279225,-3.83693077e-13 L14.3221933,-3.83693077e-13 C11.7443396,-3.83693077e-13 9.6484375,2.09590213 9.6484375,4.67375579 L9.6484375,96.1834491 L120.455006,96.1834491 L120.455006,91.6601562 L14.1717303,91.6601562 L14.1717303,18.9959491 L125.429687,18.9959491 L125.429687,110.806568 C125.429687,110.890028 125.362685,110.957031 125.279225,110.957031 L96.333912,110.957031 C93.7572338,110.957031 91.6601562,113.054109 91.6601562,115.630787 L91.6601562,120.605469 L12.0605469,120.605469 L12.0605469,154.074074 L117.892433,154.074074 L117.892433,120.605469 L96.1834491,120.605469 L96.1834491,115.630787 C96.1834491,115.547327 96.2516275,115.480324 96.333912,115.480324 L125.279225,115.480324 C127.855903,115.480324 129.95298,113.383247 129.95298,110.806568 L129.95298,4.67375579 C129.95298,2.09590213 127.855903,-3.83693077e-13 125.279225,-3.83693077e-13 Z M60.0018084,125.128762 L69.9511719,125.128762 L69.9511719,130.253906 L60.0018084,130.253906 L60.0018084,125.128762 Z M60.0018084,134.777199 L69.9511719,134.777199 L69.9511719,139.902344 L60.0018084,139.902344 L60.0018084,134.777199 Z M45.5291522,125.128762 L55.4785156,125.128762 L55.4785156,130.253906 L45.5291522,130.253906 L45.5291522,125.128762 Z M45.5291522,134.777199 L55.4785156,134.777199 L55.4785156,139.902344 L45.5291522,139.902344 L45.5291522,134.777199 Z M26.5332031,149.550781 L16.5838397,149.550781 L16.5838397,144.425637 L26.5332031,144.425637 L26.5332031,149.550781 Z M26.5332031,139.902344 L16.5838397,139.902344 L16.5838397,134.777199 L26.5332031,134.777199 L26.5332031,139.902344 Z M26.5332031,130.253906 L16.5838397,130.253906 L16.5838397,125.128762 L26.5332031,125.128762 L26.5332031,130.253906 Z M41.0058594,149.550781 L31.0564959,149.550781 L31.0564959,144.425637 L41.0058594,144.425637 L41.0058594,149.550781 Z M41.0058594,139.902344 L31.0564959,139.902344 L31.0564959,134.777199 L41.0058594,134.777199 L41.0058594,139.902344 Z M41.0058594,130.253906 L31.0564959,130.253906 L31.0564959,125.128762 L41.0058594,125.128762 L41.0058594,130.253906 Z M84.4238281,149.550781 L45.5291522,149.550781 L45.5291522,144.425637 L84.4238281,144.425637 L84.4238281,149.550781 Z M84.4238281,139.902344 L74.4744647,139.902344 L74.4744647,134.777199 L84.4238281,134.777199 L84.4238281,139.902344 Z M84.4238281,130.253906 L74.4744647,130.253906 L74.4744647,125.128762 L84.4238281,125.128762 L84.4238281,130.253906 Z M98.8964844,149.550781 L88.9471209,149.550781 L88.9471209,144.425637 L98.8964844,144.425637 L98.8964844,149.550781 Z M98.8964844,139.902344 L88.9471209,139.902344 L88.9471209,134.777199 L98.8964844,134.777199 L98.8964844,139.902344 Z M103.419777,125.128762 L113.369141,125.128762 L113.369141,130.253906 L103.419777,130.253906 L103.419777,125.128762 Z M103.419777,134.777199 L113.369141,134.777199 L113.369141,139.902344 L103.419777,139.902344 L103.419777,134.777199 Z M103.419777,144.425637 L113.369141,144.425637 L113.369141,149.550781 L103.419777,149.550781 L103.419777,144.425637 Z M98.8964844,130.253906 L88.9471209,130.253906 L88.9471209,125.128762 L98.8964844,125.128762 L98.8964844,130.253906 Z M14.1717303,14.4726562 L14.1717303,4.67375579 C14.1717303,4.59029579 14.2387333,4.52329282 14.3221933,4.52329282 L125.279225,4.52329282 C125.362685,4.52329282 125.429688,4.59029579 125.429688,4.67375579 L125.429688,14.4726562 L14.1717303,14.4726562 Z" id="Shape" stroke="#FFFFFF" stroke-width="2" fill="#1B3E6F"></path>
+ <g id="list" transform="translate(29.000000, 31.000000)">
+ <g>
+ <g id="Group" transform="translate(0.000000, -0.000000)">
+ <polygon id="Path" fill="#E0E8F2" points="0.134469486 0.0137213762 2.95009588 0.0137213762 2.95009588 2.65371415 0.134469486 2.65371415"></polygon>
+ <polygon id="Path" fill="#E0E8F2" points="5.76572227 0.0137213762 8.58134865 0.0137213762 8.58134865 2.65371415 5.76572227 2.65371415"></polygon>
+ <polygon id="Path" fill="#E0E8F2" points="11.396975 0.0137213762 14.2126014 0.0137213762 14.2126014 2.65371415 11.396975 2.65371415"></polygon>
+ <polygon id="Path" fill="#5DBDBA" points="0.222286294 14.0918533 8.49353185 14.0918533 8.49353185 22.3630989 0.222286294 22.3630989"></polygon>
+ <polygon id="Path" fill="#5DBDBA" points="0.222286294 26.7621721 8.49353185 26.7621721 8.49353185 35.0334176 0.222286294 35.0334176"></polygon>
+ <polygon id="Path" fill="#5DBDBA" points="0.222286294 39.4324908 8.49353185 39.4324908 8.49353185 47.7037364 0.222286294 47.7037364"></polygon>
+ </g>
+ <polygon id="Path" fill="#1B3E6F" points="11.396975 14.0918533 39.5532389 14.0918533 39.5532389 16.7318461 11.396975 16.7318461"></polygon>
+ <polygon id="Path" fill="#1B3E6F" points="11.396975 7.05278735 26.8829202 7.05278735 26.8829202 9.69278012 11.396975 9.69278012"></polygon>
+ <polygon id="Path" fill="#1B3E6F" points="0.134469486 7.05278735 8.58134865 7.05278735 8.58134865 9.69278012 0.134469486 9.69278012"></polygon>
+ <polygon id="Path" fill="#1B3E6F" points="11.396975 19.7231061 26.8829202 19.7231061 26.8829202 22.3630989 11.396975 22.3630989"></polygon>
+ <polygon id="Path" fill="#1B3E6F" points="11.396975 26.7621721 39.5532389 26.7621721 39.5532389 29.4021649 11.396975 29.4021649"></polygon>
+ <polygon id="Path" fill="#1B3E6F" points="11.396975 32.3934249 26.8829202 32.3934249 26.8829202 35.0334176 11.396975 35.0334176"></polygon>
+ <polygon id="Path" fill="#1B3E6F" points="11.396975 39.4324908 39.5532389 39.4324908 39.5532389 42.0724836 11.396975 42.0724836"></polygon>
+ <polygon id="Path" fill="#1B3E6F" points="11.396975 45.0637436 26.8829202 45.0637436 26.8829202 47.7037364 11.396975 47.7037364"></polygon>
+ </g>
+ <g id="recent" transform="translate(77.722272, 34.733652)">
+ <path d="M18.5231598,0 C8.3091772,0 0,8.31000246 0,18.5231598 C0,28.7371424 8.3091772,37.0463197 18.5231598,37.0463197 C28.7371424,37.0463197 37.0463197,28.7371424 37.0463197,18.5231598 C37.0463197,8.31000246 28.7371424,0 18.5231598,0 Z" id="Path" fill="#E0E8F2"></path>
+ <path d="M18.5231598,30.2722109 C12.0445104,30.2722109 6.77410871,25.0018092 6.77410871,18.5231598 C6.77410871,12.0445104 12.0445104,6.77410871 18.5231598,6.77410871 C25.0018092,6.77410871 30.2722109,12.0445104 30.2722109,18.5231598 C30.2722109,25.0018092 25.0018092,30.2722109 18.5231598,30.2722109 Z M18.5231598,9.94988482 C13.7958091,9.94988482 9.94988482,13.7958091 9.94988482,18.5231598 C9.94988482,23.2505105 13.7958091,27.0964348 18.5231598,27.0964348 C23.2505105,27.0964348 27.0964348,23.2505105 27.0964348,18.5231598 C27.0964348,13.7958091 23.2505105,9.94988482 18.5231598,9.94988482 Z" id="Shape" fill="#1B3E6F"></path>
+ <polygon id="Path" fill="#1B3E6F" points="16.2593464 23.0334551 14.0136898 20.7877985 16.9352718 17.8653913 16.9352718 13.4425783 20.1110479 13.4425783 20.1110479 19.1809284"></polygon>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+</svg> \ No newline at end of file
diff --git a/cds-ui/designer-client/src/assets/img/icon-action-recent.svg b/cds-ui/designer-client/src/assets/img/icon-action-recent.svg
new file mode 100644
index 000000000..da6ecf742
--- /dev/null
+++ b/cds-ui/designer-client/src/assets/img/icon-action-recent.svg
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="144px" height="157px" viewBox="0 0 144 157" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!-- Generator: Sketch 61.2 (89653) - https://sketch.com -->
+ <title>icon</title>
+ <desc>Created with Sketch.</desc>
+ <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+ <g id="7.0-Designer---First-action-options" transform="translate(-780.000000, -393.000000)" fill-rule="nonzero">
+ <g id="modal-new" transform="translate(120.000000, 222.000000)">
+ <g id="options" transform="translate(100.000000, 132.000000)">
+ <g id="recent" transform="translate(500.000000, 0.000000)">
+ <g id="icon+text" transform="translate(30.000000, 40.000000)">
+ <g id="icon" transform="translate(30.000000, 0.000000)">
+ <g id="Group" transform="translate(-0.000000, 7.222222)" fill="#E0E8F2">
+ <polygon id="Path" points="113.218678 86.6995804 11.9100839 86.3986545 11.6173865 11.7737269 11.9100839 11.7737269 11.9100839 7.25043403 0 7.25043403 0 98.6096644 115.480324 98.6096644 115.480324 86.6995804"></polygon>
+ <polygon id="Path" points="21.5585214 0.0141059028 26.3827402 0.0141059028 26.3827402 4.53739873 21.5585214 4.53739873"></polygon>
+ <polygon id="Path" points="31.2069589 0.0141059028 36.0311777 0.0141059028 36.0311777 4.53739873 31.2069589 4.53739873"></polygon>
+ <polygon id="Path" points="40.8553964 0.0141059028 45.6796152 0.0141059028 45.6796152 4.53739873 40.8553964 4.53739873"></polygon>
+ </g>
+ <path d="M125.279225,-3.83693077e-13 L14.3221933,-3.83693077e-13 C11.7443396,-3.83693077e-13 9.6484375,2.09590213 9.6484375,4.67375579 L9.6484375,96.1834491 L120.455006,96.1834491 L120.455006,91.6601562 L14.1717303,91.6601562 L14.1717303,18.9959491 L125.429687,18.9959491 L125.429687,110.806568 C125.429687,110.890028 125.362685,110.957031 125.279225,110.957031 L96.333912,110.957031 C93.7572338,110.957031 91.6601562,113.054109 91.6601562,115.630787 L91.6601562,120.605469 L12.0605469,120.605469 L12.0605469,154.074074 L117.892433,154.074074 L117.892433,120.605469 L96.1834491,120.605469 L96.1834491,115.630787 C96.1834491,115.547327 96.2516275,115.480324 96.333912,115.480324 L125.279225,115.480324 C127.855903,115.480324 129.95298,113.383247 129.95298,110.806568 L129.95298,4.67375579 C129.95298,2.09590213 127.855903,-3.83693077e-13 125.279225,-3.83693077e-13 Z M60.0018084,125.128762 L69.9511719,125.128762 L69.9511719,130.253906 L60.0018084,130.253906 L60.0018084,125.128762 Z M60.0018084,134.777199 L69.9511719,134.777199 L69.9511719,139.902344 L60.0018084,139.902344 L60.0018084,134.777199 Z M45.5291522,125.128762 L55.4785156,125.128762 L55.4785156,130.253906 L45.5291522,130.253906 L45.5291522,125.128762 Z M45.5291522,134.777199 L55.4785156,134.777199 L55.4785156,139.902344 L45.5291522,139.902344 L45.5291522,134.777199 Z M26.5332031,149.550781 L16.5838397,149.550781 L16.5838397,144.425637 L26.5332031,144.425637 L26.5332031,149.550781 Z M26.5332031,139.902344 L16.5838397,139.902344 L16.5838397,134.777199 L26.5332031,134.777199 L26.5332031,139.902344 Z M26.5332031,130.253906 L16.5838397,130.253906 L16.5838397,125.128762 L26.5332031,125.128762 L26.5332031,130.253906 Z M41.0058594,149.550781 L31.0564959,149.550781 L31.0564959,144.425637 L41.0058594,144.425637 L41.0058594,149.550781 Z M41.0058594,139.902344 L31.0564959,139.902344 L31.0564959,134.777199 L41.0058594,134.777199 L41.0058594,139.902344 Z M41.0058594,130.253906 L31.0564959,130.253906 L31.0564959,125.128762 L41.0058594,125.128762 L41.0058594,130.253906 Z M84.4238281,149.550781 L45.5291522,149.550781 L45.5291522,144.425637 L84.4238281,144.425637 L84.4238281,149.550781 Z M84.4238281,139.902344 L74.4744647,139.902344 L74.4744647,134.777199 L84.4238281,134.777199 L84.4238281,139.902344 Z M84.4238281,130.253906 L74.4744647,130.253906 L74.4744647,125.128762 L84.4238281,125.128762 L84.4238281,130.253906 Z M98.8964844,149.550781 L88.9471209,149.550781 L88.9471209,144.425637 L98.8964844,144.425637 L98.8964844,149.550781 Z M98.8964844,139.902344 L88.9471209,139.902344 L88.9471209,134.777199 L98.8964844,134.777199 L98.8964844,139.902344 Z M103.419777,125.128762 L113.369141,125.128762 L113.369141,130.253906 L103.419777,130.253906 L103.419777,125.128762 Z M103.419777,134.777199 L113.369141,134.777199 L113.369141,139.902344 L103.419777,139.902344 L103.419777,134.777199 Z M103.419777,144.425637 L113.369141,144.425637 L113.369141,149.550781 L103.419777,149.550781 L103.419777,144.425637 Z M98.8964844,130.253906 L88.9471209,130.253906 L88.9471209,125.128762 L98.8964844,125.128762 L98.8964844,130.253906 Z M14.1717303,14.4726562 L14.1717303,4.67375579 C14.1717303,4.59029579 14.2387333,4.52329282 14.3221933,4.52329282 L125.279225,4.52329282 C125.362685,4.52329282 125.429688,4.59029579 125.429688,4.67375579 L125.429688,14.4726562 L14.1717303,14.4726562 Z" id="Shape" stroke="#FFFFFF" stroke-width="2" fill="#1B3E6F"></path>
+ <g id="list" transform="translate(29.000000, 31.000000)">
+ <g>
+ <g id="Group" transform="translate(0.000000, -0.000000)" fill="#E0E8F2">
+ <polygon id="Path" points="0.134469486 0.0137213762 2.95009588 0.0137213762 2.95009588 2.65371415 0.134469486 2.65371415"></polygon>
+ <polygon id="Path" points="5.76572227 0.0137213762 8.58134865 0.0137213762 8.58134865 2.65371415 5.76572227 2.65371415"></polygon>
+ <polygon id="Path" points="11.396975 0.0137213762 14.2126014 0.0137213762 14.2126014 2.65371415 11.396975 2.65371415"></polygon>
+ <polygon id="Path" points="0.222286294 14.0918533 8.49353185 14.0918533 8.49353185 22.3630989 0.222286294 22.3630989"></polygon>
+ <polygon id="Path" points="0.222286294 26.7621721 8.49353185 26.7621721 8.49353185 35.0334176 0.222286294 35.0334176"></polygon>
+ <polygon id="Path" points="0.222286294 39.4324908 8.49353185 39.4324908 8.49353185 47.7037364 0.222286294 47.7037364"></polygon>
+ </g>
+ <polygon id="Path" fill="#1B3E6F" points="11.396975 14.0918533 39.5532389 14.0918533 39.5532389 16.7318461 11.396975 16.7318461"></polygon>
+ <polygon id="Path" fill="#1B3E6F" points="11.396975 7.05278735 26.8829202 7.05278735 26.8829202 9.69278012 11.396975 9.69278012"></polygon>
+ <polygon id="Path" fill="#1B3E6F" points="0.134469486 7.05278735 8.58134865 7.05278735 8.58134865 9.69278012 0.134469486 9.69278012"></polygon>
+ <polygon id="Path" fill="#1B3E6F" points="11.396975 19.7231061 26.8829202 19.7231061 26.8829202 22.3630989 11.396975 22.3630989"></polygon>
+ <polygon id="Path" fill="#1B3E6F" points="11.396975 26.7621721 39.5532389 26.7621721 39.5532389 29.4021649 11.396975 29.4021649"></polygon>
+ <polygon id="Path" fill="#1B3E6F" points="11.396975 32.3934249 26.8829202 32.3934249 26.8829202 35.0334176 11.396975 35.0334176"></polygon>
+ <polygon id="Path" fill="#1B3E6F" points="11.396975 39.4324908 39.5532389 39.4324908 39.5532389 42.0724836 11.396975 42.0724836"></polygon>
+ <polygon id="Path" fill="#1B3E6F" points="11.396975 45.0637436 26.8829202 45.0637436 26.8829202 47.7037364 11.396975 47.7037364"></polygon>
+ </g>
+ <g id="recent" transform="translate(77.722272, 34.733652)">
+ <path d="M18.5231598,0 C8.3091772,0 0,8.31000246 0,18.5231598 C0,28.7371424 8.3091772,37.0463197 18.5231598,37.0463197 C28.7371424,37.0463197 37.0463197,28.7371424 37.0463197,18.5231598 C37.0463197,8.31000246 28.7371424,0 18.5231598,0 Z" id="Path" fill="#E0E8F2"></path>
+ <path d="M18.5231598,30.2722109 C12.0445104,30.2722109 6.77410871,25.0018092 6.77410871,18.5231598 C6.77410871,12.0445104 12.0445104,6.77410871 18.5231598,6.77410871 C25.0018092,6.77410871 30.2722109,12.0445104 30.2722109,18.5231598 C30.2722109,25.0018092 25.0018092,30.2722109 18.5231598,30.2722109 Z M18.5231598,9.94988482 C13.7958091,9.94988482 9.94988482,13.7958091 9.94988482,18.5231598 C9.94988482,23.2505105 13.7958091,27.0964348 18.5231598,27.0964348 C23.2505105,27.0964348 27.0964348,23.2505105 27.0964348,18.5231598 C27.0964348,13.7958091 23.2505105,9.94988482 18.5231598,9.94988482 Z" id="Shape" fill="#1B3E6F"></path>
+ <polygon id="Path" fill="#1B3E6F" points="16.2593464 23.0334551 14.0136898 20.7877985 16.9352718 17.8653913 16.9352718 13.4425783 20.1110479 13.4425783 20.1110479 19.1809284"></polygon>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+</svg> \ No newline at end of file
diff --git a/cds-ui/designer-client/src/assets/img/icon-error.sketch b/cds-ui/designer-client/src/assets/img/icon-error.sketch
new file mode 100644
index 000000000..0a17404bc
--- /dev/null
+++ b/cds-ui/designer-client/src/assets/img/icon-error.sketch
Binary files differ
diff --git a/cds-ui/designer-client/src/styles.css b/cds-ui/designer-client/src/styles.css
index 3c0a049bf..a705b2744 100644
--- a/cds-ui/designer-client/src/styles.css
+++ b/cds-ui/designer-client/src/styles.css
@@ -18,6 +18,9 @@ body{
transition: 0.3s !important;
}
/*Bootstrap*/
+.btn:disabled:hover{
+ cursor: default;
+}
.custom-control-label::before{
border: solid 1px #C3CDDB !important;
border-radius: 0 !important;
@@ -45,6 +48,33 @@ body{
width: 14px !important;
height: 14px;
}
+.card-header .btn[aria-expanded="true"],
+.card-header .btn[aria-expanded="false"]{
+ padding-left: 25px !important;
+ padding-right: 25px !important;
+ border-radius: 0 !important;
+}
+.card-header .btn[aria-expanded="true"]{
+ background-color:#F4F9FE;
+}
+.card-header .btn[aria-expanded="false"]{
+ background-color:#fff;
+}
+/*NGX-TOASTR*/
+.ngx-toastr{
+ border-radius: 2px !important;
+ color: #1B3E6F !important;
+ font-size: 13px !important;
+ box-shadow: 0 2px 6px 0 rgba(47, 83, 151, 0.1) !important;
+}
+.toast-success{
+ border-left: solid 5px #66BB00 !important;
+ background: url(/assets/img/icon-required-yes.svg) 12px center #fff no-repeat !important;
+}
+.toast-error{
+ border-left: solid 5px #FF6469 !important;
+ background: url(/assets/img/icon-error.svg) 12px center #fff no-repeat !important;
+}
/*ICONS*/
.icon-menuDots{
font-size: 3px !important;
@@ -330,6 +360,7 @@ background-color: #333;
font-size: 12px;
}
.import-container-all .accordion .card-header{
+ padding: 0 !important;
background: #fff !important;
border-bottom: 0 !important;
}
@@ -338,6 +369,9 @@ background-color: #333;
}
.import-container-all .card-header .accordion-delete{
display: none;
+ position: absolute;
+ right: 15px;
+ background: #F4F9FE;
}
.import-container-all .card-header:hover .accordion-delete{
display: inline;
@@ -468,6 +502,9 @@ height: 40px;
border: 0;
box-shadow: 0 2px 6px 0 rgba(47, 83, 151, 0.1);
}
+.packages-card .card:hover .packageName{
+ color: #1273EB !important;
+}
.packages-card .card-title{
margin-bottom: 0 !important;
font-size: 13px;
@@ -484,12 +521,14 @@ height: 40px;
color: #D0D7E4;
}
.packages-card p.package-desc{
+ margin-top: 6px;
font-size: 13px;
text-align: left;
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
overflow: hidden;
+ color: #1B3E6F;
}
.packages-card p.package-desc:hover{
color: #1B3E6F !important;
@@ -518,7 +557,7 @@ height: 40px;
}
.addPaackage-card a{
margin: 0;
- padding: 8px 15px;
+ padding: 7px 15px;
font-weight: bold;
font-size: 12px;
border-radius: 2px;
@@ -656,8 +695,14 @@ height: 40px;
width: 240px;
border-bottom: solid 1px #C3CDDB;
}
+.searchBox:hover > .searchInput::placeholder{
+ color: #C3CDDB;
+}
.searchBox > .searchInput:focus{
border-bottom: solid 1px #1B3E6F !important;
+ -webkit-box-shadow: 0 4px 6px -6px rgba(18, 115, 235, .6);
+ -moz-box-shadow: 0 4px 6px -6px rgba(18, 115, 235, .6);
+ box-shadow: 0 4px 6px -6px rgba(18, 115, 235, .6);
}
.searchBox:hover > .searchButton{
color: #1B3E6F;
@@ -841,7 +886,7 @@ height: 40px;
animation-direction: alternate;
} */
.card-body{
- padding: 20px !important;
+ padding: 10px 20px 20px !important;
}
/*Main Container*/
@@ -968,6 +1013,13 @@ height: 40px;
font-size: 13px !important;
text-indent: 6px !important;
}
+.fillteredTags{
+ margin-left: 3px;
+ padding: 3px 3px;
+ background: #1B3E6F;
+ color: #fff;
+ border-radius: 4px;
+}
/**Packages Sort**/
.sort-packages{
font-size: 12px;
@@ -1058,7 +1110,7 @@ height: 40px;
margin-bottom: 0;
display: inline-block;
width: auto;
- max-width: 76%;
+ max-width: 64%;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
@@ -1075,6 +1127,7 @@ height: 40px;
padding-bottom: 0 !important;
}
.packages-card .card-footer .col{
+ padding-left: 3px !important;
text-align: left;
}
@@ -1099,7 +1152,13 @@ height: 40px;
}
.btn-create-package,
.btn-import-package{
- margin-bottom: 9px !important;
+ width: 145px;
+}
+.btn-create-package{
+ margin-bottom: 6px !important;
+}
+.btn-import-package{
+ margin-bottom: 4px !important;
}
.btn-create-package,
.btn-create-package:hover{
@@ -1156,6 +1215,7 @@ height: 40px;
.packages-card .dropdown-content a:hover{
background-color: #172B4D;
text-decoration: unset;
+ color: #fff;
}
.packages-card .dropdown-content:hover,
.packages-card .dropdown-toggle:focus ~ .dropdown-content{
@@ -1176,7 +1236,7 @@ height: 40px;
box-shadow: none;
}
.package-version{
- color: #C3CDDB !important;
+ /* color: #C3CDDB !important; */
}
.package-version::before{
content: "|";
@@ -1187,7 +1247,7 @@ height: 40px;
/***Contributers***/
ul.package-contributers{
- /*margin-bottom: 0 !important;*/
+ margin-bottom: 9px !important;
padding-left: 0 !important;
}
.package-contributers li{
@@ -1303,13 +1363,252 @@ ul.package-contributers{
}
+/*CREATE NEW ACTION MODAL*/
+.createActionModal .modal-dialog{
+ max-width: 85%;
+}
+.createActionModal .modal-header{
+ padding-top: 21px !important;
+ padding-bottom: 0 !important;
+ border-bottom: 0;
+}
+.createActionModal .close{
+ margin: 0 !important;
+ padding: 6px 13px 10px !important;
+ width: auto;
+ opacity: 1 !important;
+ border-radius: 100%;
+}
+.createActionModal .close:hover{
+ background-color: #E0E8F2;
+}
+.createActionModal .icon-action-close{
+ font-size: 14px;
+ font-weight: bold;
+}
+.createActionModal .modal-body{
+ padding-top: 0 !important;
+ padding-bottom: 10px !important;
+}
+.createActionModal .modal-body .carousel-item{
+ padding-left: 20px;
+ padding-right: 10px;
+}
+@keyframes fadeInScale {
+ 0% {
+ opacity: 0;
+ -webkit-transform: scale(0) translateY(50%);
+ transform: scale(0) translateY(50%);
+ }
+ 90% {
+ -webkit-transform: scale(1.05);
+ transform: scale(1.05);
+ }
+ 100% {
+ opacity: 1;
+ -webkit-transform: scale(1) translateY(0);
+ transform: scale(1) translateY(0);
+ }
+}
+.card.actionType{
+ margin-bottom: 25px !important;
+ padding: 220px 25px 50px;
+ box-shadow: none;
+ border-radius: 0;
+ -webkit-transition: all 0.3s ease-in-out;
+ transition: all 0.3s ease-in-out;
+}
+.card.actionType:hover{
+ box-shadow: 0 10px 20px 0 rgba(27,62,111,.1);
+ transition: 0.3s !important;
+}
+.createActionModal h1{
+ margin-bottom: 21px;
+ font-size: 22px;
+ text-align: center;
+ font-weight: normal;
+}
+.createActionModal .skip-btn{
+ float: unset;
+ width: auto;
+ color: #1273EB;
+ font-weight: normal !important;
+ font-size: 13px;
+ border: solid 1px #F1F2FA;
+ border-radius: 2px;
+}
+.actionType,
+.actionType:hover{
+ text-align: center;
+ line-height: 40px;
+ background-position: center 40px;
+ background-repeat: no-repeat;
+ background-size: 144px 172px;
+}
+.actionType h3,
+.actionType p{
+ margin: 0;
+}
+.actionType h3{
+ text-transform: uppercase;
+ font-size: 13px;
+ font-weight: bold;
+}
+.actionType p{
+ font-size: 13px !important;
+ line-height: 24px;
+}
+.actionType .btn,
+.actionType:hover .btn{
+ opacity: 0;
+ position: absolute;
+ bottom: 0;
+ left: 30% !important;
+ margin-bottom: 26px;
+ width: 100px;
+ height: 30px;
+ background: #1B3E6F;
+ color: #fff;
+ font-size: 12px;
+ font-weight: bold;
+ border-radius: 15px !important;
+ -webkit-transform: translateY(-20%);
+ transform: translateY(-20%);
+ -webkit-transition: all 0.3s ease-in-out;
+ transition: all 0.3s ease-in-out;
+}
+.actionType:hover .btn{
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ transform: translateY(0);
+}
+.actionType.custom{
+ background-image: url(/assets/img/icon-action-custom.svg);
+}
+.actionType.custom:hover{
+ cursor: pointer;
+ background-image: url(/assets/img/icon-action-custom-hover.svg);
+}
+.actionType.default{
+ background-image: url(/assets/img/icon-action-default.svg);
+}
+.actionType.default:hover{
+ cursor: pointer;
+ background-image: url(/assets/img/icon-action-default-hover.svg);
+}
+.actionType.recent{
+ background-image: url(/assets/img/icon-action-recent.svg);
+}
+.actionType.recent:hover{
+ cursor: pointer;
+ background-image: url(/assets/img/icon-action-recent-hover.svg);
+}
+.actionType.import{
+ background-image: url(/assets/img/icon-action-import.svg);
+}
+.actionType.import:hover{
+ cursor: pointer;
+ background-image: url(/assets/img/icon-action-import-hover.svg);
+}
+.createActionModal .carousel-indicators{
+ margin: 0;
+}
+.createActionModal .carousel-indicators li{
+ margin: 0;
+ padding: 0;
+ text-indent: 0;
+ border: 0;
+}
+.createActionModal .back{
+ position: fixed !important;
+ top: 83px;
+ width: auto;
+ padding:0 !important;
+}
-
-
-
-
-
-
+.actionFormWrapper{
+ width: 60%;
+ margin: 0 auto;
+}
+.createActionModal .form-control.customAction{
+ width: 55%;
+ margin: 70px auto;
+ padding-left: 0;
+ border-radius: 0;
+ border: 0;
+ border-bottom: solid 1px #E0E8F2;
+ color: #1B3E6F !important;
+ font-size: 14px;
+}
+.createActionModal .form-control:focus{
+ border-bottom: solid 1px #1B3E6F;
+ background: transparent !important;
+ -webkit-box-shadow: 0 4px 6px -6px rgba(18, 115, 235, .8);
+ -moz-box-shadow: 0 4px 6px -6px rgba(18, 115, 235, .8);
+ box-shadow: 0 4px 6px -6px rgba(18, 115, 235, .8);
+ text-shadow: none;
+}
+.createActionModal .form-control::placeholder{
+ color: #C3CDDB;
+
+}
+.createActionModal .submit,
+.createActionModal .submit:hover{
+ float: unset;
+ width: 100px;
+ height: 30px;
+ background: #1B3E6F;
+ color: #fff;
+ font-size: 12px;
+ font-weight: bold;
+ border-radius: 15px !important;
+}
+.actionlabel{
+ margin-right: 2px;
+ color: #C3CDDB;
+ font-size: 11px;
+ font-weight: bold;
+}
+.form-control.searchInput,
+.form-control.searchInput:focus{
+ float: right;
+ width: 250px !important;
+ height: 30px !important;
+ padding-left: 32px !important;
+ border: solid 1px #E0E8F2 !important;
+ border-radius: 2px !important;
+ background: url(../src/assets/img/icon-search-light.svg) 9px center no-repeat !important;
+ font-size: 13px !important;
+ color: #1B3E6F;
+}
+.actionsListScroll{
+ height: 228px;
+ max-height: 228px;
+ overflow: auto;
+}
+.createActionModal .actionName{
+ margin-bottom: 15px;
+ padding: 9px 18px;
+ box-shadow: 0 2px 6px rgba(47,83,151,0.15);
+}
+.createActionModal p.selectedActions{
+ margin-top: 20px;
+ margin-bottom: 10px;
+ color: #8D9FB7;
+ font-size: 13px;
+}
+.createActionModal .sort-packages .dropdown{
+ width: 60%;
+}
+.createActionModal .sort-packages .dropdown-text::after {
+ right: 6px;
+}
+.createActionModal .sort-packages .dropdown-content{
+ width: 100%;
+}
+.createActionModal .folder-upload-text button{
+ float: unset;
+}
/* Border Fade */
.border-fade {
display: inline-block;
@@ -1653,9 +1952,8 @@ padding-left: 20px !important;
margin-top: 6px;
}
.package-view-button .btn{
- padding: 6px 12px;
- border-radius: 2px;
- font-weight: bold;
+ padding: 6px 21px;
+ border-radius: 18px;
}
.package-view-button .btn:hover{
opacity: .9;
@@ -1729,6 +2027,9 @@ padding-left: 20px !important;
.single-line-model input:focus,
.single-line-custom-key input:focus{
border-bottom-color: #1B3E6F !important;
+ -webkit-box-shadow: 0 4px 6px -6px rgba(18, 115, 235, .6);
+ -moz-box-shadow: 0 4px 6px -6px rgba(18, 115, 235, .6);
+ box-shadow: 0 4px 6px -6px rgba(18, 115, 235, .6);
}
.model-note-container{
width: calc(100% - 325px);
@@ -1814,6 +2115,18 @@ padding-left: 20px !important;
color: #1B3E6F;
transition: all 250ms ease-out;
}
+.label-input input:focus{
+ border-bottom: solid 1px #1B3E6F;
+ background: transparent !important;
+ -webkit-box-shadow: 0 4px 6px -6px rgba(18, 115, 235, .8);
+ -moz-box-shadow: 0 4px 6px -6px rgba(18, 115, 235, .8);
+ box-shadow: 0 4px 6px -6px rgba(18, 115, 235, .8);
+ text-shadow: none;
+}
+.label-input input:disabled{
+ background: #fff;
+ opacity: .5;
+}
.label-input input[type=radio]{
width: auto;
}
@@ -1929,7 +2242,7 @@ hr{
.action-button{
margin-bottom: 12px;
padding: 3px 30px;
- color: #BABBC3;
+ color: #BABBC3 !important;
font-size: 10px;
font-weight: bold;
display: inline-block;
@@ -1949,6 +2262,9 @@ hr{
font-size: 17px;
display: inline-block;
}
+.action-button i:hover{
+ background: #dee2e6;
+}
.action-button i.icon-save-sm{
background: #1273EB;
color: #fff;
@@ -1959,10 +2275,10 @@ hr{
color: #C3CDDB;
}
.action-button.save{
- color: #1273EB;
+ color: #1273EB !important;
}
-.action-button.delete{
- color: #BABBC3;
+.action-button.save:hover{
+ opacity: .9;
}
.action-button.delete i{
color: #BABBC3;
@@ -2004,6 +2320,7 @@ hr{
padding: .7rem 1.5rem !important;
}
.modal-footer{
+ padding-top: 0 !important;
border-top: 0 !important;
}
.modal-footer .btn{
@@ -2077,9 +2394,11 @@ hr{
font-size: 12px;
}
.create-title{
- margin-bottom: 15px;
+ margin-bottom: 0;
font-size: 14px;
font-weight: bold;
+ /* text-transform: uppercase; */
+ line-height: 32px;
}
.folder-upload-text{
margin-top: 10px;
@@ -2116,6 +2435,10 @@ hr{
font-weight: normal;
font-size: 13px;
}
+.upload-table .table thead th:first-child{
+ width: 24px;
+ padding-right: 0;
+}
.upload-table tr:last-child th{
border-bottom: 0 !important;
}
@@ -2218,6 +2541,11 @@ hr{
.template-mapping-accordion{
width: 100%;
}
+.template-mapping-accordion .accordian-title{
+ color: #C3CDDB !important;
+ font-size: 12px !important;
+ font-weight: normal !important;
+}
.card{
border-radius: 2px;
border: 0;
@@ -2246,6 +2574,9 @@ hr{
margin-bottom: 0px !important;
border-top: 1px solid #ECEDF2 !important;
}
+.accordion > .card > .card-header{
+ padding: 0 !important;
+}
.template-mapping-accordion .card{
margin-bottom: 25px !important;
}
@@ -2387,7 +2718,8 @@ padding: 0 10px 0 0;
color: #1B3E6F;
font-size: 10px;
font-weight: bold;
- display: inline-table;
+ display: inline-block;
+ vertical-align: top;
margin-top: 20px;
margin-bottom: 10px;
margin:15px 30px 20px;
@@ -2416,6 +2748,15 @@ padding: 0 10px 0 0;
color:#C3CDDB ;
font-size: 8px;
}
+.mapping-source-load.hover-disable{
+ opacity: .5;
+}
+.mapping-source-load.hover-disable:hover span{
+ color: #1B3E6F;
+}
+.mapping-source-load.hover-disable:hover i{
+ background: transparent;
+}
.template-mapping-list{
background: #F4F9FE;
border: 1px solid #E9F3FF;
@@ -2426,12 +2767,13 @@ padding: 0 10px 0 0;
margin-bottom: 20px;
color: #1B3E6F;
}
-.template-mapping-list:hover, .template-mapping-list.active {
- background: #1B3E6F;
+.template-mapping-list:hover,
+.template-mapping-list.active {
+ /* background: #1B3E6F; */
text-decoration: none;
- color: #fff !important;
+ /* color: #fff !important; */
border-radius: 4px;
-
+ box-shadow: 0 2px 6px 0 rgba(47, 83, 151, 0.3);
}
.template-mapping-list:hover{
opacity: .9;
@@ -2439,13 +2781,30 @@ padding: 0 10px 0 0;
.template-mapping-list span{
background: #fff;
+ border: solid 1px #E9F3FF;
color: #2A81ED;
font-size: 8px;
float: right;
border-radius: 50px;
- padding: 4px 10px;
+ padding: 3px 10px;
margin-left: 5px;
-
+}
+.template-mapping-list:hover span{
+ display: none;
+}
+.deleteTemplate{
+ display: none;
+ position: absolute;
+ right: 21px;
+ top: 7px;
+ border: 0;
+ background: transparent;
+}
+.deleteTemplate i{
+ color: #FF6469;
+}
+.template-mapping-list:hover .deleteTemplate{
+ display: inline;
}
.max-height-list{
max-height: 232px;
@@ -2453,11 +2812,12 @@ padding: 0 10px 0 0;
overflow: auto;
}
.create-template-mapping-button{
-background: #C3CDDB;
-border-radius: 50px;
-font-size: 12px;
-padding: 10px 20px;
-margin-bottom: 20px;
+ background: #C3CDDB;
+ border-radius: 50px;
+ font-size: 12px;
+ font-weight: bold;
+ padding: 10px 20px;
+ margin-bottom: 20px;
display: inline-block;
cursor: pointer;
}
@@ -2542,13 +2902,11 @@ margin-right: 5px;
height: 20px;
}
.template-mapping-action{
- width: 100%;
- text-align: center;
- margin-bottom: 30px;
+ margin-bottom: 20px;
}
.template-mapping-action button{
border-radius: 50px;
- padding: 6px 20px;
+ padding: 4px 20px;
font-size: 14px;
}
.template-mapping-action .btn-primary{
@@ -2582,7 +2940,7 @@ margin-right: 5px;
margin-bottom: 6px;
color: #1B3E6F !important;
font-size: 13px;
- font-weight: bold;
+ /* font-weight: bold; */
}
.dataTables_filter input{
@@ -2687,6 +3045,14 @@ table.dataTable.no-footer{
background: transparent;
color: #1B3E6F;
}
+
+/* Windows View as 150% */
+@media (resolution: 150dpi) {
+ /* @media (-webkit-device-pixel-ratio: 1.5) { */
+ .body-container > .container{
+ max-width: 960px !important;
+ }
+}
/* Extra small devices (portrait phones, less than 576px) */
@media (max-width: 575.98px) {
.page-title{
diff --git a/cds-ui/server/src/controllers/blueprint-rest.controller.ts b/cds-ui/server/src/controllers/blueprint-rest.controller.ts
index 7b2c78329..2319e0a5e 100644
--- a/cds-ui/server/src/controllers/blueprint-rest.controller.ts
+++ b/cds-ui/server/src/controllers/blueprint-rest.controller.ts
@@ -20,34 +20,14 @@ limitations under the License.
*/
-import {
- Count,
- CountSchema,
- Filter,
- repository,
- Where,
-} from '@loopback/repository';
-import {
- post,
- param,
- get,
- getFilterSchemaFor,
- getWhereSchemaFor,
- patch,
- put,
- del,
- requestBody,
- Request,
- Response,
- RestBindings,
-} from '@loopback/rest';
+import {get, param, post, Request, requestBody, Response, RestBindings} from '@loopback/rest';
import {Blueprint} from '../models';
import {inject} from '@loopback/core';
import {BlueprintService} from '../services';
import * as fs from 'fs';
import * as multiparty from 'multiparty';
import * as request_lib from 'request';
-import {processorApiConfig, appConfig} from '../config/app-config';
+import {appConfig, processorApiConfig} from '../config/app-config';
import {bluePrintManagementServiceGrpcClient} from '../clients/blueprint-management-service-grpc-client';
import {BlueprintDetail} from '../models/blueprint.detail.model';
@@ -94,8 +74,9 @@ export class BlueprintRestController {
async getPagedBlueprints(
@param.query.number('limit') limit: number,
@param.query.number('offset') offset: number,
- @param.query.string('sort') sort: string) {
- return await this.bpservice.getPagedBueprints(limit, offset, sort);
+ @param.query.string('sort') sort: string,
+ @param.query.string('sortType') sortType: string) {
+ return await this.bpservice.getPagedBueprints(limit, offset, sort, sortType);
}
@get('/controllerblueprint/metadata/paged/{keyword}', {
@@ -110,8 +91,9 @@ export class BlueprintRestController {
@param.path.string('keyword') keyword: string,
@param.query.number('limit') limit: number,
@param.query.number('offset') offset: number,
- @param.query.string('sort') sort: string) {
- return await this.bpservice.getMetaDataPagedBlueprints(limit, offset, sort, keyword);
+ @param.query.string('sort') sort: string,
+ @param.query.string('sortType') sortType: string) {
+ return await this.bpservice.getMetaDataPagedBlueprints(limit, offset, sort, keyword, sortType);
}
@get('/controllerblueprint/meta-data/{keyword}', {
diff --git a/cds-ui/server/src/datasources/blueprint.datasource-template.ts b/cds-ui/server/src/datasources/blueprint.datasource-template.ts
index d7ac14b26..9b8e06a13 100644
--- a/cds-ui/server/src/datasources/blueprint.datasource-template.ts
+++ b/cds-ui/server/src/datasources/blueprint.datasource-template.ts
@@ -73,7 +73,7 @@ export default {
{
"template": {
"method": "GET",
- "url": processorApiConfig.http.url + "/blueprint-model/paged?limit={limit}&offset={offset}&sort={sort}",
+ "url": processorApiConfig.http.url + "/blueprint-model/paged?limit={limit}&offset={offset}&sort={sort}&sortType={sortType}",
"headers": {
"accepts": "application/json",
"content-type": "application/json",
@@ -82,13 +82,13 @@ export default {
"responsePath": "$",
},
"functions": {
- "getPagedBueprints": ["limit", "offset", "sort"],
+ "getPagedBueprints": ["limit", "offset", "sort","sortType"],
}
},
{
"template": {
"method": "GET",
- "url": processorApiConfig.http.url + "/blueprint-model/paged/meta-data/{keyword}?limit={limit}&offset={offset}&sort={sort}",
+ "url": processorApiConfig.http.url + "/blueprint-model/paged/meta-data/{keyword}?limit={limit}&offset={offset}&sort={sort}&sortType={sortType}",
"headers": {
"accepts": "application/json",
"content-type": "application/json",
@@ -97,7 +97,7 @@ export default {
"responsePath": "$",
},
"functions": {
- "getMetaDataPagedBlueprints": ["limit", "offset", "sort", "keyword"],
+ "getMetaDataPagedBlueprints": ["limit", "offset", "sort", "keyword","sortType"],
}
},
{
diff --git a/cds-ui/server/src/services/blueprint.service.ts b/cds-ui/server/src/services/blueprint.service.ts
index cb601f3cf..2680e105a 100644
--- a/cds-ui/server/src/services/blueprint.service.ts
+++ b/cds-ui/server/src/services/blueprint.service.ts
@@ -7,8 +7,8 @@ export interface BlueprintService {
getAllblueprints(): Promise<any>;
getBlueprintsByKeyword(keyword: string): Promise<any>;
getByTags(tags: string): Promise<JSON>;
- getPagedBueprints(limit: number, offset: number , sort: string): Promise<any>;
- getMetaDataPagedBlueprints(limit: number, offset: number, sort: string, keyword: string): Promise<any>;
+ getPagedBueprints(limit: number, offset: number , sort: string,sortType: String): Promise<any>;
+ getMetaDataPagedBlueprints(limit: number, offset: number, sort: string, keyword: string,sortType: String): Promise<any>;
getBlueprintByNameAndVersion(name:string, version:string): Promise<any>;
diff --git a/components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/artifact_types.json b/components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/artifact_types.json
index 6ec3b4105..da498e35e 100644
--- a/components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/artifact_types.json
+++ b/components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/artifact_types.json
@@ -1,11 +1,5 @@
{
"artifact_types" : {
- "artifact-directed-graph" : {
- "description" : "Directed Graph File",
- "version" : "1.0.0",
- "derived_from" : "tosca.artifacts.Implementation",
- "file_ext" : [ "json", "xml" ]
- },
"artifact-mapping-resource" : {
"description" : "Resource Mapping File used along with Configuration template",
"version" : "1.0.0",
diff --git a/components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/data_types.json b/components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/data_types.json
index 71e5fa63d..9f7aa9d83 100644
--- a/components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/data_types.json
+++ b/components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/data_types.json
@@ -1,776 +1,1157 @@
{
- "data_types" : {
- "dt-config-assign-properties" : {
- "description" : "Dynamic DataType definition for workflow(config-assign).",
- "version" : "1.0.0",
- "properties" : {
- "vdns_int_private_ip_0" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "entry_schema" : {
- "type" : ""
- }
- },
- "vnf-id" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "entry_schema" : {
- "type" : ""
- }
- },
- "vdns_vf_module_id" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "entry_schema" : {
- "type" : ""
- }
- },
- "service-instance-id" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "entry_schema" : {
- "type" : ""
- }
- },
- "vdns_onap_private_ip_0" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "entry_schema" : {
- "type" : ""
- }
- }
+ "data_types": {
+ "dt-config-assign-properties": {
+ "description": "Dynamic DataType definition for workflow(config-assign).",
+ "version": "1.0.0",
+ "properties": {
+ "vdns_int_private_ip_0": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "vnf-id": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "vdns_vf_module_id": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "service-instance-id": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "vdns_onap_private_ip_0": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ }
+ },
+ "derived_from": "tosca.datatypes.Dynamic"
},
- "derived_from" : "tosca.datatypes.Dynamic"
- },
- "dt-config-deploy-properties" : {
- "description" : "Dynamic DataType definition for workflow(config-deploy).",
- "version" : "1.0.0",
- "properties" : {
- "vdns_int_private_ip_0" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "entry_schema" : {
- "type" : ""
- }
- },
- "vnf-id" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "entry_schema" : {
- "type" : ""
- }
- },
- "vdns_vf_module_id" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "entry_schema" : {
- "type" : ""
- }
- },
- "service-instance-id" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "entry_schema" : {
- "type" : ""
- }
- },
- "vdns_onap_private_ip_0" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "entry_schema" : {
- "type" : ""
- }
- },
- "ip" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "entry_schema" : {
- "type" : ""
- }
- }
+ "dt-config-deploy-properties": {
+ "description": "Dynamic DataType definition for workflow(config-deploy).",
+ "version": "1.0.0",
+ "properties": {
+ "vnf-id": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "service-instance-id": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "ip": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ }
+ },
+ "derived_from": "tosca.datatypes.Dynamic"
},
- "derived_from" : "tosca.datatypes.Dynamic"
- },
- "dt-resource-assignment-properties" : {
- "description" : "Dynamic DataType definition for workflow(resource-assignment).",
- "version" : "1.0.0",
- "properties" : {
- "vlb_int_pktgen_private_ip_0" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "entry_schema" : {
- "type" : ""
- }
- },
- "private1-prefix-id" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "entry_schema" : {
- "type" : ""
- }
- },
- "vnf-id" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "entry_schema" : {
- "type" : ""
- }
- },
- "vlb_private_net_cidr" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "entry_schema" : {
- "type" : ""
- }
- },
- "vdns_onap_private_ip_0" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "default" : "${vdns_onap_private_ip_0}",
- "entry_schema" : {
- "type" : ""
- }
- },
- "vdns_image_name" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "entry_schema" : {
- "type" : ""
- }
- },
- "public_net_id" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "entry_schema" : {
- "type" : ""
- }
- },
- "sec_group" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "entry_schema" : {
- "type" : ""
- }
- },
- "nfc-naming-code" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "entry_schema" : {
- "type" : ""
- }
- },
- "vnfc-model-invariant-uuid" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "entry_schema" : {
- "type" : ""
- }
- },
- "nexus_artifact_repo" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "default" : "https://nexus.onap.org",
- "entry_schema" : {
- "type" : ""
- }
- },
- "onap_private_net_cidr" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "entry_schema" : {
- "type" : ""
- }
- },
- "vpg_onap_private_ip_0" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "entry_schema" : {
- "type" : ""
- }
- },
- "vdns_name_0" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "default" : "${vdns_name_0}",
- "entry_schema" : {
- "type" : ""
- }
- },
- "vdns_int_private_ip_0" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "default" : "${vdns_int_private_ip_0}",
- "entry_schema" : {
- "type" : ""
- }
- },
- "image_name" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "entry_schema" : {
- "type" : ""
- }
- },
- "flavor_name" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "entry_schema" : {
- "type" : ""
- }
- },
- "dcae_collector_ip" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "default" : "10.0.4.1",
- "entry_schema" : {
- "type" : ""
- }
- },
- "vpg_name_0" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "default" : "${vpg_name_0}",
- "entry_schema" : {
- "type" : ""
- }
- },
- "vip" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "default" : "${vip}",
- "entry_schema" : {
- "type" : ""
- }
- },
- "vf-naming-policy" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "entry_schema" : {
- "type" : ""
- }
- },
- "int_private_net_id" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "default" : "${int_private_net_id}",
- "entry_schema" : {
- "type" : ""
- }
- },
- "vfccustomizationuuid" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "entry_schema" : {
- "type" : ""
- }
- },
- "onap_private_net_id" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "entry_schema" : {
- "type" : ""
- }
- },
- "demo_artifacts_version" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "entry_schema" : {
- "type" : ""
- }
- },
- "vlb_int_private_ip_0" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "entry_schema" : {
- "type" : ""
- }
- },
- "vnf-model-customization-uuid" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "entry_schema" : {
- "type" : ""
- }
- },
- "int_private_subnet_id" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "default" : "${int_private_subnet_id}",
- "entry_schema" : {
- "type" : ""
- }
- },
- "key_name" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "entry_schema" : {
- "type" : ""
- }
- },
- "vlb_name_0" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "default" : "${vlb_name_0}",
- "entry_schema" : {
- "type" : ""
- }
- },
- "install_script_version" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "entry_schema" : {
- "type" : ""
- }
- },
- "int_pktgen_private_net_id" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "default" : "${int_pktgen_private_net_id}",
- "entry_schema" : {
- "type" : ""
- }
- },
- "vm-type" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "entry_schema" : {
- "type" : ""
- }
- },
- "vnf_name" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "entry_schema" : {
- "type" : ""
- }
- },
- "keypair" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "default" : "vlb_key",
- "entry_schema" : {
- "type" : ""
- }
- },
- "onap_private_subnet_id" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "entry_schema" : {
- "type" : ""
- }
- },
- "aic-cloud-region" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "entry_schema" : {
- "type" : ""
- }
- },
- "gre_ipaddr" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "default" : "${gre_ipaddr}",
- "entry_schema" : {
- "type" : ""
- }
- },
- "vf-module-model-customization-uuid" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "entry_schema" : {
- "type" : ""
- }
- },
- "vf-module-name" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "default" : "${vf-module-name}",
- "entry_schema" : {
- "type" : ""
- }
- },
- "pg_int" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "default" : "${pg_int}",
- "entry_schema" : {
- "type" : ""
- }
- },
- "vpg_flavor_name" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "entry_schema" : {
- "type" : ""
- }
- },
- "vf-module-id" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "entry_schema" : {
- "type" : ""
- }
- },
- "dcae_collector_port" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "default" : "30235",
- "entry_schema" : {
- "type" : ""
- }
- },
- "vf-module-label" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "entry_schema" : {
- "type" : ""
- }
- },
- "vlb_flavor_name" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "entry_schema" : {
- "type" : ""
- }
- },
- "pktgen_private_net_cidr" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "entry_schema" : {
- "type" : ""
- }
- },
- "vpg_image_name" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "entry_schema" : {
- "type" : ""
- }
- },
- "private2-prefix-id" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "entry_schema" : {
- "type" : ""
- }
- },
- "vdns_flavor_name" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "default" : "m1.medium",
- "entry_schema" : {
- "type" : ""
- }
- },
- "vnfc-model-version" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "entry_schema" : {
- "type" : ""
- }
- },
- "service-instance-id" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "entry_schema" : {
- "type" : ""
- }
- },
- "nb_api_version" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "default" : "1.2.0",
- "entry_schema" : {
- "type" : ""
- }
- },
- "vpg_int_pktgen_private_ip_0" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "entry_schema" : {
- "type" : ""
- }
- },
- "vf-module-type" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "entry_schema" : {
- "type" : ""
- }
- },
- "pub_key" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "default" : "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCs84Cy8+qi/jvucay0BwFtOq3ian0ulTXFGxkZcZCR0N48j88pbHJaEqb9e25MAsrfH+7Etb9Kd5nbBThEL/i0AyHXnDsc80Oq0sqlLcfLo3SGSurkrNoRofHboJ5Hn+N9SlWN5FCQGbTx1w3rjqR4LasAI6XxH9xpXSFyyge6ysVXH0cYaZ8sg98nFZa1fPJR9L8COjZvF+EYudub2RC5HVyV/sx7bliNFo9JwQh6du1abG4G7ZDjTIcYwYp21iq52UzWU28RVcAyY6AQZJu2lHLdsr8fPvyeWZpC5EqGsxI1G609m9G/dURRKwYfez/f2ATzpn5QjEX7LrLWBM8r Generated-by-Nova",
- "entry_schema" : {
- "type" : ""
- }
- },
- "management-prefix-id" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "entry_schema" : {
- "type" : ""
- }
- },
- "int_pktgen_private_subnet_id" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "default" : "${int_pktgen_private_subnet_id}",
- "entry_schema" : {
- "type" : ""
- }
- },
- "create-md-sal-vnf-param" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "entry_schema" : {
- "type" : ""
- }
- },
- "vlb_onap_private_ip_0" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "entry_schema" : {
- "type" : ""
- }
- },
- "cloud_env" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "default" : "openstack",
- "entry_schema" : {
- "type" : ""
- }
- },
- "vlb_image_name" : {
- "description" : "",
- "required" : false,
- "type" : "string",
- "status" : "",
- "constraints" : [ { } ],
- "entry_schema" : {
- "type" : ""
- }
- }
+ "dt-HealthCheck-properties": {
+ "description": "Dynamic DataType definition for workflow(config-deploy).",
+ "version": "1.0.0",
+ "properties": {
+ "vnf-id": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "service-instance-id": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "ip": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ }
+ },
+ "derived_from": "tosca.datatypes.Dynamic"
},
- "derived_from" : "tosca.datatypes.Dynamic"
- }
- }
-}
+ "dt-ScaleOutReconfiguration-properties": {
+ "description": "Dynamic DataType definition for workflow(config-deploy).",
+ "version": "1.0.0",
+ "properties": {
+ "vnf-id": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "vf-module-id": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "service-instance-id": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "ip": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "vdns_int_private_ip_0": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "vdns_vf_module_id": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "vdns_onap_private_ip_0": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ }
+ },
+ "derived_from": "tosca.datatypes.Dynamic"
+ },
+ "dt-vf-config-assign-properties": {
+ "description": "Dynamic DataType definition for workflow(config-assign).",
+ "version": "1.0.0",
+ "properties": {
+ "vdns_int_private_ip_0": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "vnf-id": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "vdns_vf_module_id": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "service-instance-id": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "vdns_onap_private_ip_0": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ }
+ },
+ "derived_from": "tosca.datatypes.Dynamic"
+ },
+ "dt-vf-config-deploy-properties": {
+ "description": "Dynamic DataType definition for workflow(config-deploy).",
+ "version": "1.0.0",
+ "properties": {
+ "vnf-id": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "service-instance-id": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "ip": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ }
+ },
+ "derived_from": "tosca.datatypes.Dynamic"
+ },
+ "dt-resource-assignment-properties": {
+ "description": "Dynamic DataType definition for workflow(resource-assignment).",
+ "version": "1.0.0",
+ "properties": {
+ "vlb_int_pktgen_private_ip_0": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "vlb_0_int_pktgen_private_port_0_mac": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "vf-module-assign": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "vnf_assign_aai": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "vpg_0_int_pktgen_private_port_0_mac": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "vf-module-name": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "private1-prefix-id": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "vnf-id": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "vlb_private_net_cidr": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "vdns_onap_private_ip_0": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "vdns_image_name": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "public_net_id": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "sec_group": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "nfc-naming-code": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "vnfc-model-invariant-uuid": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "nexus_artifact_repo": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "onap_private_net_cidr": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "vpg_onap_private_ip_0": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "vdns_name_0": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "vdns_int_private_ip_0": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "image_name": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "flavor_name": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "dcae_collector_ip": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "vpg_name_0": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "vip": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "vf-naming-policy": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "int_private_net_id": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "vfccustomizationuuid": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "onap_private_net_id": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "demo_artifacts_version": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "vlb_int_private_ip_0": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "vnf-model-customization-uuid": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "int_private_subnet_id": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "key_name": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "vlb_name_0": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "install_script_version": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "int_pktgen_private_net_id": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "vm-type": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "vnf_name": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "keypair": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "onap_private_subnet_id": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "aic-cloud-region": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "gre_ipaddr": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "vf-module-model-customization-uuid": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "pg_int": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "vpg_flavor_name": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "vf-module-id": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "dcae_collector_port": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "vf-module-label": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "vlb_flavor_name": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "pktgen_private_net_cidr": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "vpg_image_name": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "private2-prefix-id": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "vdns_flavor_name": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "vnfc-model-version": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "service-instance-id": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "nb_api_version": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "vpg_int_pktgen_private_ip_0": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "vf-module-type": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "pub_key": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "management-prefix-id": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "int_pktgen_private_subnet_id": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "create-md-sal-vnf-param": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "vlb_onap_private_ip_0": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "cloud_env": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "vlb_image_name": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ }
+ },
+ "derived_from": "tosca.datatypes.Dynamic"
+ }
+ }
+} \ No newline at end of file
diff --git a/components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/node_types.json b/components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/node_types.json
index e3f915e33..16d339514 100644
--- a/components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/node_types.json
+++ b/components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/node_types.json
@@ -1,402 +1,442 @@
{
- "node_types" : {
- "component-netconf-executor" : {
- "description" : "This is Netconf Transaction Configuration Component API",
- "version" : "1.0.0",
- "attributes" : {
- "response-data" : {
- "required" : false,
- "type" : "json"
- }
- },
- "capabilities" : {
- "component-node" : {
- "type" : "tosca.capabilities.Node"
- }
- },
- "requirements" : {
- "netconf-connection" : {
- "capability" : "netconf",
- "node" : "vnf-netconf-device",
- "relationship" : "tosca.relationships.ConnectsTo"
- }
- },
- "interfaces" : {
- "ComponentNetconfExecutor" : {
- "operations" : {
- "process" : {
- "inputs" : {
- "script-type" : {
- "description" : "Script type, kotlin type is supported",
- "required" : true,
- "type" : "string",
- "constraints" : [ {
- "valid_values" : [ "kotlin", "jython", "internal" ]
- } ],
- "default" : "internal"
- },
- "script-class-reference" : {
- "description" : "Kotlin Script class name or jython script name.",
- "required" : true,
- "type" : "string"
- },
- "instance-dependencies" : {
- "description" : "Instance names to inject to Jython or Kotlin Script.",
- "required" : true,
- "type" : "list",
- "entry_schema" : {
- "type" : "string"
+ "node_types": {
+ "component-resource-resolution": {
+ "description": "This is Resource Assignment Component API",
+ "version": "1.0.0",
+ "attributes": {
+ "assignment-params": {
+ "required": true,
+ "type": "string"
+ }
+ },
+ "capabilities": {
+ "component-node": {
+ "type": "tosca.capabilities.Node"
+ }
+ },
+ "interfaces": {
+ "ResourceResolutionComponent": {
+ "operations": {
+ "process": {
+ "inputs": {
+ "resolution-key": {
+ "description": "Key for service instance related correlation.",
+ "required": false,
+ "type": "string"
+ },
+ "occurrence": {
+ "description": "Number of time to perform the resolution.",
+ "required": false,
+ "type": "integer",
+ "default": 1
+ },
+ "store-result": {
+ "description": "Whether or not to store the output.",
+ "required": false,
+ "type": "boolean"
+ },
+ "resource-type": {
+ "description": "Request type.",
+ "required": false,
+ "type": "string"
+ },
+ "resolution-summary": {
+ "description": "Enable output list of ResourcesAssignmentData",
+ "required": false,
+ "type": "boolean"
+ },
+ "artifact-prefix-names": {
+ "description": "Template , Resource Assignment Artifact Prefix names",
+ "required": true,
+ "type": "list",
+ "entry_schema": {
+ "type": "string"
+ }
+ },
+ "request-id": {
+ "description": "Request Id, Unique Id for the request.",
+ "required": true,
+ "type": "string"
+ },
+ "resource-id": {
+ "description": "Resource Id.",
+ "required": false,
+ "type": "string"
+ },
+ "action-name": {
+ "description": "Action Name of the process",
+ "required": false,
+ "type": "string"
+ },
+ "dynamic-properties": {
+ "description": "Dynamic Json Content or DSL Json reference.",
+ "required": false,
+ "type": "json"
+ }
+ },
+ "outputs": {
+ "resource-assignment-params": {
+ "required": true,
+ "type": "string"
+ },
+ "status": {
+ "required": true,
+ "type": "string"
+ }
+ }
}
- },
- "dynamic-properties" : {
- "description" : "Dynamic Json Content or DSL Json reference.",
- "required" : false,
- "type" : "json"
- }
- },
- "outputs" : {
- "response-data" : {
- "description" : "Execution Response Data in JSON format.",
- "required" : false,
- "type" : "string"
- },
- "status" : {
- "description" : "Status of the Component Execution ( success or failure )",
- "required" : true,
- "type" : "string"
- }
- }
+ }
}
- }
- }
+ },
+ "derived_from": "tosca.nodes.Component"
},
- "derived_from" : "tosca.nodes.Component"
- },
- "component-resource-resolution" : {
- "description" : "This is Resource Assignment Component API",
- "version" : "1.0.0",
- "attributes" : {
- "assignment-params" : {
- "required" : true,
- "type" : "string"
- }
- },
- "capabilities" : {
- "component-node" : {
- "type" : "tosca.capabilities.Node"
- }
- },
- "interfaces" : {
- "ResourceResolutionComponent" : {
- "operations" : {
- "process" : {
- "inputs" : {
- "resolution-key" : {
- "description" : "Key for service instance related correlation.",
- "required" : false,
- "type" : "string"
- },
- "occurrence" : {
- "description" : "Number of time to perform the resolution.",
- "required" : false,
- "type" : "integer",
- "default" : 1
- },
- "store-result" : {
- "description" : "Whether or not to store the output.",
- "required" : false,
- "type" : "boolean"
- },
- "resource-type" : {
- "description" : "Request type.",
- "required" : false,
- "type" : "string"
- },
- "artifact-prefix-names" : {
- "description" : "Template , Resource Assignment Artifact Prefix names",
- "required" : true,
- "type" : "list",
- "entry_schema" : {
- "type" : "string"
+ "component-script-executor": {
+ "description": "This is CLI Transaction Configuration Component API",
+ "version": "1.0.0",
+ "attributes": {
+ "response-data": {
+ "required": false,
+ "type": "json"
+ }
+ },
+ "capabilities": {
+ "component-node": {
+ "type": "tosca.capabilities.Node"
+ }
+ },
+ "interfaces": {
+ "ComponentScriptExecutor": {
+ "operations": {
+ "process": {
+ "inputs": {
+ "script-type": {
+ "description": "Script type, kotlin type is supported",
+ "required": true,
+ "type": "string",
+ "constraints": [
+ {
+ "valid_values": [
+ "kotlin",
+ "jython",
+ "internal"
+ ]
+ }
+ ],
+ "default": "internal"
+ },
+ "script-class-reference": {
+ "description": "Kotlin Script class name or jython script name.",
+ "required": true,
+ "type": "string"
+ },
+ "dynamic-properties": {
+ "description": "Dynamic Json Content or DSL Json reference.",
+ "required": false,
+ "type": "json"
+ }
+ },
+ "outputs": {
+ "response-data": {
+ "description": "Execution Response Data.",
+ "required": false,
+ "type": "string"
+ },
+ "status": {
+ "description": "Status of the Component Execution ( success or failure )",
+ "required": true,
+ "type": "string"
+ }
+ }
}
- },
- "request-id" : {
- "description" : "Request Id, Unique Id for the request.",
- "required" : true,
- "type" : "string"
- },
- "resource-id" : {
- "description" : "Resource Id.",
- "required" : false,
- "type" : "string"
- },
- "action-name" : {
- "description" : "Action Name of the process",
- "required" : false,
- "type" : "string"
- },
- "dynamic-properties" : {
- "description" : "Dynamic Json Content or DSL Json reference.",
- "required" : false,
- "type" : "json"
- }
- },
- "outputs" : {
- "resource-assignment-params" : {
- "required" : true,
- "type" : "string"
- },
- "status" : {
- "required" : true,
- "type" : "string"
- }
- }
+ }
}
- }
- }
+ },
+ "derived_from": "tosca.nodes.Component"
},
- "derived_from" : "tosca.nodes.Component"
- },
- "dg-generic" : {
- "description" : "This is Generic Directed Graph Type",
- "version" : "1.0.0",
- "properties" : {
- "content" : {
- "required" : true,
- "type" : "string"
- },
- "dependency-node-templates" : {
- "description" : "Dependent Step Components NodeTemplate name.",
- "required" : true,
- "type" : "list",
- "entry_schema" : {
- "type" : "string"
- }
- }
+ "source-capability": {
+ "description": "This is Component Resource Source Node Type",
+ "version": "1.0.0",
+ "properties": {
+ "script-type": {
+ "required": true,
+ "type": "string",
+ "constraints": [
+ {
+ "valid_values": [
+ "kotlin",
+ "internal",
+ "jython"
+ ]
+ }
+ ],
+ "default": "kotlin"
+ },
+ "script-class-reference": {
+ "description": "Capability reference name for internal and kotlin, for jython script file path",
+ "required": true,
+ "type": "string"
+ },
+ "instance-dependencies": {
+ "description": "Instance dependency Names to Inject to Kotlin / Jython Script.",
+ "required": false,
+ "type": "list",
+ "entry_schema": {
+ "type": "string"
+ }
+ },
+ "key-dependencies": {
+ "description": "Resource Resolution dependency dictionary names.",
+ "required": true,
+ "type": "list",
+ "entry_schema": {
+ "type": "string"
+ }
+ }
+ },
+ "derived_from": "tosca.nodes.ResourceSource"
},
- "derived_from" : "tosca.nodes.Workflow"
- },
- "source-capability" : {
- "description" : "This is Component Resource Source Node Type",
- "version" : "1.0.0",
- "properties" : {
- "script-type" : {
- "required" : true,
- "type" : "string",
- "constraints" : [ {
- "valid_values" : [ "kotlin", "internal", "jython" ]
- } ],
- "default" : "kotlin"
- },
- "script-class-reference" : {
- "description" : "Capability reference name for internal and kotlin, for jython script file path",
- "required" : true,
- "type" : "string"
- },
- "instance-dependencies" : {
- "description" : "Instance dependency Names to Inject to Kotlin / Jython Script.",
- "required" : false,
- "type" : "list",
- "entry_schema" : {
- "type" : "string"
- }
- },
- "key-dependencies" : {
- "description" : "Resource Resolution dependency dictionary names.",
- "required" : true,
- "type" : "list",
- "entry_schema" : {
- "type" : "string"
- }
- }
+ "source-db": {
+ "description": "This is Database Resource Source Node Type",
+ "version": "1.0.0",
+ "properties": {
+ "type": {
+ "required": true,
+ "type": "string",
+ "constraints": [
+ {
+ "valid_values": [
+ "SQL",
+ "PLSQL"
+ ]
+ }
+ ],
+ "default": "SQL"
+ },
+ "endpoint-selector": {
+ "required": false,
+ "type": "string"
+ },
+ "query": {
+ "required": true,
+ "type": "string"
+ },
+ "input-key-mapping": {
+ "required": false,
+ "type": "map",
+ "entry_schema": {
+ "type": "string"
+ }
+ },
+ "output-key-mapping": {
+ "required": false,
+ "type": "map",
+ "entry_schema": {
+ "type": "string"
+ }
+ },
+ "key-dependencies": {
+ "required": true,
+ "type": "list",
+ "entry_schema": {
+ "type": "string"
+ }
+ }
+ },
+ "derived_from": "tosca.nodes.ResourceSource"
},
- "derived_from" : "tosca.nodes.ResourceSource"
- },
- "source-db" : {
- "description" : "This is Database Resource Source Node Type",
- "version" : "1.0.0",
- "properties" : {
- "type" : {
- "required" : true,
- "type" : "string",
- "constraints" : [ {
- "valid_values" : [ "SQL", "PLSQL" ]
- } ],
- "default" : "SQL"
- },
- "endpoint-selector" : {
- "required" : false,
- "type" : "string"
- },
- "query" : {
- "required" : true,
- "type" : "string"
- },
- "input-key-mapping" : {
- "required" : false,
- "type" : "map",
- "entry_schema" : {
- "type" : "string"
- }
- },
- "output-key-mapping" : {
- "required" : false,
- "type" : "map",
- "entry_schema" : {
- "type" : "string"
- }
- },
- "key-dependencies" : {
- "required" : true,
- "type" : "list",
- "entry_schema" : {
- "type" : "string"
- }
- }
+ "source-default": {
+ "description": "This is Default Resource Source Node Type",
+ "version": "1.0.0",
+ "properties": {},
+ "derived_from": "tosca.nodes.ResourceSource"
},
- "derived_from" : "tosca.nodes.ResourceSource"
- },
- "source-default" : {
- "description" : "This is Default Resource Source Node Type",
- "version" : "1.0.0",
- "properties" : { },
- "derived_from" : "tosca.nodes.ResourceSource"
- },
- "source-input" : {
- "description" : "This is Input Resource Source Node Type",
- "version" : "1.0.0",
- "properties" : { },
- "derived_from" : "tosca.nodes.ResourceSource"
- },
- "source-rest" : {
- "description" : "This is Rest Resource Source Node Type",
- "version" : "1.0.0",
- "properties" : {
- "type" : {
- "required" : true,
- "type" : "string",
- "constraints" : [ {
- "valid_values" : [ "JSON" ]
- } ],
- "default" : "JSON"
- },
- "verb" : {
- "required" : true,
- "type" : "string",
- "constraints" : [ {
- "valid_values" : [ "GET", "POST", "DELETE", "PUT" ]
- } ],
- "default" : "GET"
- },
- "payload" : {
- "required" : false,
- "type" : "string",
- "default" : ""
- },
- "endpoint-selector" : {
- "required" : false,
- "type" : "string"
- },
- "url-path" : {
- "required" : true,
- "type" : "string"
- },
- "path" : {
- "required" : true,
- "type" : "string"
- },
- "expression-type" : {
- "required" : false,
- "type" : "string",
- "constraints" : [ {
- "valid_values" : [ "JSON_PATH", "JSON_POINTER" ]
- } ],
- "default" : "JSON_PATH"
- },
- "input-key-mapping" : {
- "required" : false,
- "type" : "map",
- "entry_schema" : {
- "type" : "string"
- }
- },
- "output-key-mapping" : {
- "required" : false,
- "type" : "map",
- "entry_schema" : {
- "type" : "string"
- }
- },
- "key-dependencies" : {
- "required" : true,
- "type" : "list",
- "entry_schema" : {
- "type" : "string"
- }
- }
+ "source-input": {
+ "description": "This is Input Resource Source Node Type",
+ "version": "1.0.0",
+ "properties": {},
+ "derived_from": "tosca.nodes.ResourceSource"
},
- "derived_from" : "tosca.nodes.ResourceSource"
- },
- "tosca.nodes.Component" : {
- "description" : "This is default Component Node",
- "version" : "1.0.0",
- "derived_from" : "tosca.nodes.Root"
- },
- "tosca.nodes.ResourceSource" : {
- "description" : "TOSCA base type for Resource Sources",
- "version" : "1.0.0",
- "derived_from" : "tosca.nodes.Root"
- },
- "tosca.nodes.Vnf" : {
- "description" : "This is VNF Node Type",
- "version" : "1.0.0",
- "derived_from" : "tosca.nodes.Root"
- },
- "tosca.nodes.Workflow" : {
- "description" : "This is Directed Graph Node Type",
- "version" : "1.0.0",
- "derived_from" : "tosca.nodes.Root"
- },
- "vnf-netconf-device" : {
- "description" : "This is VNF Device with Netconf Capability",
- "version" : "1.0.0",
- "capabilities" : {
- "netconf" : {
- "type" : "tosca.capabilities.Netconf",
- "properties" : {
- "login-key" : {
- "required" : true,
- "type" : "string",
- "default" : "sdnc"
+ "source-rest": {
+ "description": "This is Rest Resource Source Node Type",
+ "version": "1.0.0",
+ "properties": {
+ "type": {
+ "required": true,
+ "type": "string",
+ "constraints": [
+ {
+ "valid_values": [
+ "JSON"
+ ]
+ }
+ ],
+ "default": "JSON"
+ },
+ "headers": {
+ "required": false,
+ "type": "map",
+ "entry_schema": {
+ "type": "string"
+ }
+ },
+ "verb": {
+ "required": true,
+ "type": "string",
+ "constraints": [
+ {
+ "valid_values": [
+ "GET",
+ "POST",
+ "DELETE",
+ "PUT"
+ ]
+ }
+ ],
+ "default": "GET"
+ },
+ "payload": {
+ "required": false,
+ "type": "string",
+ "default": ""
+ },
+ "endpoint-selector": {
+ "required": false,
+ "type": "string"
},
- "login-account" : {
- "required" : true,
- "type" : "string",
- "default" : "sdnc-tacacs"
+ "url-path": {
+ "required": true,
+ "type": "string"
},
- "source" : {
- "required" : false,
- "type" : "string",
- "default" : "npm"
+ "path": {
+ "required": true,
+ "type": "string"
},
- "target-ip-address" : {
- "required" : true,
- "type" : "string"
+ "expression-type": {
+ "required": false,
+ "type": "string",
+ "constraints": [
+ {
+ "valid_values": [
+ "JSON_PATH",
+ "JSON_POINTER"
+ ]
+ }
+ ],
+ "default": "JSON_PATH"
+ },
+ "input-key-mapping": {
+ "required": false,
+ "type": "map",
+ "entry_schema": {
+ "type": "string"
+ }
},
- "port-number" : {
- "required" : true,
- "type" : "integer",
- "default" : 830
+ "output-key-mapping": {
+ "required": false,
+ "type": "map",
+ "entry_schema": {
+ "type": "string"
+ }
},
- "connection-time-out" : {
- "required" : false,
- "type" : "integer",
- "default" : 30
+ "key-dependencies": {
+ "required": true,
+ "type": "list",
+ "entry_schema": {
+ "type": "string"
+ }
}
- }
- }
+ },
+ "derived_from": "tosca.nodes.ResourceSource"
+ },
+ "tosca.nodes.Component": {
+ "description": "This is default Component Node",
+ "version": "1.0.0",
+ "derived_from": "tosca.nodes.Root"
+ },
+ "tosca.nodes.ResourceSource": {
+ "description": "TOSCA base type for Resource Sources",
+ "version": "1.0.0",
+ "derived_from": "tosca.nodes.Root"
+ },
+ "tosca.nodes.Vnf": {
+ "description": "This is VNF Node Type",
+ "version": "1.0.0",
+ "derived_from": "tosca.nodes.Root"
},
- "derived_from" : "tosca.nodes.Vnf"
- }
- }
+ "vnf-netconf-device": {
+ "description": "This is VNF Device with Netconf Capability",
+ "version": "1.0.0",
+ "capabilities": {
+ "netconf": {
+ "type": "tosca.capabilities.Netconf",
+ "properties": {
+ "login-key": {
+ "required": true,
+ "type": "string",
+ "default": "sdnc"
+ },
+ "login-account": {
+ "required": true,
+ "type": "string",
+ "default": "sdnc-tacacs"
+ },
+ "source": {
+ "required": false,
+ "type": "string",
+ "default": "npm"
+ },
+ "target-ip-address": {
+ "required": true,
+ "type": "string"
+ },
+ "port-number": {
+ "required": true,
+ "type": "integer",
+ "default": 830
+ },
+ "connection-time-out": {
+ "required": false,
+ "type": "integer",
+ "default": 30
+ }
+ }
+ },
+ "restconf": {
+ "type": "tosca.capabilities.Netconf",
+ "properties": {
+ "login-key": {
+ "required": true,
+ "type": "string",
+ "default": "sdnc"
+ },
+ "login-account": {
+ "required": true,
+ "type": "string",
+ "default": "sdnc-tacacs"
+ },
+ "source": {
+ "required": false,
+ "type": "string",
+ "default": "npm"
+ },
+ "target-ip-address": {
+ "required": true,
+ "type": "string"
+ },
+ "port-number": {
+ "required": true,
+ "type": "integer",
+ "default": 830
+ },
+ "connection-time-out": {
+ "required": false,
+ "type": "integer",
+ "default": 30
+ }
+ }
+ }
+ },
+ "derived_from": "tosca.nodes.Vnf"
+ }
+ }
} \ No newline at end of file
diff --git a/components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/relationship_types.json b/components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/relationship_types.json
index 027bfc0fc..4ddd7a57c 100644
--- a/components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/relationship_types.json
+++ b/components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/relationship_types.json
@@ -1,9 +1,3 @@
{
- "relationship_types" : {
- "tosca.relationships.ConnectsTo" : {
- "description" : "Relationship tosca.relationships.ConnectsTo",
- "version" : "1.0.0",
- "derived_from" : "tosca.relationships.Root"
- }
- }
+ "relationship_types" : { }
} \ No newline at end of file
diff --git a/components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/resources_definition_types.json b/components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/resources_definition_types.json
index 7172e3a05..60612a762 100644
--- a/components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/resources_definition_types.json
+++ b/components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/resources_definition_types.json
@@ -1,1987 +1,2820 @@
{
- "aic-cloud-region" : {
- "tags" : "aic-cloud-region",
- "name" : "aic-cloud-region",
- "property" : {
- "description" : "aic-cloud-region",
- "type" : "string"
- },
- "updated-by" : "Singal, Kapil <ks220y@att.com>",
- "sources" : {
- "input" : {
- "type" : "source-input",
- "properties" : { }
- }
- }
- },
- "cloud_env" : {
- "tags" : "cloud_env",
- "name" : "cloud_env",
- "property" : {
- "description" : "cloud_env",
- "type" : "string"
- },
- "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
- "sources" : {
- "input" : {
- "type" : "source-input"
- },
- "default" : {
- "type" : "source-default",
- "properties" : { }
- },
- "sdnc" : {
- "type" : "source-rest",
- "properties" : {
- "verb" : "GET",
- "type" : "JSON",
- "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/cloud_env",
- "path" : "/param/0/value",
- "input-key-mapping" : {
- "service-instance-id" : "service-instance-id",
- "vnf-id" : "vnf-id"
- },
- "output-key-mapping" : {
- "cloud_env" : "value"
- },
- "key-dependencies" : [ "service-instance-id", "vnf-id" ]
- }
- }
- }
- },
- "create-md-sal-vnf-param" : {
- "tags" : "create-md-sal-vnf-param",
- "name" : "create-md-sal-vnf-param",
- "property" : {
- "description" : "create-md-sal-vnf-param",
- "type" : "string"
- },
- "updated-by" : "Singal, Kapil <ks220y@att.com>",
- "sources" : {
- "sdnc" : {
- "type" : "source-rest",
- "properties" : {
- "type" : "JSON",
- "verb" : "PUT",
- "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vdns_vf_module_id",
- "path" : "",
- "payload" : "{\n\"GENERIC-RESOURCE-API:param\": [\n{\n\"GENERIC-RESOURCE-API:name\": \"vdns_vf_module_id\",\n\"GENERIC-RESOURCE-API:value\": \"$vf-module-id\"\n}\n]\n}",
- "input-key-mapping" : {
- "service-instance-id" : "service-instance-id",
- "vnf-id" : "vnf-id",
- "vf-module-id" : "vf-module-id"
- },
- "output-key-mapping" : { },
- "key-dependencies" : [ "vf-module-id", "service-instance-id", "vnf-id" ]
- }
- },
- "primary-aai-data" : {
- "type" : "source-rest",
- "properties" : {
- "verb" : "PATCH",
- "type" : "JSON",
- "url-path" : "/aai/v14/network/generic-vnfs/generic-vnf/$vnf-id/nm-profile-name",
- "payload" : "{\"nm-profile-name\":\"$vf-module-id\"}",
- "path" : "",
- "input-key-mapping" : {
- "vnf-id" : "vnf-id"
- },
- "output-key-mapping" : { },
- "key-dependencies" : [ "vnf-id" ]
- }
- }
- }
- },
- "dcae_collector_ip" : {
- "tags" : "dcae_collector_ip",
- "name" : "dcae_collector_ip",
- "property" : {
- "description" : "dcae_collector_ip",
- "type" : "string"
- },
- "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
- "sources" : {
- "input" : {
- "type" : "source-input"
- },
- "default" : {
- "type" : "source-default",
- "properties" : { }
- },
- "sdnc" : {
- "type" : "source-rest",
- "properties" : {
- "verb" : "GET",
- "type" : "JSON",
- "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/dcae_collector_ip",
- "path" : "/param/0/value",
- "input-key-mapping" : {
- "service-instance-id" : "service-instance-id",
- "vnf-id" : "vnf-id"
- },
- "output-key-mapping" : {
- "dcae_collector_ip" : "value"
- },
- "key-dependencies" : [ "service-instance-id", "vnf-id" ]
- }
- }
- }
- },
- "dcae_collector_port" : {
- "tags" : "dcae_collector_port",
- "name" : "dcae_collector_port",
- "property" : {
- "description" : "dcae_collector_port",
- "type" : "string"
- },
- "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
- "sources" : {
- "input" : {
- "type" : "source-input"
- },
- "default" : {
- "type" : "source-default",
- "properties" : { }
- },
- "sdnc" : {
- "type" : "source-rest",
- "properties" : {
- "verb" : "GET",
- "type" : "JSON",
- "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/dcae_collector_port",
- "path" : "/param/0/value",
- "input-key-mapping" : {
- "service-instance-id" : "service-instance-id",
- "vnf-id" : "vnf-id"
- },
- "output-key-mapping" : {
- "dcae_collector_port" : "value"
- },
- "key-dependencies" : [ "service-instance-id", "vnf-id" ]
- }
- }
- }
- },
- "demo_artifacts_version" : {
- "tags" : "demo_artifacts_version",
- "name" : "demo_artifacts_version",
- "property" : {
- "description" : "demo_artifacts_version",
- "type" : "string"
- },
- "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
- "sources" : {
- "input" : {
- "type" : "source-input"
- },
- "default" : {
- "type" : "source-default",
- "properties" : { }
- },
- "sdnc" : {
- "type" : "source-rest",
- "properties" : {
- "verb" : "GET",
- "type" : "JSON",
- "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/demo_artifacts_version",
- "path" : "/param/0/value",
- "input-key-mapping" : {
- "service-instance-id" : "service-instance-id",
- "vnf-id" : "vnf-id"
- },
- "output-key-mapping" : {
- "demo_artifacts_version" : "value"
- },
- "key-dependencies" : [ "service-instance-id", "vnf-id" ]
- }
- }
- }
- },
- "flavor_name" : {
- "tags" : "flavor_name",
- "name" : "flavor_name",
- "property" : {
- "description" : "flavor_name",
- "type" : "string"
- },
- "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
- "sources" : {
- "input" : {
- "type" : "source-input"
- },
- "default" : {
- "type" : "source-default",
- "properties" : { }
- },
- "sdnc" : {
- "type" : "source-rest",
- "properties" : {
- "verb" : "GET",
- "type" : "JSON",
- "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/flavor_name",
- "path" : "/param/0/value",
- "input-key-mapping" : {
- "service-instance-id" : "service-instance-id",
- "vnf-id" : "vnf-id"
- },
- "output-key-mapping" : {
- "flavor_name" : "value"
- },
- "key-dependencies" : [ "service-instance-id", "vnf-id" ]
- }
- }
- }
- },
- "gre_ipaddr" : {
- "tags" : "gre_ipaddr",
- "name" : "gre_ipaddr",
- "property" : {
- "description" : "gre_ipaddr",
- "type" : "string"
- },
- "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
- "sources" : {
- "input" : {
- "type" : "source-input"
- },
- "default" : {
- "type" : "source-default",
- "properties" : { }
- },
- "sdnc" : {
- "type" : "source-rest",
- "properties" : {
- "verb" : "GET",
- "type" : "JSON",
- "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/gre_ipaddr",
- "path" : "/param/0/value",
- "input-key-mapping" : {
- "service-instance-id" : "service-instance-id",
- "vnf-id" : "vnf-id"
- },
- "output-key-mapping" : {
- "gre_ipaddr" : "value"
- },
- "key-dependencies" : [ "service-instance-id", "vnf-id" ]
- }
- }
- }
- },
- "image_name" : {
- "tags" : "image_name",
- "name" : "image_name",
- "property" : {
- "description" : "image_name",
- "type" : "string"
- },
- "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
- "sources" : {
- "input" : {
- "type" : "source-input"
- },
- "default" : {
- "type" : "source-default",
- "properties" : { }
- },
- "sdnc" : {
- "type" : "source-rest",
- "properties" : {
- "verb" : "GET",
- "type" : "JSON",
- "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/image_name",
- "path" : "/param/0/value",
- "input-key-mapping" : {
- "service-instance-id" : "service-instance-id",
- "vnf-id" : "vnf-id"
- },
- "output-key-mapping" : {
- "image_name" : "value"
- },
- "key-dependencies" : [ "service-instance-id", "vnf-id" ]
- }
- }
- }
- },
- "install_script_version" : {
- "tags" : "install_script_version",
- "name" : "install_script_version",
- "property" : {
- "description" : "install_script_version",
- "type" : "string"
- },
- "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
- "sources" : {
- "input" : {
- "type" : "source-input"
- },
- "default" : {
- "type" : "source-default",
- "properties" : { }
- },
- "sdnc" : {
- "type" : "source-rest",
- "properties" : {
- "verb" : "GET",
- "type" : "JSON",
- "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/install_script_version",
- "path" : "/param/0/value",
- "input-key-mapping" : {
- "service-instance-id" : "service-instance-id",
- "vnf-id" : "vnf-id"
- },
- "output-key-mapping" : {
- "install_script_version" : "value"
- },
- "key-dependencies" : [ "service-instance-id", "vnf-id" ]
- }
- }
- }
- },
- "int_pktgen_private_net_id" : {
- "tags" : "int_pktgen_private_net_id",
- "name" : "int_pktgen_private_net_id",
- "property" : {
- "description" : "int_pktgen_private_net_id",
- "type" : "string"
- },
- "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
- "sources" : {
- "input" : {
- "type" : "source-input"
- },
- "default" : {
- "type" : "source-default",
- "properties" : { }
- },
- "sdnc" : {
- "type" : "source-rest",
- "properties" : {
- "verb" : "GET",
- "type" : "JSON",
- "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/int_pktgen_private_net_id",
- "path" : "/param/0/value",
- "input-key-mapping" : {
- "service-instance-id" : "service-instance-id",
- "vnf-id" : "vnf-id"
- },
- "output-key-mapping" : {
- "int_pktgen_private_net_id" : "value"
- },
- "key-dependencies" : [ "service-instance-id", "vnf-id" ]
- }
- }
- }
- },
- "int_pktgen_private_subnet_id" : {
- "tags" : "int_pktgen_private_subnet_id",
- "name" : "int_pktgen_private_subnet_id",
- "property" : {
- "description" : "int_pktgen_private_subnet_id",
- "type" : "string"
- },
- "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
- "sources" : {
- "input" : {
- "type" : "source-input"
- },
- "default" : {
- "type" : "source-default",
- "properties" : { }
- },
- "sdnc" : {
- "type" : "source-rest",
- "properties" : {
- "verb" : "GET",
- "type" : "JSON",
- "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/int_pktgen_private_subnet_id",
- "path" : "/param/0/value",
- "input-key-mapping" : {
- "service-instance-id" : "service-instance-id",
- "vnf-id" : "vnf-id"
- },
- "output-key-mapping" : {
- "int_pktgen_private_subnet_id" : "value"
- },
- "key-dependencies" : [ "service-instance-id", "vnf-id" ]
- }
- }
- }
- },
- "int_private_net_id" : {
- "tags" : "int_private_net_id",
- "name" : "int_private_net_id",
- "property" : {
- "description" : "int_private_net_id",
- "type" : "string"
- },
- "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
- "sources" : {
- "input" : {
- "type" : "source-input"
- },
- "default" : {
- "type" : "source-default",
- "properties" : { }
- },
- "sdnc" : {
- "type" : "source-rest",
- "properties" : {
- "verb" : "GET",
- "type" : "JSON",
- "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/int_private_net_id",
- "path" : "/param/0/value",
- "input-key-mapping" : {
- "service-instance-id" : "service-instance-id",
- "vnf-id" : "vnf-id"
- },
- "output-key-mapping" : {
- "int_private_net_id" : "value"
- },
- "key-dependencies" : [ "service-instance-id", "vnf-id" ]
- }
- }
- }
- },
- "int_private_subnet_id" : {
- "tags" : "int_private_subnet_id",
- "name" : "int_private_subnet_id",
- "property" : {
- "description" : "int_private_subnet_id",
- "type" : "string"
- },
- "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
- "sources" : {
- "input" : {
- "type" : "source-input"
- },
- "default" : {
- "type" : "source-default",
- "properties" : { }
- },
- "sdnc" : {
- "type" : "source-rest",
- "properties" : {
- "verb" : "GET",
- "type" : "JSON",
- "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/int_private_subnet_id",
- "path" : "/param/0/value",
- "input-key-mapping" : {
- "service-instance-id" : "service-instance-id",
- "vnf-id" : "vnf-id"
- },
- "output-key-mapping" : {
- "int_private_subnet_id" : "value"
- },
- "key-dependencies" : [ "service-instance-id", "vnf-id" ]
- }
- }
- }
- },
- "key_name" : {
- "tags" : "key_name",
- "name" : "key_name",
- "property" : {
- "description" : "key_name",
- "type" : "string"
- },
- "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
- "sources" : {
- "input" : {
- "type" : "source-input"
- },
- "default" : {
- "type" : "source-default",
- "properties" : { }
- },
- "sdnc" : {
- "type" : "source-rest",
- "properties" : {
- "verb" : "GET",
- "type" : "JSON",
- "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/key_name",
- "path" : "/param/0/value",
- "input-key-mapping" : {
- "service-instance-id" : "service-instance-id",
- "vnf-id" : "vnf-id"
- },
- "output-key-mapping" : {
- "key_name" : "value"
- },
- "key-dependencies" : [ "service-instance-id", "vnf-id" ]
- }
- }
- }
- },
- "keypair" : {
- "tags" : "keypair",
- "name" : "keypair",
- "property" : {
- "description" : "keypair",
- "type" : "string"
- },
- "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
- "sources" : {
- "input" : {
- "type" : "source-input"
- },
- "default" : {
- "type" : "source-default",
- "properties" : { }
- },
- "sdnc" : {
- "type" : "source-rest",
- "properties" : {
- "verb" : "GET",
- "type" : "JSON",
- "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/keypair",
- "path" : "/param/0/value",
- "input-key-mapping" : {
- "service-instance-id" : "service-instance-id",
- "vnf-id" : "vnf-id"
- },
- "output-key-mapping" : {
- "keypair" : "value"
- },
- "key-dependencies" : [ "service-instance-id", "vnf-id" ]
- }
- }
- }
- },
- "management-prefix-id" : {
- "tags" : "management-prefix-id",
- "name" : "management-prefix-id",
- "property" : {
- "description" : "management-prefix-id",
- "type" : "string"
- },
- "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
- "sources" : {
- "input" : {
- "type" : "source-input"
- },
- "default" : {
- "type" : "source-default",
- "properties" : { }
- },
- "sdnc" : {
- "type" : "source-rest",
- "properties" : {
- "verb" : "GET",
- "type" : "JSON",
- "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/management-prefix-id",
- "path" : "/param/0/value",
- "input-key-mapping" : {
- "service-instance-id" : "service-instance-id",
- "vnf-id" : "vnf-id"
- },
- "output-key-mapping" : {
- "management-prefix-id" : "value"
- },
- "key-dependencies" : [ "service-instance-id", "vnf-id" ]
- }
- },
- "processor-db" : {
- "type" : "source-db",
- "properties" : {
- "endpoint-selector" : "dynamic-db-source",
- "type" : "SQL",
- "query" : "select sdnctl.IPAM_IP_POOL.prefix_id as prefix_id from sdnctl.IPAM_IP_POOL where description = \"management\"",
- "input-key-mapping" : { },
- "output-key-mapping" : {
- "management-prefix-id" : "prefix_id"
- }
- }
- }
- }
- },
- "nb_api_version" : {
- "tags" : "nb_api_version",
- "name" : "nb_api_version",
- "property" : {
- "description" : "nb_api_version",
- "type" : "string"
- },
- "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
- "sources" : {
- "input" : {
- "type" : "source-input"
- },
- "default" : {
- "type" : "source-default",
- "properties" : { }
- },
- "sdnc" : {
- "type" : "source-rest",
- "properties" : {
- "verb" : "GET",
- "type" : "JSON",
- "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/nb_api_version",
- "path" : "/param/0/value",
- "input-key-mapping" : {
- "service-instance-id" : "service-instance-id",
- "vnf-id" : "vnf-id"
- },
- "output-key-mapping" : {
- "nb_api_version" : "value"
- },
- "key-dependencies" : [ "service-instance-id", "vnf-id" ]
- }
- }
- }
- },
- "nexus_artifact_repo" : {
- "tags" : "nexus_artifact_repo",
- "name" : "nexus_artifact_repo",
- "property" : {
- "description" : "nexus_artifact_repo",
- "type" : "string"
- },
- "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
- "sources" : {
- "input" : {
- "type" : "source-input"
- },
- "default" : {
- "type" : "source-default",
- "properties" : { }
- },
- "sdnc" : {
- "type" : "source-rest",
- "properties" : {
- "verb" : "GET",
- "type" : "JSON",
- "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/nexus_artifact_repo",
- "path" : "/param/0/value",
- "input-key-mapping" : {
- "service-instance-id" : "service-instance-id",
- "vnf-id" : "vnf-id"
- },
- "output-key-mapping" : {
- "nexus_artifact_repo" : "value"
- },
- "key-dependencies" : [ "service-instance-id", "vnf-id" ]
- }
- }
- }
- },
- "nfc-naming-code" : {
- "tags" : "nfc-naming-code",
- "name" : "nfc-naming-code",
- "property" : {
- "description" : "nfc-naming-code",
- "type" : "string"
- },
- "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
- "sources" : {
- "input" : {
- "type" : "source-input"
- },
- "default" : {
- "type" : "source-default",
- "properties" : { }
- },
- "processor-db" : {
- "type" : "source-db",
- "properties" : {
- "type" : "SQL",
- "query" : "select nfc_naming_code as nfc_naming_code from sdnctl.VFC_MODEL where customization_uuid=:vfccustomizationuuid",
- "input-key-mapping" : {
- "vfccustomizationuuid" : "vfccustomizationuuid"
- },
- "output-key-mapping" : {
- "nfc-naming-code" : "nfc_naming_code"
- },
- "key-dependencies" : [ "vfccustomizationuuid" ],
- "endpoint-selector" : "dynamic-db-source"
- }
- }
- }
- },
- "onap_private_net_cidr" : {
- "tags" : "onap_private_net_cidr",
- "name" : "onap_private_net_cidr",
- "property" : {
- "description" : "onap_private_net_cidr",
- "type" : "string"
- },
- "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
- "sources" : {
- "input" : {
- "type" : "source-input"
- },
- "default" : {
- "type" : "source-default",
- "properties" : { }
- },
- "processor-db" : {
- "type" : "source-db",
- "properties" : {
- "endpoint-selector" : "dynamic-db-source",
- "type" : "SQL",
- "query" : "select sdnctl.IPAM_IP_POOL.prefix as prefix from sdnctl.IPAM_IP_POOL where description = \"management\"",
- "input-key-mapping" : { },
- "output-key-mapping" : {
- "onap_private_net_cidr" : "prefix"
- }
- }
- },
- "sdnc" : {
- "type" : "source-rest",
- "properties" : {
- "verb" : "GET",
- "type" : "JSON",
- "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/onap_private_net_cidr",
- "path" : "/param/0/value",
- "input-key-mapping" : {
- "service-instance-id" : "service-instance-id",
- "vnf-id" : "vnf-id"
- },
- "output-key-mapping" : {
- "onap_private_net_cidr" : "value"
- },
- "key-dependencies" : [ "service-instance-id", "vnf-id" ]
- }
- }
- }
- },
- "onap_private_net_id" : {
- "tags" : "onap_private_net_id",
- "name" : "onap_private_net_id",
- "property" : {
- "description" : "onap_private_net_id",
- "type" : "string"
- },
- "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
- "sources" : {
- "input" : {
- "type" : "source-input"
- },
- "default" : {
- "type" : "source-default",
- "properties" : { }
- },
- "sdnc" : {
- "type" : "source-rest",
- "properties" : {
- "verb" : "GET",
- "type" : "JSON",
- "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/onap_private_net_id",
- "path" : "/param/0/value",
- "input-key-mapping" : {
- "service-instance-id" : "service-instance-id",
- "vnf-id" : "vnf-id"
- },
- "output-key-mapping" : {
- "onap_private_net_id" : "value"
- },
- "key-dependencies" : [ "service-instance-id", "vnf-id" ]
- }
- }
- }
- },
- "onap_private_subnet_id" : {
- "tags" : "onap_private_subnet_id",
- "name" : "onap_private_subnet_id",
- "property" : {
- "description" : "onap_private_subnet_id",
- "type" : "string"
- },
- "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
- "sources" : {
- "input" : {
- "type" : "source-input"
- },
- "default" : {
- "type" : "source-default",
- "properties" : { }
- },
- "sdnc" : {
- "type" : "source-rest",
- "properties" : {
- "verb" : "GET",
- "type" : "JSON",
- "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/onap_private_subnet_id",
- "path" : "/param/0/value",
- "input-key-mapping" : {
- "service-instance-id" : "service-instance-id",
- "vnf-id" : "vnf-id"
- },
- "output-key-mapping" : {
- "onap_private_subnet_id" : "value"
- },
- "key-dependencies" : [ "service-instance-id", "vnf-id" ]
- }
- }
- }
- },
- "pg_int" : {
- "tags" : "pg_int",
- "name" : "pg_int",
- "property" : {
- "description" : "pg_int",
- "type" : "string"
- },
- "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
- "sources" : {
- "input" : {
- "type" : "source-input"
- },
- "default" : {
- "type" : "source-default",
- "properties" : { }
- },
- "sdnc" : {
- "type" : "source-rest",
- "properties" : {
- "verb" : "GET",
- "type" : "JSON",
- "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/pg_int",
- "path" : "/param/0/value",
- "input-key-mapping" : {
- "service-instance-id" : "service-instance-id",
- "vnf-id" : "vnf-id"
- },
- "output-key-mapping" : {
- "pg_int" : "value"
- },
- "key-dependencies" : [ "service-instance-id", "vnf-id" ]
- }
- }
- }
- },
- "pktgen_private_net_cidr" : {
- "tags" : "pktgen_private_net_cidr",
- "name" : "pktgen_private_net_cidr",
- "property" : {
- "description" : "pktgen_private_net_cidr",
- "type" : "string"
- },
- "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
- "sources" : {
- "input" : {
- "type" : "source-input"
- },
- "default" : {
- "type" : "source-default",
- "properties" : { }
- },
- "processor-db" : {
- "type" : "source-db",
- "properties" : {
- "type" : "SQL",
- "query" : "select sdnctl.IPAM_IP_POOL.prefix as prefix from sdnctl.IPAM_IP_POOL where description = \"private2\"",
- "output-key-mapping" : {
- "pktgen_private_net_cidr" : "prefix"
- },
- "endpoint-selector" : "dynamic-db-source",
- "input-key-mapping" : { }
- }
- },
- "sdnc" : {
- "type" : "source-rest",
- "properties" : {
- "verb" : "GET",
- "type" : "JSON",
- "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/pktgen_private_net_cidr",
- "path" : "/param/0/value",
- "input-key-mapping" : {
- "service-instance-id" : "service-instance-id",
- "vnf-id" : "vnf-id"
- },
- "output-key-mapping" : {
- "pktgen_private_net_cidr" : "value"
- },
- "key-dependencies" : [ "service-instance-id", "vnf-id" ]
- }
- }
- }
- },
- "private1-prefix-id" : {
- "tags" : "private1-prefix-id",
- "name" : "private1-prefix-id",
- "property" : {
- "description" : "private1-prefix-id",
- "type" : "string"
- },
- "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
- "sources" : {
- "input" : {
- "type" : "source-input"
- },
- "default" : {
- "type" : "source-default",
- "properties" : { }
- },
- "sdnc" : {
- "type" : "source-rest",
- "properties" : {
- "verb" : "GET",
- "type" : "JSON",
- "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/private1-prefix-id",
- "path" : "/param/0/value",
- "input-key-mapping" : {
- "service-instance-id" : "service-instance-id",
- "vnf-id" : "vnf-id"
- },
- "output-key-mapping" : {
- "private1-prefix-id" : "value"
- },
- "key-dependencies" : [ "service-instance-id", "vnf-id" ]
- }
- },
- "processor-db" : {
- "type" : "source-db",
- "properties" : {
- "endpoint-selector" : "dynamic-db-source",
- "type" : "SQL",
- "query" : "select sdnctl.IPAM_IP_POOL.prefix_id as prefix_id from sdnctl.IPAM_IP_POOL where description = \"private1\"",
- "input-key-mapping" : { },
- "output-key-mapping" : {
- "private1-prefix-id" : "prefix_id"
- }
- }
- }
- }
- },
- "private2-prefix-id" : {
- "tags" : "private2-prefix-id",
- "name" : "private2-prefix-id",
- "property" : {
- "description" : "private2-prefix-id",
- "type" : "string"
- },
- "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
- "sources" : {
- "input" : {
- "type" : "source-input"
- },
- "default" : {
- "type" : "source-default",
- "properties" : { }
- },
- "sdnc" : {
- "type" : "source-rest",
- "properties" : {
- "verb" : "GET",
- "type" : "JSON",
- "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/private2-prefix-id",
- "path" : "/param/0/value",
- "input-key-mapping" : {
- "service-instance-id" : "service-instance-id",
- "vnf-id" : "vnf-id"
- },
- "output-key-mapping" : {
- "private2-prefix-id" : "value"
- },
- "key-dependencies" : [ "service-instance-id", "vnf-id" ]
- }
- },
- "processor-db" : {
- "type" : "source-db",
- "properties" : {
- "endpoint-selector" : "dynamic-db-source",
- "type" : "SQL",
- "query" : "select sdnctl.IPAM_IP_POOL.prefix_id as prefix_id from sdnctl.IPAM_IP_POOL where description = \"private2\"",
- "input-key-mapping" : { },
- "output-key-mapping" : {
- "private2-prefix-id" : "prefix_id"
- }
- }
- }
- }
- },
- "pub_key" : {
- "tags" : "pub_key",
- "name" : "pub_key",
- "property" : {
- "description" : "pub_key",
- "type" : "string"
- },
- "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
- "sources" : {
- "input" : {
- "type" : "source-input"
- },
- "default" : {
- "type" : "source-default",
- "properties" : { }
- },
- "sdnc" : {
- "type" : "source-rest",
- "properties" : {
- "verb" : "GET",
- "type" : "JSON",
- "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/pub_key",
- "path" : "/param/0/value",
- "input-key-mapping" : {
- "service-instance-id" : "service-instance-id",
- "vnf-id" : "vnf-id"
- },
- "output-key-mapping" : {
- "pub_key" : "value"
- },
- "key-dependencies" : [ "service-instance-id", "vnf-id" ]
- }
- }
- }
- },
- "public_net_id" : {
- "tags" : "public_net_id",
- "name" : "public_net_id",
- "property" : {
- "description" : "public_net_id",
- "type" : "string"
- },
- "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
- "sources" : {
- "input" : {
- "type" : "source-input"
- },
- "default" : {
- "type" : "source-default",
- "properties" : { }
- },
- "sdnc" : {
- "type" : "source-rest",
- "properties" : {
- "verb" : "GET",
- "type" : "JSON",
- "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/public_net_id",
- "path" : "/param/0/value",
- "input-key-mapping" : {
- "service-instance-id" : "service-instance-id",
- "vnf-id" : "vnf-id"
- },
- "output-key-mapping" : {
- "public_net_id" : "value"
- },
- "key-dependencies" : [ "service-instance-id", "vnf-id" ]
- }
- }
- }
- },
- "sec_group" : {
- "tags" : "sec_group",
- "name" : "sec_group",
- "property" : {
- "description" : "sec_group",
- "type" : "string"
- },
- "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
- "sources" : {
- "input" : {
- "type" : "source-input"
- },
- "default" : {
- "type" : "source-default",
- "properties" : { }
- },
- "sdnc" : {
- "type" : "source-rest",
- "properties" : {
- "verb" : "GET",
- "type" : "JSON",
- "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/sec_group",
- "path" : "/param/0/value",
- "input-key-mapping" : {
- "service-instance-id" : "service-instance-id",
- "vnf-id" : "vnf-id"
- },
- "output-key-mapping" : {
- "sec_group" : "value"
- },
- "key-dependencies" : [ "service-instance-id", "vnf-id" ]
- }
- }
- }
- },
- "service-instance-id" : {
- "tags" : "service-instance-id, tosca.datatypes.Root, data_type",
- "name" : "service-instance-id",
- "property" : {
- "description" : "To be provided",
- "type" : "string"
- },
- "updated-by" : "Singal, Kapil <ks220y@att.com>",
- "sources" : {
- "input" : {
- "type" : "source-input",
- "properties" : { }
- },
- "any-db" : {
- "type" : "source-db",
- "properties" : {
- "query" : "SELECT artifact_name FROM BLUEPRINT_RUNTIME where artifact_version=\"1.0.0\"",
- "input-key-mapping" : { },
- "output-key-mapping" : {
- "service-instance-id" : "artifact_name"
- }
- }
- },
- "processor-db" : {
- "type" : "source-db",
- "properties" : {
- "query" : "SELECT artifact_name FROM BLUEPRINT_RUNTIME where artifact_version=\"1.0.0\"",
- "input-key-mapping" : { },
- "output-key-mapping" : {
- "service-instance-id" : "artifact_name"
- }
- }
- },
- "capability" : {
- "type" : "source-capability",
- "properties" : {
- "script-type" : "jython",
- "script-class-reference" : "SampleRAProcessor",
- "instance-dependencies" : [ ]
- }
- }
- }
- },
- "vdns_int_private_ip_0" : {
- "tags" : "vdns_int_private_ip_0",
- "name" : "vdns_int_private_ip_0",
- "property" : {
- "description" : "vdns_int_private_ip_0",
- "type" : "string"
- },
- "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
- "sources" : {
- "input" : {
- "type" : "source-input"
- },
- "default" : {
- "type" : "source-default",
- "properties" : { }
- },
- "sdnc" : {
- "type" : "source-rest",
- "properties" : {
- "verb" : "GET",
- "type" : "JSON",
- "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vf-modules/vf-module/$vdns_vf_module_id/vf-module-data/vf-module-topology/vf-module-parameters/param/vdns_int_private_ip_0",
- "path" : "/param/0/value",
- "input-key-mapping" : {
- "service-instance-id" : "service-instance-id",
- "vnf-id" : "vnf-id",
- "vdns_vf_module_id" : "vdns_vf_module_id"
- },
- "output-key-mapping" : {
- "vdns_int_private_ip_0" : "value"
- },
- "key-dependencies" : [ "service-instance-id", "vnf-id", "vdns_vf_module_id" ]
- }
- }
- }
- },
- "vdns_name_0" : {
- "tags" : "vdns_name_0",
- "name" : "vdns_name_0",
- "property" : {
- "description" : "vdns_name_0",
- "type" : "string"
- },
- "updated-by" : "Singal, Kapil <ks220y@att.com>",
- "sources" : {
- "input" : {
- "type" : "source-input"
- },
- "default" : {
- "type" : "source-default",
- "properties" : { }
- },
- "sdnc" : {
- "type" : "source-rest",
- "properties" : {
- "verb" : "GET",
- "type" : "JSON",
- "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vdns_name_0",
- "path" : "/param/0/value",
- "input-key-mapping" : {
- "service-instance-id" : "service-instance-id",
- "vnf-id" : "vnf-id"
- },
- "output-key-mapping" : {
- "vdns_name_0" : "value"
- },
- "key-dependencies" : [ "service-instance-id", "vnf-id" ]
- }
- }
- }
- },
- "vdns_onap_private_ip_0" : {
- "tags" : "vdns_onap_private_ip_0",
- "name" : "vdns_onap_private_ip_0",
- "property" : {
- "description" : "vdns_onap_private_ip_0",
- "type" : "string"
- },
- "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
- "sources" : {
- "input" : {
- "type" : "source-input"
- },
- "default" : {
- "type" : "source-default",
- "properties" : { }
- },
- "sdnc" : {
- "type" : "source-rest",
- "properties" : {
- "verb" : "GET",
- "type" : "JSON",
- "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vf-modules/vf-module/$vdns_vf_module_id/vf-module-data/vf-module-topology/vf-module-parameters/param/vdns_onap_private_ip_0",
- "path" : "/param/0/value",
- "input-key-mapping" : {
- "service-instance-id" : "service-instance-id",
- "vnf-id" : "vnf-id",
- "vdns_vf_module_id" : "vdns_vf_module_id"
- },
- "output-key-mapping" : {
- "vdns_onap_private_ip_0" : "value"
- },
- "key-dependencies" : [ "service-instance-id", "vnf-id", "vdns_vf_module_id" ]
- }
- }
- }
- },
- "vdns_vf_module_id" : {
- "tags" : "vdns_vf_module_id",
- "name" : "vdns_vf_module_id",
- "property" : {
- "description" : "vdns_vf_module_id",
- "type" : "string"
- },
- "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
- "sources" : {
- "default" : {
- "type" : "source-default",
- "properties" : { }
- },
- "sdnc" : {
- "type" : "source-rest",
- "properties" : {
- "verb" : "GET",
- "type" : "JSON",
- "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vdns_vf_module_id",
- "path" : "/param/0/value",
- "input-key-mapping" : {
- "service-instance-id" : "service-instance-id",
- "vnf-id" : "vnf-id"
- },
- "output-key-mapping" : {
- "vdns_vf_module_id" : "value"
- },
- "key-dependencies" : [ "service-instance-id", "vnf-id" ]
- }
- },
- "primary-aai-data" : {
- "type" : "source-rest",
- "properties" : {
- "verb" : "GET",
- "type" : "JSON",
- "url-path" : "/aai/v14/network/generic-vnfs/generic-vnf/$vnf-id",
- "path" : "",
- "input-key-mapping" : {
- "vnf-id" : "vnf-id"
- },
- "output-key-mapping" : {
- "vdns_vf_module_id" : "nm-profile-name"
- },
- "key-dependencies" : [ "vnf-id" ]
- }
- }
- }
- },
- "vf-module-id" : {
- "tags" : "vf-module-id",
- "name" : "vf-module-id",
- "property" : {
- "description" : "vf-module-id",
- "type" : "string"
- },
- "updated-by" : "Singal, Kapil <ks220y@att.com>",
- "sources" : {
- "input" : {
- "type" : "source-input",
- "properties" : { }
- }
- }
- },
- "vf-module-label" : {
- "tags" : "vf-module-label",
- "name" : "vf-module-label",
- "property" : {
- "description" : "vf-module-label",
- "type" : "string"
- },
- "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
- "sources" : {
- "input" : {
- "type" : "source-input"
- },
- "default" : {
- "type" : "source-default",
- "properties" : { }
- },
- "processor-db" : {
- "type" : "source-db",
- "properties" : {
- "type" : "SQL",
- "query" : "select sdnctl.VF_MODULE_MODEL.vf_module_label as vf_module_label from sdnctl.VF_MODULE_MODEL where sdnctl.VF_MODULE_MODEL.customization_uuid=:customizationid",
- "input-key-mapping" : {
- "customizationid" : "vf-module-model-customization-uuid"
- },
- "output-key-mapping" : {
- "vf-module-label" : "vf_module_label"
- },
- "key-dependencies" : [ "vf-module-model-customization-uuid" ],
- "endpoint-selector" : "dynamic-db-source"
- }
- }
- }
- },
- "vf-module-model-customization-uuid" : {
- "tags" : "vf-module-model-customization-uuid",
- "name" : "vf-module-model-customization-uuid",
- "property" : {
- "description" : "vf-module-model-customization-uuid",
- "type" : "string"
- },
- "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
- "sources" : {
- "input" : {
- "type" : "source-input"
- },
- "default" : {
- "type" : "source-default",
- "properties" : { }
- }
- }
- },
- "vf-module-type" : {
- "tags" : "vf-module-type",
- "name" : "vf-module-type",
- "property" : {
- "description" : "vf-module-type",
- "type" : "string"
- },
- "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
- "sources" : {
- "input" : {
- "type" : "source-input"
- },
- "default" : {
- "type" : "source-default",
- "properties" : { }
- },
- "processor-db" : {
- "type" : "source-db",
- "properties" : {
- "type" : "SQL",
- "query" : "select vf_module_type as vf_module_type from sdnctl.VF_MODULE_MODEL where customization_uuid=:customizationid",
- "output-key-mapping" : {
- "vf-module-type" : "vf_module_type"
- },
- "endpoint-selector" : "dynamic-db-source",
- "input-key-mapping" : {
- "customizationid" : "vf-module-model-customization-uuid"
- },
- "key-dependencies" : [ "vf-module-model-customization-uuid" ]
- }
- }
- }
- },
- "vf-naming-policy" : {
- "tags" : "vf-naming-policy",
- "name" : "vf-naming-policy",
- "property" : {
- "description" : "vf-naming-policy",
- "type" : "string"
- },
- "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
- "sources" : {
- "default" : {
- "type" : "source-default",
- "properties" : { }
- },
- "sdnc" : {
- "type" : "source-rest",
- "properties" : {
- "verb" : "GET",
- "type" : "JSON",
- "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vf-naming-policy",
- "path" : "/param/0/value",
- "input-key-mapping" : {
- "service-instance-id" : "service-instance-id",
- "vnf-id" : "vnf-id"
- },
- "output-key-mapping" : {
- "vf-naming-policy" : "value"
- },
- "key-dependencies" : [ "service-instance-id", "vnf-id" ]
- }
- },
- "processor-db" : {
- "type" : "source-db",
- "properties" : {
- "endpoint-selector" : "dynamic-db-source",
- "type" : "SQL",
- "query" : "select sdnctl.VF_MODEL.naming_policy as vf_naming_policy from sdnctl.VF_MODEL where sdnctl.VF_MODEL.customization_uuid=:vnf_model_customization_uuid",
- "input-key-mapping" : {
- "vnf_model_customization_uuid" : "vnf-model-customization-uuid"
- },
- "output-key-mapping" : {
- "vf-naming-policy" : "vf_naming_policy"
- },
- "key-dependencies" : [ "vnf-model-customization-uuid" ]
- }
- }
- }
- },
- "vf_module_name" : {
- "tags" : "vf_module_name",
- "name" : "vf_module_name",
- "property" : {
- "description" : "vf_module_name",
- "type" : "string"
- },
- "updated-by" : "Singal, Kapil <ks220y@att.com>",
- "sources" : {
- "input" : {
- "type" : "source-input"
- },
- "default" : {
- "type" : "source-default",
- "properties" : { }
- }
- }
- },
- "vfccustomizationuuid" : {
- "tags" : "vfccustomizationuuid",
- "name" : "vfccustomizationuuid",
- "property" : {
- "description" : "vfccustomizationuuid",
- "type" : "string"
- },
- "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
- "sources" : {
- "input" : {
- "type" : "source-input"
- },
- "default" : {
- "type" : "source-default",
- "properties" : { }
- },
- "processor-db" : {
- "type" : "source-db",
- "properties" : {
- "endpoint-selector" : "dynamic-db-source",
- "type" : "SQL",
- "query" : "select sdnctl.VF_MODULE_TO_VFC_MAPPING.vfc_customization_uuid as vnf_customid from sdnctl.VF_MODULE_TO_VFC_MAPPING where vm_count = 1 and sdnctl.VF_MODULE_TO_VFC_MAPPING.vf_module_customization_uuid=:vfmodulecustomizationuuid",
- "input-key-mapping" : {
- "vfmodulecustomizationuuid" : "vf-module-model-customization-uuid"
- },
- "output-key-mapping" : {
- "vfccustomizationuuid" : "vnf_customid"
- },
- "key-dependencies" : [ "vf-module-model-customization-uuid" ]
- }
- }
- }
- },
- "vip" : {
- "tags" : "vip",
- "name" : "vip",
- "property" : {
- "description" : "vip",
- "type" : "string"
- },
- "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
- "sources" : {
- "input" : {
- "type" : "source-input"
- },
- "default" : {
- "type" : "source-default",
- "properties" : { }
- },
- "sdnc" : {
- "type" : "source-rest",
- "properties" : {
- "verb" : "GET",
- "type" : "JSON",
- "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vip",
- "path" : "/param/0/value",
- "input-key-mapping" : {
- "service-instance-id" : "service-instance-id",
- "vnf-id" : "vnf-id"
- },
- "output-key-mapping" : {
- "vip" : "value"
- },
- "key-dependencies" : [ "service-instance-id", "vnf-id" ]
- }
- }
- }
- },
- "vlb_int_pktgen_private_ip_0" : {
- "tags" : "vlb_int_pktgen_private_ip_0",
- "name" : "vlb_int_pktgen_private_ip_0",
- "property" : {
- "description" : "vlb_int_pktgen_private_ip_0",
- "type" : "string"
- },
- "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
- "sources" : {
- "input" : {
- "type" : "source-input"
- },
- "default" : {
- "type" : "source-default",
- "properties" : { }
- },
- "sdnc" : {
- "type" : "source-rest",
- "properties" : {
- "verb" : "GET",
- "type" : "JSON",
- "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vlb_int_pktgen_private_ip_0",
- "path" : "/param/0/value",
- "input-key-mapping" : {
- "service-instance-id" : "service-instance-id",
- "vnf-id" : "vnf-id"
- },
- "output-key-mapping" : {
- "vlb_int_pktgen_private_ip_0" : "value"
- },
- "key-dependencies" : [ "service-instance-id", "vnf-id" ]
- }
- }
- }
- },
- "vlb_int_private_ip_0" : {
- "tags" : "vlb_int_private_ip_0",
- "name" : "vlb_int_private_ip_0",
- "property" : {
- "description" : "vlb_int_private_ip_0",
- "type" : "string"
- },
- "updated-by" : "Singal, Kapil <ks220y@att.com>",
- "sources" : {
- "input" : {
- "type" : "source-input"
- },
- "default" : {
- "type" : "source-default",
- "properties" : { }
- },
- "sdnc" : {
- "type" : "source-rest",
- "properties" : {
- "verb" : "GET",
- "type" : "JSON",
- "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vlb_int_private_ip_0",
- "path" : "/param/0/value",
- "input-key-mapping" : {
- "service-instance-id" : "service-instance-id",
- "vnf-id" : "vnf-id"
- },
- "output-key-mapping" : {
- "vlb_int_private_ip_0" : "value"
- },
- "key-dependencies" : [ "service-instance-id", "vnf-id" ]
- }
- }
- }
- },
- "vlb_name_0" : {
- "tags" : "vlb_name_0",
- "name" : "vlb_name_0",
- "property" : {
- "description" : "vlb_name_0",
- "type" : "string"
- },
- "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
- "sources" : {
- "input" : {
- "type" : "source-input"
- },
- "default" : {
- "type" : "source-default",
- "properties" : { }
- },
- "sdnc" : {
- "type" : "source-rest",
- "properties" : {
- "verb" : "GET",
- "type" : "JSON",
- "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vlb_name_0",
- "path" : "/param/0/value",
- "input-key-mapping" : {
- "service-instance-id" : "service-instance-id",
- "vnf-id" : "vnf-id"
- },
- "output-key-mapping" : {
- "vlb_name_0" : "value"
- },
- "key-dependencies" : [ "service-instance-id", "vnf-id" ]
- }
- }
- }
- },
- "vlb_onap_private_ip_0" : {
- "tags" : "vlb_onap_private_ip_0",
- "name" : "vlb_onap_private_ip_0",
- "property" : {
- "description" : "vlb_onap_private_ip_0",
- "type" : "string"
- },
- "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
- "sources" : {
- "input" : {
- "type" : "source-input"
- },
- "default" : {
- "type" : "source-default",
- "properties" : { }
- },
- "sdnc" : {
- "type" : "source-rest",
- "properties" : {
- "verb" : "GET",
- "type" : "JSON",
- "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vlb_onap_private_ip_0",
- "path" : "/param/0/value",
- "input-key-mapping" : {
- "service-instance-id" : "service-instance-id",
- "vnf-id" : "vnf-id"
- },
- "output-key-mapping" : {
- "private2-prefix-id" : "value"
- },
- "key-dependencies" : [ "service-instance-id", "vnf-id" ]
- }
- }
- }
- },
- "vlb_private_net_cidr" : {
- "tags" : "vlb_private_net_cidr",
- "name" : "vlb_private_net_cidr",
- "property" : {
- "description" : "vlb_private_net_cidr",
- "type" : "string"
- },
- "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
- "sources" : {
- "input" : {
- "type" : "source-input"
- },
- "default" : {
- "type" : "source-default",
- "properties" : { }
- },
- "sdnc" : {
- "type" : "source-rest",
- "properties" : {
- "verb" : "GET",
- "type" : "JSON",
- "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vlb_private_net_cidr",
- "path" : "/param/0/value",
- "input-key-mapping" : {
- "service-instance-id" : "service-instance-id",
- "vnf-id" : "vnf-id"
- },
- "output-key-mapping" : {
- "vlb_private_net_cidr" : "value"
- },
- "key-dependencies" : [ "service-instance-id", "vnf-id" ]
- }
- },
- "processor-db" : {
- "type" : "source-db",
- "properties" : {
- "endpoint-selector" : "dynamic-db-source",
- "type" : "SQL",
- "query" : "select sdnctl.IPAM_IP_POOL.prefix as prefix from sdnctl.IPAM_IP_POOL where description = \"private1\"",
- "input-key-mapping" : { },
- "output-key-mapping" : {
- "vlb_private_net_cidr" : "prefix"
- }
- }
- }
- }
- },
- "vm-type" : {
- "tags" : "vm-type",
- "name" : "vm-type",
- "property" : {
- "description" : "vm-type",
- "type" : "string"
- },
- "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
- "sources" : {
- "input" : {
- "type" : "source-input"
- },
- "default" : {
- "type" : "source-default",
- "properties" : { }
- },
- "processor-db" : {
- "type" : "source-db",
- "properties" : {
- "type" : "SQL",
- "query" : "select VFC_MODEL.vm_type as vm_type from VFC_MODEL where customization_uuid=:vfccustomizationuuid",
- "output-key-mapping" : {
- "vm-type" : "vm_type"
- },
- "endpoint-selector" : "dynamic-db-source",
- "input-key-mapping" : {
- "vfccustomizationuuid" : "vfccustomizationuuid"
- },
- "key-dependencies" : [ "vfccustomizationuuid" ]
- }
- }
- }
- },
- "vnf-id" : {
- "tags" : "vnf-id",
- "name" : "vnf-id",
- "property" : {
- "description" : "vnf-id",
- "type" : "string"
- },
- "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
- "sources" : {
- "input" : {
- "type" : "source-input"
- },
- "default" : {
- "type" : "source-default",
- "properties" : { }
- }
- }
- },
- "vnf-model-customization-uuid" : {
- "tags" : "vnf-model-customization-uuid",
- "name" : "vnf-model-customization-uuid",
- "property" : {
- "description" : "vnf-model-customization-uuid",
- "type" : "string"
- },
- "updated-by" : "Singal, Kapil <ks220y@att.com>",
- "sources" : {
- "input" : {
- "type" : "source-input",
- "properties" : { }
- }
- }
- },
- "vnf_name" : {
- "tags" : "vnf_name",
- "name" : "vnf_name",
- "property" : {
- "description" : "vnf_name",
- "type" : "string"
- },
- "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
- "sources" : {
- "input" : {
- "type" : "source-input"
- },
- "default" : {
- "type" : "source-default",
- "properties" : { }
- },
- "sdnc" : {
- "type" : "source-rest",
- "properties" : {
- "verb" : "GET",
- "type" : "JSON",
- "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vnf_name",
- "path" : "/param/0/value",
- "input-key-mapping" : {
- "service-instance-id" : "service-instance-id",
- "vnf-id" : "vnf-id"
- },
- "output-key-mapping" : {
- "vnf_name" : "value"
- },
- "key-dependencies" : [ "service-instance-id", "vnf-id" ]
- }
- }
- }
- },
- "vnfc-model-invariant-uuid" : {
- "tags" : "vnfc-model-invariant-uuid",
- "name" : "vnfc-model-invariant-uuid",
- "property" : {
- "description" : "vnfc-model-invariant-uuid",
- "type" : "string"
- },
- "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
- "sources" : {
- "input" : {
- "type" : "source-input"
- },
- "default" : {
- "type" : "source-default",
- "properties" : { }
- },
- "processor-db" : {
- "type" : "source-db",
- "properties" : {
- "type" : "SQL",
- "query" : "select VFC_MODEL.invariant_uuid as vfc_invariant_uuid from VFC_MODEL where customization_uuid=:vfccustomizationuuid",
- "output-key-mapping" : {
- "vnfc-model-invariant-uuid" : "vfc_invariant_uuid"
- },
- "endpoint-selector" : "dynamic-db-source",
- "input-key-mapping" : {
- "vfccustomizationuuid" : "vfccustomizationuuid"
- },
- "key-dependencies" : [ "vfccustomizationuuid" ]
- }
- }
- }
- },
- "vnfc-model-version" : {
- "tags" : "vnfc-model-version",
- "name" : "vnfc-model-version",
- "property" : {
- "description" : "vnfc-model-version",
- "type" : "string"
- },
- "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
- "sources" : {
- "input" : {
- "type" : "source-input"
- },
- "default" : {
- "type" : "source-default",
- "properties" : { }
- },
- "processor-db" : {
- "type" : "source-db",
- "properties" : {
- "type" : "SQL",
- "query" : "select VFC_MODEL.version as vnfc_model_version from VFC_MODEL where customization_uuid=:vfccustomizationuuid",
- "output-key-mapping" : {
- "vnfc-model-version" : "vnfc_model_version"
- },
- "endpoint-selector" : "dynamic-db-source",
- "input-key-mapping" : {
- "vfccustomizationuuid" : "vfccustomizationuuid"
- },
- "key-dependencies" : [ "vfccustomizationuuid" ]
- }
- }
- }
- },
- "vpg_int_pktgen_private_ip_0" : {
- "tags" : "vpg_int_pktgen_private_ip_0",
- "name" : "vpg_int_pktgen_private_ip_0",
- "property" : {
- "description" : "vpg_int_pktgen_private_ip_0",
- "type" : "string"
- },
- "updated-by" : "Singal, Kapil <ks220y@att.com>",
- "sources" : {
- "input" : {
- "type" : "source-input"
- },
- "default" : {
- "type" : "source-default",
- "properties" : { }
- },
- "sdnc" : {
- "type" : "source-rest",
- "properties" : {
- "verb" : "GET",
- "type" : "JSON",
- "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vpg_int_pktgen_private_ip_0",
- "path" : "/param/0/value",
- "input-key-mapping" : {
- "service-instance-id" : "service-instance-id",
- "vnf-id" : "vnf-id"
- },
- "output-key-mapping" : {
- "vpg_int_pktgen_private_ip_0" : "value"
- },
- "key-dependencies" : [ "service-instance-id", "vnf-id" ]
- }
- }
- }
- },
- "vpg_name_0" : {
- "tags" : "vpg_name_0",
- "name" : "vpg_name_0",
- "property" : {
- "description" : "vlb_name_0",
- "type" : "string"
- },
- "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
- "sources" : {
- "input" : {
- "type" : "source-input"
- },
- "default" : {
- "type" : "source-default",
- "properties" : { }
- },
- "sdnc" : {
- "type" : "source-rest",
- "properties" : {
- "verb" : "GET",
- "type" : "JSON",
- "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vpg_name_0",
- "path" : "/param/0/value",
- "input-key-mapping" : {
- "service-instance-id" : "service-instance-id",
- "vnf-id" : "vnf-id"
- },
- "output-key-mapping" : {
- "vpg_name_0" : "value"
- },
- "key-dependencies" : [ "service-instance-id", "vnf-id" ]
- }
- }
- }
- },
- "vpg_onap_private_ip_0" : {
- "tags" : "vpg_onap_private_ip_0",
- "name" : "vpg_onap_private_ip_0",
- "property" : {
- "description" : "vpg_onap_private_ip_0",
- "type" : "string"
- },
- "updated-by" : "Singal, Kapil <ks220y@att.com>",
- "sources" : {
- "input" : {
- "type" : "source-input"
- },
- "default" : {
- "type" : "source-default",
- "properties" : { }
- },
- "sdnc" : {
- "type" : "source-rest",
- "properties" : {
- "verb" : "GET",
- "type" : "JSON",
- "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vpg_onap_private_ip_0",
- "path" : "/param/0/value",
- "input-key-mapping" : {
- "service-instance-id" : "service-instance-id",
- "vnf-id" : "vnf-id"
- },
- "output-key-mapping" : {
- "vpg_onap_private_ip_0" : "value"
- },
- "key-dependencies" : [ "service-instance-id", "vnf-id" ]
- }
- }
- }
- }
+ "aic-cloud-region": {
+ "tags": "aic-cloud-region",
+ "name": "aic-cloud-region",
+ "property": {
+ "description": "aic-cloud-region",
+ "type": "string"
+ },
+ "updated-by": "Singal, Kapil <ks220y@att.com>",
+ "sources": {
+ "input": {
+ "type": "source-input",
+ "properties": {}
+ }
+ }
+ },
+ "vlb_0_int_pktgen_private_port_0_mac": {
+ "tags": "vlb_0_int_pktgen_private_port_0_mac",
+ "name": "vlb_0_int_pktgen_private_port_0_mac",
+ "property": {
+ "description": "vlb_0_int_pktgen_private_port_0_mac",
+ "type": "string"
+ },
+ "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+ "sources": {
+ "input": {
+ "type": "source-input"
+ },
+ "default": {
+ "type": "source-default",
+ "properties": {}
+ },
+ "sdnc": {
+ "type": "source-rest",
+ "properties": {
+ "verb": "GET",
+ "type": "JSON",
+ "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vlb_0_int_pktgen_private_port_0_mac",
+ "path": "/param/0/value",
+ "input-key-mapping": {
+ "service-instance-id": "service-instance-id",
+ "vnf-id": "vnf-id"
+ },
+ "output-key-mapping": {
+ "vlb_0_int_pktgen_private_port_0_mac": "value"
+ },
+ "key-dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ]
+ }
+ }
+ }
+ },
+ "vpg_0_int_pktgen_private_port_0_mac": {
+ "tags": "vpg_0_int_pktgen_private_port_0_mac",
+ "name": "vpg_0_int_pktgen_private_port_0_mac",
+ "property": {
+ "description": "vpg_0_int_pktgen_private_port_0_mac",
+ "type": "string"
+ },
+ "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+ "sources": {
+ "input": {
+ "type": "source-input"
+ },
+ "default": {
+ "type": "source-default",
+ "properties": {}
+ },
+ "sdnc": {
+ "type": "source-rest",
+ "properties": {
+ "verb": "GET",
+ "type": "JSON",
+ "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vpg_0_int_pktgen_private_port_0_mac",
+ "path": "/param/0/value",
+ "input-key-mapping": {
+ "service-instance-id": "service-instance-id",
+ "vnf-id": "vnf-id"
+ },
+ "output-key-mapping": {
+ "vpg_0_int_pktgen_private_port_0_mac": "value"
+ },
+ "key-dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ]
+ }
+ }
+ }
+ },
+ "cloud_env": {
+ "tags": "cloud_env",
+ "name": "cloud_env",
+ "property": {
+ "description": "cloud_env",
+ "type": "string"
+ },
+ "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+ "sources": {
+ "input": {
+ "type": "source-input"
+ },
+ "default": {
+ "type": "source-default",
+ "properties": {}
+ },
+ "sdnc": {
+ "type": "source-rest",
+ "properties": {
+ "verb": "GET",
+ "type": "JSON",
+ "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/cloud_env",
+ "path": "/param/0/value",
+ "input-key-mapping": {
+ "service-instance-id": "service-instance-id",
+ "vnf-id": "vnf-id"
+ },
+ "output-key-mapping": {
+ "cloud_env": "value"
+ },
+ "key-dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ]
+ }
+ }
+ }
+ },
+ "create-md-sal-vnf-param": {
+ "tags": "create-md-sal-vnf-param",
+ "name": "create-md-sal-vnf-param",
+ "property": {
+ "description": "create-md-sal-vnf-param",
+ "type": "string"
+ },
+ "updated-by": "Singal, Kapil <ks220y@att.com>",
+ "sources": {
+ "sdnc": {
+ "type": "source-rest",
+ "properties": {
+ "type": "JSON",
+ "headers": {
+ "Accept": "application/json",
+ "Content-Type": "application/json"
+ },
+ "verb": "PUT",
+ "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vdns_vf_module_id",
+ "path": "",
+ "payload": "{\n\"GENERIC-RESOURCE-API:param\": [\n{\n\"GENERIC-RESOURCE-API:name\": \"vdns_vf_module_id\",\n\"GENERIC-RESOURCE-API:value\": \"$vf-module-id\"\n}\n]\n}",
+ "input-key-mapping": {
+ "service-instance-id": "service-instance-id",
+ "vnf-id": "vnf-id",
+ "vf-module-id": "vf-module-id"
+ },
+ "output-key-mapping": {},
+ "key-dependencies": [
+ "vf-module-id",
+ "service-instance-id",
+ "vnf-id"
+ ]
+ }
+ },
+ "aai-data": {
+ "type": "source-rest",
+ "properties": {
+ "verb": "PATCH",
+ "type": "JSON",
+ "url-path": "/aai/v14/network/generic-vnfs/generic-vnf/$vnf-id/nm-profile-name",
+ "payload": "{\"nm-profile-name\":\"$vf-module-id\"}",
+ "path": "",
+ "input-key-mapping": {
+ "vnf-id": "vnf-id"
+ },
+ "output-key-mapping": {},
+ "key-dependencies": [
+ "vnf-id"
+ ]
+ }
+ }
+ }
+ },
+ "dcae_collector_ip": {
+ "tags": "dcae_collector_ip",
+ "name": "dcae_collector_ip",
+ "property": {
+ "description": "dcae_collector_ip",
+ "type": "string"
+ },
+ "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+ "sources": {
+ "input": {
+ "type": "source-input"
+ },
+ "default": {
+ "type": "source-default",
+ "properties": {}
+ },
+ "sdnc": {
+ "type": "source-rest",
+ "properties": {
+ "verb": "GET",
+ "type": "JSON",
+ "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/dcae_collector_ip",
+ "path": "/param/0/value",
+ "input-key-mapping": {
+ "service-instance-id": "service-instance-id",
+ "vnf-id": "vnf-id"
+ },
+ "output-key-mapping": {
+ "dcae_collector_ip": "value"
+ },
+ "key-dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ]
+ }
+ }
+ }
+ },
+ "dcae_collector_port": {
+ "tags": "dcae_collector_port",
+ "name": "dcae_collector_port",
+ "property": {
+ "description": "dcae_collector_port",
+ "type": "string"
+ },
+ "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+ "sources": {
+ "input": {
+ "type": "source-input"
+ },
+ "default": {
+ "type": "source-default",
+ "properties": {}
+ },
+ "sdnc": {
+ "type": "source-rest",
+ "properties": {
+ "verb": "GET",
+ "type": "JSON",
+ "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/dcae_collector_port",
+ "path": "/param/0/value",
+ "input-key-mapping": {
+ "service-instance-id": "service-instance-id",
+ "vnf-id": "vnf-id"
+ },
+ "output-key-mapping": {
+ "dcae_collector_port": "value"
+ },
+ "key-dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ]
+ }
+ }
+ }
+ },
+ "demo_artifacts_version": {
+ "tags": "demo_artifacts_version",
+ "name": "demo_artifacts_version",
+ "property": {
+ "description": "demo_artifacts_version",
+ "type": "string"
+ },
+ "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+ "sources": {
+ "input": {
+ "type": "source-input"
+ },
+ "default": {
+ "type": "source-default",
+ "properties": {}
+ },
+ "sdnc": {
+ "type": "source-rest",
+ "properties": {
+ "verb": "GET",
+ "type": "JSON",
+ "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/demo_artifacts_version",
+ "path": "/param/0/value",
+ "input-key-mapping": {
+ "service-instance-id": "service-instance-id",
+ "vnf-id": "vnf-id"
+ },
+ "output-key-mapping": {
+ "demo_artifacts_version": "value"
+ },
+ "key-dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ]
+ }
+ }
+ }
+ },
+ "flavor_name": {
+ "tags": "flavor_name",
+ "name": "flavor_name",
+ "property": {
+ "description": "flavor_name",
+ "type": "string"
+ },
+ "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+ "sources": {
+ "input": {
+ "type": "source-input"
+ },
+ "default": {
+ "type": "source-default",
+ "properties": {}
+ },
+ "sdnc": {
+ "type": "source-rest",
+ "properties": {
+ "verb": "GET",
+ "type": "JSON",
+ "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/flavor_name",
+ "path": "/param/0/value",
+ "input-key-mapping": {
+ "service-instance-id": "service-instance-id",
+ "vnf-id": "vnf-id"
+ },
+ "output-key-mapping": {
+ "flavor_name": "value"
+ },
+ "key-dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ]
+ }
+ }
+ }
+ },
+ "gre_ipaddr": {
+ "tags": "gre_ipaddr",
+ "name": "gre_ipaddr",
+ "property": {
+ "description": "gre_ipaddr",
+ "type": "string"
+ },
+ "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+ "sources": {
+ "input": {
+ "type": "source-input"
+ },
+ "default": {
+ "type": "source-default",
+ "properties": {}
+ },
+ "sdnc": {
+ "type": "source-rest",
+ "properties": {
+ "verb": "GET",
+ "type": "JSON",
+ "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/gre_ipaddr",
+ "path": "/param/0/value",
+ "input-key-mapping": {
+ "service-instance-id": "service-instance-id",
+ "vnf-id": "vnf-id"
+ },
+ "output-key-mapping": {
+ "gre_ipaddr": "value"
+ },
+ "key-dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ]
+ }
+ },
+ "rest": {
+ "type": "source-rest",
+ "properties": {
+ "endpoint-selector": "ipam-1",
+ "type": "JSON",
+ "verb": "POST",
+ "url-path": "/api/ipam/prefixes/$prefix-id/available-ips/",
+ "path": "",
+ "input-key-mapping": {
+ "prefix-id": "private1-prefix-id"
+ },
+ "output-key-mapping": {
+ "gre_ipaddr": "address",
+ "id": "id"
+ },
+ "key-dependencies": [
+ "private1-prefix-id"
+ ]
+ }
+ }
+ }
+ },
+ "image_name": {
+ "tags": "image_name",
+ "name": "image_name",
+ "property": {
+ "description": "image_name",
+ "type": "string"
+ },
+ "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+ "sources": {
+ "input": {
+ "type": "source-input"
+ },
+ "default": {
+ "type": "source-default",
+ "properties": {}
+ },
+ "sdnc": {
+ "type": "source-rest",
+ "properties": {
+ "verb": "GET",
+ "type": "JSON",
+ "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/image_name",
+ "path": "/param/0/value",
+ "input-key-mapping": {
+ "service-instance-id": "service-instance-id",
+ "vnf-id": "vnf-id"
+ },
+ "output-key-mapping": {
+ "image_name": "value"
+ },
+ "key-dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ]
+ }
+ }
+ }
+ },
+ "install_script_version": {
+ "tags": "install_script_version",
+ "name": "install_script_version",
+ "property": {
+ "description": "install_script_version",
+ "type": "string"
+ },
+ "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+ "sources": {
+ "input": {
+ "type": "source-input"
+ },
+ "default": {
+ "type": "source-default",
+ "properties": {}
+ },
+ "sdnc": {
+ "type": "source-rest",
+ "properties": {
+ "verb": "GET",
+ "type": "JSON",
+ "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/install_script_version",
+ "path": "/param/0/value",
+ "input-key-mapping": {
+ "service-instance-id": "service-instance-id",
+ "vnf-id": "vnf-id"
+ },
+ "output-key-mapping": {
+ "install_script_version": "value"
+ },
+ "key-dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ]
+ }
+ }
+ }
+ },
+ "int_pktgen_private_net_id": {
+ "tags": "int_pktgen_private_net_id",
+ "name": "int_pktgen_private_net_id",
+ "property": {
+ "description": "int_pktgen_private_net_id",
+ "type": "string"
+ },
+ "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+ "sources": {
+ "input": {
+ "type": "source-input"
+ },
+ "default": {
+ "type": "source-default",
+ "properties": {}
+ },
+ "sdnc": {
+ "type": "source-rest",
+ "properties": {
+ "verb": "GET",
+ "type": "JSON",
+ "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/int_pktgen_private_net_id",
+ "path": "/param/0/value",
+ "input-key-mapping": {
+ "service-instance-id": "service-instance-id",
+ "vnf-id": "vnf-id"
+ },
+ "output-key-mapping": {
+ "int_pktgen_private_net_id": "value"
+ },
+ "key-dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ]
+ }
+ }
+ }
+ },
+ "int_pktgen_private_subnet_id": {
+ "tags": "int_pktgen_private_subnet_id",
+ "name": "int_pktgen_private_subnet_id",
+ "property": {
+ "description": "int_pktgen_private_subnet_id",
+ "type": "string"
+ },
+ "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+ "sources": {
+ "input": {
+ "type": "source-input"
+ },
+ "default": {
+ "type": "source-default",
+ "properties": {}
+ },
+ "sdnc": {
+ "type": "source-rest",
+ "properties": {
+ "verb": "GET",
+ "type": "JSON",
+ "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/int_pktgen_private_subnet_id",
+ "path": "/param/0/value",
+ "input-key-mapping": {
+ "service-instance-id": "service-instance-id",
+ "vnf-id": "vnf-id"
+ },
+ "output-key-mapping": {
+ "int_pktgen_private_subnet_id": "value"
+ },
+ "key-dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ]
+ }
+ }
+ }
+ },
+ "int_private_net_id": {
+ "tags": "int_private_net_id",
+ "name": "int_private_net_id",
+ "property": {
+ "description": "int_private_net_id",
+ "type": "string"
+ },
+ "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+ "sources": {
+ "input": {
+ "type": "source-input"
+ },
+ "default": {
+ "type": "source-default",
+ "properties": {}
+ },
+ "sdnc": {
+ "type": "source-rest",
+ "properties": {
+ "verb": "GET",
+ "type": "JSON",
+ "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/int_private_net_id",
+ "path": "/param/0/value",
+ "input-key-mapping": {
+ "service-instance-id": "service-instance-id",
+ "vnf-id": "vnf-id"
+ },
+ "output-key-mapping": {
+ "int_private_net_id": "value"
+ },
+ "key-dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ]
+ }
+ }
+ }
+ },
+ "int_private_subnet_id": {
+ "tags": "int_private_subnet_id",
+ "name": "int_private_subnet_id",
+ "property": {
+ "description": "int_private_subnet_id",
+ "type": "string"
+ },
+ "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+ "sources": {
+ "input": {
+ "type": "source-input"
+ },
+ "default": {
+ "type": "source-default",
+ "properties": {}
+ },
+ "sdnc": {
+ "type": "source-rest",
+ "properties": {
+ "verb": "GET",
+ "type": "JSON",
+ "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/int_private_subnet_id",
+ "path": "/param/0/value",
+ "input-key-mapping": {
+ "service-instance-id": "service-instance-id",
+ "vnf-id": "vnf-id"
+ },
+ "output-key-mapping": {
+ "int_private_subnet_id": "value"
+ },
+ "key-dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ]
+ }
+ }
+ }
+ },
+ "key_name": {
+ "tags": "key_name",
+ "name": "key_name",
+ "property": {
+ "description": "key_name",
+ "type": "string"
+ },
+ "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+ "sources": {
+ "input": {
+ "type": "source-input"
+ },
+ "default": {
+ "type": "source-default",
+ "properties": {}
+ },
+ "sdnc": {
+ "type": "source-rest",
+ "properties": {
+ "verb": "GET",
+ "type": "JSON",
+ "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/key_name",
+ "path": "/param/0/value",
+ "input-key-mapping": {
+ "service-instance-id": "service-instance-id",
+ "vnf-id": "vnf-id"
+ },
+ "output-key-mapping": {
+ "key_name": "value"
+ },
+ "key-dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ]
+ }
+ }
+ }
+ },
+ "keypair": {
+ "tags": "keypair",
+ "name": "keypair",
+ "property": {
+ "description": "keypair",
+ "type": "string"
+ },
+ "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+ "sources": {
+ "input": {
+ "type": "source-input"
+ },
+ "default": {
+ "type": "source-default",
+ "properties": {}
+ },
+ "sdnc": {
+ "type": "source-rest",
+ "properties": {
+ "verb": "GET",
+ "type": "JSON",
+ "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/keypair",
+ "path": "/param/0/value",
+ "input-key-mapping": {
+ "service-instance-id": "service-instance-id",
+ "vnf-id": "vnf-id"
+ },
+ "output-key-mapping": {
+ "keypair": "value"
+ },
+ "key-dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ]
+ }
+ }
+ }
+ },
+ "management-prefix-id": {
+ "tags": "management-prefix-id",
+ "name": "management-prefix-id",
+ "property": {
+ "description": "management-prefix-id",
+ "type": "string"
+ },
+ "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+ "sources": {
+ "input": {
+ "type": "source-input"
+ },
+ "default": {
+ "type": "source-default",
+ "properties": {}
+ },
+ "sdnc": {
+ "type": "source-rest",
+ "properties": {
+ "verb": "GET",
+ "type": "JSON",
+ "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/management-prefix-id",
+ "path": "/param/0/value",
+ "input-key-mapping": {
+ "service-instance-id": "service-instance-id",
+ "vnf-id": "vnf-id"
+ },
+ "output-key-mapping": {
+ "management-prefix-id": "value"
+ },
+ "key-dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ]
+ }
+ },
+ "processor-db": {
+ "type": "source-db",
+ "properties": {
+ "type": "SQL",
+ "query": "select sdnctl.IPAM_IP_POOL.prefix_id as prefix_id from sdnctl.IPAM_IP_POOL where description = \"management\"",
+ "input-key-mapping": {},
+ "output-key-mapping": {
+ "management-prefix-id": "prefix_id"
+ }
+ }
+ }
+ }
+ },
+ "nb_api_version": {
+ "tags": "nb_api_version",
+ "name": "nb_api_version",
+ "property": {
+ "description": "nb_api_version",
+ "type": "string"
+ },
+ "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+ "sources": {
+ "input": {
+ "type": "source-input"
+ },
+ "default": {
+ "type": "source-default",
+ "properties": {}
+ },
+ "sdnc": {
+ "type": "source-rest",
+ "properties": {
+ "verb": "GET",
+ "type": "JSON",
+ "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/nb_api_version",
+ "path": "/param/0/value",
+ "input-key-mapping": {
+ "service-instance-id": "service-instance-id",
+ "vnf-id": "vnf-id"
+ },
+ "output-key-mapping": {
+ "nb_api_version": "value"
+ },
+ "key-dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ]
+ }
+ }
+ }
+ },
+ "nexus_artifact_repo": {
+ "tags": "nexus_artifact_repo",
+ "name": "nexus_artifact_repo",
+ "property": {
+ "description": "nexus_artifact_repo",
+ "type": "string"
+ },
+ "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+ "sources": {
+ "input": {
+ "type": "source-input"
+ },
+ "default": {
+ "type": "source-default",
+ "properties": {}
+ },
+ "sdnc": {
+ "type": "source-rest",
+ "properties": {
+ "verb": "GET",
+ "type": "JSON",
+ "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/nexus_artifact_repo",
+ "path": "/param/0/value",
+ "input-key-mapping": {
+ "service-instance-id": "service-instance-id",
+ "vnf-id": "vnf-id"
+ },
+ "output-key-mapping": {
+ "nexus_artifact_repo": "value"
+ },
+ "key-dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ]
+ }
+ }
+ }
+ },
+ "nfc-naming-code": {
+ "tags": "nfc-naming-code",
+ "name": "nfc-naming-code",
+ "property": {
+ "description": "nfc-naming-code",
+ "type": "string"
+ },
+ "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+ "sources": {
+ "input": {
+ "type": "source-input"
+ },
+ "default": {
+ "type": "source-default",
+ "properties": {}
+ },
+ "processor-db": {
+ "type": "source-db",
+ "properties": {
+ "type": "SQL",
+ "query": "select nfc_naming_code as nfc_naming_code from sdnctl.VFC_MODEL where customization_uuid=:vfccustomizationuuid",
+ "input-key-mapping": {
+ "vfccustomizationuuid": "vfccustomizationuuid"
+ },
+ "output-key-mapping": {
+ "nfc-naming-code": "nfc_naming_code"
+ },
+ "key-dependencies": [
+ "vfccustomizationuuid"
+ ]
+ }
+ }
+ }
+ },
+ "onap_private_net_cidr": {
+ "tags": "onap_private_net_cidr",
+ "name": "onap_private_net_cidr",
+ "property": {
+ "description": "onap_private_net_cidr",
+ "type": "string"
+ },
+ "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+ "sources": {
+ "input": {
+ "type": "source-input"
+ },
+ "default": {
+ "type": "source-default",
+ "properties": {}
+ },
+ "processor-db": {
+ "type": "source-db",
+ "properties": {
+ "type": "SQL",
+ "query": "select sdnctl.IPAM_IP_POOL.prefix as prefix from sdnctl.IPAM_IP_POOL where description = \"management\"",
+ "input-key-mapping": {},
+ "output-key-mapping": {
+ "onap_private_net_cidr": "prefix"
+ }
+ }
+ },
+ "sdnc": {
+ "type": "source-rest",
+ "properties": {
+ "verb": "GET",
+ "type": "JSON",
+ "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/onap_private_net_cidr",
+ "path": "/param/0/value",
+ "input-key-mapping": {
+ "service-instance-id": "service-instance-id",
+ "vnf-id": "vnf-id"
+ },
+ "output-key-mapping": {
+ "onap_private_net_cidr": "value"
+ },
+ "key-dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ]
+ }
+ }
+ }
+ },
+ "onap_private_net_id": {
+ "tags": "onap_private_net_id",
+ "name": "onap_private_net_id",
+ "property": {
+ "description": "onap_private_net_id",
+ "type": "string"
+ },
+ "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+ "sources": {
+ "input": {
+ "type": "source-input"
+ },
+ "default": {
+ "type": "source-default",
+ "properties": {}
+ },
+ "sdnc": {
+ "type": "source-rest",
+ "properties": {
+ "verb": "GET",
+ "type": "JSON",
+ "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/onap_private_net_id",
+ "path": "/param/0/value",
+ "input-key-mapping": {
+ "service-instance-id": "service-instance-id",
+ "vnf-id": "vnf-id"
+ },
+ "output-key-mapping": {
+ "onap_private_net_id": "value"
+ },
+ "key-dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ]
+ }
+ }
+ }
+ },
+ "onap_private_subnet_id": {
+ "tags": "onap_private_subnet_id",
+ "name": "onap_private_subnet_id",
+ "property": {
+ "description": "onap_private_subnet_id",
+ "type": "string"
+ },
+ "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+ "sources": {
+ "input": {
+ "type": "source-input"
+ },
+ "default": {
+ "type": "source-default",
+ "properties": {}
+ },
+ "sdnc": {
+ "type": "source-rest",
+ "properties": {
+ "verb": "GET",
+ "type": "JSON",
+ "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/onap_private_subnet_id",
+ "path": "/param/0/value",
+ "input-key-mapping": {
+ "service-instance-id": "service-instance-id",
+ "vnf-id": "vnf-id"
+ },
+ "output-key-mapping": {
+ "onap_private_subnet_id": "value"
+ },
+ "key-dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ]
+ }
+ }
+ }
+ },
+ "pg_int": {
+ "tags": "pg_int",
+ "name": "pg_int",
+ "property": {
+ "description": "pg_int",
+ "type": "string"
+ },
+ "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+ "sources": {
+ "input": {
+ "type": "source-input"
+ },
+ "default": {
+ "type": "source-default",
+ "properties": {}
+ },
+ "sdnc": {
+ "type": "source-rest",
+ "properties": {
+ "verb": "GET",
+ "type": "JSON",
+ "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/pg_int",
+ "path": "/param/0/value",
+ "input-key-mapping": {
+ "service-instance-id": "service-instance-id",
+ "vnf-id": "vnf-id"
+ },
+ "output-key-mapping": {
+ "pg_int": "value"
+ },
+ "key-dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ]
+ }
+ },
+ "rest": {
+ "type": "source-rest",
+ "properties": {
+ "endpoint-selector": "ipam-1",
+ "type": "JSON",
+ "verb": "POST",
+ "url-path": "/api/ipam/prefixes/$prefix-id/available-ips/",
+ "path": "",
+ "input-key-mapping": {
+ "prefix-id": "private2-prefix-id"
+ },
+ "output-key-mapping": {
+ "pg_int": "address",
+ "id": "id"
+ },
+ "key-dependencies": [
+ "private2-prefix-id"
+ ]
+ }
+ }
+ }
+ },
+ "pktgen_private_net_cidr": {
+ "tags": "pktgen_private_net_cidr",
+ "name": "pktgen_private_net_cidr",
+ "property": {
+ "description": "pktgen_private_net_cidr",
+ "type": "string"
+ },
+ "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+ "sources": {
+ "input": {
+ "type": "source-input"
+ },
+ "default": {
+ "type": "source-default",
+ "properties": {}
+ },
+ "processor-db": {
+ "type": "source-db",
+ "properties": {
+ "type": "SQL",
+ "query": "select sdnctl.IPAM_IP_POOL.prefix as prefix from sdnctl.IPAM_IP_POOL where description = \"private2\"",
+ "output-key-mapping": {
+ "pktgen_private_net_cidr": "prefix"
+ },
+ "input-key-mapping": {}
+ }
+ },
+ "sdnc": {
+ "type": "source-rest",
+ "properties": {
+ "verb": "GET",
+ "type": "JSON",
+ "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/pktgen_private_net_cidr",
+ "path": "/param/0/value",
+ "input-key-mapping": {
+ "service-instance-id": "service-instance-id",
+ "vnf-id": "vnf-id"
+ },
+ "output-key-mapping": {
+ "pktgen_private_net_cidr": "value"
+ },
+ "key-dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ]
+ }
+ }
+ }
+ },
+ "private1-prefix-id": {
+ "tags": "private1-prefix-id",
+ "name": "private1-prefix-id",
+ "property": {
+ "description": "private1-prefix-id",
+ "type": "string"
+ },
+ "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+ "sources": {
+ "input": {
+ "type": "source-input"
+ },
+ "default": {
+ "type": "source-default",
+ "properties": {}
+ },
+ "sdnc": {
+ "type": "source-rest",
+ "properties": {
+ "verb": "GET",
+ "type": "JSON",
+ "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/private1-prefix-id",
+ "path": "/param/0/value",
+ "input-key-mapping": {
+ "service-instance-id": "service-instance-id",
+ "vnf-id": "vnf-id"
+ },
+ "output-key-mapping": {
+ "private1-prefix-id": "value"
+ },
+ "key-dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ]
+ }
+ },
+ "processor-db": {
+ "type": "source-db",
+ "properties": {
+ "type": "SQL",
+ "query": "select sdnctl.IPAM_IP_POOL.prefix_id as prefix_id from sdnctl.IPAM_IP_POOL where description = \"private1\"",
+ "input-key-mapping": {},
+ "output-key-mapping": {
+ "private1-prefix-id": "prefix_id"
+ }
+ }
+ }
+ }
+ },
+ "private2-prefix-id": {
+ "tags": "private2-prefix-id",
+ "name": "private2-prefix-id",
+ "property": {
+ "description": "private2-prefix-id",
+ "type": "string"
+ },
+ "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+ "sources": {
+ "input": {
+ "type": "source-input"
+ },
+ "default": {
+ "type": "source-default",
+ "properties": {}
+ },
+ "sdnc": {
+ "type": "source-rest",
+ "properties": {
+ "verb": "GET",
+ "type": "JSON",
+ "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/private2-prefix-id",
+ "path": "/param/0/value",
+ "input-key-mapping": {
+ "service-instance-id": "service-instance-id",
+ "vnf-id": "vnf-id"
+ },
+ "output-key-mapping": {
+ "private2-prefix-id": "value"
+ },
+ "key-dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ]
+ }
+ },
+ "processor-db": {
+ "type": "source-db",
+ "properties": {
+ "type": "SQL",
+ "query": "select sdnctl.IPAM_IP_POOL.prefix_id as prefix_id from sdnctl.IPAM_IP_POOL where description = \"private2\"",
+ "input-key-mapping": {},
+ "output-key-mapping": {
+ "private2-prefix-id": "prefix_id"
+ }
+ }
+ }
+ }
+ },
+ "pub_key": {
+ "tags": "pub_key",
+ "name": "pub_key",
+ "property": {
+ "description": "pub_key",
+ "type": "string"
+ },
+ "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+ "sources": {
+ "input": {
+ "type": "source-input"
+ },
+ "default": {
+ "type": "source-default",
+ "properties": {}
+ },
+ "sdnc": {
+ "type": "source-rest",
+ "properties": {
+ "verb": "GET",
+ "type": "JSON",
+ "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/pub_key",
+ "path": "/param/0/value",
+ "input-key-mapping": {
+ "service-instance-id": "service-instance-id",
+ "vnf-id": "vnf-id"
+ },
+ "output-key-mapping": {
+ "pub_key": "value"
+ },
+ "key-dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ]
+ }
+ }
+ }
+ },
+ "public_net_id": {
+ "tags": "public_net_id",
+ "name": "public_net_id",
+ "property": {
+ "description": "public_net_id",
+ "type": "string"
+ },
+ "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+ "sources": {
+ "input": {
+ "type": "source-input"
+ },
+ "default": {
+ "type": "source-default",
+ "properties": {}
+ },
+ "sdnc": {
+ "type": "source-rest",
+ "properties": {
+ "verb": "GET",
+ "type": "JSON",
+ "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/public_net_id",
+ "path": "/param/0/value",
+ "input-key-mapping": {
+ "service-instance-id": "service-instance-id",
+ "vnf-id": "vnf-id"
+ },
+ "output-key-mapping": {
+ "public_net_id": "value"
+ },
+ "key-dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ]
+ }
+ }
+ }
+ },
+ "sec_group": {
+ "tags": "sec_group",
+ "name": "sec_group",
+ "property": {
+ "description": "sec_group",
+ "type": "string"
+ },
+ "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+ "sources": {
+ "input": {
+ "type": "source-input"
+ },
+ "default": {
+ "type": "source-default",
+ "properties": {}
+ },
+ "sdnc": {
+ "type": "source-rest",
+ "properties": {
+ "verb": "GET",
+ "type": "JSON",
+ "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/sec_group",
+ "path": "/param/0/value",
+ "input-key-mapping": {
+ "service-instance-id": "service-instance-id",
+ "vnf-id": "vnf-id"
+ },
+ "output-key-mapping": {
+ "sec_group": "value"
+ },
+ "key-dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ]
+ }
+ }
+ }
+ },
+ "service-instance-id": {
+ "tags": "service-instance-id, tosca.datatypes.Root, data_type",
+ "name": "service-instance-id",
+ "property": {
+ "description": "To be provided",
+ "type": "string"
+ },
+ "updated-by": "Singal, Kapil <ks220y@att.com>",
+ "sources": {
+ "input": {
+ "type": "source-input",
+ "properties": {}
+ },
+ "any-db": {
+ "type": "source-db",
+ "properties": {
+ "query": "SELECT artifact_name FROM BLUEPRINT_MODEL where artifact_version=\"1.0.0\"",
+ "input-key-mapping": {},
+ "output-key-mapping": {
+ "service-instance-id": "artifact_name"
+ }
+ }
+ },
+ "processor-db": {
+ "type": "source-db",
+ "properties": {
+ "query": "SELECT artifact_name FROM BLUEPRINT_MODEL where artifact_version=\"1.0.0\"",
+ "input-key-mapping": {},
+ "output-key-mapping": {
+ "service-instance-id": "artifact_name"
+ }
+ }
+ },
+ "capability": {
+ "type": "source-capability",
+ "properties": {
+ "script-type": "jython",
+ "script-class-reference": "SampleRAProcessor",
+ "instance-key-dependencies": []
+ }
+ }
+ }
+ },
+ "vdns_int_private_ip_0": {
+ "tags": "vdns_int_private_ip_0",
+ "name": "vdns_int_private_ip_0",
+ "property": {
+ "description": "vdns_int_private_ip_0",
+ "type": "string"
+ },
+ "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+ "sources": {
+ "input": {
+ "type": "source-input"
+ },
+ "default": {
+ "type": "source-default",
+ "properties": {}
+ },
+ "sdnc": {
+ "type": "source-rest",
+ "properties": {
+ "verb": "GET",
+ "type": "JSON",
+ "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vf-modules/vf-module/$vdns_vf_module_id/vf-module-data/vf-module-topology/vf-module-parameters/param/vdns_int_private_ip_0",
+ "path": "/param/0/value",
+ "input-key-mapping": {
+ "service-instance-id": "service-instance-id",
+ "vnf-id": "vnf-id",
+ "vdns_vf_module_id": "vdns_vf_module_id"
+ },
+ "output-key-mapping": {
+ "vdns_int_private_ip_0": "value"
+ },
+ "key-dependencies": [
+ "service-instance-id",
+ "vnf-id",
+ "vdns_vf_module_id"
+ ]
+ }
+ },
+ "rest": {
+ "type": "source-rest",
+ "properties": {
+ "endpoint-selector": "ipam-1",
+ "type": "JSON",
+ "verb": "POST",
+ "url-path": "/api/ipam/prefixes/$prefix-id/available-ips/",
+ "path": "",
+ "input-key-mapping": {
+ "prefix-id": "private1-prefix-id"
+ },
+ "output-key-mapping": {
+ "vdns_int_private_ip_0": "address",
+ "id": "id"
+ },
+ "key-dependencies": [
+ "private1-prefix-id"
+ ]
+ }
+ }
+ }
+ },
+ "vdns_name_0": {
+ "tags": "vdns_name_0",
+ "name": "vdns_name_0",
+ "property": {
+ "description": "vdns_name_0",
+ "type": "string"
+ },
+ "updated-by": "Singal, Kapil <ks220y@att.com>",
+ "sources": {
+ "input": {
+ "type": "source-input"
+ },
+ "default": {
+ "type": "source-default",
+ "properties": {}
+ },
+ "sdnc": {
+ "type": "source-rest",
+ "properties": {
+ "verb": "GET",
+ "type": "JSON",
+ "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vdns_name_0",
+ "path": "/param/0/value",
+ "input-key-mapping": {
+ "service-instance-id": "service-instance-id",
+ "vnf-id": "vnf-id"
+ },
+ "output-key-mapping": {
+ "vdns_name_0": "value"
+ },
+ "key-dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ]
+ }
+ },
+ "rest": {
+ "type": "source-rest",
+ "properties": {
+ "endpoint-selector": "naming-resolution",
+ "verb": "POST",
+ "type": "JSON",
+ "headers": {
+ "Accept": "application/json",
+ "Content-Type": "application/json"
+ },
+ "url-path": "/v1/genNetworkElementName",
+ "payload": "{\r\n\t\"elements\": [{\r\n\t\t\"resource-name\": \"vdns_name_0\",\r\n\t\t\"resource-value\": \"${vdns_name_0}\",\r\n\t\t\"external-key\": \"${vf-module-id}_vdns_name_0\",\r\n\t\t\"policy-instance-name\": \"${vf-naming-policy}\",\r\n\t\t\"naming-type\": \"VNFC\",\r\n\t\t\"VNF_NAME\": \"${vnf_name}\",\r\n\t\t\"NFC_NAMING_CODE\": \"${nfc-naming-code}\"\r\n\t}]\r\n}",
+ "path": "/elements/0/resource-value",
+ "input-key-mapping": {
+ "vf-naming-policy": "vf-naming-policy",
+ "nfc-naming-code": "nfc-naming-code",
+ "vnf_name": "vnf_name",
+ "vf-module-id": "vf-module-id"
+
+ },
+ "output-key-mapping": {
+ "vdns_name_0": "resource-value"
+ },
+ "key-dependencies": [
+ "vf-naming-policy",
+ "nfc-naming-code",
+ "vnf_name",
+ "vf-module-id"
+
+ ]
+ }
+ }
+ }
+ },
+ "vdns_onap_private_ip_0": {
+ "tags": "vdns_onap_private_ip_0",
+ "name": "vdns_onap_private_ip_0",
+ "property": {
+ "description": "vdns_onap_private_ip_0",
+ "type": "string"
+ },
+ "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+ "sources": {
+ "input": {
+ "type": "source-input"
+ },
+ "default": {
+ "type": "source-default",
+ "properties": {}
+ },
+ "sdnc": {
+ "type": "source-rest",
+ "properties": {
+ "verb": "GET",
+ "type": "JSON",
+ "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vf-modules/vf-module/$vdns_vf_module_id/vf-module-data/vf-module-topology/vf-module-parameters/param/vdns_onap_private_ip_0",
+ "path": "/param/0/value",
+ "input-key-mapping": {
+ "service-instance-id": "service-instance-id",
+ "vnf-id": "vnf-id",
+ "vdns_vf_module_id": "vdns_vf_module_id"
+ },
+ "output-key-mapping": {
+ "vdns_onap_private_ip_0": "value"
+ },
+ "key-dependencies": [
+ "service-instance-id",
+ "vnf-id",
+ "vdns_vf_module_id"
+ ]
+ }
+ },
+ "rest": {
+ "type": "source-rest",
+ "properties": {
+ "endpoint-selector": "ipam-1",
+ "type": "JSON",
+ "verb": "POST",
+ "url-path": "/api/ipam/prefixes/$prefix-id/available-ips/",
+ "path": "",
+ "input-key-mapping": {
+ "prefix-id": "management-prefix-id"
+ },
+ "output-key-mapping": {
+ "vdns_onap_private_ip_0": "address",
+ "id": "id"
+ },
+ "key-dependencies": [
+ "management-prefix-id"
+ ]
+ }
+ }
+ }
+ },
+ "vdns_vf_module_id": {
+ "tags": "vdns_vf_module_id",
+ "name": "vdns_vf_module_id",
+ "property": {
+ "description": "vdns_vf_module_id",
+ "type": "string"
+ },
+ "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+ "sources": {
+ "default": {
+ "type": "source-default",
+ "properties": {}
+ },
+ "sdnc": {
+ "type": "source-rest",
+ "properties": {
+ "verb": "GET",
+ "type": "JSON",
+ "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vdns_vf_module_id",
+ "path": "/param/0/value",
+ "input-key-mapping": {
+ "service-instance-id": "service-instance-id",
+ "vnf-id": "vnf-id"
+ },
+ "output-key-mapping": {
+ "vdns_vf_module_id": "value"
+ },
+ "key-dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ]
+ }
+ },
+ "rest": {
+ "type": "source-rest",
+ "properties": {
+ "verb": "GET",
+ "type": "JSON",
+ "url-path": "/aai/v14/network/generic-vnfs/generic-vnf/$vnf-id",
+ "path": "",
+ "input-key-mapping": {
+ "vnf-id": "vnf-id"
+ },
+ "output-key-mapping": {
+ "vdns_vf_module_id": "nm-profile-name"
+ },
+ "key-dependencies": [
+ "vnf-id"
+ ]
+ }
+ }
+ }
+ },
+ "vf-module-id": {
+ "tags": "vf-module-id",
+ "name": "vf-module-id",
+ "property": {
+ "description": "vf-module-id",
+ "type": "string"
+ },
+ "updated-by": "Singal, Kapil <ks220y@att.com>",
+ "sources": {
+ "input": {
+ "type": "source-input",
+ "properties": {}
+ }
+ }
+ },
+ "vf-module-label": {
+ "tags": "vf-module-label",
+ "name": "vf-module-label",
+ "property": {
+ "description": "vf-module-label",
+ "type": "string"
+ },
+ "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+ "sources": {
+ "input": {
+ "type": "source-input"
+ },
+ "default": {
+ "type": "source-default",
+ "properties": {}
+ },
+ "processor-db": {
+ "type": "source-db",
+ "properties": {
+ "type": "SQL",
+ "query": "select sdnctl.VF_MODULE_MODEL.vf_module_label as vf_module_label from sdnctl.VF_MODULE_MODEL where sdnctl.VF_MODULE_MODEL.customization_uuid=:customizationid",
+ "input-key-mapping": {
+ "customizationid": "vf-module-model-customization-uuid"
+ },
+ "output-key-mapping": {
+ "vf-module-label": "vf_module_label"
+ },
+ "key-dependencies": [
+ "vf-module-model-customization-uuid"
+ ]
+ }
+ }
+ }
+ },
+ "vf-module-model-customization-uuid": {
+ "tags": "vf-module-model-customization-uuid",
+ "name": "vf-module-model-customization-uuid",
+ "property": {
+ "description": "vf-module-model-customization-uuid",
+ "type": "string"
+ },
+ "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+ "sources": {
+ "input": {
+ "type": "source-input"
+ },
+ "default": {
+ "type": "source-default",
+ "properties": {}
+ }
+ }
+ },
+ "vnf_assign_aai": {
+
+ "tags": "vnf_assign_aai",
+ "name": "vnf_assign_aai",
+ "property": {
+ "description": "vnf_assign_aai",
+ "type": "string"
+ },
+ "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+ "sources": {
+ "aai-data": {
+ "type": "source-rest",
+ "properties": {
+ "verb": "PATCH",
+ "type": "JSON",
+ "headers": {
+
+ "Content-Type": "application/merge-patch+json"
+
+ },
+ "url-path": "/aai/v14/network/generic-vnfs/generic-vnf/$vnf-id",
+ "payload": "{\r\n\"vnf-name\":\"${vnf_name}\", \r\n \"selflink\": \"restconf\/config\/GENERIC-RESOURCE-API:services\/service\/${service-instance-id}\/service-data\/vnfs\/vnf\/${vnf-id}\/vnf-data\/vnf-topology\/\"\r\n}",
+ "path": "",
+ "input-key-mapping": {
+ "service-instance-id":"service-instance-id",
+ "vnf-id": "vnf-id",
+ "vnf_name": "vnf_name"
+ },
+ "output-key-mapping": {},
+ "key-dependencies": [
+ "service-instance-id",
+ "vnf-id",
+ "vnf_name"
+ ]
+ }
+ }
+ }
+ },
+
+ "vf-module-assign": {
+
+ "tags": "vf-module-assign",
+ "name": "vf-module-assign",
+ "property": {
+ "description": "vf-module-assign",
+ "type": "string"
+ },
+ "updated-by": "Singal, Kapil <ks220y@att.com>",
+ "sources": {
+
+ "aai-data": {
+ "type": "source-rest",
+ "properties": {
+ "verb": "PATCH",
+ "type": "JSON",
+ "headers": {
+
+ "Content-Type": "application/merge-patch+json"
+
+ },
+ "url-path": "/aai/v14/network/generic-vnfs/generic-vnf/$vnf-id/vf-modules/vf-module/$vf-module-id",
+ "payload": "{\r\n\"vf-module-name\":\"${vf-module-name}\", \r\n\"selflink\": \"restconf\/config\/GENERIC-RESOURCE-API:services\/service\/${service-instance-id}\/service-data\/vnfs\/vnf\/${vnf-id}\/vnf-data\/vf-modules\/vf-module\/${vf-module-id}\/vf-module-data\/vf-module-topology\/\"\r\n \r\n}",
+ "path": "",
+ "input-key-mapping": {
+ "service-instance-id":"service-instance-id",
+ "vnf-id": "vnf-id",
+ "vf-module-id": "vf-module-id",
+ "vf-module-name": "vf-module-name"
+ },
+ "output-key-mapping": {},
+ "key-dependencies": [
+ "service-instance-id",
+ "vnf-id",
+ "vf-module-id",
+ "vf-module-name"
+ ]
+ }
+ }
+ }
+ },
+
+ "vf-module-name": {
+ "tags": "vf-module-name",
+ "name": "vf-module-name",
+ "property": {
+ "description": "vf_module_name",
+ "type": "string"
+ },
+ "updated-by": "Singal, Kapil <ks220y@att.com>",
+ "sources": {
+ "input": {
+ "type": "source-input"
+ },
+ "default": {
+ "type": "source-default",
+ "properties": {}
+ },
+ "sdnc": {
+ "type": "source-rest",
+ "properties": {
+ "verb": "GET",
+ "type": "JSON",
+ "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vf-modules/vf-module/$vf_module_id/vf-module-data/vf-module-topology/vf-module-parameters/param/vf-module-name",
+ "path": "/param/0/value",
+ "input-key-mapping": {
+ "service-instance-id": "service-instance-id",
+ "vnf-id": "vnf-id"
+ },
+ "output-key-mapping": {
+ "vf-module-name": "value"
+ },
+ "key-dependencies": [
+ "service-instance-id",
+ "vnf-id",
+ "vf_module_id"
+ ]
+ }
+ },
+ "rest": {
+ "type": "source-rest",
+ "properties": {
+ "endpoint-selector": "naming-resolution",
+ "verb": "POST",
+ "type": "JSON",
+ "headers": {
+ "Accept": "application/json",
+ "Content-Type": "application/json"
+ },
+ "url-path": "/v1/genNetworkElementName",
+ "payload": "{\r\n \"elements\": [\r\n {\r\n \"resource-name\": \"vf-module-name\",\r\n \"resource-value\": \"${vf-module-name}\",\r\n \"external-key\": \"${vf-module-id}\",\r\n \"policy-instance-name\": \"${vf-naming-policy}\",\r\n \"naming-type\": \"VF-MODULE\",\r\n \"VNF_NAME\": \"${vnf_name}\",\r\n \"VF_MODULE_LABEL\":\"${vf-module-label}\",\r\n \"VF_MODULE_TYPE\":\"${vf-module-type}\"\r\n }\r\n ]\r\n}",
+ "path": "/elements/0/resource-value",
+ "input-key-mapping": {
+ "vf-naming-policy": "vf-naming-policy",
+ "vnf_name": "vnf_name",
+ "vf-module-label": "vf-module-label",
+ "vf-module-type": "vf-module-type",
+ "vf-module-id": "vf-module-id"
+
+ },
+ "output-key-mapping": {
+ "vf-module-name": "resource-value"
+ },
+ "key-dependencies": [
+ "vf-naming-policy",
+ "vnf_name",
+ "vf-module-label",
+ "vf-module-type",
+ "vf-module-id"
+ ]
+ }
+ }
+ }
+ },
+ "vf-module-type": {
+ "tags": "vf-module-type",
+ "name": "vf-module-type",
+ "property": {
+ "description": "vf-module-type",
+ "type": "string"
+ },
+ "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+ "sources": {
+ "input": {
+ "type": "source-input"
+ },
+ "default": {
+ "type": "source-default",
+ "properties": {}
+ },
+ "processor-db": {
+ "type": "source-db",
+ "properties": {
+ "type": "SQL",
+ "query": "select vf_module_type as vf_module_type from sdnctl.VF_MODULE_MODEL where customization_uuid=:customizationid",
+ "output-key-mapping": {
+ "vf-module-type": "vf_module_type"
+ },
+ "input-key-mapping": {
+ "customizationid": "vf-module-model-customization-uuid"
+ },
+ "key-dependencies": [
+ "vf-module-model-customization-uuid"
+ ]
+ }
+ }
+ }
+ },
+ "vf-naming-policy": {
+ "tags": "vf-naming-policy",
+ "name": "vf-naming-policy",
+ "property": {
+ "description": "vf-naming-policy",
+ "type": "string"
+ },
+ "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+ "sources": {
+ "default": {
+ "type": "source-default",
+ "properties": {}
+ },
+ "sdnc": {
+ "type": "source-rest",
+ "properties": {
+ "verb": "GET",
+ "type": "JSON",
+ "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vf-naming-policy",
+ "path": "/param/0/value",
+ "input-key-mapping": {
+ "service-instance-id": "service-instance-id",
+ "vnf-id": "vnf-id"
+ },
+ "output-key-mapping": {
+ "vf-naming-policy": "value"
+ },
+ "key-dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ]
+ }
+ },
+ "processor-db": {
+ "type": "source-db",
+ "properties": {
+ "type": "SQL",
+ "query": "select sdnctl.VF_MODEL.naming_policy as vf_naming_policy from sdnctl.VF_MODEL where sdnctl.VF_MODEL.customization_uuid=:vnf_model_customization_uuid",
+ "input-key-mapping": {
+ "vnf_model_customization_uuid": "vnf-model-customization-uuid"
+ },
+ "output-key-mapping": {
+ "vf-naming-policy": "vf_naming_policy"
+ },
+ "key-dependencies": [
+ "vnf-model-customization-uuid"
+ ]
+ }
+ }
+ }
+ },
+ "vfccustomizationuuid": {
+ "tags": "vfccustomizationuuid",
+ "name": "vfccustomizationuuid",
+ "property": {
+ "description": "vfccustomizationuuid",
+ "type": "string"
+ },
+ "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+ "sources": {
+ "input": {
+ "type": "source-input"
+ },
+ "default": {
+ "type": "source-default",
+ "properties": {}
+ },
+ "processor-db": {
+ "type": "source-db",
+ "properties": {
+ "type": "SQL",
+ "query": "select sdnctl.VF_MODULE_TO_VFC_MAPPING.vfc_customization_uuid as vnf_customid from sdnctl.VF_MODULE_TO_VFC_MAPPING where vm_count = 1 and sdnctl.VF_MODULE_TO_VFC_MAPPING.vf_module_customization_uuid=:vfmodulecustomizationuuid",
+ "input-key-mapping": {
+ "vfmodulecustomizationuuid": "vf-module-model-customization-uuid"
+ },
+ "output-key-mapping": {
+ "vfccustomizationuuid": "vnf_customid"
+ },
+ "key-dependencies": [
+ "vf-module-model-customization-uuid"
+ ]
+ }
+ }
+ }
+ },
+ "vip": {
+ "tags": "vip",
+ "name": "vip",
+ "property": {
+ "description": "vip",
+ "type": "string"
+ },
+ "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+ "sources": {
+ "input": {
+ "type": "source-input"
+ },
+ "default": {
+ "type": "source-default",
+ "properties": {}
+ },
+ "sdnc": {
+ "type": "source-rest",
+ "properties": {
+ "verb": "GET",
+ "type": "JSON",
+ "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vip",
+ "path": "/param/0/value",
+ "input-key-mapping": {
+ "service-instance-id": "service-instance-id",
+ "vnf-id": "vnf-id"
+ },
+ "output-key-mapping": {
+ "vip": "value"
+ },
+ "key-dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ]
+ }
+ },
+ "rest": {
+ "type": "source-rest",
+ "properties": {
+ "endpoint-selector": "ipam-1",
+ "type": "JSON",
+ "verb": "POST",
+ "url-path": "/api/ipam/prefixes/$prefix-id/available-ips/",
+ "path": "",
+ "input-key-mapping": {
+ "prefix-id": "private2-prefix-id"
+ },
+ "output-key-mapping": {
+ "vip": "address",
+ "id": "id"
+ },
+ "key-dependencies": [
+ "private2-prefix-id"
+ ]
+ }
+ }
+ }
+ },
+ "vlb_int_pktgen_private_ip_0": {
+ "tags": "vlb_int_pktgen_private_ip_0",
+ "name": "vlb_int_pktgen_private_ip_0",
+ "property": {
+ "description": "vlb_int_pktgen_private_ip_0",
+ "type": "string"
+ },
+ "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+ "sources": {
+ "input": {
+ "type": "source-input"
+ },
+ "default": {
+ "type": "source-default",
+ "properties": {}
+ },
+ "sdnc": {
+ "type": "source-rest",
+ "properties": {
+ "verb": "GET",
+ "type": "JSON",
+ "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vlb_int_pktgen_private_ip_0",
+ "path": "/param/0/value",
+ "input-key-mapping": {
+ "service-instance-id": "service-instance-id",
+ "vnf-id": "vnf-id"
+ },
+ "output-key-mapping": {
+ "vlb_int_pktgen_private_ip_0": "value"
+ },
+ "key-dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ]
+ }
+ },
+ "rest": {
+ "type": "source-rest",
+ "properties": {
+ "endpoint-selector": "ipam-1",
+ "type": "JSON",
+ "verb": "POST",
+ "url-path": "/api/ipam/prefixes/$prefix-id/available-ips/",
+ "path": "",
+ "input-key-mapping": {
+ "prefix-id": "private2-prefix-id"
+ },
+ "output-key-mapping": {
+ "vlb_int_pktgen_private_ip_0": "address",
+ "id": "id"
+ },
+ "key-dependencies": [
+ "private2-prefix-id"
+ ]
+ }
+ }
+ }
+ },
+ "vlb_int_private_ip_0": {
+ "tags": "vlb_int_private_ip_0",
+ "name": "vlb_int_private_ip_0",
+ "property": {
+ "description": "vlb_int_private_ip_0",
+ "type": "string"
+ },
+ "updated-by": "Singal, Kapil <ks220y@att.com>",
+ "sources": {
+ "input": {
+ "type": "source-input"
+ },
+ "default": {
+ "type": "source-default",
+ "properties": {}
+ },
+ "sdnc": {
+ "type": "source-rest",
+ "properties": {
+ "verb": "GET",
+ "type": "JSON",
+ "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vlb_int_private_ip_0",
+ "path": "/param/0/value",
+ "input-key-mapping": {
+ "service-instance-id": "service-instance-id",
+ "vnf-id": "vnf-id"
+ },
+ "output-key-mapping": {
+ "vlb_int_private_ip_0": "value"
+ },
+ "key-dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ]
+ }
+ },
+ "rest": {
+ "type": "source-rest",
+ "properties": {
+ "endpoint-selector": "ipam-1",
+ "type": "JSON",
+ "verb": "POST",
+ "url-path": "/api/ipam/prefixes/$prefix-id/available-ips/",
+ "path": "",
+ "input-key-mapping": {
+ "prefix-id": "private1-prefix-id"
+ },
+ "output-key-mapping": {
+ "vlb_int_private_ip_0": "address",
+ "id": "id"
+ },
+ "key-dependencies": [
+ "private1-prefix-id"
+ ]
+ }
+ }
+ }
+ },
+ "vlb_name_0": {
+ "tags": "vlb_name_0",
+ "name": "vlb_name_0",
+ "property": {
+ "description": "vlb_name_0",
+ "type": "string"
+ },
+ "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+ "sources": {
+ "input": {
+ "type": "source-input"
+ },
+ "default": {
+ "type": "source-default",
+ "properties": {}
+ },
+ "sdnc": {
+ "type": "source-rest",
+ "properties": {
+ "verb": "GET",
+ "type": "JSON",
+ "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vlb_name_0",
+ "path": "/param/0/value",
+ "input-key-mapping": {
+ "service-instance-id": "service-instance-id",
+ "vnf-id": "vnf-id"
+ },
+ "output-key-mapping": {
+ "vlb_name_0": "value"
+ },
+ "key-dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ]
+ }
+ },
+ "rest": {
+ "type": "source-rest",
+ "properties": {
+ "endpoint-selector": "naming-resolution",
+ "verb": "POST",
+ "type": "JSON",
+ "headers": {
+ "Accept": "application/json",
+ "Content-Type": "application/json"
+ },
+ "url-path": "/v1/genNetworkElementName",
+ "payload": "{\r\n\t\"elements\": [{\r\n\t\t\"resource-name\": \"vlb_name_0\",\r\n\t\t\"resource-value\": \"${vlb_name_0}\",\r\n\t\t\"external-key\": \"${vf-module-id}_vlb_name_0\",\r\n\t\t\"policy-instance-name\": \"${vf-naming-policy}\",\r\n\t\t\"naming-type\": \"VNFC\",\r\n\t\t\"VNF_NAME\": \"${vnf_name}\",\r\n\t\t\"NFC_NAMING_CODE\": \"${nfc-naming-code}\"\r\n\t}]\r\n}",
+ "path": "/elements/0/resource-value",
+ "input-key-mapping": {
+ "vf-naming-policy": "vf-naming-policy",
+ "nfc-naming-code": "nfc-naming-code",
+ "vnf_name": "vnf_name",
+ "vf-module-id": "vf-module-id"
+ },
+ "output-key-mapping": {
+ "vlb_name_0": "resource-value"
+ },
+ "key-dependencies": [
+ "vf-naming-policy",
+ "nfc-naming-code",
+ "vnf_name",
+ "vf-module-id"
+ ]
+ }
+ }
+ }
+ },
+ "vlb_onap_private_ip_0": {
+ "tags": "vlb_onap_private_ip_0",
+ "name": "vlb_onap_private_ip_0",
+ "property": {
+ "description": "vlb_onap_private_ip_0",
+ "type": "string"
+ },
+ "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+ "sources": {
+ "input": {
+ "type": "source-input"
+ },
+ "default": {
+ "type": "source-default",
+ "properties": {}
+ },
+ "sdnc": {
+ "type": "source-rest",
+ "properties": {
+ "verb": "GET",
+ "type": "JSON",
+ "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vlb_onap_private_ip_0",
+ "path": "/param/0/value",
+ "input-key-mapping": {
+ "service-instance-id": "service-instance-id",
+ "vnf-id": "vnf-id"
+ },
+ "output-key-mapping": {
+ "vlb_onap_private_ip_0": "value"
+ },
+ "key-dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ]
+ }
+ },
+ "rest": {
+ "type": "source-rest",
+ "properties": {
+ "endpoint-selector": "ipam-1",
+ "type": "JSON",
+ "verb": "POST",
+ "url-path": "/api/ipam/prefixes/$prefix-id/available-ips/",
+ "path": "",
+ "input-key-mapping": {
+ "prefix-id": "management-prefix-id"
+ },
+ "output-key-mapping": {
+ "vlb_onap_private_ip_0": "address",
+ "id": "id"
+ },
+ "key-dependencies": [
+ "management-prefix-id"
+ ]
+ }
+ }
+ }
+ },
+ "vlb_private_net_cidr": {
+ "tags": "vlb_private_net_cidr",
+ "name": "vlb_private_net_cidr",
+ "property": {
+ "description": "vlb_private_net_cidr",
+ "type": "string"
+ },
+ "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+ "sources": {
+ "input": {
+ "type": "source-input"
+ },
+ "default": {
+ "type": "source-default",
+ "properties": {}
+ },
+ "sdnc": {
+ "type": "source-rest",
+ "properties": {
+ "verb": "GET",
+ "type": "JSON",
+ "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vlb_private_net_cidr",
+ "path": "/param/0/value",
+ "input-key-mapping": {
+ "service-instance-id": "service-instance-id",
+ "vnf-id": "vnf-id"
+ },
+ "output-key-mapping": {
+ "vlb_private_net_cidr": "value"
+ },
+ "key-dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ]
+ }
+ },
+ "processor-db": {
+ "type": "source-db",
+ "properties": {
+ "type": "SQL",
+ "query": "select sdnctl.IPAM_IP_POOL.prefix as prefix from sdnctl.IPAM_IP_POOL where description = \"private1\"",
+ "input-key-mapping": {},
+ "output-key-mapping": {
+ "vlb_private_net_cidr": "prefix"
+ }
+ }
+ }
+ }
+ },
+ "vm-type": {
+ "tags": "vm-type",
+ "name": "vm-type",
+ "property": {
+ "description": "vm-type",
+ "type": "string"
+ },
+ "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+ "sources": {
+ "input": {
+ "type": "source-input"
+ },
+ "default": {
+ "type": "source-default",
+ "properties": {}
+ },
+ "processor-db": {
+ "type": "source-db",
+ "properties": {
+ "type": "SQL",
+ "query": "select VFC_MODEL.vm_type as vm_type from VFC_MODEL where customization_uuid=:vfccustomizationuuid",
+ "output-key-mapping": {
+ "vm-type": "vm_type"
+ },
+ "input-key-mapping": {
+ "vfccustomizationuuid": "vfccustomizationuuid"
+ },
+ "key-dependencies": [
+ "vfccustomizationuuid"
+ ]
+ }
+ }
+ }
+ },
+ "vnf-id": {
+ "tags": "vnf-id",
+ "name": "vnf-id",
+ "property": {
+ "description": "vnf-id",
+ "type": "string"
+ },
+ "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+ "sources": {
+ "input": {
+ "type": "source-input"
+ },
+ "default": {
+ "type": "source-default",
+ "properties": {}
+ },
+ "sdnc": {
+ "type": "source-rest",
+ "properties": {
+ "verb": "GET",
+ "type": "JSON",
+ "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vnf-id",
+ "path": "/param/0/value",
+ "input-key-mapping": {
+ "service-instance-id": "service-instance-id",
+ "vnf-id": "vnf-id"
+ },
+ "output-key-mapping": {
+ "vnf-id": "value"
+ },
+ "key-dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ]
+ }
+ }
+ }
+ },
+ "vnf-model-customization-uuid": {
+ "tags": "vnf-model-customization-uuid",
+ "name": "vnf-model-customization-uuid",
+ "property": {
+ "description": "vnf-model-customization-uuid",
+ "type": "string"
+ },
+ "updated-by": "Singal, Kapil <ks220y@att.com>",
+ "sources": {
+ "input": {
+ "type": "source-input",
+ "properties": {}
+ }
+ }
+ },
+ "vnf_name": {
+ "tags": "vnf_name",
+ "name": "vnf_name",
+ "property": {
+ "description": "vnf_name",
+ "type": "string"
+ },
+ "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+ "sources": {
+ "input": {
+ "type": "source-input"
+ },
+ "default": {
+ "type": "source-default",
+ "properties": {}
+ },
+ "sdnc": {
+ "type": "source-rest",
+ "properties": {
+ "verb": "GET",
+ "type": "JSON",
+ "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vnf_name",
+ "path": "/param/0/value",
+ "headers": {
+ "Accept": "application/json",
+ "Content-Type": "application/json"
+ },
+ "input-key-mapping": {
+ "service-instance-id": "service-instance-id",
+ "vnf-id": "vnf-id"
+ },
+ "output-key-mapping": {
+ "vnf_name": "value"
+ },
+ "key-dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ]
+ }
+ },
+ "rest": {
+ "type": "source-rest",
+ "properties": {
+ "endpoint-selector": "naming-resolution",
+ "verb": "POST",
+ "type": "JSON",
+ "headers": {
+ "Accept": "application/json",
+ "Content-Type": "application/json"
+ },
+ "url-path": "/v1/genNetworkElementName",
+ "payload": "{\r\n \"elements\": [\r\n {\r\n \"resource-name\": \"vnf_name\",\r\n \"resource-value\": \"${vnf_name}\",\r\n \"external-key\": \"${vnf-id}\",\r\n \"policy-instance-name\": \"${vf-naming-policy}\",\r\n \"naming-type\": \"VNF\",\r\n \"AIC_CLOUD_REGION\": \"${aic-cloud-region}\"\r\n }\r\n ]\r\n}",
+ "path": "/elements/0/resource-value",
+ "input-key-mapping": {
+ "vnf-id": "vnf-id",
+ "aic-cloud-region": "aic-cloud-region",
+ "vf-naming-policy": "vf-naming-policy"
+ },
+ "output-key-mapping": {
+ "vnf_name": "resource-value"
+ },
+ "key-dependencies": [
+ "vnf-id",
+ "aic-cloud-region",
+ "vf-naming-policy"
+ ]
+ }
+ }
+ }
+ },
+ "repo_url_blob": {
+ "tags": "repo_url_blob",
+ "name": "repo_url_blob",
+ "property": {
+ "description": "repo_url_blob",
+ "type": "string"
+ },
+ "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+ "sources": {
+ "input": {
+ "type": "source-input"
+ },
+ "default": {
+ "type": "source-default",
+ "properties": {}
+ },
+ "sdnc": {
+ "type": "source-rest",
+ "properties": {
+ "verb": "GET",
+ "type": "JSON",
+ "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/repo_url_blob",
+ "path": "/param/0/value",
+ "input-key-mapping": {
+ "service-instance-id": "service-instance-id",
+ "vnf-id": "vnf-id"
+ },
+ "output-key-mapping": {
+ "repo_url_blob": "value"
+ },
+ "key-dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ]
+ }
+ }
+ }
+ },
+ "repo_url_artifacts": {
+ "tags": "repo_url_artifacts",
+ "name": "repo_url_artifacts",
+ "property": {
+ "description": "repo_url_artifacts",
+ "type": "string"
+ },
+ "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+ "sources": {
+ "input": {
+ "type": "source-input"
+ },
+ "default": {
+ "type": "source-default",
+ "properties": {}
+ },
+ "sdnc": {
+ "type": "source-rest",
+ "properties": {
+ "verb": "GET",
+ "type": "JSON",
+ "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/repo_url_artifacts",
+ "path": "/param/0/value",
+ "input-key-mapping": {
+ "service-instance-id": "service-instance-id",
+ "vnf-id": "vnf-id"
+ },
+ "output-key-mapping": {
+ "repo_url_artifacts": "value"
+ },
+ "key-dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ]
+ }
+ }
+ }
+ },
+ "vnfc-model-invariant-uuid": {
+ "tags": "vnfc-model-invariant-uuid",
+ "name": "vnfc-model-invariant-uuid",
+ "property": {
+ "description": "vnfc-model-invariant-uuid",
+ "type": "string"
+ },
+ "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+ "sources": {
+ "input": {
+ "type": "source-input"
+ },
+ "default": {
+ "type": "source-default",
+ "properties": {}
+ },
+ "processor-db": {
+ "type": "source-db",
+ "properties": {
+ "type": "SQL",
+ "query": "select VFC_MODEL.invariant_uuid as vfc_invariant_uuid from VFC_MODEL where customization_uuid=:vfccustomizationuuid",
+ "output-key-mapping": {
+ "vnfc-model-invariant-uuid": "vfc_invariant_uuid"
+ },
+ "input-key-mapping": {
+ "vfccustomizationuuid": "vfccustomizationuuid"
+ },
+ "key-dependencies": [
+ "vfccustomizationuuid"
+ ]
+ }
+ }
+ }
+ },
+ "vnfc-model-version": {
+ "tags": "vnfc-model-version",
+ "name": "vnfc-model-version",
+ "property": {
+ "description": "vnfc-model-version",
+ "type": "string"
+ },
+ "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+ "sources": {
+ "input": {
+ "type": "source-input"
+ },
+ "default": {
+ "type": "source-default",
+ "properties": {}
+ },
+ "processor-db": {
+ "type": "source-db",
+ "properties": {
+ "type": "SQL",
+ "query": "select VFC_MODEL.version as vnfc_model_version from VFC_MODEL where customization_uuid=:vfccustomizationuuid",
+ "output-key-mapping": {
+ "vnfc-model-version": "vnfc_model_version"
+ },
+ "input-key-mapping": {
+ "vfccustomizationuuid": "vfccustomizationuuid"
+ },
+ "key-dependencies": [
+ "vfccustomizationuuid"
+ ]
+ }
+ }
+ }
+ },
+ "vpg_int_private1_ip_0": {
+ "tags": "vpg_int_private1_ip_0",
+ "name": "vpg_int_private1_ip_0",
+ "property": {
+ "description": "vpg_int_private1_ip_0",
+ "type": "string"
+ },
+ "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+ "sources": {
+ "input": {
+ "type": "source-input"
+ },
+ "default": {
+ "type": "source-default",
+ "properties": {}
+ },
+ "sdnc": {
+ "type": "source-rest",
+ "properties": {
+ "verb": "GET",
+ "type": "JSON",
+ "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vpg_int_private1_ip_0",
+ "path": "/param/0/value",
+ "input-key-mapping": {
+ "service-instance-id": "service-instance-id",
+ "vnf-id": "vnf-id"
+ },
+ "output-key-mapping": {
+ "vpg_int_private1_ip_0": "value"
+ },
+ "key-dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ]
+ }
+ },
+ "rest": {
+ "type": "source-rest",
+ "properties": {
+ "endpoint-selector": "ipam-1",
+ "type": "JSON",
+ "verb": "POST",
+ "url-path": "/api/ipam/prefixes/$prefix-id/available-ips/",
+ "path": "",
+ "input-key-mapping": {
+ "prefix-id": "management-prefix-id"
+ },
+ "output-key-mapping": {
+ "vpg_int_private1_ip_0": "address",
+ "id": "id"
+ },
+ "key-dependencies": [
+ "management-prefix-id"
+ ]
+ }
+ }
+ }
+ },
+ "vpg_int_pktgen_private_ip_0": {
+ "tags": "vpg_int_pktgen_private_ip_0",
+ "name": "vpg_int_pktgen_private_ip_0",
+ "property": {
+ "description": "vpg_int_pktgen_private_ip_0",
+ "type": "string"
+ },
+ "updated-by": "Singal, Kapil <ks220y@att.com>",
+ "sources": {
+ "input": {
+ "type": "source-input"
+ },
+ "default": {
+ "type": "source-default",
+ "properties": {}
+ },
+ "sdnc": {
+ "type": "source-rest",
+ "properties": {
+ "verb": "GET",
+ "type": "JSON",
+ "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vpg_int_pktgen_private_ip_0",
+ "path": "/param/0/value",
+ "input-key-mapping": {
+ "service-instance-id": "service-instance-id",
+ "vnf-id": "vnf-id"
+ },
+ "output-key-mapping": {
+ "vpg_int_pktgen_private_ip_0": "value"
+ },
+ "key-dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ]
+ }
+ },
+ "rest": {
+ "type": "source-rest",
+ "properties": {
+ "endpoint-selector": "ipam-1",
+ "type": "JSON",
+ "verb": "POST",
+ "url-path": "/api/ipam/prefixes/$prefix-id/available-ips/",
+ "path": "",
+ "input-key-mapping": {
+ "prefix-id": "private2-prefix-id"
+ },
+ "output-key-mapping": {
+ "vpg_int_pktgen_private_ip_0": "address",
+ "id": "id"
+ },
+ "key-dependencies": [
+ "private2-prefix-id"
+ ]
+ }
+ }
+ }
+ },
+ "vpg_name_0": {
+ "tags": "vpg_name_0",
+ "name": "vpg_name_0",
+ "property": {
+ "description": "vlb_name_0",
+ "type": "string"
+ },
+ "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+ "sources": {
+ "input": {
+ "type": "source-input"
+ },
+ "default": {
+ "type": "source-default",
+ "properties": {}
+ },
+ "sdnc": {
+ "type": "source-rest",
+ "properties": {
+ "verb": "GET",
+ "type": "JSON",
+ "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vpg_name_0",
+ "path": "/param/0/value",
+ "input-key-mapping": {
+ "service-instance-id": "service-instance-id",
+ "vnf-id": "vnf-id"
+ },
+ "output-key-mapping": {
+ "vpg_name_0": "value"
+ },
+ "key-dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ]
+ }
+ },
+ "rest": {
+ "type": "source-rest",
+ "properties": {
+ "endpoint-selector": "naming-resolution",
+ "verb": "POST",
+ "type": "JSON",
+ "headers": {
+ "Accept": "application/json",
+ "Content-Type": "application/json"
+ },
+ "url-path": "/v1/genNetworkElementName",
+ "payload": "{\r\n\t\"elements\": [{\r\n\t\t\"resource-name\": \"vpg_name_0\",\r\n\t\t\"resource-value\": \"${vpg_name_0}\",\r\n\t\t\"external-key\": \"${vf-module-id}_vpg_name_0\",\r\n\t\t\"policy-instance-name\": \"${vf-naming-policy}\",\r\n\t\t\"naming-type\": \"VNFC\",\r\n\t\t\"VNF_NAME\": \"${vnf_name}\",\r\n\t\t\"NFC_NAMING_CODE\": \"${nfc-naming-code}\"\r\n\t}]\r\n}",
+ "path": "/elements/0/resource-value",
+ "input-key-mapping": {
+ "vf-naming-policy": "vf-naming-policy",
+ "nfc-naming-code": "nfc-naming-code",
+ "vnf_name": "vnf_name",
+ "vf-module-id": "vf-module-id"
+
+ },
+ "output-key-mapping": {
+ "vpg_name_0": "resource-value"
+ },
+ "key-dependencies": [
+ "vf-naming-policy",
+ "nfc-naming-code",
+ "vnf_name",
+ "vf-module-id"
+
+ ]
+ }
+ }
+ }
+ },
+ "vpg_onap_private_ip_0": {
+ "tags": "vpg_onap_private_ip_0",
+ "name": "vpg_onap_private_ip_0",
+ "property": {
+ "description": "vpg_onap_private_ip_0",
+ "type": "string"
+ },
+ "updated-by": "Singal, Kapil <ks220y@att.com>",
+ "sources": {
+ "input": {
+ "type": "source-input"
+ },
+ "default": {
+ "type": "source-default",
+ "properties": {}
+ },
+ "sdnc": {
+ "type": "source-rest",
+ "properties": {
+ "verb": "GET",
+ "type": "JSON",
+ "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vpg_onap_private_ip_0",
+ "path": "/param/0/value",
+ "input-key-mapping": {
+ "service-instance-id": "service-instance-id",
+ "vnf-id": "vnf-id"
+ },
+ "output-key-mapping": {
+ "vpg_onap_private_ip_0": "value"
+ },
+ "key-dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ]
+ }
+ },
+ "rest": {
+ "type": "source-rest",
+ "properties": {
+ "endpoint-selector": "ipam-1",
+ "type": "JSON",
+ "verb": "POST",
+ "url-path": "/api/ipam/prefixes/$prefix-id/available-ips/",
+ "path": "",
+ "input-key-mapping": {
+ "prefix-id": "management-prefix-id"
+ },
+ "output-key-mapping": {
+ "vpg_onap_private_ip_0": "address",
+ "id": "id"
+ },
+ "key-dependencies": [
+ "management-prefix-id"
+ ]
+ }
+ }
+ }
+ }
} \ No newline at end of file
diff --git a/components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/vLB_CDS.json b/components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/vLB_CDS.json
index 9b03a5ef3..2db4fea84 100644
--- a/components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/vLB_CDS.json
+++ b/components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/vLB_CDS.json
@@ -1,323 +1,566 @@
{
- "tosca_definitions_version" : "controller_blueprint_1_0_0",
- "metadata" : {
- "template_author" : "Abdelmuhaimen Seaudi",
- "author-email" : "abdelmuhaimen.seaudi@orange.com",
- "user-groups" : "ADMIN, OPERATION",
- "template_name" : "vLB_CDS",
- "template_version" : "1.0.0",
- "template_tags" : "test, vDNS-CDS, SCALE-OUT, MARCO"
- },
- "imports" : [ {
- "file" : "Definitions/data_types.json"
- }, {
- "file" : "Definitions/relationship_types.json"
- }, {
- "file" : "Definitions/artifact_types.json"
- }, {
- "file" : "Definitions/node_types.json"
- }, {
- "file" : "Definitions/policy_types.json"
- } ],
- "dsl_definitions" : {
- "ipam-1" : {
- "type" : "token-auth",
- "url" : "http://netbox-nginx:8080",
- "token" : "Token 0123456789abcdef0123456789abcdef01234567"
- },
- "config-deploy-properties" : {
- "resolution-key" : {
- "get_input" : "resolution-key"
+ "tosca_definitions_version": "controller_blueprint_1_0_0",
+ "metadata": {
+ "template_author": "Abdelmuhaimen Seaudi",
+ "author-email": "abdelmuhaimen.seaudi@orange.com",
+ "user-groups": "ADMIN, OPERATION",
+ "template_name": "vLB_CDS",
+ "template_version": "1.0.0",
+ "template_tags": "vLB, CDS, RESTONF, IMPERATIVE"
+ },
+ "imports": [
+ {
+ "file": "Definitions/data_types.json"
+ },
+ {
+ "file": "Definitions/relationship_types.json"
+ },
+ {
+ "file": "Definitions/artifact_types.json"
+ },
+ {
+ "file": "Definitions/node_types.json"
+ },
+ {
+ "file": "Definitions/policy_types.json"
}
- },
- "dynamic-db-source" : {
- "type" : "maria-db",
- "url" : "jdbc:mysql://mariadb-galera:3306/sdnctl",
- "username" : "root",
- "password" : "secretpassword"
- }
- },
- "topology_template" : {
- "workflows" : {
- "resource-assignment" : {
- "steps" : {
- "resource-assignment" : {
- "description" : "Resource Assign Workflow",
- "target" : "resource-assignment"
- }
- },
- "inputs" : {
- "template-prefix" : {
- "required" : true,
- "type" : "list",
- "entry_schema" : {
- "type" : "string"
- }
- },
- "resource-assignment-properties" : {
- "description" : "Dynamic PropertyDefinition for workflow(resource-assignment).",
- "required" : true,
- "type" : "dt-resource-assignment-properties"
- }
- },
- "outputs" : {
- "meshed-template" : {
- "type" : "json",
- "value" : {
- "get_attribute" : [ "resource-assignment", "assignment-params" ]
- }
- }
- }
+ ],
+ "dsl_definitions": {
+ "ipam-1": {
+ "type": "token-auth",
+ "url": "http://netbox-nginx:8080",
+ "token": "Token 0123456789abcdef0123456789abcdef01234567"
},
- "config-assign" : {
- "steps" : {
- "config-assign" : {
- "description" : "Config Assign Workflow",
- "target" : "config-assign",
- "activities" : [ {
- "call_operation" : ""
- } ]
- }
- },
- "inputs" : {
- "resolution-key" : {
- "required" : true,
- "type" : "string"
- },
- "config-assign-properties" : {
- "description" : "Dynamic PropertyDefinition for workflow(config-assign).",
- "required" : true,
- "type" : "dt-config-assign-properties"
- }
- },
- "outputs" : {
- "dry-run" : {
- "type" : "json",
- "value" : {
- "get_attribuxte" : [ "config-assign", "assignment-params" ]
- }
- }
- }
+ "naming-resolution": {
+ "type": "basic-auth",
+ "url": "http://neng-serv:8080/web/service",
+ "username": "ccsdkapps",
+ "password": "ccsdkapps"
+ },
+ "config-deploy-properties": {
+ "resolution-key": {
+ "get_input": "resolution-key"
+ }
+ },
+ "HealthCheck-properties": {
+ "resolution-key": {
+ "get_input": "resolution-key"
+ }
},
- "config-deploy" : {
- "steps" : {
- "config-deploy" : {
- "description" : "Resource Assign and Python Netconf Activation Workflow",
- "target" : "config-deploy-process",
- "activities" : [ {
- "call_operation" : ""
- } ]
- }
- },
- "inputs" : {
- "resolution-key" : {
- "required" : false,
- "type" : "string"
- },
- "service-instance-id" : {
- "required" : false,
- "type" : "string"
- },
- "config-deploy-properties" : {
- "description" : "Dynamic PropertyDefinition for workflow(config-deploy).",
- "required" : true,
- "type" : "dt-config-deploy-properties"
- }
- }
+ "ScaleOutReconfiguration-properties": {
+ "resolution-key": {
+ "get_input": "resolution-key"
+ }
}
- },
- "node_templates" : {
- "resource-assignment" : {
- "type" : "component-resource-resolution",
- "interfaces" : {
- "ResourceResolutionComponent" : {
- "operations" : {
- "process" : {
- "inputs" : {
- "artifact-prefix-names" : {
- "get_input" : "template-prefix"
+ },
+ "topology_template": {
+ "workflows": {
+ "resource-assignment": {
+ "steps": {
+ "resource-assignment": {
+ "description": "Resource Assign Workflow",
+ "target": "resource-assignment"
+ }
+ },
+ "inputs": {
+ "template-prefix": {
+ "required": true,
+ "type": "list",
+ "entry_schema": {
+ "type": "string"
}
- }
- }
+ },
+ "resource-assignment-properties": {
+ "description": "Dynamic PropertyDefinition for workflow(resource-assignment).",
+ "required": true,
+ "type": "dt-resource-assignment-properties"
+ }
+ },
+ "outputs": {
+ "resolved-data": {
+ "type": "json",
+ "value": {
+ "get_attribute": [
+ "resource-assignment",
+ "assignment-params"
+ ]
+ }
+ }
}
- }
- },
- "artifacts" : {
- "base_template-template" : {
- "type" : "artifact-template-velocity",
- "file" : "Templates/base_template-template.vtl"
- },
- "base_template-mapping" : {
- "type" : "artifact-mapping-resource",
- "file" : "Templates/base_template-mapping.json"
- },
- "vpkg-template" : {
- "type" : "artifact-template-velocity",
- "file" : "Templates/vpkg-template.vtl"
- },
- "vpkg-mapping" : {
- "type" : "artifact-mapping-resource",
- "file" : "Templates/vpkg-mapping.json"
- },
- "vdns-template" : {
- "type" : "artifact-template-velocity",
- "file" : "Templates/vdns-template.vtl"
- },
- "vdns-mapping" : {
- "type" : "artifact-mapping-resource",
- "file" : "Templates/vdns-mapping.json"
- },
- "vnf-template" : {
- "type" : "artifact-template-velocity",
- "file" : "Templates/vnf-template.vtl"
- },
- "vnf-mapping" : {
- "type" : "artifact-mapping-resource",
- "file" : "Templates/vnf-mapping.json"
- },
- "vlb-template" : {
- "type" : "artifact-template-velocity",
- "file" : "Templates/vlb-template.vtl"
- },
- "vlb-mapping" : {
- "type" : "artifact-mapping-resource",
- "file" : "Templates/vlb-mapping.json"
- }
- }
- },
- "config-assign" : {
- "type" : "component-resource-resolution",
- "interfaces" : {
- "ResourceResolutionComponent" : {
- "operations" : {
- "process" : {
- "inputs" : {
- "resolution-key" : {
- "get_input" : "resolution-key"
- },
- "store-result" : true,
- "artifact-prefix-names" : [ "baseconfig", "incremental-config" ]
- }
- }
+ },
+ "config-assign": {
+ "steps": {
+ "config-assign": {
+ "description": "Config Assign Workflow",
+ "target": "config-assign",
+ "activities": [
+ {
+ "call_operation": ""
+ }
+ ]
+ }
+ },
+ "inputs": {
+ "resolution-key": {
+ "required": true,
+ "type": "string"
+ },
+ "config-assign-properties": {
+ "description": "Dynamic PropertyDefinition for workflow(config-assign).",
+ "required": true,
+ "type": "dt-config-assign-properties"
+ }
+ },
+ "outputs": {
+ "dry-run": {
+ "type": "json",
+ "value": {
+ "get_attribuxte": [
+ "config-assign",
+ "assignment-params"
+ ]
+ }
+ }
}
- }
- },
- "artifacts" : {
- "baseconfig-template" : {
- "type" : "artifact-template-velocity",
- "file" : "Templates/baseconfig-template.vtl"
- },
- "baseconfig-mapping" : {
- "type" : "artifact-mapping-resource",
- "file" : "Templates/baseconfig-mapping.json"
- },
- "incremental-config-template" : {
- "type" : "artifact-template-velocity",
- "file" : "Templates/incremental-config-template.vtl"
- },
- "incremental-config-mapping" : {
- "type" : "artifact-mapping-resource",
- "file" : "Templates/incremental-config-mapping.json"
- }
- }
- },
- "netconf-device" : {
- "type" : "vnf-netconf-device",
- "capabilities" : {
- "netconf" : {
- "properties" : {
- "login-key" : "admin",
- "login-account" : "admin",
- "target-ip-address" : {
- "get_attribute" : [ "nf-account-collection", "", "assignment-params", "nf-params" ]
- },
- "port-number" : 2831,
- "connection-time-out" : 5
+ },
+ "config-deploy": {
+ "steps": {
+ "imperative-workflow-step-1": {
+ "description": "resolve ip for vlb",
+ "target": "nf-account-collection",
+ "activities": [
+ {
+ "call_operation": "ResourceResolutionComponent.process"
+ }
+ ],
+ "on_success": [
+ "imperative-workflow-step-2"
+ ]
+ },
+ "imperative-workflow-step-2": {
+ "description": "execute restconf",
+ "target": "execute",
+ "activities": [
+ {
+ "call_operation": "ComponentScriptExecutor.process"
+ }
+ ]
+ }
+ },
+ "inputs": {
+ "resolution-key": {
+ "required": false,
+ "type": "string"
+ },
+ "service-instance-id": {
+ "required": false,
+ "type": "string"
+ },
+ "config-deploy-properties": {
+ "description": "Dynamic PropertyDefinition for workflow(config-deploy).",
+ "required": true,
+ "type": "dt-config-deploy-properties"
+ }
}
- }
- }
- },
- "config-deploy-process" : {
- "type" : "dg-generic",
- "properties" : {
- "content" : {
- "get_artifact" : [ "SELF", "dg-config-deploy-process" ]
- },
- "dependency-node-templates" : [ "nf-account-collection", "execute" ]
- },
- "artifacts" : {
- "dg-config-deploy-process" : {
- "type" : "artifact-directed-graph",
- "file" : "Plans/CONFIG_ConfigDeploy.xml"
- }
- }
- },
- "nf-account-collection" : {
- "type" : "component-resource-resolution",
- "interfaces" : {
- "ResourceResolutionComponent" : {
- "operations" : {
- "process" : {
- "inputs" : {
- "artifact-prefix-names" : [ "nf-params" ]
- }
- }
+ },
+ "HealthCheck": {
+ "steps": {
+ "imperative-workflow-step-1": {
+ "description": "resolve ip for vlb",
+ "target": "nf-account-collection",
+ "activities": [
+ {
+ "call_operation": "ResourceResolutionComponent.process"
+ }
+ ],
+ "on_success": [
+ "imperative-workflow-step-2"
+ ]
+ },
+ "imperative-workflow-step-2": {
+ "description": "execute restconf",
+ "target": "executeHealthCheck",
+ "activities": [
+ {
+ "call_operation": "ComponentScriptExecutor.process"
+ }
+ ]
+ }
+ },
+ "inputs": {
+ "resolution-key": {
+ "required": false,
+ "type": "string"
+ },
+ "service-instance-id": {
+ "required": false,
+ "type": "string"
+ },
+ "HealthCheck-properties": {
+ "description": "Dynamic PropertyDefinition for workflow(config-deploy).",
+ "required": true,
+ "type": "dt-HealthCheck-properties"
+ }
+ },
+ "outputs": {
+ "response-data": {
+ "description": "Execution Response Data.",
+ "required": false,
+ "type": "json",
+ "value": {
+ "get_attribute": [
+ "executeHealthCheck",
+ "response-data"
+ ]
+ }
+ },
+ "status": {
+ "description": "Status of the Component Execution ( success or failure )",
+ "required": true,
+ "type": "string"
+ }
+ }
+ },
+ "ScaleOutReconfiguration": {
+ "steps": {
+
+ "imperative-workflow-step-0": {
+ "description": "Config Assign Workflow",
+ "target": "ScaleOutReconfiguration",
+ "activities": [
+ {
+ "call_operation": "ResourceResolutionComponent.process"
+ }
+ ],
+ "on_success": [
+ "imperative-workflow-step-1"
+ ]
+ },
+ "imperative-workflow-step-1": {
+ "description": "resolve ip for vlb",
+ "target": "nf-account-collection",
+ "activities": [
+ {
+ "call_operation": "ResourceResolutionComponent.process"
+ }
+ ],
+ "on_success": [
+ "imperative-workflow-step-2"
+ ]
+ },
+ "imperative-workflow-step-2": {
+ "description": "execute restconf",
+ "target": "execute",
+ "activities": [
+ {
+ "call_operation": "ComponentScriptExecutor.process"
+ }
+ ]
+ }
+ },
+ "inputs": {
+ "resolution-key": {
+ "required": false,
+ "type": "string"
+ },
+ "service-instance-id": {
+ "required": false,
+ "type": "string"
+ },
+ "ScaleOutReconfiguration-properties": {
+ "description": "Dynamic PropertyDefinition for workflow(ScaleOutReconfiguration).",
+ "required": true,
+ "type": "dt-ScaleOutReconfiguration-properties"
+ }
}
- }
- },
- "artifacts" : {
- "nf-params-template" : {
- "type" : "artifact-template-velocity",
- "file" : "Templates/nf-params-template.vtl"
- },
- "nf-params-mapping" : {
- "type" : "artifact-mapping-resource",
- "file" : "Templates/nf-params-mapping.json"
- }
- }
+ },
+ "vf-config-assign": {
+ "steps": {
+ "config-assign": {
+ "description": "Config Assign Workflow",
+ "target": "config-assign",
+ "activities": [
+ {
+ "call_operation": ""
+ }
+ ]
+ }
+ },
+ "inputs": {
+ "resolution-key": {
+ "required": true,
+ "type": "string"
+ },
+ "config-assign-properties": {
+ "description": "Dynamic PropertyDefinition for workflow(config-assign).",
+ "required": true,
+ "type": "dt-config-assign-properties"
+ }
+ },
+ "outputs": {
+ "dry-run": {
+ "type": "json",
+ "value": {
+ "get_attribuxte": [
+ "config-assign",
+ "assignment-params"
+ ]
+ }
+ }
+ }
+ },
+ "vf-config-deploy": {
+ "steps": {
+ "imperative-workflow-step-1": {
+ "description": "resolve ip for vlb",
+ "target": "nf-account-collection",
+ "activities": [
+ {
+ "call_operation": "ResourceResolutionComponent.process"
+ }
+ ],
+ "on_success": [
+ "imperative-workflow-step-2"
+ ]
+ },
+ "imperative-workflow-step-2": {
+ "description": "execute restconf",
+ "target": "execute",
+ "activities": [
+ {
+ "call_operation": "ComponentScriptExecutor.process"
+ }
+ ]
+ }
+ },
+ "inputs": {
+ "resolution-key": {
+ "required": false,
+ "type": "string"
+ },
+ "service-instance-id": {
+ "required": false,
+ "type": "string"
+ },
+ "config-deploy-properties": {
+ "description": "Dynamic PropertyDefinition for workflow(config-deploy).",
+ "required": true,
+ "type": "dt-config-deploy-properties"
+ }
+ }
+ }
},
- "execute" : {
- "type" : "component-netconf-executor",
- "requirements" : {
- "netconf-connection" : {
- "capability" : "netconf",
- "node" : "netconf-device",
- "relationship" : "tosca.relationships.ConnectsTo"
- }
- },
- "interfaces" : {
- "ComponentNetconfExecutor" : {
- "operations" : {
- "process" : {
- "inputs" : {
- "script-type" : "jython",
- "script-class-reference" : "Scripts/python/ConfigDeploy.py",
- "instance-dependencies" : [ ],
- "dynamic-properties" : "*config-deploy-properties"
- }
- }
+ "node_templates": {
+ "resource-assignment": {
+ "type": "component-resource-resolution",
+ "interfaces": {
+ "ResourceResolutionComponent": {
+ "operations": {
+ "process": {
+ "inputs": {
+ "resolution-summary": true,
+ "artifact-prefix-names": {
+ "get_input": "template-prefix"
+ }
+ }
+ }
+ }
+ }
+ },
+ "artifacts": {
+ "base_template-mapping": {
+ "type": "artifact-mapping-resource",
+ "file": "Templates/base_template-mapping.json"
+ },
+ "vpkg-mapping": {
+ "type": "artifact-mapping-resource",
+ "file": "Templates/vpkg-mapping.json"
+ },
+ "vdns-mapping": {
+ "type": "artifact-mapping-resource",
+ "file": "Templates/vdns-mapping.json"
+ },
+ "vnf-mapping": {
+ "type": "artifact-mapping-resource",
+ "file": "Templates/vnf-mapping.json"
+ },
+ "vlb-mapping": {
+ "type": "artifact-mapping-resource",
+ "file": "Templates/vlb-mapping.json"
+ }
+ }
+ },
+ "config-assign": {
+ "type": "component-resource-resolution",
+ "interfaces": {
+ "ResourceResolutionComponent": {
+ "operations": {
+ "process": {
+ "inputs": {
+ "resolution-key": {
+ "get_input": "resolution-key"
+ },
+ "store-result": true,
+ "artifact-prefix-names": [
+ "baseconfig"
+ ]
+ }
+ }
+ }
+ }
+ },
+ "artifacts": {
+ "baseconfig-template": {
+ "type": "artifact-template-velocity",
+ "file": "Templates/baseconfig-template.vtl"
+ },
+ "baseconfig-mapping": {
+ "type": "artifact-mapping-resource",
+ "file": "Templates/baseconfig-mapping.json"
+ }
+ }
+ },
+ "ScaleOutReconfiguration": {
+ "type": "component-resource-resolution",
+ "interfaces": {
+ "ResourceResolutionComponent": {
+ "operations": {
+ "process": {
+ "inputs": {
+ "resolution-key": {
+ "get_input": "resolution-key"
+ },
+ "store-result": true,
+ "artifact-prefix-names": [
+ "baseconfig"
+ ]
+ }
+ }
+ }
+ }
+ },
+ "artifacts": {
+ "baseconfig-template": {
+ "type": "artifact-template-velocity",
+ "file": "Templates/baseconfig-template.vtl"
+ },
+ "baseconfig-mapping": {
+ "type": "artifact-mapping-resource",
+ "file": "Templates/baseconfig-mapping.json"
+ }
+ }
+ },
+ "netconf-device": {
+ "type": "vnf-netconf-device",
+ "capabilities": {
+ "netconf": {
+ "properties": {
+ "login-key": "admin",
+ "login-account": "admin",
+ "target-ip-address": {
+ "get_attribute": [
+ "nf-account-collection",
+ "",
+ "assignment-params",
+ "nf-params"
+ ]
+ },
+ "port-number": 2831,
+ "connection-time-out": 5
+ }
+ },
+ "restconf": {
+ "properties": {
+ "login-key": "admin",
+ "login-account": "admin",
+ "target-ip-address": {
+ "get_attribute": [
+ "nf-account-collection",
+ "",
+ "assignment-params",
+ "nf-params"
+ ]
+ },
+ "port-number": 8183,
+ "connection-time-out": 5
+ }
+ }
+ }
+ },
+ "nf-account-collection": {
+ "type": "component-resource-resolution",
+ "interfaces": {
+ "ResourceResolutionComponent": {
+ "operations": {
+ "process": {
+ "inputs": {
+ "artifact-prefix-names": [
+ "nf-params"
+ ]
+ }
+ }
+ }
+ }
+ },
+ "artifacts": {
+ "nf-params-template": {
+ "type": "artifact-template-velocity",
+ "file": "Templates/nf-params-template.vtl"
+ },
+ "nf-params-mapping": {
+ "type": "artifact-mapping-resource",
+ "file": "Templates/nf-params-mapping.json"
+ }
+ }
+ },
+ "execute": {
+ "type": "component-script-executor",
+ "requirements": {
+ "restconf-connection": {
+ "capability": "restconf",
+ "node": "netconf-device",
+ "relationship": "tosca.relationships.ConnectsTo"
+ }
+ },
+ "interfaces": {
+ "ComponentScriptExecutor": {
+ "operations": {
+ "process": {
+ "inputs": {
+ "script-type": "kotlin",
+ "script-class-reference": "org.onap.ccsdk.cds.blueprintsprocessor.services.execution.scripts.ConfigDeploy",
+ "instance-dependencies": [],
+ "dynamic-properties": "*config-deploy-properties"
+ }
+ }
+ }
+ }
+ }
+ },
+ "executeHealthCheck": {
+ "type": "component-script-executor",
+ "requirements": {
+ "restconf-connection": {
+ "capability": "restconf",
+ "node": "netconf-device",
+ "relationship": "tosca.relationships.ConnectsTo"
+ }
+ },
+ "interfaces": {
+ "ComponentScriptExecutor": {
+ "operations": {
+ "process": {
+ "inputs": {
+ "script-type": "kotlin",
+ "script-class-reference": "org.onap.ccsdk.cds.blueprintsprocessor.services.execution.scripts.HealthCheck",
+ "instance-dependencies": [],
+ "dynamic-properties": "*HealthCheck-properties"
+ }
+ }
+ }
+ }
}
- }
- },
- "artifacts" : {
- "baseconfig-template" : {
- "type" : "artifact-template-velocity",
- "file" : "Templates/baseconfig-template.vtl"
- },
- "baseconfig-mapping" : {
- "type" : "artifact-mapping-resource",
- "file" : "Templates/baseconfig-mapping.json"
- },
- "incremental-config-template" : {
- "type" : "artifact-template-velocity",
- "file" : "Templates/incremental-config-template.vtl"
- },
- "incremental-config-mapping" : {
- "type" : "artifact-mapping-resource",
- "file" : "Templates/incremental-config-mapping.json"
- }
- }
+ }
}
- }
- }
+ }
} \ No newline at end of file
diff --git a/components/model-catalog/blueprint-model/service-blueprint/vLB/Scripts/kotlin/ConfigDeploy.kt b/components/model-catalog/blueprint-model/service-blueprint/vLB/Scripts/kotlin/ConfigDeploy.kt
new file mode 100644
index 000000000..fe660f590
--- /dev/null
+++ b/components/model-catalog/blueprint-model/service-blueprint/vLB/Scripts/kotlin/ConfigDeploy.kt
@@ -0,0 +1,126 @@
+/*
+ * Copyright © 2019 IBM, Bell Canada, Orange
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onap.ccsdk.cds.blueprintsprocessor.services.execution.scripts
+
+import com.fasterxml.jackson.databind.node.ObjectNode
+import org.onap.ccsdk.cds.blueprintsprocessor.core.api.data.ExecutionServiceInput
+import org.onap.ccsdk.cds.blueprintsprocessor.functions.resource.resolution.storedContentFromResolvedArtifactNB
+import org.onap.ccsdk.cds.blueprintsprocessor.rest.BasicAuthRestClientProperties
+import org.onap.ccsdk.cds.blueprintsprocessor.rest.RestClientProperties
+import org.onap.ccsdk.cds.blueprintsprocessor.rest.service.BasicAuthRestClientService
+import org.onap.ccsdk.cds.blueprintsprocessor.rest.service.BlueprintWebClientService
+import org.onap.ccsdk.cds.blueprintsprocessor.services.execution.AbstractScriptComponentFunction
+import org.onap.ccsdk.cds.controllerblueprints.core.utils.JacksonUtils
+import org.slf4j.LoggerFactory
+import org.springframework.http.HttpMethod
+import org.springframework.web.client.RestTemplate
+import com.fasterxml.jackson.annotation.JsonIgnore
+import com.fasterxml.jackson.annotation.JsonProperty
+import org.apache.http.client.ClientProtocolException
+import java.io.IOException
+import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintProcessorException
+
+open class ConfigDeploy : AbstractScriptComponentFunction() {
+
+ private val log = LoggerFactory.getLogger(ConfigDeploy::class.java)!!
+
+ override fun getName(): String {
+ return "Check"
+ }
+
+ override suspend fun processNB(executionRequest: ExecutionServiceInput) {
+ log.info("executing script")
+ val resolution_key = getDynamicProperties("resolution-key").asText()
+ log.info("resolution_key: $resolution_key")
+
+ val payload = storedContentFromResolvedArtifactNB(resolution_key, "baseconfig")
+ log.info("configuration: $payload")
+
+ val payloadObject = JacksonUtils.jsonNode(payload) as ObjectNode
+ val vdns_ip: String = payloadObject.get("vdns-instance")[0].get("ip-addr").asText()
+
+
+ val blueprintContext = bluePrintRuntimeService.bluePrintContext()
+ val requirement = blueprintContext.nodeTemplateRequirement(nodeTemplateName, "restconf-connection")
+ val capabilityProperties = bluePrintRuntimeService.resolveNodeTemplateCapabilityProperties(requirement.node!!, requirement.capability!!)
+ val netconfDeviceInfo = JacksonUtils.getInstanceFromMap(capabilityProperties, NetconfDeviceInfo::class.java)
+ log.info("Waiting for 2 minutes until vLB intializes ...")
+ //Thread.sleep(120000)
+ val uri = "http://${netconfDeviceInfo.ipAddress}:8183/restconf/config/vlb-business-vnf-onap-plugin:vlb-business-vnf-onap-plugin/vdns-instances/vdns-instance/$vdns_ip"
+ val restTemplate = RestTemplate()
+ val mapOfHeaders = hashMapOf<String, String>()
+ mapOfHeaders.put("Accept", "application/json")
+ mapOfHeaders.put("Content-Type", "application/json")
+ mapOfHeaders.put("cache-control", " no-cache")
+ mapOfHeaders.put("Accept", "application/json")
+ val basicAuthRestClientProperties: BasicAuthRestClientProperties = BasicAuthRestClientProperties()
+ basicAuthRestClientProperties.username = "admin"
+ basicAuthRestClientProperties.password = "admin"
+ basicAuthRestClientProperties.url = uri
+ basicAuthRestClientProperties.additionalHeaders =mapOfHeaders
+ val basicAuthRestClientService: BasicAuthRestClientService= BasicAuthRestClientService(basicAuthRestClientProperties)
+ try {
+ val result: BlueprintWebClientService.WebClientResponse<String> = basicAuthRestClientService.exchangeResource(HttpMethod.PUT.name, "", payload)
+ print(result)
+ basicAuthRestClientProperties.url = "http://${netconfDeviceInfo.ipAddress}:8183/restconf/config/vlb-business-vnf-onap-plugin:vlb-business-vnf-onap-plugin/vdns-instances"
+ val resultOfGet: BlueprintWebClientService.WebClientResponse<String> = basicAuthRestClientService.exchangeResource(HttpMethod.GET.name, "", "")
+ print(resultOfGet)
+ }
+ catch (e: Exception) {
+ log.info("Caught exception trying to connect to vLB!!")
+ throw BluePrintProcessorException("${e.message}")
+ }
+ }
+
+ override suspend fun recoverNB(runtimeException: RuntimeException, executionRequest: ExecutionServiceInput) {
+ log.info("Executing Recovery")
+ bluePrintRuntimeService.getBluePrintError().addError("${runtimeException.message}")
+ }
+}
+
+class NetconfDeviceInfo {
+ @get:JsonProperty("login-account")
+ var username: String? = null
+ @get:JsonProperty("login-key")
+ var password: String? = null
+ @get:JsonProperty("target-ip-address")
+ var ipAddress: String? = null
+ @get:JsonProperty("port-number")
+ var port: Int = 0
+ @get:JsonProperty("connection-time-out")
+ var connectTimeout: Long = 5
+ @get:JsonIgnore
+ var source: String? = null
+ @get:JsonIgnore
+ var replyTimeout: Int = 5
+ @get:JsonIgnore
+ var idleTimeout: Int = 99999
+
+ override fun toString(): String {
+ return "$ipAddress:$port"
+ }
+ //TODO: should this be a data class instead? Is anything using the JSON serdes?
+ override fun equals(other: Any?): Boolean {
+ if (this === other) return true
+ if (javaClass != other?.javaClass) return false
+ return true
+ }
+
+ override fun hashCode(): Int {
+ return javaClass.hashCode()
+ }
+} \ No newline at end of file
diff --git a/components/model-catalog/blueprint-model/service-blueprint/vLB/Scripts/kotlin/HealthCheck.kt b/components/model-catalog/blueprint-model/service-blueprint/vLB/Scripts/kotlin/HealthCheck.kt
new file mode 100644
index 000000000..b09a432f7
--- /dev/null
+++ b/components/model-catalog/blueprint-model/service-blueprint/vLB/Scripts/kotlin/HealthCheck.kt
@@ -0,0 +1,136 @@
+package org.onap.ccsdk.cds.blueprintsprocessor.services.execution.scripts
+
+/*
+ * Copyright © 2019 IBM, Bell Canada, Orange
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+import com.fasterxml.jackson.databind.node.ObjectNode
+import org.onap.ccsdk.cds.blueprintsprocessor.core.api.data.ExecutionServiceInput
+import org.onap.ccsdk.cds.blueprintsprocessor.functions.resource.resolution.storedContentFromResolvedArtifactNB
+import org.onap.ccsdk.cds.blueprintsprocessor.rest.BasicAuthRestClientProperties
+import org.onap.ccsdk.cds.blueprintsprocessor.rest.RestClientProperties
+import org.onap.ccsdk.cds.blueprintsprocessor.rest.service.BasicAuthRestClientService
+import org.onap.ccsdk.cds.blueprintsprocessor.rest.service.BlueprintWebClientService
+import org.onap.ccsdk.cds.blueprintsprocessor.services.execution.AbstractScriptComponentFunction
+import org.onap.ccsdk.cds.controllerblueprints.core.utils.JacksonUtils
+import org.slf4j.LoggerFactory
+import org.springframework.http.HttpMethod
+import org.springframework.web.client.RestTemplate
+import com.fasterxml.jackson.annotation.JsonIgnore
+import com.fasterxml.jackson.annotation.JsonProperty
+import org.apache.http.client.ClientProtocolException
+import org.onap.ccsdk.cds.blueprintsprocessor.core.utils.PayloadUtils
+import org.onap.ccsdk.cds.blueprintsprocessor.services.execution.ComponentRemoteScriptExecutor
+import java.io.IOException
+import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintProcessorException
+
+open class HealthCheck : AbstractScriptComponentFunction() {
+
+ private val log = LoggerFactory.getLogger(HealthCheck::class.java)!!
+
+ override fun getName(): String {
+ return "HealthCheck"
+ }
+
+ override suspend fun processNB(executionRequest: ExecutionServiceInput) {
+ log.info("executing script")
+ val resolution_key = getDynamicProperties("resolution-key").asText()
+ log.info("resolution_key: $resolution_key")
+
+ //val payload = storedContentFromResolvedArtifactNB(resolution_key, "baseconfig")
+ //log.info("configuration: $payload")
+
+ //val payloadObject = JacksonUtils.jsonNode(payload) as ObjectNode
+ //val vdns_ip: String = payloadObject.get("vdns-instance")[0].get("ip-addr").asText()
+
+
+ val blueprintContext = bluePrintRuntimeService.bluePrintContext()
+ val requirement = blueprintContext.nodeTemplateRequirement(nodeTemplateName, "restconf-connection")
+ val capabilityProperties = bluePrintRuntimeService.resolveNodeTemplateCapabilityProperties(requirement.node!!, requirement.capability!!)
+ val netconfDeviceInfo = JacksonUtils.getInstanceFromMap(capabilityProperties, NetconfDeviceInfo2::class.java)
+ //log.info("Waiting for 2 minutes until vLB intializes ...")
+ //Thread.sleep(120000)
+ val uri = "http://${netconfDeviceInfo.ipAddress}:8183/restconf/operational/health-vnf-onap-plugin:health-vnf-onap-plugin-state/health-check"
+ val restTemplate = RestTemplate()
+ val mapOfHeaders = hashMapOf<String, String>()
+ mapOfHeaders.put("Accept", "application/json")
+ mapOfHeaders.put("Content-Type", "application/json")
+ //mapOfHeaders.put("cache-control", " no-cache")
+ //mapOfHeaders.put("Accept", "application/json")
+ val basicAuthRestClientProperties: BasicAuthRestClientProperties = BasicAuthRestClientProperties()
+ basicAuthRestClientProperties.username = "admin"
+ basicAuthRestClientProperties.password = "admin"
+ basicAuthRestClientProperties.url = uri
+ basicAuthRestClientProperties.additionalHeaders =mapOfHeaders
+ val basicAuthRestClientService: BasicAuthRestClientService= BasicAuthRestClientService(basicAuthRestClientProperties)
+ try {
+ val result: BlueprintWebClientService.WebClientResponse<String> = basicAuthRestClientService.exchangeResource(HttpMethod.GET.name, "", "")
+ log.info(result.body)
+ val resultJson = JacksonUtils.jsonNode(result.body) as ObjectNode
+ val health: String = resultJson.get("health-check").get("state").asText()
+ super.setAttribute("response-data", resultJson)
+ if (health != "healthy") {
+ throw Exception("VNF is not healty!!")
+ }
+
+ //basicAuthRestClientProperties.url = //"http://${netconfDeviceInfo.ipAddress}:8183/restconf/config/vlb-business-vnf-onap-plugin:vlb-business-vnf-onap-plugin/vdns-instances"
+ //val resultOfGet: BlueprintWebClientService.WebClientResponse<String> = basicAuthRestClientService.exchangeResource(HttpMethod.GET.name, "", "")
+ //print(resultOfGet)
+ }
+ catch (e: Exception) {
+ log.info("Caught exception trying to connect to vLB!!")
+ throw BluePrintProcessorException("${e.message}")
+ }
+ }
+
+ override suspend fun recoverNB(runtimeException: RuntimeException, executionRequest: ExecutionServiceInput) {
+ log.info("Executing Recovery")
+ bluePrintRuntimeService.getBluePrintError().addError("${runtimeException.message}")
+ }
+}
+
+class NetconfDeviceInfo2 {
+ @get:JsonProperty("login-account")
+ var username: String? = null
+ @get:JsonProperty("login-key")
+ var password: String? = null
+ @get:JsonProperty("target-ip-address")
+ var ipAddress: String? = null
+ @get:JsonProperty("port-number")
+ var port: Int = 0
+ @get:JsonProperty("connection-time-out")
+ var connectTimeout: Long = 5
+ @get:JsonIgnore
+ var source: String? = null
+ @get:JsonIgnore
+ var replyTimeout: Int = 5
+ @get:JsonIgnore
+ var idleTimeout: Int = 99999
+
+ override fun toString(): String {
+ return "$ipAddress:$port"
+ }
+ //TODO: should this be a data class instead? Is anything using the JSON serdes?
+ override fun equals(other: Any?): Boolean {
+ if (this === other) return true
+ if (javaClass != other?.javaClass) return false
+ return true
+ }
+
+ override fun hashCode(): Int {
+ return javaClass.hashCode()
+ }
+} \ No newline at end of file
diff --git a/components/model-catalog/blueprint-model/service-blueprint/vLB/Scripts/kotlin/README.md b/components/model-catalog/blueprint-model/service-blueprint/vLB/Scripts/kotlin/README.md
new file mode 100644
index 000000000..29b7978e0
--- /dev/null
+++ b/components/model-catalog/blueprint-model/service-blueprint/vLB/Scripts/kotlin/README.md
@@ -0,0 +1 @@
+kotlin Folder \ No newline at end of file
diff --git a/components/model-catalog/blueprint-model/service-blueprint/vLB/Scripts/python/ConfigDeploy.py b/components/model-catalog/blueprint-model/service-blueprint/vLB/Scripts/python/ConfigDeploy.py
deleted file mode 100644
index 388c63ffb..000000000
--- a/components/model-catalog/blueprint-model/service-blueprint/vLB/Scripts/python/ConfigDeploy.py
+++ /dev/null
@@ -1,54 +0,0 @@
-# Copyright (c) 2019 Bell Canada.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-import netconf_constant
-from common import ResolutionHelper
-from time import sleep
-from netconfclient import NetconfClient
-from org.onap.ccsdk.cds.blueprintsprocessor.functions.netconf.executor import \
- NetconfComponentFunction
-
-
-class ConfigDeploy(NetconfComponentFunction):
-
- def process(self, execution_request):
- log = globals()[netconf_constant.SERVICE_LOG]
- print(globals())
-# print("Waiting 4 minutes until NETCONF server is UP on vLB ...")
-# sleep (240)
- nc = NetconfClient(log, self, "netconf-connection")
- rr = ResolutionHelper(self)
-
- # Get meshed template from DB
- resolution_key = self.getDynamicProperties("resolution-key").asText()
- payloadHostname = rr.retrieve_resolved_template_from_database(resolution_key, "baseconfig")
- payloadInterface = rr.retrieve_resolved_template_from_database(resolution_key, "incremental-config")
-
- nc.connect()
- nc.lock()
- #if not response.isSuccess():
- # og.error(response.errorMessage)
- nc.discard_change()
- nc.edit_config(message_content=payloadInterface, edit_default_peration="merge")
- nc.edit_config(message_content=payloadHostname, edit_default_peration="merge")
- #nc.validate()
- nc.commit()
- nc.get_config() #nc.commit(confirmed = True, confirm_timeout=15)
- nc.unlock()
- nc.disconnect()
-
- def recover(self, runtime_exception, execution_request):
- log.error("Exception in the script {}", runtime_exception)
- print self.addError(runtime_exception.cause.message)
- return None \ No newline at end of file
diff --git a/components/model-catalog/blueprint-model/service-blueprint/vLB/TOSCA-Metadata/TOSCA.meta b/components/model-catalog/blueprint-model/service-blueprint/vLB/TOSCA-Metadata/TOSCA.meta
index 37c59ee56..c78b66ba5 100644
--- a/components/model-catalog/blueprint-model/service-blueprint/vLB/TOSCA-Metadata/TOSCA.meta
+++ b/components/model-catalog/blueprint-model/service-blueprint/vLB/TOSCA-Metadata/TOSCA.meta
@@ -1,6 +1,8 @@
TOSCA-Meta-File-Version: 1.0.0
CSAR-Version: 1.0
-Created-By: PLATANIA, MARCO <platania@research.att.com>
+Created-By: Seaudi, Abdelmuhaimen <abdelmuhaimen.seaudi@orange.com>
Entry-Definitions: Definitions/vLB_CDS.json
-Template-Tags: vDNS-CDS-test1
-Content-Type: application/vnd.oasis.bpmn \ No newline at end of file
+Template-Tags: vLB_CDS
+Template-Name: vLB_CDS
+Template-Version: 1.0.0
+Template-Type: DEFAULT
diff --git a/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/base_template-mapping.json b/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/base_template-mapping.json
index 43b0f9dd0..62f043d39 100644
--- a/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/base_template-mapping.json
+++ b/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/base_template-mapping.json
@@ -1,409 +1,486 @@
-[
- {
- "name": "service-instance-id",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "service-instance-id",
- "dictionary-source": "input",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "vf-module-name",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- },
- "default": "${vf-module-name}"
- },
- "input-param": false,
- "dictionary-name": "vf-module-name",
- "dictionary-source": "default",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "vf-module-label",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "vf-module-label",
- "dictionary-source": "processor-db",
- "dependencies": [
- "vf-module-model-customization-uuid"
- ],
- "version": 0
- },
- {
- "name": "vf-naming-policy",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "vf-naming-policy",
- "dictionary-source": "sdnc",
- "dependencies": [
- "service-instance-id",
- "vnf-id"
- ],
- "version": 0
- },
- {
- "name": "vf-module-type",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "vf-module-type",
- "dictionary-source": "processor-db",
- "dependencies": [
- "vf-module-model-customization-uuid"
- ],
- "version": 0
- },
- {
- "name": "vf-module-model-customization-uuid",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "vf-module-model-customization-uuid",
- "dictionary-source": "input",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "vnf-id",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "vnf-id",
- "dictionary-source": "input",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "vf-module-id",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "vf-module-id",
- "dictionary-source": "input",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "vnf-model-customization-uuid",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "vnf-model-customization-uuid",
- "dictionary-source": "input",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "aic-cloud-region",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "aic-cloud-region",
- "dictionary-source": "input",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "vlb_private_net_cidr",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "vlb_private_net_cidr",
- "dictionary-source": "sdnc",
- "dependencies": [
- "service-instance-id",
- "vnf-id"
- ],
- "version": 0
- },
- {
- "name": "pktgen_private_net_cidr",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "pktgen_private_net_cidr",
- "dictionary-source": "sdnc",
- "dependencies": [
- "service-instance-id",
- "vnf-id"
- ],
- "version": 0
- },
- {
- "name": "vnf_name",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "vnf_name",
- "dictionary-source": "sdnc",
- "dependencies": [
- "service-instance-id",
- "vnf-id"
- ],
- "version": 0
- },
- {
- "name": "pub_key",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "pub_key",
- "dictionary-source": "sdnc",
- "dependencies": [
- "service-instance-id",
- "vnf-id"
- ],
- "version": 0
- },
- {
- "name": "int_pktgen_private_subnet_id",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- },
- "default": "${int_pktgen_private_subnet_id}"
- },
- "input-param": false,
- "dictionary-name": "int_pktgen_private_subnet_id",
- "dictionary-source": "default",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "int_private_subnet_id",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- },
- "default": "${int_private_subnet_id}"
- },
- "input-param": false,
- "dictionary-name": "int_private_subnet_id",
- "dictionary-source": "default",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "int_private_net_id",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- },
- "default": "${int_private_net_id}"
- },
- "input-param": false,
- "dictionary-name": "int_private_net_id",
- "dictionary-source": "default",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "int_pktgen_private_net_id",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- },
- "default": "${int_pktgen_private_net_id}"
- },
- "input-param": false,
- "dictionary-name": "int_pktgen_private_net_id",
- "dictionary-source": "default",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "key_name",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "key_name",
- "dictionary-source": "sdnc",
- "dependencies": [
- "service-instance-id",
- "vnf-id"
- ],
- "version": 0
- }
+[{
+ "name": "service-instance-id",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "service-instance-id",
+ "dictionary-source": "input",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "vf-module-assign",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ },
+ "metadata": {
+ "transform-template": "${vf-module-assign}_${vnf_name}_${service-instance-id}"
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vf-module-assign",
+ "dictionary-source": "aai-data",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id",
+ "vf-module-name"
+ ],
+ "version": 0
+ },
+ {
+ "name": "int_pktgen_private_net_id",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "int_pktgen_private_net_id",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id",
+ "vnf_name"
+ ],
+ "version": 0
+ },
+ {
+ "name": "int_pktgen_private_subnet_id",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "int_pktgen_private_subnet_id",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id",
+ "vnf_name"
+ ],
+ "version": 0
+ },
+ {
+ "name": "int_private_net_id",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "int_private_net_id",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id",
+ "vnf_name"
+ ],
+ "version": 0
+ },
+ {
+ "name": "int_private_subnet_id",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "int_private_subnet_id",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id",
+ "vnf_name"
+ ],
+ "version": 0
+ },
+ {
+ "name": "vf-module-name",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vf-module-name",
+ "dictionary-source": "rest",
+ "dependencies": ["vnf_name", "vf-module-label", "vf-module-type", "vf-naming-policy", "vf-module-id"],
+ "version": 0
+ },
+ {
+ "name": "vlb_private_net_id",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ },
+ "default": "private1"
+ },
+ "input-param": false,
+ "dictionary-name": "vlb_private_net_id",
+ "dictionary-source": "default",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "pktgen_private_net_id",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ },
+ "default": "private2"
+ },
+ "input-param": false,
+ "dictionary-name": "pktgen_private_net_id",
+ "dictionary-source": "default",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "vf-module-label",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vf-module-label",
+ "dictionary-source": "processor-db",
+ "dependencies": [
+ "vf-module-model-customization-uuid"
+ ],
+ "version": 0
+ },
+ {
+ "name": "vf-naming-policy",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vf-naming-policy",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "vf-module-type",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vf-module-type",
+ "dictionary-source": "processor-db",
+ "dependencies": [
+ "vf-module-model-customization-uuid"
+ ],
+ "version": 0
+ },
+ {
+ "name": "vf-module-model-customization-uuid",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vf-module-model-customization-uuid",
+ "dictionary-source": "input",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "vnf-id",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vnf-id",
+ "dictionary-source": "input",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "vf-module-id",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vf-module-id",
+ "dictionary-source": "input",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "vnf-model-customization-uuid",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vnf-model-customization-uuid",
+ "dictionary-source": "input",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "aic-cloud-region",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "aic-cloud-region",
+ "dictionary-source": "input",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "vlb_private_net_cidr",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vlb_private_net_cidr",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "pktgen_private_net_cidr",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "pktgen_private_net_cidr",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "vnf_name",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vnf_name",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "pub_key",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "pub_key",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "vlb_0_int_pktgen_private_port_0_mac",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vlb_0_int_pktgen_private_port_0_mac",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "vpg_0_int_pktgen_private_port_0_mac",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vpg_0_int_pktgen_private_port_0_mac",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "key_name",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "key_name",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ }
] \ No newline at end of file
diff --git a/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/base_template-template.vtl b/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/base_template-template.vtl
deleted file mode 100644
index 58512be2f..000000000
--- a/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/base_template-template.vtl
+++ /dev/null
@@ -1,144 +0,0 @@
-{
- "resource-accumulator-resolved-data": [
- {
- "param-name": "service-instance-id",
- "param-value": "${service-instance-id}"
- },
- {
- "param-name": "vnf_id",
- "param-value": "${vnf-id}"
- },
- {
- "param-name": "vnf_name",
- "param-value": "${vnf_name}"
- },
- {
- "param-name": "vnf_model_customization_uuid",
- "param-value": "${vnf-model-customization-uuid}"
- },
- {
- "param-name": "vf_module_id",
- "param-value": "${vf-module-id}"
- },
- {
- "param-name": "vf_module_type",
- "param-value": "${vf-module-type}"
- },
- {
- "param-name": "vlb_private_net_id",
- "param-value": "private1"
- },
- {
- "param-name": "pktgen_private_net_id",
- "param-value": "private2"
- },
- {
- "param-name": "vlb_private_net_cidr",
- "param-value": "${vlb_private_net_cidr}"
- },
- {
- "param-name": "vlb_0_int_pktgen_private_port_0_mac",
- "param-value": "fa:16:3e:00:00:10"
- },
- {
- "param-name": "vpg_0_int_pktgen_private_port_0_mac",
- "param-value": "fa:16:3e:00:00:20"
- },
- {
- "param-name": "pktgen_private_net_cidr",
- "param-value": "${pktgen_private_net_cidr}"
- },
- {
- "param-name": "int_pktgen_private_net_id",
- "param-value": "${vnf_name}_private2"
- },
- {
- "param-name": "int_pktgen_private_subnet_id",
- "param-value": "${vnf_name}_private2_subnet"
- },
- {
- "param-name": "int_private_net_id",
- "param-value": "${vnf_name}_private1"
- },
- {
- "param-name": "int_private_subnet_id",
- "param-value": "${vnf_name}_private1_subnet"
- },
- {
- "param-name": "key_name",
- "param-value": "${key_name}"
- },
- {
- "param-name": "pub_key",
- "param-value": "${pub_key}"
- }
- ],
- "capability-data": [
- {
- "capability-name": "generate-name",
- "key-mapping": [
- {
- "payload": [
- {
- "param-name": "resource-name",
- "param-value": "vf-module-name"
- },
- {
- "param-name": "resource-value",
- "param-value": "${vf-module-name}"
- },
- {
- "param-name": "external-key",
- "param-value": "${vf-module-id}_vf-module-name"
- },
- {
- "param-name": "policy-instance-name",
- "param-value": "${vf-naming-policy}"
- },
- {
- "param-name": "naming-type",
- "param-value": "VF-MODULE"
- },
- {
- "param-name": "VNF_NAME",
- "param-value": "${vnf_name}"
- },
- {
- "param-name": "VF_MODULE_LABEL",
- "param-value": "${vf-module-label}"
- },
- {
- "param-name": "VF_MODULE_TYPE",
- "param-value": "${vf-module-type}"
- }
- ],
- "output-key-mapping": [
- {
- "resource-name": "vf-module-name",
- "resource-value": "${vf-module-name}"
- }
- ]
- }
- ]
- },
- {
- "capability-name": "aai-vf-module-put",
- "key-mapping": [
- {
- "payload": [
- {
- "param-name": "vf-module",
- "param-value": "vf-module"
- }
- ],
- "output-key-mapping": [
- {
- "resource-name": "aai-vf-module-put",
- "resource-value": "${status}"
- }
- ]
- }
- ]
- }
- ]
-} \ No newline at end of file
diff --git a/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/baseconfig-template.vtl b/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/baseconfig-template.vtl
index 10e448466..e20c21bd0 100644
--- a/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/baseconfig-template.vtl
+++ b/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/baseconfig-template.vtl
@@ -1,9 +1,9 @@
-<vlb-business-vnf-onap-plugin xmlns="urn:opendaylight:params:xml:ns:yang:vlb-business-vnf-onap-plugin">
-<vdns-instances>
-<vdns-instance>
-<ip-addr>$vdns_int_private_ip_0</ip-addr>
-<oam-ip-addr>$vdns_onap_private_ip_0</oam-ip-addr>
-<enabled>false</enabled>
-</vdns-instance>
-</vdns-instances>
-</vlb-business-vnf-onap-plugin>
+ {
+ "vdns-instance": [
+ {
+ "ip-addr": "$vdns_int_private_ip_0",
+ "oam-ip-addr": "$vdns_onap_private_ip_0",
+ "enabled": true
+ }
+ ]
+} \ No newline at end of file
diff --git a/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/incremental-config-template.vtl b/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/incremental-config-template.vtl
index d33625739..e20c21bd0 100644
--- a/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/incremental-config-template.vtl
+++ b/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/incremental-config-template.vtl
@@ -1,9 +1,9 @@
-<vlb-business-vnf-onap-plugin xmlns="urn:opendaylight:params:xml:ns:yang:vlb-business-vnf-onap-plugin">
-<vdns-instances>
-<vdns-instance>
-<ip-addr>$vdns_int_private_ip_0</ip-addr>
-<oam-ip-addr>$vdns_onap_private_ip_0</oam-ip-addr>
-<enabled>true</enabled>
-</vdns-instance>
-</vdns-instances>
-</vlb-business-vnf-onap-plugin>
+ {
+ "vdns-instance": [
+ {
+ "ip-addr": "$vdns_int_private_ip_0",
+ "oam-ip-addr": "$vdns_onap_private_ip_0",
+ "enabled": true
+ }
+ ]
+} \ No newline at end of file
diff --git a/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/nf-params-mapping.json b/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/nf-params-mapping.json
index 9cf71fc59..3efc6fe8b 100644
--- a/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/nf-params-mapping.json
+++ b/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/nf-params-mapping.json
@@ -39,6 +39,7 @@
"dependencies": [],
"version": 0
},
+
{
"name": "ip",
"property": {
diff --git a/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vdns-mapping.json b/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vdns-mapping.json
index 2dee19ccb..ba5ed5b9b 100644
--- a/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vdns-mapping.json
+++ b/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vdns-mapping.json
@@ -1,817 +1,752 @@
-[
- {
- "name": "cloud_env",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "cloud_env",
- "dictionary-source": "sdnc",
- "dependencies": [
- "service-instance-id",
- "vnf-id"
- ],
- "version": 0
- },
- {
- "name": "create-md-sal-vnf-param",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "create-md-sal-vnf-param",
- "dictionary-source": "sdnc",
- "dependencies": [
- "service-instance-id",
- "vnf-id",
- "vf-module-id"
- ],
- "version": 0
- },
-
- {
- "name": "private1-prefix-id",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- },
- "default": ""
- },
- "input-param": false,
- "dictionary-name": "private1-prefix-id",
- "dictionary-source": "processor-db",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "management-prefix-id",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- },
- "default": ""
- },
- "input-param": false,
- "dictionary-name": "management-prefix-id",
- "dictionary-source": "processor-db",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "onap_private_net_cidr",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "onap_private_net_cidr",
- "dictionary-source": "sdnc",
- "dependencies": [
- "service-instance-id",
- "vnf-id"
- ],
- "version": 0
- },
- {
- "name": "vf-module-name",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- },
- "default": "${vf-module-name}"
- },
- "input-param": false,
- "dictionary-name": "vf-module-name",
- "dictionary-source": "default",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "install_script_version",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
-
- },
- "input-param": false,
- "dictionary-name": "install_script_version",
- "dictionary-source": "sdnc",
- "dependencies": [
- "service-instance-id",
- "vnf-id"
- ],
- "version": 0
- },
- {
- "name": "keypair",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- },
- "default": "vlb_key"
- },
- "input-param": false,
- "dictionary-name": "keypair",
- "dictionary-source": "default",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "nb_api_version",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- },
- "default": "1.2.0"
- },
- "input-param": false,
- "dictionary-name": "nb_api_version",
- "dictionary-source": "default",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "nexus_artifact_repo",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- },
- "default": "https://nexus.onap.org"
- },
- "input-param": false,
- "dictionary-name": "nexus_artifact_repo",
- "dictionary-source": "default",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "nfc-naming-code",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "nfc-naming-code",
- "dictionary-source": "processor-db",
- "dependencies": [
- "vfccustomizationuuid"
- ],
- "version": 0
- },
- {
- "name": "onap_private_net_id",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "onap_private_net_id",
- "dictionary-source": "sdnc",
- "dependencies": [
- "service-instance-id",
- "vnf-id"
- ],
- "version": 0
- },
- {
- "name": "onap_private_subnet_id",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "onap_private_subnet_id",
- "dictionary-source": "sdnc",
- "dependencies": [
- "service-instance-id",
- "vnf-id"
- ],
- "version": 0
- },
- {
- "name": "public_net_id",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "public_net_id",
- "dictionary-source": "sdnc",
- "dependencies": [
- "service-instance-id",
- "vnf-id"
- ],
- "version": 0
- },
- {
- "name": "sec_group",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "sec_group",
- "dictionary-source": "sdnc",
- "dependencies": [
- "service-instance-id",
- "vnf-id"
- ],
- "version": 0
- },
- {
- "name": "service-instance-id",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "service-instance-id",
- "dictionary-source": "input",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "vdns_flavor_name",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- },
- "default": "m1.medium"
- },
- "input-param": false,
- "dictionary-name": "flavor_name",
- "dictionary-source": "sdnc",
- "dependencies": [
- "service-instance-id",
- "vnf-id"
- ],
- "version": 0
- },
-
- {
- "name": "vdns_name_0",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- },
- "default": "${vdns_name_0}"
- },
- "input-param": false,
- "dictionary-name": "vdns_name_0",
- "dictionary-source": "default",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "vdns_int_private_ip_0",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- },
- "default": "${vdns_int_private_ip_0}"
- },
- "input-param": false,
- "dictionary-name": "vdns_int_private_ip_0",
- "dictionary-source": "default",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "vdns_onap_private_ip_0",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- },
- "default": "${vdns_onap_private_ip_0}"
- },
- "input-param": false,
- "dictionary-name": "vdns_onap_private_ip_0",
- "dictionary-source": "default",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "vf-module-id",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "vf-module-id",
- "dictionary-source": "input",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "vf-module-label",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "vf-module-label",
- "dictionary-source": "processor-db",
- "dependencies": [
- "vf-module-model-customization-uuid"
- ],
- "version": 0
- },
- {
- "name": "vf-module-model-customization-uuid",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "vf-module-model-customization-uuid",
- "dictionary-source": "input",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "vf-module-type",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "vf-module-type",
- "dictionary-source": "processor-db",
- "dependencies": [
- "vf-module-model-customization-uuid"
- ],
- "version": 0
- },
- {
- "name": "vf-naming-policy",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "vf-naming-policy",
- "dictionary-source": "sdnc",
- "dependencies": [
- "service-instance-id",
- "vnf-id"
- ],
- "version": 0
- },
-
- {
- "name": "vfccustomizationuuid",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "vfccustomizationuuid",
- "dictionary-source": "processor-db",
- "dependencies": [
- "vf-module-model-customization-uuid"
- ],
- "version": 0
- },
- {
- "name": "vlb_int_pktgen_private_ip_0",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "vlb_int_pktgen_private_ip_0",
- "dictionary-source": "sdnc",
- "dependencies": [
- "service-instance-id",
- "vnf-id"
- ],
- "version": 0
- },
- {
- "name": "vlb_int_private_ip_0",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "vlb_int_private_ip_0",
- "dictionary-source": "sdnc",
- "dependencies": [
- "service-instance-id",
- "vnf-id"
- ],
- "version": 0
- },
- {
- "name": "vlb_onap_private_ip_0",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "vlb_onap_private_ip_0",
- "dictionary-source": "sdnc",
- "dependencies": [
- "service-instance-id",
- "vnf-id"
- ],
- "version": 0
- },
- {
- "name": "vlb_private_net_cidr",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "vlb_private_net_cidr",
- "dictionary-source": "sdnc",
- "dependencies": [
- "service-instance-id",
- "vnf-id"
- ],
- "version": 0
- },
- {
- "name": "vm-type",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "vm-type",
- "dictionary-source": "processor-db",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "vnf-id",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "vnf-id",
- "dictionary-source": "input",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "vnf-model-customization-uuid",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "vnf-model-customization-uuid",
- "dictionary-source": "input",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "vnf_name",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "vnf_name",
- "dictionary-source": "sdnc",
- "dependencies": [
- "service-instance-id",
- "vnf-id"
- ],
- "version": 0
- },
- {
- "name": "vnfc-model-invariant-uuid",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "vnfc-model-invariant-uuid",
- "dictionary-source": "processor-db",
- "dependencies": [
- "vfccustomizationuuid"
- ],
- "version": 0
- },
- {
- "name": "vdns_image_name",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "image_name",
- "dictionary-source": "sdnc",
- "dependencies": [
- "service-instance-id",
- "vnf-id"
- ],
- "version": 0
- },
- {
- "name": "vnfc-model-version",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "vnfc-model-version",
- "dictionary-source": "processor-db",
- "dependencies": [
- "vfccustomizationuuid"
- ],
- "version": 0
- }
+[{
+ "name": "cloud_env",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "cloud_env",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "vf-module-assign",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ },
+ "metadata": {
+ "transform-template": "${vf-module-assign}_${service-instance-id}"
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vf-module-assign",
+ "dictionary-source": "aai-data",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id",
+ "vf-module-name"
+ ],
+ "version": 0
+ },
+ {
+ "name": "create-md-sal-vnf-param",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "create-md-sal-vnf-param",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id",
+ "vf-module-id"
+ ],
+ "version": 0
+ },
+
+ {
+ "name": "private1-prefix-id",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "private1-prefix-id",
+ "dictionary-source": "processor-db",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "management-prefix-id",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "management-prefix-id",
+ "dictionary-source": "processor-db",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "onap_private_net_cidr",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "onap_private_net_cidr",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "vf-module-name",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vf-module-name",
+ "dictionary-source": "rest",
+ "dependencies": ["vnf_name", "vf-module-label", "vf-module-type", "vf-naming-policy", "vf-module-id"],
+ "version": 0
+ },
+ {
+ "name": "install_script_version",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+
+ },
+ "input-param": false,
+ "dictionary-name": "install_script_version",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+
+ {
+ "name": "nb_api_version",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "nb_api_version",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "nexus_artifact_repo",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "nexus_artifact_repo",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "nfc-naming-code",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "nfc-naming-code",
+ "dictionary-source": "processor-db",
+ "dependencies": [
+ "vfccustomizationuuid"
+ ],
+ "version": 0
+ },
+ {
+ "name": "onap_private_net_id",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "onap_private_net_id",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "onap_private_subnet_id",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "onap_private_subnet_id",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "public_net_id",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "public_net_id",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "sec_group",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "sec_group",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "service-instance-id",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "service-instance-id",
+ "dictionary-source": "input",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "vdns_flavor_name",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "flavor_name",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+
+ {
+ "name": "vdns_name_0",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vdns_name_0",
+ "dictionary-source": "rest",
+ "dependencies": ["vf-module-id","vf-module-name", "vf-module-label", "nfc-naming-code", "vf-naming-policy"],
+ "version": 0
+ },
+ {
+ "name": "vdns_int_private_ip_0",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ },
+ "metadata": {
+ "transform-template": "${vdns_int_private_ip_0.replaceAll(\"/.+\", \"\")}"
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vdns_int_private_ip_0",
+ "dictionary-source": "rest",
+ "dependencies": ["private1-prefix-id"],
+ "version": 0
+ },
+ {
+ "name": "vdns_onap_private_ip_0",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ },
+ "metadata": {
+ "transform-template": "${vdns_onap_private_ip_0.replaceAll(\"/.+\", \"\")}"
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vdns_onap_private_ip_0",
+ "dictionary-source": "rest",
+ "dependencies": ["management-prefix-id"],
+ "version": 0
+ },
+ {
+ "name": "vf-module-id",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vf-module-id",
+ "dictionary-source": "input",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "vf-module-label",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vf-module-label",
+ "dictionary-source": "processor-db",
+ "dependencies": [
+ "vf-module-model-customization-uuid"
+ ],
+ "version": 0
+ },
+ {
+ "name": "vf-module-model-customization-uuid",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vf-module-model-customization-uuid",
+ "dictionary-source": "input",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "vf-module-type",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vf-module-type",
+ "dictionary-source": "processor-db",
+ "dependencies": [
+ "vf-module-model-customization-uuid"
+ ],
+ "version": 0
+ },
+ {
+ "name": "vf-naming-policy",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vf-naming-policy",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+
+ {
+ "name": "vfccustomizationuuid",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vfccustomizationuuid",
+ "dictionary-source": "processor-db",
+ "dependencies": [
+ "vf-module-model-customization-uuid"
+ ],
+ "version": 0
+ },
+ {
+ "name": "vlb_int_pktgen_private_ip_0",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vlb_int_pktgen_private_ip_0",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "vlb_int_private_ip_0",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vlb_int_private_ip_0",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "vlb_onap_private_ip_0",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vlb_onap_private_ip_0",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "vlb_private_net_cidr",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vlb_private_net_cidr",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "vm-type",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vm-type",
+ "dictionary-source": "processor-db",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "vnf-id",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vnf-id",
+ "dictionary-source": "input",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "vnf-model-customization-uuid",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vnf-model-customization-uuid",
+ "dictionary-source": "input",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "vnf_name",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vnf_name",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "vnfc-model-invariant-uuid",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vnfc-model-invariant-uuid",
+ "dictionary-source": "processor-db",
+ "dependencies": [
+ "vfccustomizationuuid"
+ ],
+ "version": 0
+ },
+ {
+ "name": "vdns_image_name",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "image_name",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "vnfc-model-version",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vnfc-model-version",
+ "dictionary-source": "processor-db",
+ "dependencies": [
+ "vfccustomizationuuid"
+ ],
+ "version": 0
+ }
] \ No newline at end of file
diff --git a/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vdns-template.vtl b/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vdns-template.vtl
deleted file mode 100644
index 84fab0d63..000000000
--- a/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vdns-template.vtl
+++ /dev/null
@@ -1,302 +0,0 @@
-{
- "resource-accumulator-resolved-data": [
- {
- "param-name": "service-instance-id",
- "param-value": "${service-instance-id}"
- },
- {
- "param-name": "vnf_id",
- "param-value": "${vnf-id}"
- },
- {
- "param-name": "vnf_name",
- "param-value": "${vnf_name}"
- },
- {
- "param-name": "vnf_model_customization_uuid",
- "param-value": "${vnf-model-customization-uuid}"
- },
- {
- "param-name": "vf_module_id",
- "param-value": "${vf-module-id}"
- },
- {
- "param-name": "vf_module_type",
- "param-value": "${vf-module-type}"
- },
- {
- "param-name": "vf_module_customization_uuid",
- "param-value": "${vf-module-model-customization-uuid}"
- },
- {
- "param-name": "vfc_customization_uuid",
- "param-value": "${vfccustomizationuuid}"
- },
- {
- "param-name": "aic-cloud-region",
- "param-value": "${aic-cloud-region}"
- },
- {
- "param-name": "vm-type",
- "param-value": "${vm-type}"
- },
- {
- "param-name": "vnfc-model-customization-uuid",
- "param-value": "${vfccustomizationuuid}"
- },
- {
- "param-name": "vnfc-model-invariant-uuid",
- "param-value": "${vnfc-model-invariant-uuid}"
- },
- {
- "param-name": "vnfc-model-version",
- "param-value": "${vnfc-model-version}"
- },
- {
- "param-name": "nfc-function",
- "param-value": "${nf-role}"
- },
- {
- "param-name": "nfc-naming-code",
- "param-value": "${nfc-naming-code}"
- },
- {
- "param-name": "cloud_env",
- "param-value": "openstack"
- },
- {
- "param-name": "nexus_artifact_repo",
- "param-value": "https://nexus.onap.org"
- },
- {
- "param-name": "vdns_image_name",
- "param-value": "${vdns_image_name}"
- },
- {
- "param-name": "vdns_flavor_name",
- "param-value": "m1.medium"
- },
- {
- "param-name": "install_script_version",
- "param-value": "${install_script_version}"
- },
- {
- "param-name": "key_name",
- "param-value": "${key_name}"
- },
- {
- "param-name": "pub_key",
- "param-value": "${pub_key}"
- },
- {
- "param-name": "public_net_id",
- "param-value": "${public_net_id}"
- },
- {
- "param-name": "vlb_int_private_ip_0",
- "param-value": "${vlb_int_private_ip_0}"
- },
- {
- "param-name": "vlb_onap_private_ip_0",
- "param-value": "${vlb_onap_private_ip_0}"
- },
- {
- "param-name": "vlb_int_pktgen_private_ip_0",
- "param-value": "${vlb_int_pktgen_private_ip_0}"
- },
- {
- "param-name": "vlb_private_net_cidr",
- "param-value": "${vlb_private_net_cidr}"
- },
-
-
- {
- "param-name": "onap_private_net_id",
- "param-value": "${onap_private_net_id}"
- },
- {
- "param-name": "onap_private_subnet_id",
- "param-value": "${onap_private_subnet_id}"
- },
- {
- "param-name": "onap_private_net_cidr",
- "param-value": "${onap_private_net_cidr}"
- },
- {
- "param-name": "pktgen_private_net_cidr",
- "param-value": "${pktgen_private_net_cidr}"
- },
- {
- "param-name": "sec_group",
- "param-value": "${sec_group}"
- },
- {
- "param-name": "nb_api_version",
- "param-value": "1.2.0"
- }
-
- ],
- "capability-data": [
- {
- "capability-name": "generate-name",
- "key-mapping": [
- {
- "payload": [
- {
- "param-name": "resource-name",
- "param-value": "vdns_name_0"
- },
- {
- "param-name": "resource-value",
- "param-value": "${vdns_name_0}"
- },
- {
- "param-name": "external-key",
- "param-value": "${vf-module-id}_vdns_name_0"
- },
- {
- "param-name": "policy-instance-name",
- "param-value": "${vf-naming-policy}"
- },
- {
- "param-name": "naming-type",
- "param-value": "VNFC"
- },
- {
- "param-name": "VNF_NAME",
- "param-value": "${vnf_name}"
- },
- {
- "param-name": "NFC_NAMING_CODE",
- "param-value": "${nfc-naming-code}"
- }
- ],
- "output-key-mapping": [
- {
- "resource-name": "vdns_name_0",
- "resource-value": "${vdns_name_0}"
- }
- ]
- },
- {
- "payload": [
- {
- "param-name": "resource-name",
- "param-value": "vf-module-name"
- },
- {
- "param-name": "resource-value",
- "param-value": "${vf-module-name}"
- },
- {
- "param-name": "external-key",
- "param-value": "${vf-module-id}_vf-module-name"
- },
- {
- "param-name": "policy-instance-name",
- "param-value": "${vf-naming-policy}"
- },
- {
- "param-name": "naming-type",
- "param-value": "VF-MODULE"
- },
- {
- "param-name": "VNF_NAME",
- "param-value": "${vnf_name}"
- },
- {
- "param-name": "VF_MODULE_LABEL",
- "param-value": "${vf-module-label}"
- },
- {
- "param-name": "VF_MODULE_TYPE",
- "param-value": "${vf-module-type}"
- }
- ],
- "output-key-mapping": [
- {
- "resource-name": "vf-module-name",
- "resource-value": "${vf-module-name}"
- }
- ]
- }
- ]
- },
- {
- "capability-name": "netbox-ip-assign",
- "key-mapping": [
- {
- "payload": [
- {
- "param-name": "service-instance-id",
- "param-value": "${service-instance-id}"
- },
- {
- "param-name": "prefix-id",
- "param-value": "${management-prefix-id}"
- },
- {
- "param-name": "vnf-id",
- "param-value": "${vnf-id}"
- },
- {
- "param-name": "external_key",
- "param-value": "${vnf-id}-vdns_onap_private_ip_0"
- }
- ],
- "output-key-mapping": [
- {
- "resource-name": "vdns_onap_private_ip_0",
- "resource-value": "${vdns_onap_private_ip_0}"
- }
- ]
- },
- {
- "payload": [
- {
- "param-name": "service-instance-id",
- "param-value": "${service-instance-id}"
- },
- {
- "param-name": "prefix-id",
- "param-value": "${private1-prefix-id}"
- },
- {
- "param-name": "vnf-id",
- "param-value": "${vnf-id}"
- },
- {
- "param-name": "external_key",
- "param-value": "${vnf-id}-vdns_int_private_ip_0"
- }
- ],
- "output-key-mapping": [
- {
- "resource-name": "vdns_int_private_ip_0",
- "resource-value": "${vdns_int_private_ip_0}"
- }
- ]
- }
- ]
- },
- {
- "capability-name": "aai-vf-module-put",
- "key-mapping": [
- {
- "payload": [
- {
- "param-name": "vf-module",
- "param-value": "vf-module"
- }
- ],
- "output-key-mapping": [
- {
- "resource-name": "aai-vf-module-put",
- "resource-value": "${status}"
- }
- ]
- }
- ]
- }
- ]
-} \ No newline at end of file
diff --git a/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vlb-mapping.json b/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vlb-mapping.json
index 0104579c3..216d38019 100644
--- a/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vlb-mapping.json
+++ b/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vlb-mapping.json
@@ -1,929 +1,857 @@
-[
- {
- "name": "cloud_env",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- },
- "default": "openstack"
- },
- "input-param": false,
- "dictionary-name": "cloud_env",
- "dictionary-source": "default",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "vf-module-name",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- },
- "default": "${vf-module-name}"
- },
- "input-param": false,
- "dictionary-name": "vf-module-name",
- "dictionary-source": "default",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "dcae_collector_ip",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- },
- "default": "10.0.4.1"
- },
- "input-param": false,
- "dictionary-name": "dcae_collector_ip",
- "dictionary-source": "default",
- "dependencies": [
- "service-instance-id",
- "vnf-id"
- ],
- "version": 0
- },
- {
- "name": "vpg_int_pktgen_private_ip_0",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "vpg_int_pktgen_private_ip_0",
- "dictionary-source": "sdnc",
- "dependencies": [
- "service-instance-id",
- "vnf-id"
- ],
- "version": 0
- },
- {
- "name": "dcae_collector_port",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- },
- "default": "30235"
- },
- "input-param": false,
- "dictionary-name": "dcae_collector_port",
- "dictionary-source": "default",
- "dependencies": [
- "service-instance-id",
- "vnf-id"
- ],
- "version": 0
- },
- {
- "name": "demo_artifacts_version",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "demo_artifacts_version",
- "dictionary-source": "sdnc",
- "dependencies": [
- "service-instance-id",
- "vnf-id"
- ],
- "version": 0
- },
- {
- "name": "gre_ipaddr",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- },
- "default": "${gre_ipaddr}"
- },
- "input-param": false,
- "dictionary-name": "gre_ipaddr",
- "dictionary-source": "default",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "install_script_version",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "install_script_version",
- "dictionary-source": "sdnc",
- "dependencies": [
- "service-instance-id",
- "vnf-id"
- ],
- "version": 0
- },
- {
- "name": "vnf_name",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "vnf_name",
- "dictionary-source": "sdnc",
- "dependencies": [
- "service-instance-id",
- "vnf-id"
- ],
- "version": 0
- },
- {
- "name": "keypair",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- },
- "default": "vlb_key"
- },
- "input-param": false,
- "dictionary-name": "keypair",
- "dictionary-source": "default",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "nb_api_version",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- },
- "default": "1.2.0"
- },
- "input-param": false,
- "dictionary-name": "nb_api_version",
- "dictionary-source": "default",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "nexus_artifact_repo",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- },
- "default": "https://nexus.onap.org"
- },
- "input-param": false,
- "dictionary-name": "nexus_artifact_repo",
- "dictionary-source": "default",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "nfc-naming-code",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "nfc-naming-code",
- "dictionary-source": "processor-db",
- "dependencies": [
- "vfccustomizationuuid"
- ],
- "version": 0
- },
- {
- "name": "onap_private_net_cidr",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "onap_private_net_cidr",
- "dictionary-source": "sdnc",
- "dependencies": [
- "service-instance-id",
- "vnf-id"
- ],
- "version": 0
- },
- {
- "name": "onap_private_net_id",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "onap_private_net_id",
- "dictionary-source": "sdnc",
- "dependencies": [
- "service-instance-id",
- "vnf-id"
- ],
- "version": 0
- },
- {
- "name": "onap_private_subnet_id",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "onap_private_subnet_id",
- "dictionary-source": "sdnc",
- "dependencies": [
- "service-instance-id",
- "vnf-id"
- ],
- "version": 0
- },
- {
- "name": "pktgen_private_net_cidr",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "pktgen_private_net_cidr",
- "dictionary-source": "sdnc",
- "dependencies": [
- "service-instance-id",
- "vnf-id"
- ],
- "version": 0
- },
- {
- "name": "public_net_id",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "public_net_id",
- "dictionary-source": "sdnc",
- "dependencies": [
- "service-instance-id",
- "vnf-id"
- ],
- "version": 0
- },
- {
- "name": "sec_group",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "sec_group",
- "dictionary-source": "sdnc",
- "dependencies": [
- "service-instance-id",
- "vnf-id"
- ],
- "version": 0
- },
- {
- "name": "service-instance-id",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "service-instance-id",
- "dictionary-source": "input",
- "dependencies": [],
- "version": 0
- },
-
+[{
+ "name": "cloud_env",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "cloud_env",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "vf-module-assign",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ },
+ "metadata": {
+ "transform-template": "${vf-module-assign}_${service-instance-id}"
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vf-module-assign",
+ "dictionary-source": "aai-data",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id",
+ "vf-module-name"
+ ],
+ "version": 0
+ },
+
+ {
+ "name": "vf-module-name",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vf-module-name",
+ "dictionary-source": "rest",
+ "dependencies": ["vnf_name", "vf-module-label", "vf-module-type", "vf-naming-policy", "vf-module-id"],
+ "version": 0
+ },
+ {
+ "name": "dcae_collector_ip",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "dcae_collector_ip",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "vpg_int_pktgen_private_ip_0",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vpg_int_pktgen_private_ip_0",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "dcae_collector_port",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "dcae_collector_port",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "demo_artifacts_version",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "demo_artifacts_version",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "gre_ipaddr",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ },
+ "metadata": {
+ "transform-template": "${gre_ipaddr.replaceAll(\"/.+\", \"\")}"
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "gre_ipaddr",
+ "dictionary-source": "rest",
+ "dependencies": ["private1-prefix-id"],
+ "version": 0
+ },
+ {
+ "name": "install_script_version",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "install_script_version",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "vnf_name",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vnf_name",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
- {
- "name": "vf-module-id",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "vf-module-id",
- "dictionary-source": "input",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "vf-module-label",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "vf-module-label",
- "dictionary-source": "processor-db",
- "dependencies": [
- "vf-module-model-customization-uuid"
- ],
- "version": 0
- },
- {
- "name": "vf-module-model-customization-uuid",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "vf-module-model-customization-uuid",
- "dictionary-source": "input",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "vf-module-type",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "vf-module-type",
- "dictionary-source": "processor-db",
- "dependencies": [
- "vf-module-model-customization-uuid"
- ],
- "version": 0
- },
- {
- "name": "vf-naming-policy",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "vf-naming-policy",
- "dictionary-source": "sdnc",
- "dependencies": [
- "service-instance-id",
- "vnf-id"
- ],
- "version": 0
- },
-
- {
- "name": "vfccustomizationuuid",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "vfccustomizationuuid",
- "dictionary-source": "processor-db",
- "dependencies": [
- "vf-module-model-customization-uuid"
- ],
- "version": 0
- },
- {
- "name": "vip",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- },
- "default": "${vip}"
- },
- "input-param": false,
- "dictionary-name": "vip",
- "dictionary-source": "default",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "vlb_flavor_name",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "flavor_name",
- "dictionary-source": "sdnc",
- "dependencies": [
- "service-instance-id",
- "vnf-id"
- ],
- "version": 0
- },
- {
- "name": "vlb_image_name",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "image_name",
- "dictionary-source": "sdnc",
- "dependencies": [
- "service-instance-id",
- "vnf-id"
- ],
- "version": 0
- },
- {
- "name": "vlb_int_pktgen_private_ip_0",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "vlb_int_pktgen_private_ip_0",
- "dictionary-source": "sdnc",
- "dependencies": [
- "service-instance-id",
- "vnf-id"
- ],
- "version": 0
- },
- {
- "name": "vlb_int_private_ip_0",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "vlb_int_private_ip_0",
- "dictionary-source": "sdnc",
- "dependencies": [
- "service-instance-id",
- "vnf-id"
- ],
- "version": 0
- },
- {
- "name": "vlb_name_0",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- },
- "default": "${vlb_name_0}"
- },
- "input-param": false,
- "dictionary-name": "vlb_name_0",
- "dictionary-source": "default",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "vlb_onap_private_ip_0",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "vlb_onap_private_ip_0",
- "dictionary-source": "sdnc",
- "dependencies": [
- "service-instance-id",
- "vnf-id"
- ],
- "version": 0
- },
- {
- "name": "vlb_private_net_cidr",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "vlb_private_net_cidr",
- "dictionary-source": "sdnc",
- "dependencies": [
- "service-instance-id",
- "vnf-id"
- ],
- "version": 0
- },
- {
- "name": "vm-type",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "vm-type",
- "dictionary-source": "processor-db",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "vnf-id",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "vnf-id",
- "dictionary-source": "input",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "vnf-model-customization-uuid",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "vnf-model-customization-uuid",
- "dictionary-source": "input",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "vnfc-model-invariant-uuid",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "vnfc-model-invariant-uuid",
- "dictionary-source": "processor-db",
- "dependencies": [
- "vfccustomizationuuid"
- ],
- "version": 0
- },
- {
- "name": "vnfc-model-version",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "vnfc-model-version",
- "dictionary-source": "processor-db",
- "dependencies": [
- "vfccustomizationuuid"
- ],
- "version": 0
- },
- {
- "name": "vpg_onap_private_ip_0",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "vpg_onap_private_ip_0",
- "dictionary-source": "sdnc",
- "dependencies": [
- "service-instance-id",
- "vnf-id"
- ],
- "version": 0
- },
- {
- "name": "private1-prefix-id",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- },
- "default": ""
- },
- "input-param": false,
- "dictionary-name": "private1-prefix-id",
- "dictionary-source": "processor-db",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "private2-prefix-id",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- },
- "default": ""
- },
- "input-param": false,
- "dictionary-name": "private2-prefix-id",
- "dictionary-source": "processor-db",
- "dependencies": [],
- "version": 0
- }
+ {
+ "name": "nb_api_version",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+
+ },
+ "input-param": false,
+ "dictionary-name": "nb_api_version",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "nexus_artifact_repo",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "nexus_artifact_repo",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "nfc-naming-code",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "nfc-naming-code",
+ "dictionary-source": "processor-db",
+ "dependencies": [
+ "vfccustomizationuuid"
+ ],
+ "version": 0
+ },
+ {
+ "name": "onap_private_net_cidr",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "onap_private_net_cidr",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "onap_private_net_id",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "onap_private_net_id",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "onap_private_subnet_id",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "onap_private_subnet_id",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "pktgen_private_net_cidr",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "pktgen_private_net_cidr",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "public_net_id",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "public_net_id",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "sec_group",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "sec_group",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "service-instance-id",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "service-instance-id",
+ "dictionary-source": "input",
+ "dependencies": [],
+ "version": 0
+ },
+
+
+ {
+ "name": "vf-module-id",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vf-module-id",
+ "dictionary-source": "input",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "vf-module-label",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vf-module-label",
+ "dictionary-source": "processor-db",
+ "dependencies": [
+ "vf-module-model-customization-uuid"
+ ],
+ "version": 0
+ },
+ {
+ "name": "vf-module-model-customization-uuid",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vf-module-model-customization-uuid",
+ "dictionary-source": "input",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "vf-module-type",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vf-module-type",
+ "dictionary-source": "processor-db",
+ "dependencies": [
+ "vf-module-model-customization-uuid"
+ ],
+ "version": 0
+ },
+ {
+ "name": "vf-naming-policy",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vf-naming-policy",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+
+ {
+ "name": "vfccustomizationuuid",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vfccustomizationuuid",
+ "dictionary-source": "processor-db",
+ "dependencies": [
+ "vf-module-model-customization-uuid"
+ ],
+ "version": 0
+ },
+ {
+ "name": "vip",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ },
+ "metadata": {
+ "transform-template": "${vip.replaceAll(\"/.+\", \"\")}"
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vip",
+ "dictionary-source": "rest",
+ "dependencies": ["private2-prefix-id"],
+ "version": 0
+ },
+ {
+ "name": "vlb_flavor_name",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "flavor_name",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "vlb_image_name",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "image_name",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "vlb_int_pktgen_private_ip_0",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vlb_int_pktgen_private_ip_0",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "vlb_int_private_ip_0",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vlb_int_private_ip_0",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "vlb_name_0",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vlb_name_0",
+ "dictionary-source": "rest",
+ "dependencies": ["vf-module-id", "vf-module-name", "vf-module-label", "nfc-naming-code", "vf-naming-policy"],
+ "version": 0
+ },
+ {
+ "name": "vlb_onap_private_ip_0",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vlb_onap_private_ip_0",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "vlb_private_net_cidr",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vlb_private_net_cidr",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "vm-type",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vm-type",
+ "dictionary-source": "processor-db",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "vnf-id",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vnf-id",
+ "dictionary-source": "input",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "vnf-model-customization-uuid",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vnf-model-customization-uuid",
+ "dictionary-source": "input",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "vnfc-model-invariant-uuid",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vnfc-model-invariant-uuid",
+ "dictionary-source": "processor-db",
+ "dependencies": [
+ "vfccustomizationuuid"
+ ],
+ "version": 0
+ },
+ {
+ "name": "vnfc-model-version",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vnfc-model-version",
+ "dictionary-source": "processor-db",
+ "dependencies": [
+ "vfccustomizationuuid"
+ ],
+ "version": 0
+ },
+ {
+ "name": "vpg_onap_private_ip_0",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vpg_onap_private_ip_0",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "private1-prefix-id",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "private1-prefix-id",
+ "dictionary-source": "processor-db",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "private2-prefix-id",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "private2-prefix-id",
+ "dictionary-source": "processor-db",
+ "dependencies": [],
+ "version": 0
+ }
] \ No newline at end of file
diff --git a/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vlb-template.vtl b/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vlb-template.vtl
deleted file mode 100644
index 458423e6f..000000000
--- a/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vlb-template.vtl
+++ /dev/null
@@ -1,330 +0,0 @@
-{
- "resource-accumulator-resolved-data": [
- {
- "param-name": "service-instance-id",
- "param-value": "${service-instance-id}"
- },
- {
- "param-name": "vnf_id",
- "param-value": "${vnf-id}"
- },
- {
- "param-name": "vnf_name",
- "param-value": "${vnf_name}"
- },
- {
- "param-name": "vpg_int_pktgen_private_ip_0",
- "param-value": "${vpg_int_pktgen_private_ip_0}"
- },
- {
- "param-name": "vpg_onap_private_ip_0",
- "param-value": "${vpg_onap_private_ip_0}"
- },
-
-
- {
- "param-name": "vnf_model_customization_uuid",
- "param-value": "${vnf-model-customization-uuid}"
- },
- {
- "param-name": "vf_module_id",
- "param-value": "${vf-module-id}"
- },
- {
- "param-name": "vf_module_type",
- "param-value": "${vf-module-type}"
- },
- {
- "param-name": "vf_module_customization_uuid",
- "param-value": "${vf-module-model-customization-uuid}"
- },
- {
- "param-name": "vfc_customization_uuid",
- "param-value": "${vfccustomizationuuid}"
- },
- {
- "param-name": "aic-cloud-region",
- "param-value": "${aic-cloud-region}"
- },
- {
- "param-name": "vm-type",
- "param-value": "${vm-type}"
- },
- {
- "param-name": "vnfc-model-customization-uuid",
- "param-value": "${vfccustomizationuuid}"
- },
- {
- "param-name": "vnfc-model-invariant-uuid",
- "param-value": "${vnfc-model-invariant-uuid}"
- },
- {
- "param-name": "vnfc-model-version",
- "param-value": "${vnfc-model-version}"
- },
- {
- "param-name": "nfc-naming-code",
- "param-value": "${nfc-naming-code}"
- },
- {
- "param-name": "vip",
- "param-value": "${vip}"
- },
- {
- "param-name": "cloud_env",
- "param-value": "openstack"
- },
- {
- "param-name": "repo_url_artifacts",
- "param-value": "https://nexus.onap.org/content/groups/staging"
- },
- {
- "param-name": "repo_url_blob",
- "param-value": "https://nexus.onap.org/content/repositories/raw"
- },
- {
- "param-name": "dcae_collector_port",
- "param-value": "${dcae_collector_port}"
- },
- {
- "param-name": "nb_api_version",
- "param-value": "${nb_api_version}"
- },
- {
- "param-name": "vlb_image_name",
- "param-value": "${vlb_image_name}"
- },
- {
- "param-name": "vlb_flavor_name",
- "param-value": "${vlb_flavor_name}"
- },
- {
- "param-name": "install_script_version",
- "param-value": "${install_script_version}"
- },
- {
- "param-name": "key_name",
- "param-value": "${key_name}"
- },
- {
- "param-name": "pub_key",
- "param-value": "${pub_key}"
- },
- {
- "param-name": "demo_artifacts_version",
- "param-value": "${demo_artifacts_version}"
- },
- {
- "param-name": "dcae_collector_ip",
- "param-value": "${dcae_collector_ip}"
- },
- {
- "param-name": "public_net_id",
- "param-value": "${public_net_id}"
- },
- {
- "param-name": "onap_private_net_id",
- "param-value": "${onap_private_net_id}"
- },
- {
- "param-name": "onap_private_subnet_id",
- "param-value": "${onap_private_subnet_id}"
- },
- {
- "param-name": "vlb_int_pktgen_private_ip_0",
- "param-value": "${vlb_int_pktgen_private_ip_0}"
- },
- {
- "param-name": "vlb_private_net_cidr",
- "param-value": "${vlb_private_net_cidr}"
- },
- {
- "param-name": "pktgen_private_net_cidr",
- "param-value": "${pktgen_private_net_cidr}"
- },
- {
- "param-name": "vlb_int_private_ip_0",
- "param-value": "${vlb_int_private_ip_0}"
- },
- {
- "param-name": "vlb_onap_private_ip_0",
- "param-value": "${vlb_onap_private_ip_0}"
- },
- {
- "param-name": "onap_private_net_cidr",
- "param-value": "${onap_private_net_cidr}"
- },
- {
- "param-name": "nexus_artifact_repo",
- "param-value": "${nexus_artifact_repo}"
- },
- {
- "param-name": "sec_group",
- "param-value": "${sec_group}"
- }
- ],
- "capability-data": [
- {
- "capability-name": "generate-name",
- "key-mapping": [
- {
- "payload": [
- {
- "param-name": "resource-name",
- "param-value": "vlb_name_0"
- },
- {
- "param-name": "resource-value",
- "param-value": "${vlb_name_0}"
- },
- {
- "param-name": "external-key",
- "param-value": "${vf-module-id}_vlb_name_0"
- },
- {
- "param-name": "policy-instance-name",
- "param-value": "${vf-naming-policy}"
- },
- {
- "param-name": "naming-type",
- "param-value": "VNFC"
- },
- {
- "param-name": "VNF_NAME",
- "param-value": "${vnf_name}"
- },
- {
- "param-name": "NFC_NAMING_CODE",
- "param-value": "${nfc-naming-code}"
- }
- ],
- "output-key-mapping": [
- {
- "resource-name": "vlb_name_0",
- "resource-value": "${vlb_name_0}"
- }
- ]
- },
- {
- "payload": [
- {
- "param-name": "resource-name",
- "param-value": "vf-module-name"
- },
- {
- "param-name": "resource-value",
- "param-value": "${vf-module-name}"
- },
- {
- "param-name": "external-key",
- "param-value": "${vf-module-id}_vf-module-name"
- },
- {
- "param-name": "policy-instance-name",
- "param-value": "${vf-naming-policy}"
- },
- {
- "param-name": "naming-type",
- "param-value": "VF-MODULE"
- },
- {
- "param-name": "VNF_NAME",
- "param-value": "${vnf_name}"
- },
- {
- "param-name": "VF_MODULE_LABEL",
- "param-value": "${vf-module-label}"
- },
- {
- "param-name": "VF_MODULE_TYPE",
- "param-value": "${vf-module-type}"
- }
- ],
- "output-key-mapping": [
- {
- "resource-name": "vf-module-name",
- "resource-value": "${vf-module-name}"
- }
- ]
- }
- ]
- },
- {
- "capability-name": "netbox-ip-assign",
- "key-mapping": [
- {
- "payload": [
- {
- "param-name": "service-instance-id",
- "param-value": "${service-instance-id}"
- },
- {
- "param-name": "prefix-id",
- "param-value": "${private2-prefix-id}"
- },
- {
- "param-name": "vnf-id",
- "param-value": "${vnf-id}"
- },
- {
- "param-name": "external_key",
- "param-value": "${vnf-id}-vip"
- }
- ],
- "output-key-mapping": [
- {
- "resource-name": "vip",
- "resource-value": "${vip}"
- }
- ]
- },
- {
- "payload": [
- {
- "param-name": "service-instance-id",
- "param-value": "${service-instance-id}"
- },
- {
- "param-name": "prefix-id",
- "param-value": "${private1-prefix-id}"
- },
- {
- "param-name": "vnf-id",
- "param-value": "${vnf-id}"
- },
- {
- "param-name": "external_key",
- "param-value": "${vnf-id}-gre_ipaddr"
- }
- ],
- "output-key-mapping": [
- {
- "resource-name": "gre_ipaddr",
- "resource-value": "${gre_ipaddr}"
- }
- ]
- }
- ]
- },
- {
- "capability-name": "aai-vf-module-put",
- "key-mapping": [
- {
- "output-key-mapping": [
- {
- "resource-name": "aai-vf-module-put",
- "resource-value": "${status}"
- }
- ],
- "payload": [
- {
- "param-name": "vf-module",
- "param-value": "vf-module"
- }
- ]
- }
- ]
- }
-
- ]
-} \ No newline at end of file
diff --git a/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vnf-mapping.json b/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vnf-mapping.json
index 82dbe66a2..e353cabb5 100644
--- a/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vnf-mapping.json
+++ b/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vnf-mapping.json
@@ -1,690 +1,669 @@
-[
- {
- "name": "cloud_env",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- },
- "default": "openstack"
- },
- "input-param": true,
- "dictionary-name": "cloud_env",
- "dictionary-source": "input",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "demo_artifacts_version",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "demo_artifacts_version",
- "dictionary-source": "input",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "flavor_name",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "flavor_name",
- "dictionary-source": "input",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "image_name",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "image_name",
- "dictionary-source": "input",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "vpg_int_pktgen_private_ip_0",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- },
- "default": "${vpg_int_pktgen_private_ip_0}"
- },
- "input-param": false,
- "dictionary-name": "vpg_int_pktgen_private_ip_0",
- "dictionary-source": "default",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "install_script_version",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "install_script_version",
- "dictionary-source": "input",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "pub_key",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- },
- "default": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCs84Cy8+qi/jvucay0BwFtOq3ian0ulTXFGxkZcZCR0N48j88pbHJaEqb9e25MAsrfH+7Etb9Kd5nbBThEL/i0AyHXnDsc80Oq0sqlLcfLo3SGSurkrNoRofHboJ5Hn+N9SlWN5FCQGbTx1w3rjqR4LasAI6XxH9xpXSFyyge6ysVXH0cYaZ8sg98nFZa1fPJR9L8COjZvF+EYudub2RC5HVyV/sx7bliNFo9JwQh6du1abG4G7ZDjTIcYwYp21iq52UzWU28RVcAyY6AQZJu2lHLdsr8fPvyeWZpC5EqGsxI1G609m9G/dURRKwYfez/f2ATzpn5QjEX7LrLWBM8r Generated-by-Nova"
- },
- "input-param": false,
- "dictionary-name": "pub_key",
- "dictionary-source": "input",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "int_private_net_id",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- },
- "default": "${int_private_net_id}"
- },
- "input-param": false,
- "dictionary-name": "int_private_net_id",
- "dictionary-source": "default",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "onap_private_net_id",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- },
- "default": ""
- },
- "input-param": false,
- "dictionary-name": "onap_private_net_id",
- "dictionary-source": "input",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "onap_private_subnet_id",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- },
- "default": ""
- },
- "input-param": false,
- "dictionary-name": "onap_private_subnet_id",
- "dictionary-source": "input",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "pktgen_private_net_cidr",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- },
- "default": ""
- },
- "input-param": false,
- "dictionary-name": "pktgen_private_net_cidr",
- "dictionary-source": "processor-db",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "vdns_int_private_ip_0",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- },
- "default": "${vdns_int_private_ip_0}"
- },
- "input-param": false,
- "dictionary-name": "vdns_int_private_ip_0",
- "dictionary-source": "default",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "vdns_onap_private_ip_0",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- },
- "default": "${vdns_onap_private_ip_0}"
- },
- "input-param": false,
- "dictionary-name": "vdns_onap_private_ip_0",
- "dictionary-source": "default",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "vlb_int_pktgen_private_ip_0",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- },
- "default": "${vlb_int_pktgen_private_ip_0}"
- },
- "input-param": false,
- "dictionary-name": "vlb_int_pktgen_private_ip_0",
- "dictionary-source": "default",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "vlb_onap_private_ip_0",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- },
- "default": "${vlb_onap_private_ip_0}"
- },
- "input-param": false,
- "dictionary-name": "vlb_onap_private_ip_0",
- "dictionary-source": "default",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "vpg_onap_private_ip_0",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- },
- "default": "${vpg_onap_private_ip_0}"
- },
- "input-param": false,
- "dictionary-name": "vpg_onap_private_ip_0",
- "dictionary-source": "default",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "int_pktgen_private_net_id",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- },
- "default": "${int_pktgen_private_net_id}"
- },
- "input-param": false,
- "dictionary-name": "int_pktgen_private_net_id",
- "dictionary-source": "default",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "int_pktgen_private_subnet_id",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- },
- "default": "${int_pktgen_private_subnet_id}"
- },
- "input-param": false,
- "dictionary-name": "int_pktgen_private_subnet_id",
- "dictionary-source": "default",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "int_private_subnet_id",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- },
- "default": "${int_private_subnet_id}"
- },
- "input-param": false,
- "dictionary-name": "int_private_subnet_id",
- "dictionary-source": "default",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "public_net_id",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- },
- "default": ""
- },
- "input-param": false,
- "dictionary-name": "public_net_id",
- "dictionary-source": "input",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "onap_private_net_cidr",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- },
- "default": ""
- },
- "input-param": false,
- "dictionary-name": "onap_private_net_cidr",
- "dictionary-source": "processor-db",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "sec_group",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
- },
- "input-param": false,
- "dictionary-name": "sec_group",
- "dictionary-source": "input",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "service-instance-id",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- },
- "default": ""
- },
- "input-param": false,
- "dictionary-name": "service-instance-id",
- "dictionary-source": "input",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "vlb_int_private_ip_0",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- },
- "default": "${vlb_int_private_ip_0}"
- },
- "input-param": false,
- "dictionary-name": "vlb_int_private_ip_0",
- "dictionary-source": "default",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "vlb_private_net_cidr",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- },
- "default": ""
- },
- "input-param": false,
- "dictionary-name": "vlb_private_net_cidr",
- "dictionary-source": "processor-db",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "vnf-id",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- },
- "default": ""
- },
- "input-param": false,
- "dictionary-name": "vnf-id",
- "dictionary-source": "input",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "vnf-model-customization-uuid",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- },
- "default": ""
- },
- "input-param": false,
- "dictionary-name": "vnf-model-customization-uuid",
- "dictionary-source": "input",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "vf-naming-policy",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- },
- "default": "SDNC_Policy.Config_MS_ONAP_VNF_NAMING_TIMESTAMP"
- },
- "input-param": false,
- "dictionary-name": "vf-naming-policy",
- "dictionary-source": "default",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "vnf_name",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- },
- "default": "${vnf_name}"
- },
- "input-param": false,
- "dictionary-name": "vnf_name",
- "dictionary-source": "default",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "aic-cloud-region",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- },
- "default": ""
- },
- "input-param": false,
- "dictionary-name": "aic-cloud-region",
- "dictionary-source": "input",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "management-prefix-id",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- },
- "default": ""
- },
- "input-param": false,
- "dictionary-name": "management-prefix-id",
- "dictionary-source": "processor-db",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "private1-prefix-id",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- },
- "default": ""
- },
- "input-param": false,
- "dictionary-name": "private1-prefix-id",
- "dictionary-source": "processor-db",
- "dependencies": [],
- "version": 0
- },
- {
- "name": "private2-prefix-id",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- },
- "default": ""
- },
- "input-param": false,
- "dictionary-name": "private2-prefix-id",
- "dictionary-source": "processor-db",
- "dependencies": [],
- "version": 0
- }
+[{
+ "name": "cloud_env",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": true,
+ "dictionary-name": "cloud_env",
+ "dictionary-source": "input",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "dcae_collector_ip",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "dcae_collector_ip",
+ "dictionary-source": "input",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "vnf_assign_aai",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vnf_assign_aai",
+ "dictionary-source": "aai-data",
+ "dependencies": [ "vnf-id",
+ "vnf_name"],
+ "version": 0
+ },
+ {
+ "name": "demo_artifacts_version",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "demo_artifacts_version",
+ "dictionary-source": "input",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "flavor_name",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "flavor_name",
+ "dictionary-source": "input",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "image_name",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "image_name",
+ "dictionary-source": "input",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "vpg_int_pktgen_private_ip_0",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ },
+ "metadata": {
+ "transform-template": "${vpg_int_pktgen_private_ip_0.replaceAll(\"/.+\", \"\")}"
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vpg_int_pktgen_private_ip_0",
+ "dictionary-source": "rest",
+ "dependencies": ["private2-prefix-id"],
+ "version": 0
+ },
+ {
+ "name": "int_pktgen_private_net_id",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ },
+ "default": "private2",
+ "metadata": {
+ "transform-template": "${vnf_name}_${int_pktgen_private_net_id}"
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "int_pktgen_private_net_id",
+ "dictionary-source": "default",
+ "dependencies": ["vnf_name"],
+ "version": 0
+ },
+ {
+ "name": "int_pktgen_private_subnet_id",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ },
+ "default": "private2",
+ "metadata": {
+ "transform-template": "${vnf_name}_${int_pktgen_private_subnet_id}_subnet"
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "int_pktgen_private_subnet_id",
+ "dictionary-source": "default",
+ "dependencies": ["vnf_name"],
+ "version": 0
+ },
+ {
+ "name": "int_private_net_id",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ },
+ "default": "private1",
+ "metadata": {
+ "transform-template": "${vnf_name}_${int_private_net_id}"
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "int_private_net_id",
+ "dictionary-source": "default",
+ "dependencies": ["vnf_name"],
+ "version": 0
+ },
+ {
+ "name": "int_private_subnet_id",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ },
+ "default": "private1",
+ "metadata": {
+ "transform-template": "${vnf_name}_${int_private_subnet_id}_subnet"
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "int_private_subnet_id",
+ "dictionary-source": "default",
+ "dependencies": ["vnf_name"],
+ "version": 0
+ },
+ {
+ "name": "install_script_version",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "install_script_version",
+ "dictionary-source": "input",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "pub_key",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "pub_key",
+ "dictionary-source": "input",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "onap_private_net_id",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "onap_private_net_id",
+ "dictionary-source": "input",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "onap_private_subnet_id",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "onap_private_subnet_id",
+ "dictionary-source": "input",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "pktgen_private_net_cidr",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "pktgen_private_net_cidr",
+ "dictionary-source": "processor-db",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "vlb_int_pktgen_private_ip_0",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ },
+ "metadata": {
+ "transform-template": "${vlb_int_pktgen_private_ip_0.replaceAll(\"/.+\", \"\")}"
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vlb_int_pktgen_private_ip_0",
+ "dictionary-source": "rest",
+ "dependencies": ["private2-prefix-id"],
+ "version": 0
+ },
+ {
+ "name": "vlb_onap_private_ip_0",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ },
+ "metadata": {
+ "transform-template": "${vlb_onap_private_ip_0.replaceAll(\"/.+\", \"\")}"
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vlb_onap_private_ip_0",
+ "dictionary-source": "rest",
+ "dependencies": ["management-prefix-id"],
+ "version": 0
+ },
+ {
+ "name": "vpg_onap_private_ip_0",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ },
+ "metadata": {
+ "transform-template": "${vpg_onap_private_ip_0.replaceAll(\"/.+\", \"\")}"
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vpg_onap_private_ip_0",
+ "dictionary-source": "rest",
+ "dependencies": ["management-prefix-id"],
+ "version": 0
+ },
+
+ {
+ "name": "public_net_id",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "public_net_id",
+ "dictionary-source": "input",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "onap_private_net_cidr",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "onap_private_net_cidr",
+ "dictionary-source": "processor-db",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "sec_group",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "sec_group",
+ "dictionary-source": "input",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "service-instance-id",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "service-instance-id",
+ "dictionary-source": "input",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "vlb_int_private_ip_0",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ },
+ "metadata": {
+ "transform-template": "${vlb_int_private_ip_0.replaceAll(\"/.+\", \"\")}"
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vlb_int_private_ip_0",
+ "dictionary-source": "rest",
+ "dependencies": ["private1-prefix-id"],
+ "version": 0
+ },
+ {
+ "name": "vlb_private_net_cidr",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vlb_private_net_cidr",
+ "dictionary-source": "processor-db",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "vnf-id",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vnf-id",
+ "dictionary-source": "input",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "vnf-model-customization-uuid",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vnf-model-customization-uuid",
+ "dictionary-source": "input",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "vf-naming-policy",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ },
+ "default": "SDNC_Policy.ONAP_NF_NAMING_TIMESTAMP"
+ },
+ "input-param": false,
+ "dictionary-name": "vf-naming-policy",
+ "dictionary-source": "default",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "vnf_name",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vnf_name",
+ "dictionary-source": "rest",
+ "dependencies": [
+ "aic-cloud-region",
+ "vf-naming-policy",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "aic-cloud-region",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "aic-cloud-region",
+ "dictionary-source": "input",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "management-prefix-id",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "management-prefix-id",
+ "dictionary-source": "processor-db",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "private1-prefix-id",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "private1-prefix-id",
+ "dictionary-source": "processor-db",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "private2-prefix-id",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "private2-prefix-id",
+ "dictionary-source": "processor-db",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "vlb_0_int_pktgen_private_port_0_mac",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vlb_0_int_pktgen_private_port_0_mac",
+ "dictionary-source": "input",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "vpg_0_int_pktgen_private_port_0_mac",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vpg_0_int_pktgen_private_port_0_mac",
+ "dictionary-source": "input",
+ "dependencies": [],
+ "version": 0
+ }
] \ No newline at end of file
diff --git a/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vnf-template.vtl b/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vnf-template.vtl
deleted file mode 100644
index 0080e2b2d..000000000
--- a/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vnf-template.vtl
+++ /dev/null
@@ -1,284 +0,0 @@
-{
- "resource-accumulator-resolved-data": [
- {
- "param-name": "service-instance-id",
- "param-value": "${service-instance-id}"
- },
- {
- "param-name": "vnf_id",
- "param-value": "${vnf-id}"
- },
- {
- "param-name": "vf-naming-policy",
- "param-value": "${vf-naming-policy}"
- },
- {
- "param-name": "vnf-model-customization-uuid",
- "param-value": "${vnf-model-customization-uuid}"
- },
- {
- "param-name": "aic-cloud-region",
- "param-value": "${aic-cloud-region}"
- },
- {
- "param-name": "onap_private_net_id",
- "param-value": "${onap_private_net_id}"
- },
- {
- "param-name": "image_name",
- "param-value": "${image_name}"
- },
- {
- "param-name": "onap_private_subnet_id",
- "param-value": "${onap_private_subnet_id}"
- },
- {
- "param-name": "vfccustomizationuuid",
- "param-value": "${vfccustomizationuuid}"
- },
- {
- "param-name": "vf-module-model-customization-uuid",
- "param-value": "${vf-module-model-customization-uuid}"
- },
- {
- "param-name": "cloud_env",
- "param-value": "${cloud_env}"
- },
- {
- "param-name": "flavor_name",
- "param-value": "${flavor_name}"
- },
- {
- "param-name": "install_script_version",
- "param-value": "${install_script_version}"
- },
- {
- "param-name": "pub_key",
- "param-value": "${pub_key}"
- },
- {
- "param-name": "sec_group",
- "param-value": "${sec_group}"
- },
- {
- "param-name": "demo_artifacts_version",
- "param-value": "${demo_artifacts_version}"
- },
- {
- "param-name": "public_net_id",
- "param-value": "${public_net_id}"
- },
- {
- "param-name": "onap_private_net_cidr",
- "param-value": "${onap_private_net_cidr}"
- },
- {
- "param-name": "pktgen_private_net_cidr",
- "param-value": "${pktgen_private_net_cidr}"
- },
- {
- "param-name": "vlb_private_net_cidr",
- "param-value": "${vlb_private_net_cidr}"
- },
- {
- "param-name": "key_name",
- "param-value": "olc-key"
- }
- ],
- "capability-data": [
- {
- "capability-name": "generate-name",
- "key-mapping": [
- {
- "payload": [
- {
- "param-name": "resource-name",
- "param-value": "vnf_name"
- },
- {
- "param-name": "resource-value",
- "param-value": "${vnf_name}"
- },
- {
- "param-name": "external-key",
- "param-value": "${vnf-id}_vnf_name"
- },
- {
- "param-name": "policy-instance-name",
- "param-value": "${vf-naming-policy}"
- },
- {
- "param-name": "naming-type",
- "param-value": "VNF"
- },
- {
- "param-name": "AIC_CLOUD_REGION",
- "param-value": "${aic-cloud-region}"
- }
- ],
- "output-key-mapping": [
- {
- "resource-name": "vnf_name",
- "resource-value": "${vnf_name}"
- }
- ]
- }
- ]
- },
- {
- "capability-name": "netbox-ip-assign",
- "key-mapping": [
-
- {
- "payload": [
- {
- "param-name": "service-instance-id",
- "param-value": "${service-instance-id}"
- },
- {
- "param-name": "prefix-id",
- "param-value": "${private1-prefix-id}"
- },
- {
- "param-name": "vnf-id",
- "param-value": "${vnf-id}"
- },
- {
- "param-name": "external_key",
- "param-value": "${vnf-id}-vlb_int_private_ip_0"
- }
- ],
- "output-key-mapping": [
- {
- "resource-name": "vlb_int_private_ip_0",
- "resource-value": "${vlb_int_private_ip_0}"
- }
- ]
- },
- {
- "payload": [
- {
- "param-name": "service-instance-id",
- "param-value": "${service-instance-id}"
- },
- {
- "param-name": "prefix-id",
- "param-value": "${private2-prefix-id}"
- },
- {
- "param-name": "vnf-id",
- "param-value": "${vnf-id}"
- },
- {
- "param-name": "external_key",
- "param-value": "${vnf-id}-vlb_int_pktgen_private_ip_0"
- }
- ],
- "output-key-mapping": [
- {
- "resource-name": "vlb_int_pktgen_private_ip_0",
- "resource-value": "${vlb_int_pktgen_private_ip_0}"
- }
- ]
- },
- {
- "payload": [
- {
- "param-name": "service-instance-id",
- "param-value": "${service-instance-id}"
- },
- {
- "param-name": "prefix-id",
- "param-value": "${management-prefix-id}"
- },
- {
- "param-name": "vnf-id",
- "param-value": "${vnf-id}"
- },
- {
- "param-name": "external_key",
- "param-value": "${vnf-id}-vpg_onap_private_ip_0"
- }
- ],
- "output-key-mapping": [
- {
- "resource-name": "vpg_onap_private_ip_0",
- "resource-value": "${vpg_onap_private_ip_0}"
- }
- ]
- },
- {
- "payload": [
- {
- "param-name": "service-instance-id",
- "param-value": "${service-instance-id}"
- },
- {
- "param-name": "prefix-id",
- "param-value": "${management-prefix-id}"
- },
- {
- "param-name": "vnf-id",
- "param-value": "${vnf-id}"
- },
- {
- "param-name": "external_key",
- "param-value": "${vnf-id}-vlb_onap_private_ip_0"
- }
- ],
- "output-key-mapping": [
- {
- "resource-name": "vlb_onap_private_ip_0",
- "resource-value": "${vlb_onap_private_ip_0}"
- }
- ]
- },
- {
- "payload": [
- {
- "param-name": "service-instance-id",
- "param-value": "${service-instance-id}"
- },
- {
- "param-name": "prefix-id",
- "param-value": "${private2-prefix-id}"
- },
- {
- "param-name": "vnf-id",
- "param-value": "${vnf-id}"
- },
- {
- "param-name": "external_key",
- "param-value": "${vnf-id}-vpg_int_pktgen_private_ip_0"
- }
- ],
- "output-key-mapping": [
- {
- "resource-name": "vpg_int_pktgen_private_ip_0",
- "resource-value": "${vpg_int_pktgen_private_ip_0}"
- }
- ]
- }
- ]
- },
- {
- "capability-name": "aai-vnf-put",
- "key-mapping": [
- {
- "payload": [
- {
- "param-name": "generic-vnf",
- "param-value": "generic-vnf"
- }
- ],
- "output-key-mapping": [
- {
- "resource-name": "aai-vnf-put",
- "resource-value": "${status}"
- }
- ]
- }
- ]
- }
- ]
-} \ No newline at end of file
diff --git a/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vpkg-mapping.json b/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vpkg-mapping.json
index 25721e299..4b079fdc9 100644
--- a/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vpkg-mapping.json
+++ b/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vpkg-mapping.json
@@ -11,15 +11,42 @@
],
"entry_schema": {
"type": ""
- },
- "default": "openstack"
+ }
},
"input-param": false,
"dictionary-name": "cloud_env",
- "dictionary-source": "default",
- "dependencies": [],
- "version": 0
- },
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "vf-module-assign",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [{}],
+ "entry_schema": {
+ "type": ""
+ },
+ "metadata": {
+ "transform-template": "${vf-module-assign}_${service-instance-id}"
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vf-module-assign",
+ "dictionary-source": "aai-data",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id",
+ "vf-module-name"
+ ],
+ "version": 0
+ },
{
"name": "vf-module-name",
"property": {
@@ -32,13 +59,12 @@
],
"entry_schema": {
"type": ""
- },
- "default": "${vf-module-name}"
+ }
},
"input-param": false,
"dictionary-name": "vf-module-name",
- "dictionary-source": "default",
- "dependencies": [],
+ "dictionary-source": "rest",
+ "dependencies": ["vnf_name", "vf-module-label", "vf-module-type", "vf-naming-policy", "vf-module-id"],
"version": 0
},
{
@@ -107,27 +133,7 @@
"dependencies": [],
"version": 0
},
- {
- "name": "keypair",
- "property": {
- "description": "",
- "required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- },
- "default": "vlb_key"
- },
- "input-param": false,
- "dictionary-name": "keypair",
- "dictionary-source": "default",
- "dependencies": [],
- "version": 0
- },
+
{
"name": "nb_api_version",
"property": {
@@ -140,13 +146,15 @@
],
"entry_schema": {
"type": ""
- },
- "default": "1.2.0"
+ }
},
"input-param": false,
"dictionary-name": "nb_api_version",
- "dictionary-source": "default",
- "dependencies": [],
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
"version": 0
},
{
@@ -161,13 +169,15 @@
],
"entry_schema": {
"type": ""
- },
- "default": "https://nexus.onap.org"
+ }
},
"input-param": false,
"dictionary-name": "nexus_artifact_repo",
- "dictionary-source": "default",
- "dependencies": [],
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
"version": 0
},
{
@@ -630,13 +640,12 @@
],
"entry_schema": {
"type": ""
- },
- "default": "${vpg_name_0}"
+ }
},
"input-param": false,
"dictionary-name": "vpg_name_0",
- "dictionary-source": "default",
- "dependencies": [],
+ "dictionary-source": "rest",
+ "dependencies": ["vf-module-id", "vf-module-name", "vf-module-label", "nfc-naming-code", "vf-naming-policy"],
"version": 0
},
{
@@ -651,8 +660,7 @@
],
"entry_schema": {
"type": ""
- },
- "default": ""
+ }
},
"input-param": false,
"dictionary-name": "private2-prefix-id",
@@ -713,12 +721,14 @@
"entry_schema": {
"type": ""
},
- "default": "${pg_int}"
+ "metadata": {
+ "transform-template": "${pg_int.replaceAll(\"/.+\", \"\")}"
+ }
},
"input-param": false,
"dictionary-name": "pg_int",
- "dictionary-source": "default",
- "dependencies": [],
+ "dictionary-source": "rest",
+ "dependencies": ["private2-prefix-id"],
"version": 0
},
{
diff --git a/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vpkg-template.vtl b/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vpkg-template.vtl
deleted file mode 100644
index bd745b179..000000000
--- a/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vpkg-template.vtl
+++ /dev/null
@@ -1,273 +0,0 @@
-{
- "resource-accumulator-resolved-data": [
- {
- "param-name": "service-instance-id",
- "param-value": "${service-instance-id}"
- },
- {
- "param-name": "vnf_id",
- "param-value": "${vnf-id}"
- },
- {
- "param-name": "vnf_name",
- "param-value": "${vnf_name}"
- },
- {
- "param-name": "vnf_model_customization_uuid",
- "param-value": "${vnf-model-customization-uuid}"
- },
- {
- "param-name": "vpg_onap_private_ip_0",
- "param-value": "${vpg_onap_private_ip_0}"
- },
- {
- "param-name": "vf_module_id",
- "param-value": "${vf-module-id}"
- },
- {
- "param-name": "vf_module_type",
- "param-value": "${vf-module-type}"
- },
- {
- "param-name": "vf_module_customization_uuid",
- "param-value": "${vf-module-model-customization-uuid}"
- },
- {
- "param-name": "vfc_customization_uuid",
- "param-value": "${vfccustomizationuuid}"
- },
- {
- "param-name": "aic-cloud-region",
- "param-value": "${aic-cloud-region}"
- },
- {
- "param-name": "vm-type",
- "param-value": "${vm-type}"
- },
- {
- "param-name": "vnfc-model-customization-uuid",
- "param-value": "${vfccustomizationuuid}"
- },
- {
- "param-name": "vnfc-model-invariant-uuid",
- "param-value": "${vnfc-model-invariant-uuid}"
- },
- {
- "param-name": "vnfc-model-version",
- "param-value": "${vnfc-model-version}"
- },
- {
- "param-name": "nfc-naming-code",
- "param-value": "${nfc-naming-code}"
- },
- {
- "param-name": "cloud_env",
- "param-value": "openstack"
- },
- {
- "param-name": "repo_url_artifacts",
- "param-value": "https://nexus.onap.org/content/groups/staging"
- },
- {
- "param-name": "repo_url_blob",
- "param-value": "https://nexus.onap.org/content/repositories/raw"
- },
- {
- "param-name": "vpg_image_name",
- "param-value": "${vpg_image_name}"
- },
- {
- "param-name": "vpg_int_pktgen_private_ip_0",
- "param-value": "${vpg_int_pktgen_private_ip_0}"
- },
- {
- "param-name": "vpg_flavor_name",
- "param-value": "${vpg_flavor_name}"
- },
- {
- "param-name": "key_name",
- "param-value": "${key_name}"
- },
- {
- "param-name": "pub_key",
- "param-value": "${pub_key}"
- },
- {
- "param-name": "install_script_version",
- "param-value": "${install_script_version}"
- },
- {
- "param-name": "demo_artifacts_version",
- "param-value": "${demo_artifacts_version}"
- },
- {
- "param-name": "nb_api_version",
- "param-value": "1.2.0"
- },
- {
- "param-name": "public_net_id",
- "param-value": "${public_net_id}"
- },
- {
- "param-name": "onap_private_net_id",
- "param-value": "${onap_private_net_id}"
- },
- {
- "param-name": "onap_private_subnet_id",
- "param-value": "${onap_private_subnet_id}"
- },
- {
- "param-name": "onap_private_net_cidr",
- "param-value": "${onap_private_net_cidr}"
- },
- {
- "param-name": "nexus_artifact_repo",
- "param-value": "https://nexus.onap.org"
- },
- {
- "param-name": "sec_group",
- "param-value": "${sec_group}"
- }
- ],
- "capability-data": [
- {
- "capability-name": "generate-name",
- "key-mapping": [
- {
- "payload": [
- {
- "param-name": "resource-name",
- "param-value": "vpg_name_0"
- },
- {
- "param-name": "resource-value",
- "param-value": "${vpg_name_0}"
- },
- {
- "param-name": "external-key",
- "param-value": "${vf-module-id}_vpg_name_0"
- },
- {
- "param-name": "policy-instance-name",
- "param-value": "${vf-naming-policy}"
- },
- {
- "param-name": "naming-type",
- "param-value": "VNFC"
- },
- {
- "param-name": "VNF_NAME",
- "param-value": "${vnf_name}"
- },
- {
- "param-name": "NFC_NAMING_CODE",
- "param-value": "${nfc-naming-code}"
- }
- ],
- "output-key-mapping": [
- {
- "resource-name": "vpg_name_0",
- "resource-value": "${vpg_name_0}"
- }
- ]
- },
- {
- "payload": [
- {
- "param-name": "resource-name",
- "param-value": "vf-module-name"
- },
- {
- "param-name": "resource-value",
- "param-value": "${vf-module-name}"
- },
- {
- "param-name": "external-key",
- "param-value": "${vf-module-id}_vf-module-name"
- },
- {
- "param-name": "policy-instance-name",
- "param-value": "${vf-naming-policy}"
- },
- {
- "param-name": "naming-type",
- "param-value": "VF-MODULE"
- },
- {
- "param-name": "VNF_NAME",
- "param-value": "${vnf_name}"
- },
- {
- "param-name": "VF_MODULE_LABEL",
- "param-value": "${vf-module-label}"
- },
- {
- "param-name": "vlb_int_pktgen_private_ip_0",
- "param-value": "${vlb_int_pktgen_private_ip_0}"
- },
- {
- "param-name": "VF_MODULE_TYPE",
- "param-value": "${vf-module-type}"
- }
- ],
- "output-key-mapping": [
- {
- "resource-name": "vf-module-name",
- "resource-value": "${vf-module-name}"
- }
- ]
- }
- ]
- },
- {
- "capability-name": "netbox-ip-assign",
- "key-mapping": [
- {
- "payload": [
- {
- "param-name": "service-instance-id",
- "param-value": "${service-instance-id}"
- },
- {
- "param-name": "prefix-id",
- "param-value": "${private2-prefix-id}"
- },
- {
- "param-name": "vf-module-id",
- "param-value": "${vf-module-id}"
- },
- {
- "param-name": "external_key",
- "param-value": "${vf-module-id}-pg_int"
- }
- ],
- "output-key-mapping": [
- {
- "resource-name": "pg_int",
- "resource-value": "${pg_int}"
- }
- ]
- }
- ]
- },
- {
- "capability-name": "aai-vf-module-put",
- "key-mapping": [
- {
- "payload": [
- {
- "param-name": "vf-module",
- "param-value": "vf-module"
- }
- ],
- "output-key-mapping": [
- {
- "resource-name": "aai-vf-module-put",
- "resource-value": "${status}"
- }
- ]
- }
- ]
- }
- ]
-} \ No newline at end of file
diff --git a/docs/conf.py b/docs/conf.py
index 8f40e8b81..3b28eb74a 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -12,4 +12,4 @@ intersphinx_mapping = {}
html_last_updated_fmt = '%d-%b-%y %H:%M'
def setup(app):
- app.add_stylesheet("css/ribbon_onap.css")
+ app.add_css_file("css/ribbon_onap.css")
diff --git a/docs/datadictionary/complexResponse.rst b/docs/datadictionary/complexResponse.rst
index d32d13de5..3864c48e2 100644
--- a/docs/datadictionary/complexResponse.rst
+++ b/docs/datadictionary/complexResponse.rst
@@ -8,14 +8,16 @@ complex Response code
.. code-block:: json
:linenos:
- "id": 4,
- "address": "192.168.10.2/32",
- "vrf": null,
- "tenant": null,
- "status": 1,
- "role": null,
- "interface": null,
- "description": "",
- "nat_inside": null,
- "created": "2018-08-30",
- "last_updated": "2018-08-30T14:59:05.277820Z" \ No newline at end of file
+ {
+ "id": 4,
+ "address": "192.168.10.2/32",
+ "vrf": null,
+ "tenant": null,
+ "status": 1,
+ "role": null,
+ "interface": null,
+ "description": "",
+ "nat_inside": null,
+ "created": "2018-08-30",
+ "last_updated": "2018-08-30T14:59:05.277820Z"
+ }
diff --git a/docs/datadictionary/create_netbox_ip_address.rst b/docs/datadictionary/create_netbox_ip_address.rst
index f6d83c500..3ba733a18 100644
--- a/docs/datadictionary/create_netbox_ip_address.rst
+++ b/docs/datadictionary/create_netbox_ip_address.rst
@@ -3,9 +3,11 @@
.. Copyright (C) 2019 IBM.
create_netbox_ip_address code
-=============================
+=============================
-{
+.. code-block:: json
+
+ {
"tags" : "oam-local-ipv4-address",
"name" : "create_netbox_ip",
"property" : {
@@ -33,4 +35,4 @@ create_netbox_ip_address code
}
}
}
- }
+ }
diff --git a/docs/datadictionary/dbsystemcode.rst b/docs/datadictionary/dbsystemcode.rst
index d6cda5b6c..22bdb9732 100644
--- a/docs/datadictionary/dbsystemcode.rst
+++ b/docs/datadictionary/dbsystemcode.rst
@@ -7,11 +7,13 @@ Dbsystemcode
.. code-block:: json
:linenos:
- "dsl_definitions": {
- "dynamic-db-source": {
- "type": "maria-db",
- "url": "jdbc:mysql://localhost:3306/sdnctl",
- "username": <username>,
- "password": <password>
+ {
+ "dsl_definitions": {
+ "dynamic-db-source": {
+ "type": "maria-db",
+ "url": "jdbc:mysql://localhost:3306/sdnctl",
+ "username": "<username>",
+ "password": "<password>"
+ }
+ }
}
- } \ No newline at end of file
diff --git a/docs/datadictionary/resourcedefinitioncodesnip.rst b/docs/datadictionary/resourcedefinitioncodesnip.rst
index 6504a07c3..785614bc5 100644
--- a/docs/datadictionary/resourcedefinitioncodesnip.rst
+++ b/docs/datadictionary/resourcedefinitioncodesnip.rst
@@ -8,42 +8,44 @@ Source Capability Code
.. code-block:: json
:linenos:
- "description": "This is Component Resource Source Node Type",
- "version": "1.0.0",
- "properties": {
- "script-type": {
- "required": true,
- "type": "string",
- "default": "kotlin",
- "constraints": [
- {
- "valid_values": [
- "kotlin",
- "jython"
- ]
- }
- ]
- },
- "script-class-reference": {
- "description": "Capability reference name for internal and kotlin, for jython script file path",
- "required": true,
- "type": "string"
- },
- "instance-dependencies": {
- "required": false,
- "description": "Instance dependency Names to Inject to Kotlin / Jython Script.",
- "type": "list",
- "entry_schema": {
- "type": "string"
- }
- },
- "key-dependencies": {
- "description": "Resource Resolution dependency dictionary names.",
- "required": true,
- "type": "list",
- "entry_schema": {
- "type": "string"
- }
- }
- },
- "derived_from": "tosca.nodes.ResourceSource" \ No newline at end of file
+ {
+ "description": "This is Component Resource Source Node Type",
+ "version": "1.0.0",
+ "properties": {
+ "script-type": {
+ "required": true,
+ "type": "string",
+ "default": "kotlin",
+ "constraints": [
+ {
+ "valid_values": [
+ "kotlin",
+ "jython"
+ ]
+ }
+ ]
+ },
+ "script-class-reference": {
+ "description": "Capability reference name for internal and kotlin, for jython script file path",
+ "required": true,
+ "type": "string"
+ },
+ "instance-dependencies": {
+ "required": false,
+ "description": "Instance dependency Names to Inject to Kotlin / Jython Script.",
+ "type": "list",
+ "entry_schema": {
+ "type": "string"
+ }
+ },
+ "key-dependencies": {
+ "description": "Resource Resolution dependency dictionary names.",
+ "required": true,
+ "type": "list",
+ "entry_schema": {
+ "type": "string"
+ }
+ }
+ },
+ "derived_from": "tosca.nodes.ResourceSource"
+ }
diff --git a/docs/datadictionary/resourcesource.rst b/docs/datadictionary/resourcesource.rst
index 49ef6a1a3..4d4619a0e 100644
--- a/docs/datadictionary/resourcesource.rst
+++ b/docs/datadictionary/resourcesource.rst
@@ -2,7 +2,7 @@
.. http://creativecommons.org/licenses/by/4.0
.. Copyright (C) 2019 IBM.
-Resource Source
+Resource Source
---------------
Input:
@@ -10,32 +10,37 @@ Input:
Expects the value to be provided as input to the request.
-
.. code-block:: json
:linenos:
-
- source-input
+
{
- "description": "This is Input Resource Source Node Type",
- "version": "1.0.0",
- "properties": {},
- "derived_from": "tosca.nodes.ResourceSource"
+ "source-input" :
+ {
+ "description": "This is Input Resource Source Node Type",
+ "version": "1.0.0",
+ "properties": {},
+ "derived_from": "tosca.nodes.ResourceSource"
+ }
}
+
Default:
========
Expects the value to be defaulted in the model itself.
+
.. code-block:: json
:linenos:
-
- source-default
+
{
- "description": "This is Default Resource Source Node Type",
- "version": "1.0.0",
- "properties": {},
- "derived_from": "tosca.nodes.ResourceSource"
+ "source-default" :
+ {
+ "description": "This is Default Resource Source Node Type",
+ "version": "1.0.0",
+ "properties": {},
+ "derived_from": "tosca.nodes.ResourceSource"
+ }
}
diff --git a/docs/datadictionary/restauth.rst b/docs/datadictionary/restauth.rst
index 9f628696c..8051a6ae2 100644
--- a/docs/datadictionary/restauth.rst
+++ b/docs/datadictionary/restauth.rst
@@ -12,12 +12,14 @@ token-auth:
.. code-block:: json
:linenos:
- "dsl_definitions": {
- "dynamic-rest-source": {
- "type" : "token-auth",
- "url" : "http://localhost:32778",
- "token" : <token>
- }
+ {
+ "dsl_definitions": {
+ "dynamic-rest-source": {
+ "type" : "token-auth",
+ "url" : "http://localhost:32778",
+ "token" : "<token>"
+ }
+ }
}
basic-auth:
@@ -26,13 +28,15 @@ basic-auth:
.. code-block:: json
:linenos:
- "dsl_definitions": {
- "dynamic-rest-source": {
- "type" : "basic-auth",
- "url" : "http://localhost:32778",
- "username" : <username>,
- "password": <password>
- }
+ {
+ "dsl_definitions": {
+ "dynamic-rest-source": {
+ "type" : "basic-auth",
+ "url" : "http://localhost:32778",
+ "username" : "<username>",
+ "password": "<password>"
+ }
+ }
}
ssl-basic-auth:
@@ -41,14 +45,16 @@ ssl-basic-auth:
.. code-block:: json
:linenos:
- "dsl_definitions": {
- "dynamic-rest-source": {
- "type" : "ssl-basic-auth",
- "url" : "http://localhost:32778",
- "keyStoreInstance": "JKS or PKCS12",
- "sslTrust": "trusture",
- "sslTrustPassword": <password>,
- "sslKey": "keystore",
- "sslKeyPassword: <password>
- }
- } \ No newline at end of file
+ {
+ "dsl_definitions": {
+ "dynamic-rest-source": {
+ "type" : "ssl-basic-auth",
+ "url" : "http://localhost:32778",
+ "keyStoreInstance": "JKS or PKCS12",
+ "sslTrust": "trusture",
+ "sslTrustPassword": "<password>",
+ "sslKey": "keystore",
+ "sslKeyPassword": "<password>"
+ }
+ }
+ }
diff --git a/docs/datadictionary/restsourcecode.rst b/docs/datadictionary/restsourcecode.rst
index 243a65ce9..c59bcd23a 100644
--- a/docs/datadictionary/restsourcecode.rst
+++ b/docs/datadictionary/restsourcecode.rst
@@ -8,83 +8,85 @@ Rest Source Code:
.. code-block:: json
:linenos:
- "description": "This is Rest Resource Source Node Type",
- "version": "1.0.0",
- "properties": {
- "type": {
- "required": false,
- "type": "string",
- "default": "JSON",
- "constraints": [
- {
- "valid_values": [
- "JSON"
- ]
- }
- ]
- },
- "verb": {
- "required": false,
- "type": "string",
- "default": "GET",
- "constraints": [
- {
- "valid_values": [
- "GET", "POST", "DELETE", "PUT"
- ]
- }
- ]
- },
- "payload": {
- "required": false,
- "type": "string",
- "default": ""
- },
- "endpoint-selector": {
- "required": false,
- "type": "string"
- },
- "url-path": {
- "required": true,
- "type": "string"
- },
- "path": {
- "required": true,
- "type": "string"
- },
- "expression-type": {
- "required": false,
- "type": "string",
- "default": "JSON_PATH",
- "constraints": [
- {
- "valid_values": [
- "JSON_PATH",
- "JSON_POINTER"
- ]
- }
- ]
- },
- "input-key-mapping": {
- "required": false,
- "type": "map",
- "entry_schema": {
- "type": "string"
- }
- },
- "output-key-mapping": {
- "required": false,
- "type": "map",
- "entry_schema": {
- "type": "string"
- }
- },
- "key-dependencies": {
- "required": true,
- "type": "list",
- "entry_schema": {
- "type": "string"
- }
- }
- },
- "derived_from": "tosca.nodes.ResourceSource" \ No newline at end of file
+ {
+ "description": "This is Rest Resource Source Node Type",
+ "version": "1.0.0",
+ "properties": {
+ "type": {
+ "required": false,
+ "type": "string",
+ "default": "JSON",
+ "constraints": [
+ {
+ "valid_values": [
+ "JSON"
+ ]
+ }
+ ]
+ },
+ "verb": {
+ "required": false,
+ "type": "string",
+ "default": "GET",
+ "constraints": [
+ {
+ "valid_values": [
+ "GET", "POST", "DELETE", "PUT"
+ ]
+ }
+ ]
+ },
+ "payload": {
+ "required": false,
+ "type": "string",
+ "default": ""
+ },
+ "endpoint-selector": {
+ "required": false,
+ "type": "string"
+ },
+ "url-path": {
+ "required": true,
+ "type": "string"
+ },
+ "path": {
+ "required": true,
+ "type": "string"
+ },
+ "expression-type": {
+ "required": false,
+ "type": "string",
+ "default": "JSON_PATH",
+ "constraints": [
+ {
+ "valid_values": [
+ "JSON_PATH",
+ "JSON_POINTER"
+ ]
+ }
+ ]
+ },
+ "input-key-mapping": {
+ "required": false,
+ "type": "map",
+ "entry_schema": {
+ "type": "string"
+ }
+ },
+ "output-key-mapping": {
+ "required": false,
+ "type": "map",
+ "entry_schema": {
+ "type": "string"
+ }
+ },
+ "key-dependencies": {
+ "required": true,
+ "type": "list",
+ "entry_schema": {
+ "type": "string"
+ }
+ }
+ },
+ "derived_from": "tosca.nodes.ResourceSource"
+ }
diff --git a/docs/datadictionary/sourcecapabilitycode.rst b/docs/datadictionary/sourcecapabilitycode.rst
index 145bab738..d2f66c7e0 100644
--- a/docs/datadictionary/sourcecapabilitycode.rst
+++ b/docs/datadictionary/sourcecapabilitycode.rst
@@ -8,35 +8,37 @@ Source Capability Code
.. code-block:: json
:linenos:
- "description": "This is Component Resource Source Node Type",
- "version": "1.0.0",
- "properties": {
- "script-type": {
- "required": true,
- "type": "string",
- "default": "kotlin",
- "constraints": [
- {
- "valid_values": [
- "kotlin",
- "jython"
- ]
- }
- ]
- },
- "script-class-reference": {
- "description": "Capability reference name for internal and kotlin, for jython script file path",
- "required": true,
- "type": "string"
- },
- "key-dependencies": {
- "description": "Resource Resolution dependency dictionary names.",
- "required": true,
- "type": "list",
- "entry_schema": {
- "type": "string"
- }
- }
- },
- "derived_from": "tosca.nodes.ResourceSource"
+ {
+ "description": "This is Component Resource Source Node Type",
+ "version": "1.0.0",
+ "properties": {
+ "script-type": {
+ "required": true,
+ "type": "string",
+ "default": "kotlin",
+ "constraints": [
+ {
+ "valid_values": [
+ "kotlin",
+ "jython"
+ ]
+ }
+ ]
+ },
+ "script-class-reference": {
+ "description": "Capability reference name for internal and kotlin, for jython script file path",
+ "required": true,
+ "type": "string"
+ },
+ "key-dependencies": {
+ "description": "Resource Resolution dependency dictionary names.",
+ "required": true,
+ "type": "list",
+ "entry_schema": {
+ "type": "string"
+ }
+ }
+ },
+ "derived_from": "tosca.nodes.ResourceSource"
+ }
diff --git a/docs/datadictionary/sourcedefaultcode.rst b/docs/datadictionary/sourcedefaultcode.rst
index 89c5c2c7d..41c19336c 100644
--- a/docs/datadictionary/sourcedefaultcode.rst
+++ b/docs/datadictionary/sourcedefaultcode.rst
@@ -8,7 +8,9 @@ Source Default code
.. code-block:: json
:linenos:
- "description": "This is Default Resource Source Node Type",
- "version": "1.0.0",
- "properties": {},
- "derived_from": "tosca.nodes.ResourceSource"
+ {
+ "description": "This is Default Resource Source Node Type",
+ "version": "1.0.0",
+ "properties": {},
+ "derived_from": "tosca.nodes.ResourceSource"
+ }
diff --git a/docs/datadictionary/sourceinputcode.rst b/docs/datadictionary/sourceinputcode.rst
index c400a8c4c..a70ff6ab9 100644
--- a/docs/datadictionary/sourceinputcode.rst
+++ b/docs/datadictionary/sourceinputcode.rst
@@ -8,7 +8,9 @@ Source Input code
.. code-block:: json
:linenos:
- "description": "This is Input Resource Source Node Type",
- "version": "1.0.0",
- "properties": {},
- "derived_from": "tosca.nodes.ResourceSource"
+ {
+ "description": "This is Input Resource Source Node Type",
+ "version": "1.0.0",
+ "properties": {},
+ "derived_from": "tosca.nodes.ResourceSource"
+ }
diff --git a/docs/datadictionary/sourceprimarydbcode.rst b/docs/datadictionary/sourceprimarydbcode.rst
index 949dee071..2243e0ce0 100644
--- a/docs/datadictionary/sourceprimarydbcode.rst
+++ b/docs/datadictionary/sourceprimarydbcode.rst
@@ -8,48 +8,50 @@ Source Primary DB Code:
.. code-block:: json
:linenos:
- "description": "This is Database Resource Source Node Type",
- "version": "1.0.0",
- "properties": {
- "type": {
- "required": true,
- "type": "string",
- "constraints": [
- {
- "valid_values": [
- "SQL"
- ]
- }
- ]
- },
- "endpoint-selector": {
- "required": false,
- "type": "string"
- },
- "query": {
- "required": true,
- "type": "string"
- },
- "input-key-mapping": {
- "required": false,
- "type": "map",
- "entry_schema": {
- "type": "string"
- }
- },
- "output-key-mapping": {
- "required": false,
- "type": "map",
- "entry_schema": {
- "type": "string"
- }
- },
- "key-dependencies": {
- "required": true,
- "type": "list",
- "entry_schema": {
- "type": "string"
- }
- }
- },
- "derived_from": "tosca.nodes.ResourceSource" \ No newline at end of file
+ {
+ "description": "This is Database Resource Source Node Type",
+ "version": "1.0.0",
+ "properties": {
+ "type": {
+ "required": true,
+ "type": "string",
+ "constraints": [
+ {
+ "valid_values": [
+ "SQL"
+ ]
+ }
+ ]
+ },
+ "endpoint-selector": {
+ "required": false,
+ "type": "string"
+ },
+ "query": {
+ "required": true,
+ "type": "string"
+ },
+ "input-key-mapping": {
+ "required": false,
+ "type": "map",
+ "entry_schema": {
+ "type": "string"
+ }
+ },
+ "output-key-mapping": {
+ "required": false,
+ "type": "map",
+ "entry_schema": {
+ "type": "string"
+ }
+ },
+ "key-dependencies": {
+ "required": true,
+ "type": "list",
+ "entry_schema": {
+ "type": "string"
+ }
+ }
+ },
+ "derived_from": "tosca.nodes.ResourceSource"
+ }
diff --git a/docs/designtime.rst b/docs/designtime.rst
index ac0af5132..250640b8c 100644
--- a/docs/designtime.rst
+++ b/docs/designtime.rst
@@ -40,7 +40,7 @@ While doing so, identify the resources using the same process to be resolved; fo
Services:
---------
+---------
.. toctree::
:maxdepth: 1
diff --git a/docs/installation.rst b/docs/installation.rst
index ef51fa034..6d3f0695c 100644
--- a/docs/installation.rst
+++ b/docs/installation.rst
@@ -44,7 +44,7 @@ helm install --name cds cds
Result
------
-.. code-block:: json
+.. code-block:: bash
:linenos:
$ kubectl get all --selector=release=cds
@@ -85,4 +85,4 @@ Loopback Server:
~~~~~~~~~~~~~~~~
npm install in the directory cds/cds-ui/server
-npm start should bring you the CDS UI page in your local machine with the link https://127.0.0.1:3000/ \ No newline at end of file
+npm start should bring you the CDS UI page in your local machine with the link https://127.0.0.1:3000/
diff --git a/docs/media/CDS.png b/docs/media/CDS.png
new file mode 100644
index 000000000..65f4115f8
--- /dev/null
+++ b/docs/media/CDS.png
Binary files differ
diff --git a/docs/microservices/workflow.rst b/docs/microservices/workflow.rst
index b74a49d2b..b6ea1e6fd 100644
--- a/docs/microservices/workflow.rst
+++ b/docs/microservices/workflow.rst
@@ -31,43 +31,41 @@ Below the properties of a workflow:
Workflow Example
----------------
-.. code:: json
-
-print("
-{
- "workflow": {
- "resource-assignment": { <- workflow-name
- "inputs": {
- "vnf-id": { <- static inputs
- "required": true,
- "type": "string"
- },
- "resource-assignment-properties": { <- dynamic inputs
- "required": true,
- "type": "dt-resource-assignment-properties"
- }
- },
- "steps": {
- "call-resource-assignment": { <- step-name
- "description": "Resource Assignment Workflow",
- "target": "resource-assignment-process" <- node_template targeted by the step
- }
- },
- "outputs": {
- "template-properties": { <- output
- "type": "json", <- complex type
- "value": {
- "get_attribute": [ <- uses expression to retrieve attribute from context
- "resource-assignment",
- "assignment-params"
- ]
- }
- }
- }
- }
- }
-}
-")
-
-
-TOSCA definition: http://docs.oasis-open.org/tosca/TOSCA-Simple-Profile-YAML/v1.2/csd01/TOSCA-Simple-Profile-YAML-v1.2-csd01.html#_Toc494454203 \ No newline at end of file
+::
+
+ {
+ "workflow": {
+ "resource-assignment": { <- workflow-name
+ "inputs": {
+ "vnf-id": { <- static inputs
+ "required": true,
+ "type": "string"
+ },
+ "resource-assignment-properties": { <- dynamic inputs
+ "required": true,
+ "type": "dt-resource-assignment-properties"
+ }
+ },
+ "steps": {
+ "call-resource-assignment": { <- step-name
+ "description": "Resource Assignment Workflow",
+ "target": "resource-assignment-process" <- node_template targeted by the step
+ }
+ },
+ "outputs": {
+ "template-properties": { <- output
+ "type": "json", <- complex type
+ "value": {
+ "get_attribute": [ <- uses expression to retrieve attribute from context
+ "resource-assignment",
+ "assignment-params"
+ ]
+ }
+ }
+ }
+ }
+ }
+ }
+
+
+TOSCA definition: http://docs.oasis-open.org/tosca/TOSCA-Simple-Profile-YAML/v1.2/csd01/TOSCA-Simple-Profile-YAML-v1.2-csd01.html#_Toc494454203
diff --git a/ms/blueprintsprocessor/application/src/main/resources/application-dev.properties b/ms/blueprintsprocessor/application/src/main/resources/application-dev.properties
index bf5e23bc9..fb32d9afc 100755
--- a/ms/blueprintsprocessor/application/src/main/resources/application-dev.properties
+++ b/ms/blueprintsprocessor/application/src/main/resources/application-dev.properties
@@ -69,9 +69,9 @@ blueprintsprocessor.grpcclient.py-executor.trustCertCollection=src/main/resource
# Blueprint Processor File Execution and Handling Properties
### use absolute paths if testing inside docker
-### blueprintsprocessor.blueprintDeployPath=/opt/app/onap/blueprints/deploy
-### blueprintsprocessor.blueprintArchivePath=/opt/app/onap/blueprints/archive
-### blueprintsprocessor.blueprintWorkingPath=/opt/app/onap/blueprints/working
+#blueprintsprocessor.blueprintDeployPath=/opt/app/onap/blueprints/deploy
+#blueprintsprocessor.blueprintArchivePath=/opt/app/onap/blueprints/archive
+#blueprintsprocessor.blueprintWorkingPath=/opt/app/onap/blueprints/working
# db
@@ -120,10 +120,12 @@ blueprintsprocessor.netconfExecutor.enabled=true
blueprintsprocessor.restConfExecutor.enabled=true
blueprintsprocessor.cliExecutor.enabled=true
### If enabling remote python executor, set this value to true
-### blueprintsprocessor.remoteScriptCommand.enabled=true
+#blueprintsprocessor.remoteScriptCommand.enabled=true
blueprintsprocessor.remoteScriptCommand.enabled=false
+blueprintsprocessor.remote-script-command.response.log.enabled=false
# Kafka-message-lib Configurations
+## Request consumer
blueprintsprocessor.messageconsumer.self-service-api.kafkaEnable=false
blueprintsprocessor.messageconsumer.self-service-api.type=kafka-basic-auth
blueprintsprocessor.messageconsumer.self-service-api.bootstrapServers=127.0.0.1:9092
@@ -141,6 +143,12 @@ blueprintsprocessor.messageconsumer.self-service-api.pollMillSec=1000
#blueprintsprocessor.messageconsumer.self-service-api.scramUsername=test-user
#blueprintsprocessor.messageconsumer.self-service-api.scramPassword=testUserPassword
+## Response producer
+blueprintsprocessor.messageproducer.self-service-api.type=kafka-basic-auth
+blueprintsprocessor.messageproducer.self-service-api.bootstrapServers=127.0.0.1:9092
+blueprintsprocessor.messageproducer.self-service-api.clientId=producer-id
+blueprintsprocessor.messageproducer.self-service-api.topic=producer.t
+
# Kafka audit service Configurations
## Audit request
blueprintsprocessor.messageproducer.self-service-api.audit.kafkaEnable=false
diff --git a/ms/blueprintsprocessor/functions/python-executor/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/python/executor/ComponentRemotePythonExecutor.kt b/ms/blueprintsprocessor/functions/python-executor/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/python/executor/ComponentRemotePythonExecutor.kt
index d66e8b374..d4c8841a8 100644
--- a/ms/blueprintsprocessor/functions/python-executor/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/python/executor/ComponentRemotePythonExecutor.kt
+++ b/ms/blueprintsprocessor/functions/python-executor/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/python/executor/ComponentRemotePythonExecutor.kt
@@ -21,6 +21,7 @@ import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.TimeoutCancellationException
import kotlinx.coroutines.async
import kotlinx.coroutines.withTimeout
+import org.onap.ccsdk.cds.blueprintsprocessor.core.BluePrintPropertiesService
import org.onap.ccsdk.cds.blueprintsprocessor.core.api.data.ExecutionServiceInput
import org.onap.ccsdk.cds.blueprintsprocessor.core.api.data.PrepareRemoteEnvInput
import org.onap.ccsdk.cds.blueprintsprocessor.core.api.data.RemoteIdentifier
@@ -47,11 +48,15 @@ import org.springframework.stereotype.Component
@ConditionalOnBean(name = [ExecutionServiceConstant.SERVICE_GRPC_REMOTE_SCRIPT_EXECUTION])
@Component("component-remote-python-executor")
@Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE)
-open class ComponentRemotePythonExecutor(private val remoteScriptExecutionService: RemoteScriptExecutionService) : AbstractComponentFunction() {
+open class ComponentRemotePythonExecutor(
+ private val remoteScriptExecutionService: RemoteScriptExecutionService,
+ private var bluePrintPropertiesService: BluePrintPropertiesService
+) : AbstractComponentFunction() {
private val log = LoggerFactory.getLogger(ComponentRemotePythonExecutor::class.java)!!
companion object {
+ const val SELECTOR_CMD_EXEC = "blueprintsprocessor.remote-script-command"
const val INPUT_ENDPOINT_SELECTOR = "endpoint-selector"
const val INPUT_DYNAMIC_PROPERTIES = "dynamic-properties"
const val INPUT_ARGUMENT_PROPERTIES = "argument-properties"
@@ -62,6 +67,8 @@ open class ComponentRemotePythonExecutor(private val remoteScriptExecutionServic
const val INPUT_ENV_PREPARE_TIMEOUT = "env-prepare-timeout"
const val INPUT_EXECUTE_TIMEOUT = "execution-timeout"
+ const val STEP_PREPARE_ENV = "prepare-env"
+ const val STEP_EXEC_CMD = "execute-command"
const val ATTRIBUTE_EXEC_CMD_STATUS = "status"
const val ATTRIBUTE_PREPARE_ENV_LOG = "prepare-environment-logs"
const val ATTRIBUTE_EXEC_CMD_LOG = "execute-command-logs"
@@ -74,6 +81,8 @@ open class ComponentRemotePythonExecutor(private val remoteScriptExecutionServic
log.debug("Processing : $operationInputs")
+ val isLogResponseEnabled = bluePrintPropertiesService.propertyBeanType("$SELECTOR_CMD_EXEC.response.log.enabled", Boolean::class.java)
+
val bluePrintContext = bluePrintRuntimeService.bluePrintContext()
val blueprintName = bluePrintContext.name()
val blueprintVersion = bluePrintContext.version()
@@ -142,15 +151,25 @@ open class ComponentRemotePythonExecutor(private val remoteScriptExecutionServic
)
val prepareEnvOutput = remoteScriptExecutionService.prepareEnv(prepareEnvInput)
log.info("$ATTRIBUTE_PREPARE_ENV_LOG - ${prepareEnvOutput.response}")
- val logs = prepareEnvOutput.response
+ val logs = JacksonUtils.jsonNodeFromObject(prepareEnvOutput.response)
val logsEnv = logs.toString().asJsonPrimitive()
setAttribute(ATTRIBUTE_PREPARE_ENV_LOG, logsEnv)
if (prepareEnvOutput.status != StatusType.SUCCESS) {
- setAttribute(ATTRIBUTE_EXEC_CMD_LOG, "N/A".asJsonPrimitive())
- setNodeOutputErrors(prepareEnvOutput.status.name, logsEnv)
+ val errorMessage = prepareEnvOutput.payload
+ setNodeOutputErrors(prepareEnvOutput.status.name,
+ STEP_PREPARE_ENV,
+ logs,
+ errorMessage,
+ isLogResponseEnabled
+ )
} else {
- setNodeOutputProperties(prepareEnvOutput.status.name.asJsonPrimitive(), logsEnv, "".asJsonPrimitive())
+ setNodeOutputProperties(prepareEnvOutput.status.name.asJsonPrimitive(),
+ STEP_PREPARE_ENV,
+ logsEnv,
+ "".asJsonPrimitive(),
+ isLogResponseEnabled
+ )
}
} else {
// set env preparation log to empty...
@@ -159,13 +178,13 @@ open class ComponentRemotePythonExecutor(private val remoteScriptExecutionServic
} catch (grpcEx: io.grpc.StatusRuntimeException) {
val grpcErrMsg = "Command failed during env. preparation... timeout($envPrepTimeout) requestId ($processId)."
setAttribute(ATTRIBUTE_PREPARE_ENV_LOG, grpcErrMsg.asJsonPrimitive())
- setNodeOutputErrors(status = grpcErrMsg, message = "${grpcEx.status}".asJsonPrimitive())
+ setNodeOutputErrors(status = grpcErrMsg, step = STEP_PREPARE_ENV, error = "${grpcEx.status}".asJsonPrimitive(), logging = isLogResponseEnabled)
log.error(grpcErrMsg, grpcEx)
addError(grpcErrMsg)
} catch (e: Exception) {
val timeoutErrMsg = "Command executor failed during env. preparation.. timeout($envPrepTimeout) requestId ($processId)."
setAttribute(ATTRIBUTE_PREPARE_ENV_LOG, e.message.asJsonPrimitive())
- setNodeOutputErrors(status = timeoutErrMsg, message = "${e.message}".asJsonPrimitive())
+ setNodeOutputErrors(status = timeoutErrMsg, step = STEP_PREPARE_ENV, error = "${e.message}".asJsonPrimitive(), logging = isLogResponseEnabled)
log.error("Failed to process on remote executor requestId ($processId)", e)
addError(timeoutErrMsg)
}
@@ -195,18 +214,37 @@ open class ComponentRemotePythonExecutor(private val remoteScriptExecutionServic
}
val logs = JacksonUtils.jsonNodeFromObject(remoteExecutionOutput.response)
if (remoteExecutionOutput.status != StatusType.SUCCESS) {
- setNodeOutputErrors(remoteExecutionOutput.status.name, logs, remoteExecutionOutput.payload)
+ setNodeOutputErrors(remoteExecutionOutput.status.name,
+ STEP_EXEC_CMD,
+ logs,
+ remoteExecutionOutput.payload,
+ isLogResponseEnabled
+ )
} else {
- setNodeOutputProperties(remoteExecutionOutput.status.name.asJsonPrimitive(), logs,
- remoteExecutionOutput.payload)
+ setNodeOutputProperties(remoteExecutionOutput.status.name.asJsonPrimitive(),
+ STEP_EXEC_CMD,
+ logs,
+ remoteExecutionOutput.payload,
+ isLogResponseEnabled
+ )
}
} catch (timeoutEx: TimeoutCancellationException) {
val timeoutErrMsg = "Command executor timed out executing after $executionTimeout seconds requestId ($processId)"
- setNodeOutputErrors(status = timeoutErrMsg, message = "".asJsonPrimitive())
+ setNodeOutputErrors(status = timeoutErrMsg,
+ step = STEP_EXEC_CMD,
+ logs = "".asJsonPrimitive(),
+ error = "".asJsonPrimitive(),
+ logging = isLogResponseEnabled
+ )
log.error(timeoutErrMsg, timeoutEx)
} catch (grpcEx: io.grpc.StatusRuntimeException) {
val timeoutErrMsg = "Command executor timed out executing after $executionTimeout seconds requestId ($processId)"
- setNodeOutputErrors(status = timeoutErrMsg, message = "".asJsonPrimitive())
+ setNodeOutputErrors(status = timeoutErrMsg,
+ step = STEP_EXEC_CMD,
+ logs = "".asJsonPrimitive(),
+ error = "".asJsonPrimitive(),
+ logging = isLogResponseEnabled
+ )
log.error("Command executor time out during GRPC call", grpcEx)
} catch (e: Exception) {
log.error("Failed to process on remote executor requestId ($processId)", e)
@@ -234,25 +272,38 @@ open class ComponentRemotePythonExecutor(private val remoteScriptExecutionServic
/**
* Utility function to set the output properties of the executor node
*/
- private fun setNodeOutputProperties(status: JsonNode, message: JsonNode, artifacts: JsonNode) {
+ private fun setNodeOutputProperties(status: JsonNode, step: String, message: JsonNode, artifacts: JsonNode, logging: Boolean = true) {
setAttribute(ATTRIBUTE_EXEC_CMD_STATUS, status)
- log.info("Executor status : $status")
setAttribute(ATTRIBUTE_RESPONSE_DATA, artifacts)
- log.info("Executor artifacts: $artifacts")
setAttribute(ATTRIBUTE_EXEC_CMD_LOG, message)
- log.info("Executor message : $message")
+
+ if (logging) {
+ log.info("Executor status : $step : $status")
+ log.info("Executor artifacts: $step : $artifacts")
+ log.info("Executor message : $step : $message")
+ }
}
/**
* Utility function to set the output properties and errors of the executor node, in cas of errors
*/
- private fun setNodeOutputErrors(status: String, message: JsonNode, artifacts: JsonNode = "".asJsonPrimitive()) {
+ private fun setNodeOutputErrors(
+ status: String,
+ step: String,
+ logs: JsonNode = "N/A".asJsonPrimitive(),
+ error: JsonNode,
+ logging: Boolean = true
+ ) {
setAttribute(ATTRIBUTE_EXEC_CMD_STATUS, status.asJsonPrimitive())
- log.info("Executor status : $status")
- setAttribute(ATTRIBUTE_EXEC_CMD_LOG, message)
- log.info("Executor message : $message")
- setAttribute(ATTRIBUTE_RESPONSE_DATA, artifacts)
- log.info("Executor artifacts: $artifacts")
- addError(status, ATTRIBUTE_EXEC_CMD_LOG, message.toString())
+ setAttribute(ATTRIBUTE_EXEC_CMD_LOG, logs)
+ setAttribute(ATTRIBUTE_RESPONSE_DATA, "N/A".asJsonPrimitive())
+
+ if (logging) {
+ log.info("Executor status : $step : $status")
+ log.info("Executor message : $step : $error")
+ log.info("Executor logs : $step : $logs")
+ }
+
+ addError(status, step, error.toString())
}
}
diff --git a/ms/blueprintsprocessor/functions/python-executor/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/python/executor/ComponentRemotePythonExecutorTest.kt b/ms/blueprintsprocessor/functions/python-executor/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/python/executor/ComponentRemotePythonExecutorTest.kt
index 5e57b9eb7..d4edf4bb2 100644
--- a/ms/blueprintsprocessor/functions/python-executor/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/python/executor/ComponentRemotePythonExecutorTest.kt
+++ b/ms/blueprintsprocessor/functions/python-executor/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/python/executor/ComponentRemotePythonExecutorTest.kt
@@ -22,6 +22,7 @@ import io.mockk.every
import io.mockk.mockk
import kotlinx.coroutines.runBlocking
import org.junit.Test
+import org.onap.ccsdk.cds.blueprintsprocessor.core.BluePrintPropertiesService
import org.onap.ccsdk.cds.blueprintsprocessor.core.api.data.ExecutionServiceInput
import org.onap.ccsdk.cds.blueprintsprocessor.core.api.data.PrepareRemoteEnvInput
import org.onap.ccsdk.cds.blueprintsprocessor.core.api.data.RemoteScriptExecutionInput
@@ -47,7 +48,10 @@ class ComponentRemotePythonExecutorTest {
runBlocking {
val remoteScriptExecutionService = MockRemoteScriptExecutionService()
- val componentRemotePythonExecutor = ComponentRemotePythonExecutor(remoteScriptExecutionService)
+ val componentRemotePythonExecutor = ComponentRemotePythonExecutor(
+ remoteScriptExecutionService,
+ mockk<BluePrintPropertiesService>()
+ )
val executionServiceInput =
JacksonUtils.readValueFromClassPathFile(
@@ -88,7 +92,10 @@ class ComponentRemotePythonExecutorTest {
fun testComponentRemotePythonExecutorProcessNB() {
runBlocking {
val remoteScriptExecutionService = MockRemoteScriptExecutionService()
- val componentRemotePythonExecutor = ComponentRemotePythonExecutor(remoteScriptExecutionService)
+ val componentRemotePythonExecutor = ComponentRemotePythonExecutor(
+ remoteScriptExecutionService,
+ mockk<BluePrintPropertiesService>()
+ )
val bluePrintRuntime = mockk<DefaultBluePrintRuntimeService>("123456-1000")
every { bluePrintRuntime.getBluePrintError() } answers { BluePrintError() } // successful case.
diff --git a/ms/blueprintsprocessor/modules/blueprints/blueprint-core/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/BluePrintConstants.kt b/ms/blueprintsprocessor/modules/blueprints/blueprint-core/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/BluePrintConstants.kt
index e26af2b66..5c522e7bd 100644
--- a/ms/blueprintsprocessor/modules/blueprints/blueprint-core/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/BluePrintConstants.kt
+++ b/ms/blueprintsprocessor/modules/blueprints/blueprint-core/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/BluePrintConstants.kt
@@ -239,4 +239,6 @@ object BluePrintConstants {
const val PROPERTY_CLUSTER_NODE_ADDRESS = "CLUSTER_NODE_ADDRESS"
const val PROPERTY_CLUSTER_JOIN_AS_CLIENT = "CLUSTER_JOIN_AS_CLIENT"
const val PROPERTY_CLUSTER_CONFIG_FILE = "CLUSTER_CONFIG_FILE"
+
+ const val NODE_TEMPLATE_TYPE_COMPONENT_RESOURCE_RESOLUTION = "component-resource-resolution"
}
diff --git a/ms/blueprintsprocessor/modules/commons/message-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/BluePrintMessageLibData.kt b/ms/blueprintsprocessor/modules/commons/message-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/BluePrintMessageLibData.kt
index ac35fbf2c..b07d64388 100644
--- a/ms/blueprintsprocessor/modules/commons/message-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/BluePrintMessageLibData.kt
+++ b/ms/blueprintsprocessor/modules/commons/message-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/BluePrintMessageLibData.kt
@@ -78,7 +78,7 @@ open class KafkaSslAuthMessageProducerProperties : KafkaBasicAuthMessageProducer
var keystore: String? = null
var keystorePassword: String? = null
var keystoreType: String = SslConfigs.DEFAULT_SSL_KEYSTORE_TYPE
- var sslEndpointIdentificationAlgorithm: String = ""
+ var sslEndpointIdentificationAlgorithm: String = SslConfigs.DEFAULT_SSL_ENDPOINT_IDENTIFICATION_ALGORITHM
override fun getConfig(): HashMap<String, Any> {
val configProps = super.getConfig()
@@ -142,7 +142,7 @@ open class KafkaStreamsSslAuthConsumerProperties : KafkaStreamsBasicAuthConsumer
var keystore: String? = null
var keystorePassword: String? = null
var keystoreType: String = SslConfigs.DEFAULT_SSL_KEYSTORE_TYPE
- var sslEndpointIdentificationAlgorithm: String = ""
+ var sslEndpointIdentificationAlgorithm: String = SslConfigs.DEFAULT_SSL_ENDPOINT_IDENTIFICATION_ALGORITHM
override fun getConfig(): HashMap<String, Any> {
val configProps = super.getConfig()
@@ -218,7 +218,7 @@ open class KafkaSslAuthMessageConsumerProperties : KafkaBasicAuthMessageConsumer
var keystore: String? = null
var keystorePassword: String? = null
var keystoreType: String = SslConfigs.DEFAULT_SSL_KEYSTORE_TYPE
- var sslEndpointIdentificationAlgorithm: String = ""
+ var sslEndpointIdentificationAlgorithm: String = SslConfigs.DEFAULT_SSL_ENDPOINT_IDENTIFICATION_ALGORITHM
override fun getConfig(): HashMap<String, Any> {
val configProps = super.getConfig()
diff --git a/ms/blueprintsprocessor/modules/commons/message-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/service/KafkaMessageProducerService.kt b/ms/blueprintsprocessor/modules/commons/message-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/service/KafkaMessageProducerService.kt
index 931f052ed..e4991d2d8 100644
--- a/ms/blueprintsprocessor/modules/commons/message-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/service/KafkaMessageProducerService.kt
+++ b/ms/blueprintsprocessor/modules/commons/message-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/service/KafkaMessageProducerService.kt
@@ -17,12 +17,16 @@
package org.onap.ccsdk.cds.blueprintsprocessor.message.service
+import com.fasterxml.jackson.databind.node.ObjectNode
import org.apache.commons.lang.builder.ToStringBuilder
import org.apache.kafka.clients.producer.Callback
import org.apache.kafka.clients.producer.KafkaProducer
import org.apache.kafka.clients.producer.ProducerRecord
import org.apache.kafka.common.header.internals.RecordHeader
+import org.onap.ccsdk.cds.blueprintsprocessor.core.api.data.ExecutionServiceOutput
+import org.onap.ccsdk.cds.blueprintsprocessor.core.api.data.Status
import org.onap.ccsdk.cds.blueprintsprocessor.message.MessageProducerProperties
+import org.onap.ccsdk.cds.controllerblueprints.core.asJsonPrimitive
import org.onap.ccsdk.cds.controllerblueprints.core.asJsonString
import org.onap.ccsdk.cds.controllerblueprints.core.defaultToUUID
import org.slf4j.LoggerFactory
@@ -39,6 +43,10 @@ class KafkaMessageProducerService(
private val messageLoggerService = MessageLoggerService()
+ companion object {
+ const val MAX_ERR_MSG_LEN = 128
+ }
+
override suspend fun sendMessageNB(message: Any): Boolean {
checkNotNull(messageProducerProperties.topic) { "default topic is not configured" }
return sendMessageNB(messageProducerProperties.topic!!, message)
@@ -54,9 +62,14 @@ class KafkaMessageProducerService(
message: Any,
headers: MutableMap<String, String>?
): Boolean {
- val byteArrayMessage = when (message) {
- is String -> message.toByteArray(Charset.defaultCharset())
- else -> message.asJsonString().toByteArray(Charset.defaultCharset())
+ var clonedMessage = message
+ if (clonedMessage is ExecutionServiceOutput) {
+ clonedMessage = truncateResponse(clonedMessage)
+ }
+
+ val byteArrayMessage = when (clonedMessage) {
+ is String -> clonedMessage.toByteArray(Charset.defaultCharset())
+ else -> clonedMessage.asJsonString().toByteArray(Charset.defaultCharset())
}
val record = ProducerRecord<String, ByteArray>(topic, defaultToUUID(), byteArrayMessage)
@@ -85,4 +98,37 @@ class KafkaMessageProducerService(
return kafkaProducer!!
}
+
+ /**
+ * Truncation of BP responses
+ */
+ private fun truncateResponse(executionServiceOutput: ExecutionServiceOutput): ExecutionServiceOutput {
+ /** Truncation of error messages */
+ var truncErrMsg = executionServiceOutput.status.errorMessage
+ if (truncErrMsg != null && truncErrMsg.length > MAX_ERR_MSG_LEN) {
+ truncErrMsg = "${truncErrMsg.substring(0,MAX_ERR_MSG_LEN)}" +
+ " [...]. Check Blueprint Processor logs for more information."
+ }
+ /** Truncation for Command Executor responses */
+ var truncPayload = executionServiceOutput.payload.deepCopy()
+ val workflowName = executionServiceOutput.actionIdentifiers.actionName
+ if (truncPayload.path("$workflowName-response").has("execute-command-logs")) {
+ var cmdExecLogNode = truncPayload.path("$workflowName-response") as ObjectNode
+ cmdExecLogNode.replace("execute-command-logs", "Check Command Executor logs for more information.".asJsonPrimitive())
+ }
+ return ExecutionServiceOutput().apply {
+ correlationUUID = executionServiceOutput.correlationUUID
+ commonHeader = executionServiceOutput.commonHeader
+ actionIdentifiers = executionServiceOutput.actionIdentifiers
+ status = Status().apply {
+ code = executionServiceOutput.status.code
+ eventType = executionServiceOutput.status.eventType
+ timestamp = executionServiceOutput.status.timestamp
+ errorMessage = truncErrMsg
+ message = executionServiceOutput.status.message
+ }
+ payload = truncPayload
+ stepData = executionServiceOutput.stepData
+ }
+ }
}
diff --git a/ms/blueprintsprocessor/modules/commons/message-lib/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/service/BlueprintMessageConsumerServiceTest.kt b/ms/blueprintsprocessor/modules/commons/message-lib/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/service/BlueprintMessageConsumerServiceTest.kt
index ac08dc7b7..fdf6e48e7 100644
--- a/ms/blueprintsprocessor/modules/commons/message-lib/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/service/BlueprintMessageConsumerServiceTest.kt
+++ b/ms/blueprintsprocessor/modules/commons/message-lib/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/service/BlueprintMessageConsumerServiceTest.kt
@@ -214,7 +214,7 @@ open class BlueprintMessageConsumerServiceTest {
SslConfigs.SSL_KEYSTORE_LOCATION_CONFIG to "/path/to/keystore.jks",
SslConfigs.SSL_KEYSTORE_TYPE_CONFIG to "JKS",
SslConfigs.SSL_KEYSTORE_PASSWORD_CONFIG to "secretpassword",
- SslConfigs.SSL_ENDPOINT_IDENTIFICATION_ALGORITHM_CONFIG to "",
+ SslConfigs.SSL_ENDPOINT_IDENTIFICATION_ALGORITHM_CONFIG to SslConfigs.DEFAULT_SSL_ENDPOINT_IDENTIFICATION_ALGORITHM,
SaslConfigs.SASL_MECHANISM to "SCRAM-SHA-512",
SaslConfigs.SASL_JAAS_CONFIG to "${ScramLoginModule::class.java.canonicalName} required " +
"username=\"sample-user\" " +
diff --git a/ms/blueprintsprocessor/modules/commons/message-lib/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/service/BlueprintMessageProducerServiceTest.kt b/ms/blueprintsprocessor/modules/commons/message-lib/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/service/BlueprintMessageProducerServiceTest.kt
index 72a47ed56..da7394998 100644
--- a/ms/blueprintsprocessor/modules/commons/message-lib/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/service/BlueprintMessageProducerServiceTest.kt
+++ b/ms/blueprintsprocessor/modules/commons/message-lib/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/service/BlueprintMessageProducerServiceTest.kt
@@ -109,7 +109,7 @@ open class BlueprintMessageProducerServiceTest {
SslConfigs.SSL_KEYSTORE_LOCATION_CONFIG to "/path/to/keystore.jks",
SslConfigs.SSL_KEYSTORE_TYPE_CONFIG to "JKS",
SslConfigs.SSL_KEYSTORE_PASSWORD_CONFIG to "secretpassword",
- SslConfigs.SSL_ENDPOINT_IDENTIFICATION_ALGORITHM_CONFIG to "",
+ SslConfigs.SSL_ENDPOINT_IDENTIFICATION_ALGORITHM_CONFIG to SslConfigs.DEFAULT_SSL_ENDPOINT_IDENTIFICATION_ALGORITHM,
SaslConfigs.SASL_MECHANISM to "SCRAM-SHA-512",
SaslConfigs.SASL_JAAS_CONFIG to "${ScramLoginModule::class.java.canonicalName} required " +
"username=\"sample-user\" " +
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 1f01d1ce3..3973f3620 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
@@ -89,9 +89,11 @@ open class BlueprintModelController(private val bluePrintModelHandler: BluePrint
fun allBlueprintModel(
@RequestParam(defaultValue = "20") limit: Int,
@RequestParam(defaultValue = "0") offset: Int,
- @RequestParam(defaultValue = "DATE") sort: BlueprintSortByOption
+ @RequestParam(defaultValue = "DATE") sort: BlueprintSortByOption,
+ @RequestParam(defaultValue = "ASC") sortType: String
): Page<BlueprintModelSearch> {
- val pageRequest = PageRequest.of(offset, limit, Sort.Direction.ASC, sort.columnName)
+ val pageRequest = PageRequest.of(offset, limit,
+ Sort.Direction.fromString(sortType), sort.columnName)
return this.bluePrintModelHandler.allBlueprintModel(pageRequest)
}
@@ -110,9 +112,11 @@ open class BlueprintModelController(private val bluePrintModelHandler: BluePrint
@NotNull @PathVariable(value = "keyword") keyWord: String,
@RequestParam(defaultValue = "20") limit: Int,
@RequestParam(defaultValue = "0") offset: Int,
- @RequestParam(defaultValue = "DATE") sort: BlueprintSortByOption
+ @RequestParam(defaultValue = "DATE") sort: BlueprintSortByOption,
+ @RequestParam(defaultValue = "ASC") sortType: String
): Page<BlueprintModelSearch> {
- val pageRequest = PageRequest.of(offset, limit, Sort.Direction.ASC, sort.columnName)
+ val pageRequest = PageRequest.of(offset, limit,
+ Sort.Direction.fromString(sortType), sort.columnName)
return this.bluePrintModelHandler.searchBluePrintModelsByKeyWordPaged(keyWord, pageRequest)
}
diff --git a/ms/blueprintsprocessor/modules/inbounds/selfservice-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/selfservice/api/BluePrintProcessingKafkaConsumer.kt b/ms/blueprintsprocessor/modules/inbounds/selfservice-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/selfservice/api/BluePrintProcessingKafkaConsumer.kt
index 49f2a50d5..a95af8123 100644
--- a/ms/blueprintsprocessor/modules/inbounds/selfservice-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/selfservice/api/BluePrintProcessingKafkaConsumer.kt
+++ b/ms/blueprintsprocessor/modules/inbounds/selfservice-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/selfservice/api/BluePrintProcessingKafkaConsumer.kt
@@ -51,13 +51,15 @@ open class BluePrintProcessingKafkaConsumer(
companion object {
const val CONSUMER_SELECTOR = "self-service-api"
+ const val PRODUCER_SELECTOR = "self-service-api"
}
@EventListener(ApplicationReadyEvent::class)
fun setupMessageListener() = runBlocking {
try {
log.info(
- "Setting up message consumer($CONSUMER_SELECTOR)"
+ "Setting up message consumer($CONSUMER_SELECTOR)" +
+ "message producer($PRODUCER_SELECTOR)..."
)
/** Get the Message Consumer Service **/
@@ -72,6 +74,18 @@ open class BluePrintProcessingKafkaConsumer(
throw BluePrintProcessorException("failed to create consumer service ${e.message}")
}
+ /** Get the Message Producer Service **/
+ val blueprintMessageProducerService = try {
+ bluePrintMessageLibPropertyService
+ .blueprintMessageProducerService(PRODUCER_SELECTOR)
+ } catch (e: BluePrintProcessorException) {
+ val errorMsg = "Failed creating Kafka producer message service."
+ throw e.updateErrorMessage(SelfServiceApiDomains.SELF_SERVICE_API, errorMsg,
+ "Wrong Kafka selector provided or internal error in Kafka service.")
+ } catch (e: Exception) {
+ throw BluePrintProcessorException("failed to create producer service ${e.message}")
+ }
+
launch {
/** Subscribe to the consumer topics */
val additionalConfig: MutableMap<String, Any> = hashMapOf()
@@ -82,7 +96,8 @@ open class BluePrintProcessingKafkaConsumer(
ph.register()
log.trace("Consumed Message : $message")
val executionServiceInput = message.jsonAsType<ExecutionServiceInput>()
- executionServiceHandler.doProcess(executionServiceInput)
+ val executionServiceOutput = executionServiceHandler.doProcess(executionServiceInput)
+ blueprintMessageProducerService.sendMessage(executionServiceOutput)
} catch (e: Exception) {
log.error("failed in processing the consumed message : $message", e)
} finally {
@@ -93,7 +108,8 @@ open class BluePrintProcessingKafkaConsumer(
}
} catch (e: Exception) {
log.error(
- "failed to start message consumer($CONSUMER_SELECTOR) ", e
+ "failed to start message consumer($CONSUMER_SELECTOR) " +
+ "message producer($PRODUCER_SELECTOR) ", e
)
}
}
@@ -102,7 +118,8 @@ open class BluePrintProcessingKafkaConsumer(
fun shutdownMessageListener() = runBlocking {
try {
log.info(
- "Shutting down message consumer($CONSUMER_SELECTOR)"
+ "Shutting down message consumer($CONSUMER_SELECTOR)" +
+ "message producer($PRODUCER_SELECTOR)..."
)
blueprintMessageConsumerService.shutDown()
ph.arriveAndAwaitAdvance()
diff --git a/ms/blueprintsprocessor/modules/inbounds/selfservice-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/selfservice/api/ExecutionServiceHandler.kt b/ms/blueprintsprocessor/modules/inbounds/selfservice-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/selfservice/api/ExecutionServiceHandler.kt
index 74c4b00e4..e9d0b7b51 100644
--- a/ms/blueprintsprocessor/modules/inbounds/selfservice-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/selfservice/api/ExecutionServiceHandler.kt
+++ b/ms/blueprintsprocessor/modules/inbounds/selfservice-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/selfservice/api/ExecutionServiceHandler.kt
@@ -75,7 +75,7 @@ class ExecutionServiceHandler(
"Failed to process request, 'actionIdentifiers.mode' not specified. Valid value are: 'sync' or 'async'.",
true
)
- publishAuditService.publish(executionServiceOutput)
+ publishAuditService.publish(executionServiceInput.correlationUUID, executionServiceOutput)
responseObserver.onNext(
executionServiceOutput.toProto()
)
@@ -121,7 +121,7 @@ class ExecutionServiceHandler(
executionServiceOutput = response(executionServiceInput, e.localizedMessage ?: e.message ?: e.toString(), true)
}
- publishAuditService.publish(executionServiceOutput)
+ publishAuditService.publish(executionServiceInput.correlationUUID, executionServiceOutput)
return executionServiceOutput
}
diff --git a/ms/blueprintsprocessor/modules/inbounds/selfservice-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/selfservice/api/KafkaPublishAuditService.kt b/ms/blueprintsprocessor/modules/inbounds/selfservice-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/selfservice/api/KafkaPublishAuditService.kt
index 129e7a54d..9ac11c70a 100644
--- a/ms/blueprintsprocessor/modules/inbounds/selfservice-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/selfservice/api/KafkaPublishAuditService.kt
+++ b/ms/blueprintsprocessor/modules/inbounds/selfservice-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/selfservice/api/KafkaPublishAuditService.kt
@@ -23,7 +23,9 @@ import org.onap.ccsdk.cds.blueprintsprocessor.core.api.data.ExecutionServiceOutp
import org.onap.ccsdk.cds.blueprintsprocessor.functions.resource.resolution.ResourceResolutionConstants
import org.onap.ccsdk.cds.blueprintsprocessor.message.service.BluePrintMessageLibPropertyService
import org.onap.ccsdk.cds.blueprintsprocessor.message.service.BlueprintMessageProducerService
+import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintConstants
import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintProcessorException
+import org.onap.ccsdk.cds.controllerblueprints.core.asJsonPrimitive
import org.onap.ccsdk.cds.controllerblueprints.core.common.ApplicationConstants
import org.onap.ccsdk.cds.controllerblueprints.core.interfaces.BluePrintCatalogService
import org.onap.ccsdk.cds.controllerblueprints.core.utils.BluePrintMetadataUtils
@@ -48,12 +50,8 @@ class KafkaPublishAuditService(
private val bluePrintMessageLibPropertyService: BluePrintMessageLibPropertyService,
private val blueprintsProcessorCatalogService: BluePrintCatalogService
) : PublishAuditService {
-
private var inputInstance: BlueprintMessageProducerService? = null
private var outputInstance: BlueprintMessageProducerService? = null
-
- private lateinit var correlationUUID: String
-
private val log = LoggerFactory.getLogger(KafkaPublishAuditService::class.toString())
companion object {
@@ -72,7 +70,6 @@ class KafkaPublishAuditService(
* Sensitive data within the request are hidden.
*/
override suspend fun publish(executionServiceInput: ExecutionServiceInput) {
- this.correlationUUID = executionServiceInput.correlationUUID
val secureExecutionServiceInput = hideSensitiveData(executionServiceInput)
this.inputInstance = this.getInputInstance(INPUT_SELECTOR)
this.inputInstance!!.sendMessage(secureExecutionServiceInput)
@@ -83,8 +80,8 @@ class KafkaPublishAuditService(
* The correlation UUID is used to link the output to its input.
* A correlation UUID is added to link the input to its output.
*/
- override fun publish(executionServiceOutput: ExecutionServiceOutput) {
- executionServiceOutput.correlationUUID = this.correlationUUID
+ override fun publish(correlationUUID: String, executionServiceOutput: ExecutionServiceOutput) {
+ executionServiceOutput.correlationUUID = correlationUUID
this.outputInstance = this.getOutputInstance(OUTPUT_SELECTOR)
this.outputInstance!!.sendMessage(executionServiceOutput)
}
@@ -127,7 +124,8 @@ class KafkaPublishAuditService(
correlationUUID = executionServiceInput.correlationUUID
commonHeader = executionServiceInput.commonHeader
actionIdentifiers = executionServiceInput.actionIdentifiers
- payload = executionServiceInput.payload
+ payload = executionServiceInput.payload.deepCopy()
+ stepData = executionServiceInput.stepData
}
val blueprintName = clonedExecutionServiceInput.actionIdentifiers.blueprintName
@@ -147,34 +145,40 @@ class KafkaPublishAuditService(
val blueprintRuntimeService = BluePrintMetadataUtils.getBluePrintRuntime(requestId, basePath.toString())
val blueprintContext = blueprintRuntimeService.bluePrintContext()
- val nodeTemplateName = blueprintContext.workflowFirstStepNodeTemplate(workflowName)
- val interfaceName = blueprintContext.nodeTemplateFirstInterfaceName(nodeTemplateName)
- val operationName = blueprintContext.nodeTemplateFirstInterfaceFirstOperationName(nodeTemplateName)
-
- val propertyAssignments: MutableMap<String, JsonNode> =
- blueprintContext.nodeTemplateInterfaceOperationInputs(nodeTemplateName, interfaceName, operationName)
- ?: hashMapOf()
-
- val artifactPrefixNamesNode = propertyAssignments[ResourceResolutionConstants.INPUT_ARTIFACT_PREFIX_NAMES]
- val artifactPrefixNames = JacksonUtils.getListFromJsonNode(artifactPrefixNamesNode!!, String::class.java)
-
- /** Storing mapping entries with metadata log-protect set to true */
- val sensitiveParameters: List<String> = artifactPrefixNames
- .map { "$it-mapping" }
- .map { blueprintRuntimeService.resolveNodeTemplateArtifact(nodeTemplateName, it) }
- .flatMap { JacksonUtils.getListFromJson(it, ResourceAssignment::class.java) }
- .filter { PropertyDefinitionUtils.hasLogProtect(it.property) }
- .map { it.name }
-
- /** Hiding sensitive input parameters from the request */
- var workflowProperties: ObjectNode = clonedExecutionServiceInput.payload
- .path("$workflowName-request")
- .path("$workflowName-properties") as ObjectNode
-
- sensitiveParameters.forEach { sensitiveParameter ->
- if (workflowProperties.has(sensitiveParameter)) {
- workflowProperties.remove(sensitiveParameter)
- workflowProperties.put(sensitiveParameter, ApplicationConstants.LOG_REDACTED)
+ /** Looking for node templates defined as component-resource-resolution */
+ val nodeTemplates = blueprintContext.nodeTemplates()
+ nodeTemplates!!.forEach { nodeTemplate ->
+ val nodeTemplateName = nodeTemplate.key
+ val nodeTemplateType = blueprintContext.nodeTemplateByName(nodeTemplateName).type
+ if (nodeTemplateType == BluePrintConstants.NODE_TEMPLATE_TYPE_COMPONENT_RESOURCE_RESOLUTION) {
+ val interfaceName = blueprintContext.nodeTemplateFirstInterfaceName(nodeTemplateName)
+ val operationName = blueprintContext.nodeTemplateFirstInterfaceFirstOperationName(nodeTemplateName)
+
+ val propertyAssignments: MutableMap<String, JsonNode> =
+ blueprintContext.nodeTemplateInterfaceOperationInputs(nodeTemplateName, interfaceName, operationName)
+ ?: hashMapOf()
+
+ val artifactPrefixNamesNode = propertyAssignments[ResourceResolutionConstants.INPUT_ARTIFACT_PREFIX_NAMES]
+ val artifactPrefixNames = JacksonUtils.getListFromJsonNode(artifactPrefixNamesNode!!, String::class.java)
+
+ /** Storing mapping entries with metadata log-protect set to true */
+ val sensitiveParameters: List<String> = artifactPrefixNames
+ .map { "$it-mapping" }
+ .map { blueprintRuntimeService.resolveNodeTemplateArtifact(nodeTemplateName, it) }
+ .flatMap { JacksonUtils.getListFromJson(it, ResourceAssignment::class.java) }
+ .filter { PropertyDefinitionUtils.hasLogProtect(it.property) }
+ .map { it.name }
+
+ /** Hiding sensitive input parameters from the request */
+ var workflowProperties: ObjectNode = clonedExecutionServiceInput.payload
+ .path("$workflowName-request")
+ .path("$workflowName-properties") as ObjectNode
+
+ sensitiveParameters.forEach { sensitiveParameter ->
+ if (workflowProperties.has(sensitiveParameter)) {
+ workflowProperties.replace(sensitiveParameter, ApplicationConstants.LOG_REDACTED.asJsonPrimitive())
+ }
+ }
}
}
}
diff --git a/ms/blueprintsprocessor/modules/inbounds/selfservice-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/selfservice/api/NoPublishAuditService.kt b/ms/blueprintsprocessor/modules/inbounds/selfservice-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/selfservice/api/NoPublishAuditService.kt
index 3f782000b..eb66e411a 100644
--- a/ms/blueprintsprocessor/modules/inbounds/selfservice-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/selfservice/api/NoPublishAuditService.kt
+++ b/ms/blueprintsprocessor/modules/inbounds/selfservice-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/selfservice/api/NoPublishAuditService.kt
@@ -42,6 +42,6 @@ class NoPublishAuditService : PublishAuditService {
override suspend fun publish(executionServiceInput: ExecutionServiceInput) {
}
- override fun publish(executionServiceOutput: ExecutionServiceOutput) {
+ override fun publish(correlationUUID: String, executionServiceOutput: ExecutionServiceOutput) {
}
}
diff --git a/ms/blueprintsprocessor/modules/inbounds/selfservice-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/selfservice/api/PublishAuditService.kt b/ms/blueprintsprocessor/modules/inbounds/selfservice-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/selfservice/api/PublishAuditService.kt
index 535a5eae0..72f493187 100644
--- a/ms/blueprintsprocessor/modules/inbounds/selfservice-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/selfservice/api/PublishAuditService.kt
+++ b/ms/blueprintsprocessor/modules/inbounds/selfservice-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/selfservice/api/PublishAuditService.kt
@@ -21,5 +21,5 @@ import org.onap.ccsdk.cds.blueprintsprocessor.core.api.data.ExecutionServiceOutp
interface PublishAuditService {
suspend fun publish(executionServiceInput: ExecutionServiceInput)
- fun publish(executionServiceOutput: ExecutionServiceOutput)
+ fun publish(correlationUUID: String, executionServiceOutput: ExecutionServiceOutput)
}
diff --git a/ms/blueprintsprocessor/modules/inbounds/selfservice-api/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/selfservice/api/ExecutionServiceHandlerTest.kt b/ms/blueprintsprocessor/modules/inbounds/selfservice-api/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/selfservice/api/ExecutionServiceHandlerTest.kt
index 37f7861be..191456296 100644
--- a/ms/blueprintsprocessor/modules/inbounds/selfservice-api/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/selfservice/api/ExecutionServiceHandlerTest.kt
+++ b/ms/blueprintsprocessor/modules/inbounds/selfservice-api/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/selfservice/api/ExecutionServiceHandlerTest.kt
@@ -114,7 +114,7 @@ class ExecutionServiceHandlerTest {
}
verify {
- publishAuditService.publish(executionServiceOutput!!)
+ publishAuditService.publish(executionServiceInput.correlationUUID, executionServiceOutput!!)
}
}
}
diff --git a/ms/command-executor/src/main/docker/Dockerfile b/ms/command-executor/src/main/docker/Dockerfile
index e91265b56..e84d5531b 100644
--- a/ms/command-executor/src/main/docker/Dockerfile
+++ b/ms/command-executor/src/main/docker/Dockerfile
@@ -3,7 +3,7 @@ FROM python:3.6-slim
ENV GRPC_PYTHON_VERSION 1.20.0
RUN python -m pip install --upgrade pip
RUN pip install grpcio==${GRPC_PYTHON_VERSION} grpcio-tools==${GRPC_PYTHON_VERSION}
-RUN pip install virtualenv==16.7.9
+RUN pip install virtualenv==16.7.9 pympler==0.8
RUN groupadd -r onap && useradd -r -g onap onap
diff --git a/ms/command-executor/src/main/python/command_executor_handler.py b/ms/command-executor/src/main/python/command_executor_handler.py
index 1e6f03b81..0c476b23e 100644
--- a/ms/command-executor/src/main/python/command_executor_handler.py
+++ b/ms/command-executor/src/main/python/command_executor_handler.py
@@ -43,43 +43,48 @@ class CommandExecutorHandler():
def is_installed(self):
return os.path.exists(self.installed)
- def prepare_env(self, request, results):
+ def prepare_env(self, request):
+ results_log = []
if not self.is_installed():
create_venv_status = self.create_venv()
- if not create_venv_status["cds_is_successful"]:
- err_msg = "ERROR: failed to prepare environment for request {} due to error in creating virtual Python env. Original error {}".format(self.blueprint_id, create_venv_status["err_msg"])
+ if not create_venv_status[utils.CDS_IS_SUCCESSFUL_KEY]:
+ err_msg = "ERROR: failed to prepare environment for request {} due to error in creating virtual Python env. Original error {}".format(self.blueprint_id, create_venv_status[utils.ERR_MSG_KEY])
self.logger.error(err_msg)
- return utils.build_ret_data(False, err_msg)
+ return utils.build_ret_data(False, error=err_msg)
activate_venv_status = self.activate_venv()
- if not activate_venv_status["cds_is_successful"]:
- err_msg = "ERROR: failed to prepare environment for request {} due Python venv_activation. Original error {}".format(self.blueprint_id, activate_venv_status["err_msg"])
+ if not activate_venv_status[utils.CDS_IS_SUCCESSFUL_KEY]:
+ err_msg = "ERROR: failed to prepare environment for request {} due Python venv_activation. Original error {}".format(self.blueprint_id, activate_venv_status[utils.ERR_MSG_KEY])
self.logger.error(err_msg)
- return utils.build_ret_data(False, err_msg)
+ return utils.build_ret_data(False, error=err_msg)
try:
with open(self.installed, "w+") as f:
- if not self.install_packages(request, CommandExecutor_pb2.pip, f, results):
- return utils.build_ret_data(False, "ERROR: failed to prepare environment for request {} during pip package install.".format(self.blueprint_id))
+ if not self.install_packages(request, CommandExecutor_pb2.pip, f, results_log):
+ err_msg = "ERROR: failed to prepare environment for request {} during pip package install.".format(self.blueprint_id)
+ return utils.build_ret_data(False, results_log=results_log, error=err_msg)
f.write("\r\n") # TODO: is \r needed?
- results.append("\n")
- if not self.install_packages(request, CommandExecutor_pb2.ansible_galaxy, f, results):
- return utils.build_ret_data(False, "ERROR: failed to prepare environment for request {} during Ansible install.".format(self.blueprint_id))
+ results_log.append("\n")
+ if not self.install_packages(request, CommandExecutor_pb2.ansible_galaxy, f, results_log):
+ err_msg = "ERROR: failed to prepare environment for request {} during Ansible install.".format(self.blueprint_id)
+ return utils.build_ret_data(False, results_log=results_log, error=err_msg)
except Exception as ex:
err_msg = "ERROR: failed to prepare environment for request {} during installing packages. Exception: {}".format(self.blueprint_id, ex)
self.logger.error(err_msg)
- return utils.build_ret_data(False, err_msg)
+ return utils.build_ret_data(False, error=err_msg)
else:
try:
with open(self.installed, "r") as f:
- results.append(f.read())
+ results_log.append(f.read())
except Exception as ex:
- return utils.build_ret_data(False, "ERROR: failed to prepare environment during reading 'installed' file {}. Exception: {}".format(self.installed, ex))
+ err_msg="ERROR: failed to prepare environment during reading 'installed' file {}. Exception: {}".format(self.installed, ex)
+ return utils.build_ret_data(False, error=err_msg)
# deactivate_venv(blueprint_id)
- return utils.build_ret_data(True, "")
+ return utils.build_ret_data(True, results_log=results_log)
- def execute_command(self, request, results):
- payload_result = {}
+ def execute_command(self, request):
+ results_log = []
+ result = {}
# workaround for when packages are not specified, we may not want to go through the install step
# can just call create_venv from here.
if not self.is_installed():
@@ -87,16 +92,14 @@ class CommandExecutorHandler():
try:
if not self.is_installed():
create_venv_status = self.create_venv
- if not create_venv_status["cds_is_successful"]:
- err_msg = "{} - Failed to execute command during venv creation. Original error: {}".format(self.blueprint_id, create_venv_status["err_msg"])
- results.append(err_msg)
- return utils.build_ret_data(False, err_msg)
+ if not create_venv_status[utils.CDS_IS_SUCCESSFUL_KEY]:
+ err_msg = "{} - Failed to execute command during venv creation. Original error: {}".format(self.blueprint_id, create_venv_status[utils.ERR_MSG_KEY])
+ return utils.build_ret_data(False, error=err_msg)
activate_response = self.activate_venv()
- if not activate_response["cds_is_successful"]:
- orig_error = activate_response["err_msg"]
+ if not activate_response[utils.CDS_IS_SUCCESSFUL_KEY]:
+ orig_error = activate_response[utils.ERR_MSG_KEY]
err_msg = "{} - Failed to execute command during environment activation. Original error: {}".format(self.blueprint_id, orig_error)
- results.append(err_msg) #TODO: get rid of results and just rely on the return data struct.
- return utils.build_ret_data(False, err_msg)
+ return utils.build_ret_data(False, error=err_msg)
cmd = "cd " + self.venv_home
@@ -131,26 +134,25 @@ class CommandExecutorHandler():
payload = '\n'.join(payload_section)
msg = email.parser.Parser().parsestr(payload)
for part in msg.get_payload():
- payload_result = json.loads(part.get_payload())
+ result = json.loads(part.get_payload())
if output and not is_payload_section:
self.logger.info(output.strip())
- results.append(output.strip())
+ results_log.append(output.strip())
else:
payload_section.append(output.strip())
rc = newProcess.poll()
except Exception as e:
err_msg = "{} - Failed to execute command. Error: {}".format(self.blueprint_id, e)
- self.logger.info(err_msg)
- results.append(e)
- payload_result.update(utils.build_ret_data(False, err_msg))
- return payload_result
+ return utils.build_ret_data(False, results=result, results_log=results_log, error=err_msg)
# deactivate_venv(blueprint_id)
#Since return code is only used to check if it's zero (success), we can just return success flag instead.
self.logger.debug("python return_code : {}".format(rc))
- is_execution_successful = rc == 0
- payload_result.update(utils.build_ret_data(is_execution_successful, ""))
- return payload_result
+ if rc == 0:
+ return utils.build_ret_data(True, results=result, results_log=results_log)
+ else:
+ err_msg = "{} - Something wrong happened during command execution. See execute command logs for more information.".format(self.blueprint_id)
+ return utils.build_ret_data(False, results=result, results_log=results_log, error=err_msg)
def install_packages(self, request, type, f, results):
success = self.install_python_packages('UTILITY', results)
diff --git a/ms/command-executor/src/main/python/command_executor_server.py b/ms/command-executor/src/main/python/command_executor_server.py
index 3435e2272..207097605 100644
--- a/ms/command-executor/src/main/python/command_executor_server.py
+++ b/ms/command-executor/src/main/python/command_executor_server.py
@@ -22,9 +22,6 @@ import proto.CommandExecutor_pb2_grpc as CommandExecutor_pb2_grpc
from command_executor_handler import CommandExecutorHandler
import utils
-_ONE_DAY_IN_SECONDS = 60 * 60 * 24
-
-
class CommandExecutorServer(CommandExecutor_pb2_grpc.CommandExecutorServiceServicer):
def __init__(self):
@@ -35,14 +32,14 @@ class CommandExecutorServer(CommandExecutor_pb2_grpc.CommandExecutorServiceServi
self.logger.info("{} - Received prepareEnv request".format(blueprint_id))
self.logger.info(request)
- results = []
handler = CommandExecutorHandler(request)
- prepare_env_response = handler.prepare_env(request, results)
- if not prepare_env_response["cds_is_successful"]:
- self.logger.info("{} - Failed to prepare python environment. {}".format(blueprint_id, results))
- return utils.build_grpc_response(request, results, {}, False)
- self.logger.info("{} - Package installation logs {}".format(blueprint_id, results))
- return utils.build_grpc_response(request, results, {}, True)
+ prepare_env_response = handler.prepare_env(request)
+ if prepare_env_response[utils.CDS_IS_SUCCESSFUL_KEY]:
+ self.logger.info("{} - Package installation logs {}".format(blueprint_id, prepare_env_response[utils.RESULTS_LOG_KEY]))
+ else:
+ self.logger.info("{} - Failed to prepare python environment. {}".format(blueprint_id, prepare_env_response[utils.ERR_MSG_KEY]))
+ self.logger.info("Prepare Env Response returned : %s" % prepare_env_response)
+ return utils.build_grpc_response(request.requestId, prepare_env_response)
def executeCommand(self, request, context):
blueprint_id = utils.get_blueprint_id(request)
@@ -53,13 +50,15 @@ class CommandExecutorServer(CommandExecutor_pb2_grpc.CommandExecutorServiceServi
log_results = []
payload_result = {}
handler = CommandExecutorHandler(request)
- payload_result = handler.execute_command(request, log_results)
- if not payload_result["cds_is_successful"]:
- self.logger.info("{} - Failed to executeCommand. {}".format(blueprint_id, log_results))
- else:
+ exec_cmd_response = handler.execute_command(request)
+ if exec_cmd_response[utils.CDS_IS_SUCCESSFUL_KEY]:
self.logger.info("{} - Execution finished successfully.".format(blueprint_id))
+ self.logger.info("{} - Log Results {}: ".format(blueprint_id, exec_cmd_response[utils.RESULTS_LOG_KEY]))
+ self.logger.info("{} - Results : {}".format(blueprint_id, exec_cmd_response[utils.RESULTS_KEY]))
+ else:
+ self.logger.info("{} - Failed to executeCommand. {}".format(blueprint_id, exec_cmd_response[utils.ERR_MSG_KEY]))
- ret = utils.build_grpc_response(request, log_results, payload_result, payload_result["cds_is_successful"])
- self.logger.info("Payload returned %s" % payload_result)
+ ret = utils.build_grpc_response(request.requestId, exec_cmd_response)
+ self.logger.info("Response returned : {}".format(exec_cmd_response))
return ret \ No newline at end of file
diff --git a/ms/command-executor/src/main/python/utils.py b/ms/command-executor/src/main/python/utils.py
index 574be51db..b98241629 100644
--- a/ms/command-executor/src/main/python/utils.py
+++ b/ms/command-executor/src/main/python/utils.py
@@ -17,7 +17,13 @@ from google.protobuf.timestamp_pb2 import Timestamp
import proto.CommandExecutor_pb2 as CommandExecutor_pb2
import json
+from pympler import asizeof
+CDS_IS_SUCCESSFUL_KEY = "cds_is_successful"
+ERR_MSG_KEY = "err_msg"
+RESULTS_KEY = "results"
+RESULTS_LOG_KEY = "results_log"
+TRUNC_MSG_LEN = 3 * 1024 * 1024
def get_blueprint_id(request):
blueprint_name = request.identifiers.blueprintName
@@ -25,27 +31,47 @@ def get_blueprint_id(request):
return blueprint_name + '/' + blueprint_version
# Create a response for grpc. Fills in the timestamp as well as removes cds_is_successful element
-def build_grpc_response(request, log_results, payload_return, is_success=False):
- if is_success:
+def build_grpc_response(request_id, response):
+ if response[CDS_IS_SUCCESSFUL_KEY]:
status = CommandExecutor_pb2.SUCCESS
+ payload = json.dumps(response[RESULTS_KEY])
else:
status = CommandExecutor_pb2.FAILURE
+ # truncate error message if too heavy
+ if asizeof.asizeof(response[ERR_MSG_KEY]) > TRUNC_MSG_LEN:
+ response[ERR_MSG_KEY] = "{} [...]. Check command executor logs for more information.".format(response[ERR_MSG_KEY][:TRUNC_MSG_LEN])
+ payload = json.dumps(response[ERR_MSG_KEY])
+
+ # truncate cmd-exec logs if too heavy
+ response[RESULTS_LOG_KEY] = truncate_cmd_exec_logs(response[RESULTS_LOG_KEY])
timestamp = Timestamp()
timestamp.GetCurrentTime()
- if "cds_is_successful" in payload_return:
- payload_return.pop('cds_is_successful')
- payload_str = json.dumps(payload_return)
- return CommandExecutor_pb2.ExecutionOutput(requestId=request.requestId,
- response=log_results,
+ return CommandExecutor_pb2.ExecutionOutput(requestId=request_id,
+ response=response[RESULTS_LOG_KEY],
status=status,
- payload=payload_str,
+ payload=payload,
timestamp=timestamp)
-# build a return data structure which may contain an error message
-def build_ret_data(cds_is_successful, err_msg):
- ret_data = {"cds_is_successful": cds_is_successful }
- if err_msg != "":
- ret_data["err_msg"] = err_msg
+# build a ret data structure
+def build_ret_data(cds_is_successful, results={}, results_log=[], error=None):
+ ret_data = {
+ CDS_IS_SUCCESSFUL_KEY: cds_is_successful,
+ RESULTS_KEY: results,
+ RESULTS_LOG_KEY: results_log
+ }
+ if error:
+ ret_data[ERR_MSG_KEY] = error
return ret_data
+
+def truncate_cmd_exec_logs(logs):
+ truncated_logs = []
+ truncated_logs_memsize = 0
+ for log in logs:
+ truncated_logs_memsize += asizeof.asizeof(log)
+ if truncated_logs_memsize > TRUNC_MSG_LEN:
+ truncated_logs.append("Execution logs exceeds the maximum size allowed. Check command executor logs to view the execute-command-logs.")
+ break
+ truncated_logs.append(log)
+ return truncated_logs \ No newline at end of file