aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore2
-rw-r--r--cds-ui/client/src/app/common/constants/app-constants.ts10
-rw-r--r--cds-ui/client/src/app/common/shared/components/home/home.component.html14
-rw-r--r--cds-ui/client/src/app/common/shared/components/home/home.component.scss28
-rw-r--r--cds-ui/client/src/app/feature-modules/blueprint/blueprint.module.ts9
-rw-r--r--cds-ui/client/src/app/feature-modules/blueprint/modify-template/editor/editor.component.ts27
-rw-r--r--cds-ui/client/src/app/feature-modules/blueprint/modify-template/editor/editor.service.ts23
-rw-r--r--cds-ui/client/src/app/feature-modules/blueprint/search-edit-cba/search-edit-cba.component.html16
-rw-r--r--cds-ui/client/src/app/feature-modules/blueprint/search-edit-cba/search-edit-cba.component.scss0
-rw-r--r--cds-ui/client/src/app/feature-modules/blueprint/search-edit-cba/search-edit-cba.component.spec.ts25
-rw-r--r--cds-ui/client/src/app/feature-modules/blueprint/search-edit-cba/search-edit-cba.component.ts67
-rw-r--r--cds-ui/client/src/app/feature-modules/blueprint/select-template/search-template/search-from-database/search-from-database.component.html30
-rw-r--r--cds-ui/client/src/app/feature-modules/blueprint/select-template/search-template/search-from-database/search-from-database.component.scss38
-rw-r--r--cds-ui/client/src/app/feature-modules/blueprint/select-template/search-template/search-from-database/search-from-database.component.ts42
-rw-r--r--cds-ui/client/src/app/feature-modules/blueprint/select-template/search-template/search-template.service.ts5
-rw-r--r--cds-ui/client/src/app/feature-modules/resource-definition/resource-edit/sources-template/sources-template.component.html2
-rw-r--r--cds-ui/client/src/app/feature-modules/resource-definition/resource-edit/sources-template/sources-template.component.ts67
-rw-r--r--cds-ui/server/src/controllers/blueprint-rest.controller.ts14
-rw-r--r--cds-ui/server/src/controllers/index.ts1
-rw-r--r--components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/artifact_types.json22
-rw-r--r--components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/data_types.json772
-rw-r--r--components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/node_types.json390
-rw-r--r--components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/policy_types.json3
-rw-r--r--components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/relationship_types.json9
-rw-r--r--components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/resources_definition_types.json2074
-rw-r--r--components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/vDNS-CDS.json323
-rw-r--r--components/model-catalog/blueprint-model/service-blueprint/vLB/Plans/CONFIG_ConfigDeploy.xml27
-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.meta6
-rw-r--r--components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/base_template-mapping.json409
-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-mapping.json113
-rw-r--r--components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/baseconfig-template.vtl9
-rw-r--r--components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/incremental-config-mapping.json113
-rw-r--r--components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/incremental-config-template.vtl9
-rw-r--r--components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/nf-params-mapping.json65
-rw-r--r--components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/nf-params-template.vtl1
-rw-r--r--components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vdns-mapping.json814
-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/vdns-vnf-mapping.json670
-rw-r--r--components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vdns-vnf-template.vtl280
-rw-r--r--components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vlb-mapping.json927
-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/vpkg-mapping.json832
-rw-r--r--components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vpkg-template.vtl273
-rw-r--r--components/model-catalog/blueprint-model/test-blueprint/capability_cli/Definitions/artifact_types.json10
-rw-r--r--components/model-catalog/blueprint-model/test-blueprint/capability_cli/Definitions/capability-cli-blueprint.json30
-rw-r--r--components/model-catalog/blueprint-model/test-blueprint/capability_cli/Definitions/data_types.json3
-rw-r--r--components/model-catalog/blueprint-model/test-blueprint/capability_cli/Definitions/node_types.json60
-rw-r--r--components/model-catalog/blueprint-model/test-blueprint/capability_cli/Definitions/policy_types.json3
-rw-r--r--components/model-catalog/blueprint-model/test-blueprint/capability_cli/Definitions/relationship_types.json3
-rw-r--r--components/model-catalog/blueprint-model/test-blueprint/capability_cli/Definitions/resources_definition_types.json1
-rw-r--r--components/model-catalog/blueprint-model/test-blueprint/capability_cli/Scripts/kotlin/CapabilityCli.kt35
-rw-r--r--components/model-catalog/blueprint-model/test-blueprint/capability_cli/Scripts/kotlin/CapabilityCliDefinitions.kt83
-rw-r--r--components/model-catalog/blueprint-model/test-blueprint/capability_cli/TOSCA-Metadata/TOSCA.meta2
-rw-r--r--components/model-catalog/blueprint-model/test-blueprint/capability_cli/Templates/check-command-template.vtl1
-rw-r--r--components/parent/pom.xml5
-rw-r--r--ms/blueprintsprocessor/distribution/src/main/docker/startService.sh2
-rw-r--r--ms/blueprintsprocessor/functions/resource-resolution/src/main/kotlin/scripts/InternalRAProcessor.cba.kt (renamed from ms/blueprintsprocessor/functions/resource-resolution/src/main/kotlin/scripts/InternalRAProcessor.cba.kts)0
-rw-r--r--ms/blueprintsprocessor/modules/commons/ssh-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/ssh/service/BluePrintSshLibPropertyService.kt3
-rw-r--r--ms/blueprintsprocessor/modules/inbounds/selfservice-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/selfservice/api/ExecutionServiceController.kt40
-rw-r--r--ms/blueprintsprocessor/modules/services/execution-service/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/ComponentScriptExecutor.kt110
-rwxr-xr-xms/blueprintsprocessor/parent/pom.xml8
-rw-r--r--ms/controllerblueprints/modules/blueprint-core/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/dsl/BluePrintServiceDSLBuilder.kt6
-rw-r--r--ms/controllerblueprints/modules/blueprint-core/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/dsl/BluePrintTemplateDSLBuilder.kt24
-rw-r--r--ms/controllerblueprints/modules/blueprint-core/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/dsl/BluePrintTypeDSLBuilder.kt4
-rw-r--r--ms/controllerblueprints/modules/blueprint-core/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/scripts/BluePrintScriptingHost.kt22
-rw-r--r--ms/controllerblueprints/modules/blueprint-core/src/test/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/service/BluePrintTemplateServiceTest.kt5
-rw-r--r--ms/controllerblueprints/modules/blueprint-validation/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/validation/BluePrintAttributeDefinitionValidatorImpl.kt5
-rw-r--r--ms/controllerblueprints/modules/service/src/test/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/BluePrintEnhancerServiceImplTest.kt34
-rw-r--r--ms/controllerblueprints/parent/pom.xml5
71 files changed, 9604 insertions, 291 deletions
diff --git a/.gitignore b/.gitignore
index 29bf5d423..a0db985aa 100644
--- a/.gitignore
+++ b/.gitignore
@@ -107,6 +107,7 @@ typings/
**/*.iml
**/*.project
**/.springBeans
+**/.factorypath
**/*versionsBackup
**/blackDuckHub*
@@ -148,4 +149,5 @@ MacOS
# To Remove Kotlin Script Generated Jars
**/*cba-kts.jar
+**/application/blueprints
/target/
diff --git a/cds-ui/client/src/app/common/constants/app-constants.ts b/cds-ui/client/src/app/common/constants/app-constants.ts
index bcfcc4e0c..5ebde91e3 100644
--- a/cds-ui/client/src/app/common/constants/app-constants.ts
+++ b/cds-ui/client/src/app/common/constants/app-constants.ts
@@ -93,6 +93,16 @@ export const GlobalContants = {
}
};
+export const BlueprintURLs = {
+ getAllBlueprints: '/controllerblueprint/all',
+ searchByTag: '/controllerblueprint/searchByTags/',
+ save: '/controllerblueprint/create-blueprint',
+ publish: '/controllerblueprint/publish',
+ enrich: '/controllerblueprint/enrich-blueprint',
+ download: '/controllerblueprint/download-blueprint/',
+ deploy:'/controllerblueprint/deploy-blueprint'
+}
+
export const ResourceDictionaryURLs = {
saveResourceDictionary: '/resourcedictionary/save',
searchResourceDictionaryByTags: '/resourcedictionary/search',
diff --git a/cds-ui/client/src/app/common/shared/components/home/home.component.html b/cds-ui/client/src/app/common/shared/components/home/home.component.html
index ef6880d37..f73f0e863 100644
--- a/cds-ui/client/src/app/common/shared/components/home/home.component.html
+++ b/cds-ui/client/src/app/common/shared/components/home/home.component.html
@@ -37,18 +37,18 @@ limitations under the License.
<mat-sidenav #drawer mode="side" [(opened)]="opened" (opened)="events.push('open!')" (closed)="events.push('close!')">
<mat-toolbar color="" primary>Menu</mat-toolbar>
<mat-nav-list>
- <!-- <a mat-list-item [routerLink]="['/blueprint']">Controller Blueprint</a> -->
- <nav class="ng-tns-c12-2 ng-star-inserted">
- <!-- <button class="docs-nav-content-btn" cdkaccordionitem="" expanded="true"
+ <a mat-list-item [routerLink]="['/blueprint']">Controller Blueprint</a>
+ <!-- <nav class="ng-tns-c12-2 ng-star-inserted"> -->
+ <!-- <button class="docs-nav-content-btn" cdkaccordionitem="" expanded="true"
aria-label="Form Controls, section toggle" aria-controls="panel-forms" aria-expanded="false">-->
- <label>Controller Blueprint</label>
- <!-- <mat-icon class="mat-icon notranslate material-icons mat-icon-no-color" role="img" aria-hidden="true">
+ <!-- <label>Controller Blueprint</label> -->
+ <!-- <mat-icon class="mat-icon notranslate material-icons mat-icon-no-color" role="img" aria-hidden="true">
keyboard_arrow_down</mat-icon></button> -->
- <ul>
+ <!-- <ul>
<a mat-list-item [routerLink]="['/blueprint']">Create Blueprint</a>
<a mat-list-item [routerLink]="['/']">Search Blueprint</a>
</ul>
- </nav>
+ </nav> -->
<a mat-list-item [routerLink]="['/resource-definition']">Resource Definition</a>
</mat-nav-list>
</mat-sidenav>
diff --git a/cds-ui/client/src/app/common/shared/components/home/home.component.scss b/cds-ui/client/src/app/common/shared/components/home/home.component.scss
index be21b750c..20ef5c20a 100644
--- a/cds-ui/client/src/app/common/shared/components/home/home.component.scss
+++ b/cds-ui/client/src/app/common/shared/components/home/home.component.scss
@@ -19,19 +19,21 @@ limitations under the License.
============LICENSE_END============================================
*/
-// .example-container {
-// // position: absolute;
-// top: 0;
-// bottom: 0;
-// left: 0;
-// right: 0;
-// }
-// .example-events {
-// width: 300px;
-// height: 200px;
-// overflow: auto;
-// border: 1px solid #555;
-// }
+.example-container {
+ // position: absolute;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ right: 0;
+}
+
+.example-events {
+ width: 300px;
+ height: 200px;
+ overflow: auto;
+ border: 1px solid #555;
+}
+
.mat-sidenav-container {
height: 652px;
}
diff --git a/cds-ui/client/src/app/feature-modules/blueprint/blueprint.module.ts b/cds-ui/client/src/app/feature-modules/blueprint/blueprint.module.ts
index 4d0781aec..27803ce56 100644
--- a/cds-ui/client/src/app/feature-modules/blueprint/blueprint.module.ts
+++ b/cds-ui/client/src/app/feature-modules/blueprint/blueprint.module.ts
@@ -1,7 +1,7 @@
/*
============LICENSE_START==========================================
===================================================================
-Copyright (C) 2018 IBM Intellectual Property. All rights reserved.
+Copyright (C) 2018-19 IBM Intellectual Property. All rights reserved.
===================================================================
Unless otherwise specified, all software contained herein is licensed
@@ -30,17 +30,12 @@ import { SelectTemplateModule } from './select-template/select-template.module';
import { ModifyTemplateModule } from './modify-template/modify-template.module';
import { DeployTemplateModule } from './deploy-template/deploy-template.module';
import { TestTemplateModule } from './test-template/test-template.module';
-import { SearchEditCBAComponent } from './search-edit-cba/search-edit-cba.component';
import { AppMaterialModule } from '../../../app/common/modules/app-material.module';
import { ReactiveFormsModule } from '@angular/forms';
@NgModule({
declarations: [
- BlueprintComponent,
- SearchEditCBAComponent
- ],
- exports:[
- SearchEditCBAComponent
+ BlueprintComponent
],
imports: [
CommonModule,
diff --git a/cds-ui/client/src/app/feature-modules/blueprint/modify-template/editor/editor.component.ts b/cds-ui/client/src/app/feature-modules/blueprint/modify-template/editor/editor.component.ts
index 0a3a8d2ef..7b2eaeb17 100644
--- a/cds-ui/client/src/app/feature-modules/blueprint/modify-template/editor/editor.component.ts
+++ b/cds-ui/client/src/app/feature-modules/blueprint/modify-template/editor/editor.component.ts
@@ -35,7 +35,7 @@ import { Store } from '@ngrx/store';
import { Observable } from 'rxjs';
import { IBlueprintState } from 'src/app/common/core/store/models/blueprintState.model';
import { LoadBlueprintSuccess, SetBlueprintState } from '../../../../common/core/store/actions/blueprint.action'
-import { ApiService } from 'src/app/common/core/services/api.service';
+
import { IMetaData } from 'src/app/common/core/store/models/metadata.model';
import { EditorService } from './editor.service';
import { SortPipe } from '../../../../common/shared/pipes/sort.pipe';
@@ -130,7 +130,7 @@ export class EditorComponent implements OnInit {
artifactName: any;
artifactVersion: any;
- constructor(private store: Store<IAppState>, private apiservice: EditorService,
+ constructor(private store: Store<IAppState>, private editorService: EditorService,
private alertService: NotificationHandlerService, private loader: LoaderService
)
{
@@ -244,7 +244,8 @@ export class EditorComponent implements OnInit {
.then(blob => {
const formData = new FormData();
formData.append("file", blob);
- this.apiservice.enrich("/enrich-blueprint/", formData)
+ // this.editorService.enrich("/enrich-blueprint/", formData)
+ this.editorService.enrich(formData)
.subscribe(
(response) => {
this.zipFile.files = {};
@@ -271,7 +272,8 @@ export class EditorComponent implements OnInit {
.then(blob => {
const formData = new FormData();
formData.append("file", blob);
- this.apiservice.post("/create-blueprint/", formData)
+ // this.editorService.saveBlueprint("/create-blueprint/", formData)
+ this.editorService.saveBlueprint(formData)
.subscribe(
data => {
this.alertService.success('Success:' + JSON.stringify(data));
@@ -289,7 +291,8 @@ export class EditorComponent implements OnInit {
.then(blob => {
const formData = new FormData();
formData.append("file", blob);
- this.apiservice.deployPost("/deploy-blueprint/", formData)
+ // this.editorService.deployPost("/deploy-blueprint/", formData)
+ this.editorService.deployPost(formData)
.subscribe(data => {
this.alertService.success('Saved Successfully:' + JSON.stringify(data));
}, error=>{
@@ -305,7 +308,8 @@ export class EditorComponent implements OnInit {
.then(blob => {
const formData = new FormData();
formData.append("file", blob);
- this.apiservice.post("/publish/", formData)
+ // this.editorService.post("/publish/", formData)
+ this.editorService.publishBlueprint(formData)
.subscribe(data => {
this.alertService.success('Published:' + JSON.stringify(data))
}, error=>{
@@ -326,7 +330,8 @@ export class EditorComponent implements OnInit {
download() {
console.log(this.artifactName);
- status = this.apiservice.downloadCBA("/download-blueprint/" + this.artifactName + "/" + this.artifactVersion);
+ // status = this.editorService.downloadCBA("/download-blueprint/" + this.artifactName + "/" + this.artifactVersion);
+ status = this.editorService.downloadCBA("/"+this.artifactName + "/" + this.artifactVersion);
window.alert(status);
// .subscribe(response => {
// console.log(response);
@@ -338,14 +343,8 @@ export class EditorComponent implements OnInit {
// console.log(error);
// }
// );
-
- // this.create();
- // var zipFilename = "baseconfiguration.zip";
- // this.zipFile.generateAsync({ type: "blob" })
- // .then(blob => {
- // saveAs(blob, zipFilename);
- // });
}
+
setEditorMode() {
switch (this.fileExtension) {
case "xml":
diff --git a/cds-ui/client/src/app/feature-modules/blueprint/modify-template/editor/editor.service.ts b/cds-ui/client/src/app/feature-modules/blueprint/modify-template/editor/editor.service.ts
index ec2524422..025fc95d4 100644
--- a/cds-ui/client/src/app/feature-modules/blueprint/modify-template/editor/editor.service.ts
+++ b/cds-ui/client/src/app/feature-modules/blueprint/modify-template/editor/editor.service.ts
@@ -25,19 +25,18 @@ import { HttpClient } from '@angular/common/http';
import { Observable, observable } from 'rxjs';
import { ApiService } from '../../../../common/core/services/api.service';
import { saveAs } from 'file-saver';
+import { BlueprintURLs } from '../../../../common/constants/app-constants';
@Injectable()
export class EditorService {
- // blueprintUrl = '../../constants/blueprint.json';
-
constructor(private _http: HttpClient, private api: ApiService) {
}
- enrich(uri: string, body: FormData): Observable<any> {
- return this.api.post(uri, body, { responseType: 'blob' });
+ enrich(body: FormData): Observable<any> {
+ return this.api.post(BlueprintURLs.enrich, body, { responseType: 'blob' });
}
- downloadCBA(uri: string): string {
- this.api.get(uri, { responseType: 'blob' })
+ downloadCBA(artifactDetails: string): string {
+ this.api.get(BlueprintURLs.download+artifactDetails, { responseType: 'blob' })
.subscribe(response => {
let blob = new Blob([response], { 'type': "application/octet-stream" });
saveAs(blob, "CBA.zip");
@@ -46,13 +45,17 @@ export class EditorService {
return "Download Success";
}
- post(uri: string, body: any | null, options?: any): Observable<any> {
+ saveBlueprint(body: any | null, options?: any): Observable<any> {
+
+ return this.api.post(BlueprintURLs.save, body, options);
+ }
+ publishBlueprint(body: any | null, options?: any): Observable<any> {
- return this.api.post(uri, body, options);
+ return this.api.post(BlueprintURLs.publish, body, options);
}
- deployPost(uri: string, body: any | null, options?: any): Observable<any> {
+ deployPost(body: any | null, options?: any): Observable<any> {
- return this.api.post(uri, body, { responseType: 'text' });
+ return this.api.post(BlueprintURLs.deploy, body, { responseType: 'text' });
}
} \ No newline at end of file
diff --git a/cds-ui/client/src/app/feature-modules/blueprint/search-edit-cba/search-edit-cba.component.html b/cds-ui/client/src/app/feature-modules/blueprint/search-edit-cba/search-edit-cba.component.html
deleted file mode 100644
index 7371d2105..000000000
--- a/cds-ui/client/src/app/feature-modules/blueprint/search-edit-cba/search-edit-cba.component.html
+++ /dev/null
@@ -1,16 +0,0 @@
-/* ============LICENSE_START========================================== =================================================================== Copyright (C) 2018 IBM Intellectual Property. All rights reserved. ===================================================================
-Unless otherwise specified, all software contained herein is licensed under the Apache License, Version 2.0 (the License); you may not use this software 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============================================ */
-
-<form class="search-form" [formGroup]="myControl">
- <mat-form-field class="search-full-width">
- <input #resourceSelect type="text" [(ngModel)]="searchText" placeholder="Search Resources" matInput [matAutocomplete]="auto" formControlName="search_input">
- <button matSuffix mat-icon-button (click)="fetchResourceByName()"><mat-icon>search</mat-icon></button>
- <!-- <mat-autocomplete #auto="matAutocomplete">
- <mat-option (click)="selected(option)" *ngFor="let option of options | search : searchText" [value]="option.tags">
- {{option.tags}}
- </mat-option>
- </mat-autocomplete> -->
- </mat-form-field>
-</form> \ No newline at end of file
diff --git a/cds-ui/client/src/app/feature-modules/blueprint/search-edit-cba/search-edit-cba.component.scss b/cds-ui/client/src/app/feature-modules/blueprint/search-edit-cba/search-edit-cba.component.scss
deleted file mode 100644
index e69de29bb..000000000
--- a/cds-ui/client/src/app/feature-modules/blueprint/search-edit-cba/search-edit-cba.component.scss
+++ /dev/null
diff --git a/cds-ui/client/src/app/feature-modules/blueprint/search-edit-cba/search-edit-cba.component.spec.ts b/cds-ui/client/src/app/feature-modules/blueprint/search-edit-cba/search-edit-cba.component.spec.ts
deleted file mode 100644
index 78210cf12..000000000
--- a/cds-ui/client/src/app/feature-modules/blueprint/search-edit-cba/search-edit-cba.component.spec.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { async, ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { SearchEditCBAComponent } from './search-edit-cba.component';
-
-describe('SearchEditCBAComponent', () => {
- let component: SearchEditCBAComponent;
- let fixture: ComponentFixture<SearchEditCBAComponent>;
-
- beforeEach(async(() => {
- TestBed.configureTestingModule({
- declarations: [ SearchEditCBAComponent ]
- })
- .compileComponents();
- }));
-
- beforeEach(() => {
- fixture = TestBed.createComponent(SearchEditCBAComponent);
- component = fixture.componentInstance;
- fixture.detectChanges();
- });
-
- it('should create', () => {
- expect(component).toBeTruthy();
- });
-});
diff --git a/cds-ui/client/src/app/feature-modules/blueprint/search-edit-cba/search-edit-cba.component.ts b/cds-ui/client/src/app/feature-modules/blueprint/search-edit-cba/search-edit-cba.component.ts
deleted file mode 100644
index 4253e2172..000000000
--- a/cds-ui/client/src/app/feature-modules/blueprint/search-edit-cba/search-edit-cba.component.ts
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
-* ============LICENSE_START=======================================================
-* ONAP : CDS
-* ================================================================================
-* Copyright 2019 TechMahindra
-*
-* Modifications Copyright (C) 2019 IBM
-*=================================================================================
-* 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, EventEmitter, Output } from '@angular/core';
-import {FormBuilder, FormGroup, Validators, FormsModule, ReactiveFormsModule } from '@angular/forms';
-
-import { MatAutocompleteTrigger } from '@angular/material'
-@Component({
- selector: 'app-search-edit-cba',
- templateUrl: './search-edit-cba.component.html',
- styleUrls: ['./search-edit-cba.component.scss']
-})
-export class SearchEditCBAComponent implements OnInit {
-
- myControl: FormGroup;
- @Output() resourcesData = new EventEmitter();
- options: any[] = [];
- //['One','One1', 'Two', 'Three'];
- // @ViewChild('resourceSelect') resourceSelect;
- @ViewChild('resourceSelect', { read: MatAutocompleteTrigger }) resourceSelect: MatAutocompleteTrigger;
-
- searchText: string = '';
- constructor(private _formBuilder: FormBuilder,
- ) { }
-
- ngOnInit() {
- this.myControl = this._formBuilder.group({
- search_input: ['', Validators.required]
- });
- }
- selected(value){
- this.resourcesData.emit(value);
- }
-
- fetchResourceByName() {
- // this.exsistingModelService.searchByTags(this.searchText)
- // .subscribe(data=>{
- // console.log(data);
- // data.forEach(element => {
- // this.options.push(element)
- // });
- // this.resourceSelect.openPanel();
- // }, error=>{
- // window.alert('error' + error);
- // })
- }
-
-}
diff --git a/cds-ui/client/src/app/feature-modules/blueprint/select-template/search-template/search-from-database/search-from-database.component.html b/cds-ui/client/src/app/feature-modules/blueprint/select-template/search-template/search-from-database/search-from-database.component.html
index 11c2ff0b6..ca260394b 100644
--- a/cds-ui/client/src/app/feature-modules/blueprint/select-template/search-template/search-from-database/search-from-database.component.html
+++ b/cds-ui/client/src/app/feature-modules/blueprint/select-template/search-template/search-from-database/search-from-database.component.html
@@ -21,11 +21,27 @@ limitations under the License.
<form class="search-form" [formGroup]="myControl">
<mat-form-field class="search-full-width">
<input #resourceSelect type="text" [(ngModel)]="searchText" placeholder="Search Resources" matInput [matAutocomplete]="auto" formControlName="search_input">
- <button matSuffix mat-icon-button (click)="fetchResourceByName()"><mat-icon>search</mat-icon></button>
- <mat-autocomplete #auto="matAutocomplete">
- <mat-option (click)="selected(option)" *ngFor="let option of options" [value]="option.tags">
- {{option.tags}}
- </mat-option>
- </mat-autocomplete>
+ <!-- <input #resourceSelect type="text" [(ngModel)]="searchText" placeholder="Search Resources" formControlName="search_input"> -->
+ <button matSuffix mat-icon-button (click)="fetchResourceByName()">
+ <mat-icon>search</mat-icon>
+ </button>
+ <!-- <mat-autocomplete #auto="matAutocomplete">
+ <mat-option (click)="selected(option)" *ngFor="let option of options" [value]="option.tags">
+ {{option.tags}}
+ </mat-option>
+ </mat-autocomplete> -->
</mat-form-field>
-</form> \ No newline at end of file
+</form>
+<mat-grid-list cols="8">
+ <mat-grid-tile *ngFor="let option of options">
+ <mat-card class="example-card">
+ <mat-card-content class="card-content">
+ {{option.blueprintModel.artifactName}}
+ </mat-card-content>
+ <mat-card-actions>
+ <button mat-menu-item>Edit</button>
+ <button mat-menu-item>Info</button>
+ </mat-card-actions>
+ </mat-card>
+ </mat-grid-tile>
+</mat-grid-list> \ No newline at end of file
diff --git a/cds-ui/client/src/app/feature-modules/blueprint/select-template/search-template/search-from-database/search-from-database.component.scss b/cds-ui/client/src/app/feature-modules/blueprint/select-template/search-template/search-from-database/search-from-database.component.scss
index 93f5c9dea..6692764ae 100644
--- a/cds-ui/client/src/app/feature-modules/blueprint/select-template/search-template/search-from-database/search-from-database.component.scss
+++ b/cds-ui/client/src/app/feature-modules/blueprint/select-template/search-template/search-from-database/search-from-database.component.scss
@@ -17,4 +17,40 @@ 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
+*/
+
+.example-card {
+ min-width: 150px;
+ max-height: 150px;
+ background-color: #ebebeb;
+}
+
+button.mat-menu-item {
+ width: auto;
+ float: left;
+ // margin-top: 10px;
+ // margin-bottom: 5px;
+ border-radius: 4px;
+ // min-width: 6em;
+ background-color: #3f51b5;
+ margin: 1px;
+ // padding: 1px;
+ cursor: pointer;
+ color: white;
+}
+
+.card-deck-container {
+ position: relative;
+ border-radius: 1px;
+ padding: 2px;
+ margin: 2px;
+ // background-color: #f5f5f5;
+}
+
+.grid-container {
+ margin: 20px;
+}
+
+.card-content {
+ text-align: center;
+} \ No newline at end of file
diff --git a/cds-ui/client/src/app/feature-modules/blueprint/select-template/search-template/search-from-database/search-from-database.component.ts b/cds-ui/client/src/app/feature-modules/blueprint/select-template/search-template/search-from-database/search-from-database.component.ts
index a14508670..1c3630649 100644
--- a/cds-ui/client/src/app/feature-modules/blueprint/select-template/search-template/search-from-database/search-from-database.component.ts
+++ b/cds-ui/client/src/app/feature-modules/blueprint/select-template/search-template/search-from-database/search-from-database.component.ts
@@ -19,8 +19,8 @@ limitations under the License.
============LICENSE_END============================================
*/
-import { Component, OnInit, ViewChild, EventEmitter, Output } from '@angular/core';
-import { FormBuilder, FormGroup, Validators} from '@angular/forms';
+import { Component, OnInit, ViewChild, EventEmitter, Output } from '@angular/core';
+import { FormBuilder, FormGroup, Validators } from '@angular/forms';
import { SearchTemplateService } from '../search-template.service';
import { MatAutocompleteTrigger } from '@angular/material';
import { SearchPipe } from 'src/app/common/shared/pipes/search.pipe';
@@ -32,34 +32,36 @@ import { SearchPipe } from 'src/app/common/shared/pipes/search.pipe';
export class SearchFromDatabaseComponent implements OnInit {
myControl: FormGroup;
- @Output() resourcesData = new EventEmitter();
- options: any[] = [];
+ @Output() resourcesData = new EventEmitter();
+ options: any[] = [];
@ViewChild('resourceSelect', { read: MatAutocompleteTrigger }) resourceSelect: MatAutocompleteTrigger;
searchText: string = '';
constructor(private _formBuilder: FormBuilder,
- private existingModelService: SearchTemplateService) { }
-
- ngOnInit() {
+ private searchService: SearchTemplateService) { }
+
+ ngOnInit() {
this.myControl = this._formBuilder.group({
search_input: ['', Validators.required]
});
}
- selected(value){
- this.resourcesData.emit(value);
- }
+ selected(value) {
+ this.resourcesData.emit(value);
+ }
- fetchResourceByName() {
- this.existingModelService.searchByTags("/searchByTags/",this.searchText)
- .subscribe(data=>{
- console.log(data);
- data.forEach(element => {
- this.options.push(element)
- });
- this.resourceSelect.openPanel();
- }, error=>{
+ fetchResourceByName() {
+ this.searchService.searchByTags(this.searchText)
+ .subscribe(data => {
+ // console.log(data);
+ data.forEach(element => {
+ this.options.push(element)
+ });
+ // this.resourceSelect.openPanel();
+ }, error => {
window.alert('error' + error);
})
- }
+ console.log(this.options)
+ // this.options=['test','vns','capability','hello','hi','hoi','dfagfagshdgfashdf','adsfhksd'];
+ }
}
diff --git a/cds-ui/client/src/app/feature-modules/blueprint/select-template/search-template/search-template.service.ts b/cds-ui/client/src/app/feature-modules/blueprint/select-template/search-template/search-template.service.ts
index dd17a30d2..31a839cc3 100644
--- a/cds-ui/client/src/app/feature-modules/blueprint/select-template/search-template/search-template.service.ts
+++ b/cds-ui/client/src/app/feature-modules/blueprint/select-template/search-template/search-template.service.ts
@@ -23,6 +23,7 @@ import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs';
import { ApiService } from '../../../../common/core/services/api.service';
+import { BlueprintURLs } from '../../../../common/constants/app-constants';
@Injectable({
providedIn: 'root'
@@ -31,7 +32,7 @@ export class SearchTemplateService {
constructor(private _http: HttpClient, private api: ApiService) { }
- searchByTags(uri: string, searchText: String): Observable<any>{
- return this.api.post(uri, searchText);
+ searchByTags(searchText: String): Observable<any>{
+ return this.api.get(BlueprintURLs.searchByTag+'/'+searchText);
}
}
diff --git a/cds-ui/client/src/app/feature-modules/resource-definition/resource-edit/sources-template/sources-template.component.html b/cds-ui/client/src/app/feature-modules/resource-definition/resource-edit/sources-template/sources-template.component.html
index b179f011d..a5f367de0 100644
--- a/cds-ui/client/src/app/feature-modules/resource-definition/resource-edit/sources-template/sources-template.component.html
+++ b/cds-ui/client/src/app/feature-modules/resource-definition/resource-edit/sources-template/sources-template.component.html
@@ -27,7 +27,7 @@
class="sources-list"
(cdkDropListDropped)="drop($event)">
<div class="sources-box" *ngFor="let item of sourcesOptions;let i = index" cdkDrag>
- <mat-expansion-panel class="expansion-panel" (opened)="selected(item)">
+ <mat-expansion-panel class="expansion-panel">
<mat-expansion-panel-header>
<mat-panel-title>
{{item.name}}
diff --git a/cds-ui/client/src/app/feature-modules/resource-definition/resource-edit/sources-template/sources-template.component.ts b/cds-ui/client/src/app/feature-modules/resource-definition/resource-edit/sources-template/sources-template.component.ts
index 42f990a24..3e8f4f8d6 100644
--- a/cds-ui/client/src/app/feature-modules/resource-definition/resource-edit/sources-template/sources-template.component.ts
+++ b/cds-ui/client/src/app/feature-modules/resource-definition/resource-edit/sources-template/sources-template.component.ts
@@ -48,7 +48,8 @@ export class SourcesTemplateComponent implements OnInit {
sources:ISourcesData;
sourcesOptions = [];
sourcesData = {};
- @Output() resourcesData = new EventEmitter();
+ @Output() resourcesData = new EventEmitter();
+ tempOption = [];
constructor(private store: Store<IAppState>, private apiService: ResourceEditService) {
this.rdState = this.store.select('resources');
@@ -62,12 +63,10 @@ export class SourcesTemplateComponent implements OnInit {
resourcesdata => {
var resourcesState: IResourcesState = { resources: resourcesdata.resources, isLoadSuccess: resourcesdata.isLoadSuccess, isSaveSuccess: resourcesdata.isSaveSuccess, isUpdateSuccess: resourcesdata.isUpdateSuccess };
this.resources=resourcesState.resources;
- // this.sources = resourcesState.resources.sources;
if(resourcesState.resources.definition && resourcesState.resources.definition.sources) {
this.sources = resourcesState.resources.definition.sources;
}
for (let key in this.sources) {
- // this.sourcesOptions.push(key);
let source = {
name : key,
data: this.sources[key]
@@ -88,6 +87,7 @@ export class SourcesTemplateComponent implements OnInit {
this.resources.sources = Object.assign({},originalSources);
};
+ // to remove this method
selected(sourceValue){
this.sourcesData= [];//this.sources[value];
this.apiService.getModelType(sourceValue.value)
@@ -136,14 +136,45 @@ export class SourcesTemplateComponent implements OnInit {
}
drop(event: CdkDragDrop<string[]>) {
- 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);
- }
+ if (!this.checkIfSourceExists(event.item.element.nativeElement.innerText)) {
+ 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);
+ }
+ this.tempOption.forEach((item) => {
+ if (item.name == event.item.element.nativeElement.innerText) {
+ this.apiService.getModelType(item.value)
+ .subscribe(data => {
+ console.log(data);
+ data.forEach(dataitem => {
+ if (typeof (dataitem) == "object") {
+ for (let key1 in dataitem) {
+ if (key1 == 'properties') {
+ let newPropObj = {};
+ newPropObj["name"] = event.item.element.nativeElement.innerText;
+ newPropObj['data'] = {};
+ let newSoruceObj = {};
+ for (let key2 in dataitem[key1]) {
+ newSoruceObj[key2] = '';;
+ }
+ newPropObj['data']['properties'] = newSoruceObj;
+ this.sourcesOptions.forEach(sourcesOptionsitem => {
+ if (sourcesOptionsitem.name == item.name) {
+ sourcesOptionsitem.data = newPropObj['data'];
+ }
+ });
+ }
+ }
+ }
+ });
+ });
+ }
+ });
+ }
}
getResources() {
@@ -152,11 +183,21 @@ export class SourcesTemplateComponent implements OnInit {
console.log(data);
for (let key in data[0]) {
let sourceObj = { name: key, value: data[0][key] }
- this.option.push(sourceObj);
+ this.option.push(sourceObj);
+ this.tempOption.push(sourceObj);
}
- // this.sourcesOptions = data;
}, error=>{
console.log(error);
})
}
+
+ checkIfSourceExists(sourceName) {
+ let sourceExists: boolean = false;
+ this.sourcesOptions.forEach(item => {
+ if (item.name == sourceName) {
+ sourceExists = true;
+ }
+ });
+ return sourceExists;
+}
}
diff --git a/cds-ui/server/src/controllers/blueprint-rest.controller.ts b/cds-ui/server/src/controllers/blueprint-rest.controller.ts
index 14aba5617..c73f7a6f8 100644
--- a/cds-ui/server/src/controllers/blueprint-rest.controller.ts
+++ b/cds-ui/server/src/controllers/blueprint-rest.controller.ts
@@ -57,7 +57,7 @@ export class BlueprintRestController {
public bpservice: BlueprintService,
) { }
- @get('/blueprints', {
+ @get('/controllerblueprint/all', {
responses: {
'200': {
description: 'Blueprint model instance',
@@ -69,7 +69,7 @@ export class BlueprintRestController {
return await this.bpservice.getAllblueprints();
}
- @get('/searchByTags/{tags}', {
+ @get('/controllerblueprint/searchByTags/{tags}', {
responses: {
'200': {
content: { 'application/json': {} },
@@ -80,7 +80,7 @@ export class BlueprintRestController {
return await this.bpservice.getByTags(tags);
}
- @post('/create-blueprint')
+ @post('/controllerblueprint/create-blueprint')
async upload(
@requestBody({
description: 'multipart/form-data value.',
@@ -109,7 +109,7 @@ export class BlueprintRestController {
});
}
- @post('/publish')
+ @post('/controllerblueprint/publish')
async publish(
@requestBody({
description: 'multipart/form-data value.',
@@ -138,7 +138,7 @@ export class BlueprintRestController {
});
}
- @post('/enrich-blueprint')
+ @post('/controllerblueprint/enrich-blueprint')
async enrich(
@requestBody({
description: 'multipart/form-data value.',
@@ -167,7 +167,7 @@ export class BlueprintRestController {
});
}
- @get('/download-blueprint/{name}/{version}')
+ @get('/controllerblueprint/download-blueprint/{name}/{version}')
async download(
@param.path.string('name') name: string,
@param.path.string('version') version: string,
@@ -191,7 +191,7 @@ export class BlueprintRestController {
})
}
- @post('/deploy-blueprint')
+ @post('/controllerblueprint/deploy-blueprint')
async deploy(
@requestBody({
description: 'multipart/form-data value.',
diff --git a/cds-ui/server/src/controllers/index.ts b/cds-ui/server/src/controllers/index.ts
index 59f635149..fd4d9c8ac 100644
--- a/cds-ui/server/src/controllers/index.ts
+++ b/cds-ui/server/src/controllers/index.ts
@@ -20,4 +20,5 @@ limitations under the License.
*/
export * from './ping.controller';
+export * from './blueprint-rest.controller';
export * from './data-dictionary.controller';
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
new file mode 100644
index 000000000..6ec3b4105
--- /dev/null
+++ b/components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/artifact_types.json
@@ -0,0 +1,22 @@
+{
+ "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",
+ "derived_from" : "tosca.artifacts.Implementation",
+ "file_ext" : [ "json" ]
+ },
+ "artifact-template-velocity" : {
+ "description" : " Velocity Template used for Configuration",
+ "version" : "1.0.0",
+ "derived_from" : "tosca.artifacts.Implementation",
+ "file_ext" : [ "vtl" ]
+ }
+ }
+} \ No newline at end of file
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
new file mode 100644
index 000000000..346bc4b2c
--- /dev/null
+++ b/components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/data_types.json
@@ -0,0 +1,772 @@
+{
+ "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"
+ },
+ "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" : ""
+ }
+ }
+ },
+ "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" : [ { } ],
+ "default" : "",
+ "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" : ""
+ }
+ },
+ "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" : [ { } ],
+ "default" : "",
+ "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" : [ { } ],
+ "default" : "m1.medium",
+ "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" : [ { } ],
+ "default" : "m1.medium",
+ "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" : [ { } ],
+ "default" : "",
+ "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" : [ { } ],
+ "default" : "",
+ "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" : ""
+ }
+ }
+ },
+ "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
new file mode 100644
index 000000000..0897af526
--- /dev/null
+++ b/components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/node_types.json
@@ -0,0 +1,390 @@
+{
+ "node_types" : {
+ "component-netconf-executor" : {
+ "description" : "This is Netconf Transaction Configuration Component API",
+ "version" : "1.0.0",
+ "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"
+ }
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ }
+ },
+ "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"
+ },
+ "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"
+ }
+ }
+ },
+ "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"
+ }
+ }
+ },
+ "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-processor-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"
+ },
+ "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"
+ }
+ }
+ },
+ "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"
+ },
+ "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/policy_types.json b/components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/policy_types.json
new file mode 100644
index 000000000..1e44cc70a
--- /dev/null
+++ b/components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/policy_types.json
@@ -0,0 +1,3 @@
+{
+ "policy_types" : { }
+} \ 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
new file mode 100644
index 000000000..027bfc0fc
--- /dev/null
+++ b/components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/relationship_types.json
@@ -0,0 +1,9 @@
+{
+ "relationship_types" : {
+ "tosca.relationships.ConnectsTo" : {
+ "description" : "Relationship tosca.relationships.ConnectsTo",
+ "version" : "1.0.0",
+ "derived_from" : "tosca.relationships.Root"
+ }
+ }
+} \ 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
new file mode 100644
index 000000000..4fa179f9c
--- /dev/null
+++ b/components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/resources_definition_types.json
@@ -0,0 +1,2074 @@
+{
+ "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" : { }
+ },
+ "primary-config-data" : {
+ "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" : {
+ "primary-config-data" : {
+ "type" : "source-rest",
+ "properties" : {
+ "type" : "JSON",
+ "verb" : "PUT",
+ "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$vnf-id/service-data/vnfs/vnf/$service-instance-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" : { }
+ },
+ "primary-config-data" : {
+ "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" : { }
+ },
+ "primary-config-data" : {
+ "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" : { }
+ },
+ "primary-config-data" : {
+ "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" ]
+ }
+ }
+ }
+ },
+ "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" : { }
+ },
+ "primary-config-data" : {
+ "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" : { }
+ },
+ "primary-config-data" : {
+ "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" : { }
+ },
+ "primary-config-data" : {
+ "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" : { }
+ },
+ "primary-config-data" : {
+ "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" : { }
+ },
+ "primary-config-data" : {
+ "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" : { }
+ },
+ "primary-config-data" : {
+ "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" : { }
+ },
+ "primary-config-data" : {
+ "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" : { }
+ },
+ "primary-config-data" : {
+ "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" : { }
+ },
+ "primary-config-data" : {
+ "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" : { }
+ },
+ "primary-config-data" : {
+ "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-processor-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" : { }
+ },
+ "primary-config-data" : {
+ "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" : { }
+ },
+ "primary-config-data" : {
+ "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-processor-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-processor-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"
+ }
+ }
+ },
+ "primary-config-data" : {
+ "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" : { }
+ },
+ "primary-config-data" : {
+ "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" : { }
+ },
+ "primary-config-data" : {
+ "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" : { }
+ },
+ "primary-config-data" : {
+ "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-processor-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" : { }
+ }
+ },
+ "primary-config-data" : {
+ "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" : { }
+ },
+ "primary-config-data" : {
+ "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-processor-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" : { }
+ },
+ "primary-config-data" : {
+ "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-processor-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" : { }
+ },
+ "primary-config-data" : {
+ "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" : { }
+ },
+ "primary-config-data" : {
+ "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" : { }
+ },
+ "primary-config-data" : {
+ "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-processor-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-processor-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_flavor_name" : {
+ "tags" : "vdns_flavor_name",
+ "name" : "vdns_flavor_name",
+ "property" : {
+ "description" : "vdns_flavor_name",
+ "type" : "string"
+ },
+ "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
+ "sources" : {
+ "input" : {
+ "type" : "source-input"
+ },
+ "default" : {
+ "type" : "source-default",
+ "properties" : { }
+ },
+ "primary-config-data" : {
+ "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_flavor_name",
+ "path" : "/param/0/value",
+ "input-key-mapping" : {
+ "service-instance-id" : "service-instance-id",
+ "vnf-id" : "vnf-id"
+ },
+ "output-key-mapping" : {
+ "vdns_flavor_name" : "value"
+ },
+ "key-dependencies" : [ "service-instance-id", "vnf-id" ]
+ }
+ }
+ }
+ },
+ "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" : { }
+ },
+ "primary-config-data" : {
+ "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" : { }
+ },
+ "primary-config-data" : {
+ "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" : { }
+ },
+ "primary-config-data" : {
+ "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" : { }
+ },
+ "primary-config-data" : {
+ "type" : "source-rest",
+ "properties" : {
+ "verb" : "GET",
+ "type" : "JSON",
+ "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$vnf-id/service-data/vnfs/vnf/$service-instance-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-processor-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-processor-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" : { }
+ },
+ "primary-config-data" : {
+ "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-processor-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-processor-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" : { }
+ },
+ "primary-config-data" : {
+ "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_flavor_name" : {
+ "tags" : "vlb_flavor_name",
+ "name" : "vlb_flavor_name",
+ "property" : {
+ "description" : "vlb_flavor_name",
+ "type" : "string"
+ },
+ "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
+ "sources" : {
+ "input" : {
+ "type" : "source-input"
+ },
+ "default" : {
+ "type" : "source-default",
+ "properties" : { }
+ },
+ "primary-config-data" : {
+ "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_flavor_name",
+ "path" : "/param/0/value",
+ "input-key-mapping" : {
+ "service-instance-id" : "service-instance-id",
+ "vnf-id" : "vnf-id"
+ },
+ "output-key-mapping" : {
+ "vlb_flavor_name" : "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" : { }
+ },
+ "primary-config-data" : {
+ "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" : { }
+ },
+ "primary-config-data" : {
+ "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" : { }
+ },
+ "primary-config-data" : {
+ "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" : { }
+ },
+ "primary-config-data" : {
+ "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" : { }
+ },
+ "processor-db" : {
+ "type" : "source-processor-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"
+ }
+ }
+ },
+ "primary-config-data" : {
+ "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" ]
+ }
+ }
+ }
+ },
+ "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-processor-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" : { }
+ },
+ "primary-config-data" : {
+ "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" : { }
+ },
+ "primary-config-data" : {
+ "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-processor-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-processor-db",
+ "properties" : {
+ "endpoint-selector" : "dynamic-db-source",
+ "type" : "SQL",
+ "query" : "select VFC_MODEL.version as vnfc_model_version from VFC_MODEL where customization_uuid=:vfccustomizationuuid",
+ "input-key-mapping" : {
+ "vfccustomizationuuid" : "vfccustomizationuuid"
+ },
+ "output-key-mapping" : {
+ "vnfc-model-version" : "vnfc_model_version"
+ },
+ "key-dependencies" : [ "vfccustomizationuuid" ]
+ }
+ }
+ }
+ },
+ "vpg_flavor_name" : {
+ "tags" : "vpg_flavor_name",
+ "name" : "vpg_flavor_name",
+ "property" : {
+ "description" : "vpg_flavor_name",
+ "type" : "string"
+ },
+ "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
+ "sources" : {
+ "input" : {
+ "type" : "source-input"
+ },
+ "default" : {
+ "type" : "source-default",
+ "properties" : { }
+ },
+ "primary-config-data" : {
+ "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_flavor_name",
+ "path" : "/param/0/value",
+ "input-key-mapping" : {
+ "service-instance-id" : "service-instance-id",
+ "vnf-id" : "vnf-id"
+ },
+ "output-key-mapping" : {
+ "vpg_flavor_name" : "value"
+ },
+ "key-dependencies" : [ "service-instance-id", "vnf-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" : { }
+ },
+ "primary-config-data" : {
+ "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" : { }
+ },
+ "primary-config-data" : {
+ "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" : { }
+ },
+ "primary-config-data" : {
+ "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" ]
+ }
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/vDNS-CDS.json b/components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/vDNS-CDS.json
new file mode 100644
index 000000000..fa9f69f37
--- /dev/null
+++ b/components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/vDNS-CDS.json
@@ -0,0 +1,323 @@
+{
+ "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" : "test",
+ "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"
+ }
+ },
+ "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" ]
+ }
+ }
+ }
+ },
+ "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" ]
+ }
+ }
+ }
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "node_templates" : {
+ "resource-assignment" : {
+ "type" : "component-resource-resolution",
+ "interfaces" : {
+ "ResourceResolutionComponent" : {
+ "operations" : {
+ "process" : {
+ "inputs" : {
+ "artifact-prefix-names" : {
+ "get_input" : "template-prefix"
+ }
+ }
+ }
+ }
+ }
+ },
+ "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"
+ },
+ "vdns-vnf-template" : {
+ "type" : "artifact-template-velocity",
+ "file" : "Templates/vdns-vnf-template.vtl"
+ },
+ "vdns-vnf-mapping" : {
+ "type" : "artifact-mapping-resource",
+ "file" : "Templates/vdns-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" ]
+ }
+ }
+ }
+ }
+ },
+ "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-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" ]
+ }
+ }
+ }
+ }
+ },
+ "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-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"
+ }
+ }
+ }
+ }
+ },
+ "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/Plans/CONFIG_ConfigDeploy.xml b/components/model-catalog/blueprint-model/service-blueprint/vLB/Plans/CONFIG_ConfigDeploy.xml
new file mode 100644
index 000000000..92fb2aa48
--- /dev/null
+++ b/components/model-catalog/blueprint-model/service-blueprint/vLB/Plans/CONFIG_ConfigDeploy.xml
@@ -0,0 +1,27 @@
+<service-logic
+ xmlns='http://www.onap.org/sdnc/svclogic'
+ xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
+ xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='CONFIG' version='1.0.0'>
+ <method rpc='ConfigDeploy' mode='sync'>
+ <block atomic="true">
+ <execute plugin="nf-account-collection" method="process">
+ <outcome value='failure'>
+ <return status="failure">
+ </return>
+ </outcome>
+ <outcome value='success'>
+ <execute plugin="execute" method="process">
+ <outcome value='failure'>
+ <return status="failure">
+ </return>
+ </outcome>
+ <outcome value='success'>
+ <return status='success'>
+ </return>
+ </outcome>
+ </execute>
+ </outcome>
+ </execute>
+ </block>
+ </method>
+</service-logic> \ 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
new file mode 100644
index 000000000..9e027e24c
--- /dev/null
+++ b/components/model-catalog/blueprint-model/service-blueprint/vLB/Scripts/python/ConfigDeploy.py
@@ -0,0 +1,54 @@
+# 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="none")
+ nc.edit_config(message_content=payloadHostname, edit_default_peration="none")
+ nc.validate()
+ nc.commit()
+ #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
new file mode 100644
index 000000000..ea1a90340
--- /dev/null
+++ b/components/model-catalog/blueprint-model/service-blueprint/vLB/TOSCA-Metadata/TOSCA.meta
@@ -0,0 +1,6 @@
+TOSCA-Meta-File-Version: 1.0.0
+CSAR-Version: 1.0
+Created-By: PLATANIA, MARCO <platania@research.att.com>
+Entry-Definitions: Definitions/vDNS-CDS.json
+Template-Tags: vDNS-CDS-test1
+Content-Type: application/vnd.oasis.bpmn \ No newline at end of file
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
new file mode 100644
index 000000000..5a3da4efd
--- /dev/null
+++ b/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/base_template-mapping.json
@@ -0,0 +1,409 @@
+[
+ {
+ "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": "primary-config-data",
+ "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": "primary-config-data",
+ "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": "primary-config-data",
+ "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": "primary-config-data",
+ "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": "primary-config-data",
+ "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": "primary-config-data",
+ "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
new file mode 100644
index 000000000..8055030c2
--- /dev/null
+++ b/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/base_template-template.vtl
@@ -0,0 +1,144 @@
+{
+ "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-mapping.json b/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/baseconfig-mapping.json
new file mode 100644
index 000000000..246cb40a0
--- /dev/null
+++ b/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/baseconfig-mapping.json
@@ -0,0 +1,113 @@
+[
+ {
+ "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": "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": "vdns_vf_module_id",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vdns_vf_module_id",
+ "dictionary-source": "primary-config-data",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "vdns_int_private_ip_0",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vdns_int_private_ip_0",
+ "dictionary-source": "primary-config-data",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id",
+ "vdns_vf_module_id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "vdns_onap_private_ip_0",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vdns_onap_private_ip_0",
+ "dictionary-source": "primary-config-data",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id",
+ "vdns_vf_module_id"
+ ],
+ "version": 0
+ }
+] \ 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
new file mode 100644
index 000000000..23cd22bb3
--- /dev/null
+++ b/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/baseconfig-template.vtl
@@ -0,0 +1,9 @@
+ {
+ "vdns-instance": [
+ {
+ "ip-addr": "$vdns_int_private_ip_0",
+ "oam-ip-addr": "$vdns_onap_private_ip_0",
+ "enabled": false
+ }
+ ]
+} \ No newline at end of file
diff --git a/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/incremental-config-mapping.json b/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/incremental-config-mapping.json
new file mode 100644
index 000000000..914565a43
--- /dev/null
+++ b/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/incremental-config-mapping.json
@@ -0,0 +1,113 @@
+[
+ {
+ "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": "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": "vdns_vf_module_id",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vdns_vf_module_id",
+ "dictionary-source": "primary-config-data",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "vdns_int_private_ip_0",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vdns_int_private_ip_0",
+ "dictionary-source": "primary-config-data",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id",
+ "vdns_vf_module_id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "vdns_onap_private_ip_0",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vdns_onap_private_ip_0",
+ "dictionary-source": "primary-config-data",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id",
+ "vdns_vf_module_id"
+ ],
+ "version": 0
+ }
+] \ 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
new file mode 100644
index 000000000..a3cd17f65
--- /dev/null
+++ b/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/incremental-config-template.vtl
@@ -0,0 +1,9 @@
+{
+ "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
new file mode 100644
index 000000000..57152c9bd
--- /dev/null
+++ b/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/nf-params-mapping.json
@@ -0,0 +1,65 @@
+[
+ {
+ "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": "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": "ip",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vlb_onap_private_ip_0",
+ "dictionary-source": "primary-config-data",
+ "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/nf-params-template.vtl b/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/nf-params-template.vtl
new file mode 100644
index 000000000..968e8a2db
--- /dev/null
+++ b/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/nf-params-template.vtl
@@ -0,0 +1 @@
+${ip} \ No newline at end of file
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
new file mode 100644
index 000000000..c59c13411
--- /dev/null
+++ b/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vdns-mapping.json
@@ -0,0 +1,814 @@
+[
+ {
+ "name": "cloud_env",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "cloud_env",
+ "dictionary-source": "primary-config-data",
+ "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": "primary-config-data",
+ "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": "primary-config-data",
+ "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": "primary-config-data",
+ "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": "primary-config-data",
+ "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": "primary-config-data",
+ "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": "primary-config-data",
+ "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": "primary-config-data",
+ "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": "vdns_flavor_name",
+ "dictionary-source": "default",
+ "dependencies": [],
+ "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": "primary-config-data",
+ "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": "primary-config-data",
+ "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": "primary-config-data",
+ "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": "primary-config-data",
+ "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": "primary-config-data",
+ "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": "primary-config-data",
+ "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": "primary-config-data",
+ "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
new file mode 100644
index 000000000..9c493dc45
--- /dev/null
+++ b/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vdns-template.vtl
@@ -0,0 +1,302 @@
+{
+ "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/vdns-vnf-mapping.json b/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vdns-vnf-mapping.json
new file mode 100644
index 000000000..20e2a2720
--- /dev/null
+++ b/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vdns-vnf-mapping.json
@@ -0,0 +1,670 @@
+[
+ {
+ "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": "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
+ }
+] \ No newline at end of file
diff --git a/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vdns-vnf-template.vtl b/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vdns-vnf-template.vtl
new file mode 100644
index 000000000..ec43a5a4a
--- /dev/null
+++ b/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vdns-vnf-template.vtl
@@ -0,0 +1,280 @@
+{
+ "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": "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/vlb-mapping.json b/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vlb-mapping.json
new file mode 100644
index 000000000..8ec07e92b
--- /dev/null
+++ b/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vlb-mapping.json
@@ -0,0 +1,927 @@
+[
+ {
+ "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": "primary-config-data",
+ "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": "primary-config-data",
+ "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": "primary-config-data",
+ "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": "primary-config-data",
+ "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": "primary-config-data",
+ "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": "primary-config-data",
+ "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": "primary-config-data",
+ "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": "primary-config-data",
+ "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": "primary-config-data",
+ "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": "primary-config-data",
+ "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": "primary-config-data",
+ "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": ""
+ },
+ "default": "m1.medium"
+ },
+ "input-param": false,
+ "dictionary-name": "vlb_flavor_name",
+ "dictionary-source": "default",
+ "dependencies": [],
+ "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": "primary-config-data",
+ "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": "primary-config-data",
+ "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": "primary-config-data",
+ "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": "primary-config-data",
+ "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": "primary-config-data",
+ "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": "primary-config-data",
+ "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
+ }
+] \ 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
new file mode 100644
index 000000000..bc495bd2d
--- /dev/null
+++ b/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vlb-template.vtl
@@ -0,0 +1,330 @@
+{
+ "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/vpkg-mapping.json b/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vpkg-mapping.json
new file mode 100644
index 000000000..472d76625
--- /dev/null
+++ b/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vpkg-mapping.json
@@ -0,0 +1,832 @@
+[
+ {
+ "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": "demo_artifacts_version",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "demo_artifacts_version",
+ "dictionary-source": "primary-config-data",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-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": "primary-config-data",
+ "dependencies": [
+ "service-instance-id",
+ "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": "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": "primary-config-data",
+ "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": "primary-config-data",
+ "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": "primary-config-data",
+ "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": "primary-config-data",
+ "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": "primary-config-data",
+ "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": "primary-config-data",
+ "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": "primary-config-data",
+ "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": "primary-config-data",
+ "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": "primary-config-data",
+ "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": "vpg_flavor_name",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ },
+ "default": "m1.medium"
+ },
+ "input-param": false,
+ "dictionary-name": "vpg_flavor_name",
+ "dictionary-source": "default",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "vpg_image_name",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "image_name",
+ "dictionary-source": "primary-config-data",
+ "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": "primary-config-data",
+ "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": "primary-config-data",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "vpg_name_0",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ },
+ "default": "${vpg_name_0}"
+ },
+ "input-param": false,
+ "dictionary-name": "vpg_name_0",
+ "dictionary-source": "default",
+ "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": "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": "pg_int",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ },
+ "default": "${pg_int}"
+ },
+ "input-param": false,
+ "dictionary-name": "pg_int",
+ "dictionary-source": "default",
+ "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_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": "primary-config-data",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "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": "primary-config-data",
+ "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/vpkg-template.vtl b/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vpkg-template.vtl
new file mode 100644
index 000000000..98d541d69
--- /dev/null
+++ b/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vpkg-template.vtl
@@ -0,0 +1,273 @@
+{
+ "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/components/model-catalog/blueprint-model/test-blueprint/capability_cli/Definitions/artifact_types.json b/components/model-catalog/blueprint-model/test-blueprint/capability_cli/Definitions/artifact_types.json
new file mode 100644
index 000000000..ad507bd7a
--- /dev/null
+++ b/components/model-catalog/blueprint-model/test-blueprint/capability_cli/Definitions/artifact_types.json
@@ -0,0 +1,10 @@
+{
+ "artifact_types" : {
+ "artifact-template-velocity" : {
+ "description" : " Velocity Template used for Configuration",
+ "version" : "1.0.0",
+ "derived_from" : "tosca.artifacts.Implementation",
+ "file_ext" : [ "vtl" ]
+ }
+ }
+} \ No newline at end of file
diff --git a/components/model-catalog/blueprint-model/test-blueprint/capability_cli/Definitions/capability-cli-blueprint.json b/components/model-catalog/blueprint-model/test-blueprint/capability_cli/Definitions/capability-cli-blueprint.json
index f09110045..ceb705127 100644
--- a/components/model-catalog/blueprint-model/test-blueprint/capability_cli/Definitions/capability-cli-blueprint.json
+++ b/components/model-catalog/blueprint-model/test-blueprint/capability_cli/Definitions/capability-cli-blueprint.json
@@ -30,11 +30,41 @@
"resolution-key": {
"get_input": "resolution-key"
}
+ },
+ "device-properties": {
+ "type": "basic-auth",
+ "host": {
+ "get_input": "hostname"
+ },
+ "username": {
+ "get_input": "username"
+ },
+ "password": {
+ "get_input": "password"
+ }
}
},
"topology_template": {
"workflows": {
"check": {
+ "inputs": {
+ "hostname": {
+ "required": true,
+ "type": "string"
+ },
+ "username": {
+ "required": true,
+ "type": "string"
+ },
+ "password": {
+ "required": true,
+ "type": "string"
+ },
+ "data": {
+ "required": true,
+ "type": "json"
+ }
+ },
"steps": {
"activate-process": {
"description": "Check CLI",
diff --git a/components/model-catalog/blueprint-model/test-blueprint/capability_cli/Definitions/data_types.json b/components/model-catalog/blueprint-model/test-blueprint/capability_cli/Definitions/data_types.json
new file mode 100644
index 000000000..8c304c40b
--- /dev/null
+++ b/components/model-catalog/blueprint-model/test-blueprint/capability_cli/Definitions/data_types.json
@@ -0,0 +1,3 @@
+{
+ "data_types" : { }
+} \ No newline at end of file
diff --git a/components/model-catalog/blueprint-model/test-blueprint/capability_cli/Definitions/node_types.json b/components/model-catalog/blueprint-model/test-blueprint/capability_cli/Definitions/node_types.json
new file mode 100644
index 000000000..f09ed9949
--- /dev/null
+++ b/components/model-catalog/blueprint-model/test-blueprint/capability_cli/Definitions/node_types.json
@@ -0,0 +1,60 @@
+{
+ "node_types" : {
+ "component-script-executor" : {
+ "description" : "This is CLI Transaction Configuration Component API",
+ "version" : "1.0.0",
+ "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"
+ }
+ }
+ }
+ }
+ }
+ },
+ "derived_from" : "tosca.nodes.Component"
+ },
+ "tosca.nodes.Component" : {
+ "description" : "This is default Component Node",
+ "version" : "1.0.0",
+ "derived_from" : "tosca.nodes.Root"
+ }
+ }
+} \ No newline at end of file
diff --git a/components/model-catalog/blueprint-model/test-blueprint/capability_cli/Definitions/policy_types.json b/components/model-catalog/blueprint-model/test-blueprint/capability_cli/Definitions/policy_types.json
new file mode 100644
index 000000000..1e44cc70a
--- /dev/null
+++ b/components/model-catalog/blueprint-model/test-blueprint/capability_cli/Definitions/policy_types.json
@@ -0,0 +1,3 @@
+{
+ "policy_types" : { }
+} \ No newline at end of file
diff --git a/components/model-catalog/blueprint-model/test-blueprint/capability_cli/Definitions/relationship_types.json b/components/model-catalog/blueprint-model/test-blueprint/capability_cli/Definitions/relationship_types.json
new file mode 100644
index 000000000..4ddd7a57c
--- /dev/null
+++ b/components/model-catalog/blueprint-model/test-blueprint/capability_cli/Definitions/relationship_types.json
@@ -0,0 +1,3 @@
+{
+ "relationship_types" : { }
+} \ No newline at end of file
diff --git a/components/model-catalog/blueprint-model/test-blueprint/capability_cli/Definitions/resources_definition_types.json b/components/model-catalog/blueprint-model/test-blueprint/capability_cli/Definitions/resources_definition_types.json
new file mode 100644
index 000000000..6f31cf5a2
--- /dev/null
+++ b/components/model-catalog/blueprint-model/test-blueprint/capability_cli/Definitions/resources_definition_types.json
@@ -0,0 +1 @@
+{ } \ No newline at end of file
diff --git a/components/model-catalog/blueprint-model/test-blueprint/capability_cli/Scripts/kotlin/CapabilityCli.kt b/components/model-catalog/blueprint-model/test-blueprint/capability_cli/Scripts/kotlin/CapabilityCli.kt
index 270184d34..6b1aae45d 100644
--- a/components/model-catalog/blueprint-model/test-blueprint/capability_cli/Scripts/kotlin/CapabilityCli.kt
+++ b/components/model-catalog/blueprint-model/test-blueprint/capability_cli/Scripts/kotlin/CapabilityCli.kt
@@ -16,16 +16,43 @@
package cba.scripts.capability.cli
-open class Check : CliComponentFunction() {
+import org.onap.ccsdk.cds.blueprintsprocessor.core.api.data.ExecutionServiceInput
+import org.onap.ccsdk.cds.blueprintsprocessor.services.execution.AbstractScriptComponentFunction
+import org.onap.ccsdk.cds.blueprintsprocessor.services.execution.ComponentScriptExecutor
+import org.onap.ccsdk.cds.blueprintsprocessor.ssh.sshClientService
+import org.onap.ccsdk.cds.controllerblueprints.core.*
+import org.onap.ccsdk.cds.controllerblueprints.core.service.BluePrintDependencyService
- private val log = LoggerFactory.getLogger(CliComponentFunction::class.java)!!
+
+open class Check : AbstractScriptComponentFunction() {
+
+ private val log = logger(Check::class)
override fun getName(): String {
- return "SimpleCliConfigure"
+ return "Check"
}
override suspend fun processNB(executionRequest: ExecutionServiceInput) {
- log.info("Executing process")
+ log.info("Executing process : ${executionRequest.payload}")
+
+ val data = executionRequest.payload.at("/check-request/data")
+
+ log.info("Data : ${data.asJsonString()}")
+
+ val checkCommands = mashTemplateNData("command-template", data.asJsonString())
+
+ log.info("Check Commands :$checkCommands")
+
+ // Get the Device Information from the DSL Model
+ val deviceInformation = bluePrintRuntimeService.resolveDSLExpression("device-properties")
+
+ log.info("Device Info :$deviceInformation")
+
+ // Get the Client Service
+ val sshClientService = BluePrintDependencyService.sshClientService(deviceInformation)
+
+ log.info("Client service is ready")
+
}
override suspend fun recoverNB(runtimeException: RuntimeException, executionRequest: ExecutionServiceInput) {
diff --git a/components/model-catalog/blueprint-model/test-blueprint/capability_cli/Scripts/kotlin/CapabilityCliDefinitions.kt b/components/model-catalog/blueprint-model/test-blueprint/capability_cli/Scripts/kotlin/CapabilityCliDefinitions.kt
new file mode 100644
index 000000000..3bf07e79d
--- /dev/null
+++ b/components/model-catalog/blueprint-model/test-blueprint/capability_cli/Scripts/kotlin/CapabilityCliDefinitions.kt
@@ -0,0 +1,83 @@
+/*
+ * Copyright © 2019 IBM.
+ *
+ * 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 cba.scripts.capability.cli
+
+import org.onap.ccsdk.cds.blueprintsprocessor.services.execution.componentScriptExecutor
+import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintTypes
+import org.onap.ccsdk.cds.controllerblueprints.core.data.ServiceTemplate
+import org.onap.ccsdk.cds.controllerblueprints.core.dsl.artifactTypeTemplateVelocity
+import org.onap.ccsdk.cds.controllerblueprints.core.dsl.nodeTypeComponent
+import org.onap.ccsdk.cds.controllerblueprints.core.dsl.serviceTemplate
+import org.onap.ccsdk.cds.controllerblueprints.core.interfaces.AbstractBluePrintDefinitions
+
+class CapabilityCliDefinitions : AbstractBluePrintDefinitions() {
+
+ override fun serviceTemplate(): ServiceTemplate {
+ return defaultServiceTemplate()
+ }
+}
+
+fun CapabilityCliDefinitions.defaultServiceTemplate() =
+ serviceTemplate(name = "capability-cli",
+ version = "1.0.0",
+ author = "Brinda Santh Muthuramalingam",
+ tags = "brinda, tosca") {
+
+ dsl("device-properties", """{
+ "type": "basic-auth",
+ "host": { "get_input": "hostname" },
+ "username": { "get_input": "username" },
+ "password": { "get_input": "password" }
+ }""".trimIndent())
+
+ topologyTemplate {
+
+ workflow(id = "check", description = "CLI Check Workflow") {
+ inputs {
+ property(id = "hostname", type = "string", required = true, description = "")
+ property(id = "username", type = "string", required = true, description = "")
+ property(id = "password", type = "string", required = true, description = "")
+ property(id = "data", type = "json", required = true, description = "")
+ }
+ outputs {
+ property(id = "status", required = true, type = "string", description = "") {
+ value("success")
+ }
+ }
+ step(id = "check", target = "check", description = "Calling check script node")
+ }
+
+ val checkComponent = componentScriptExecutor(id = "check", description = "") {
+ inputs {
+ type("kotlin")
+ scriptClassReference("cba.scripts.capability.cli.Check")
+ }
+ outputs {
+ status("success")
+ responseData("""{ "data" : "Here I am "}""")
+ }
+ artifact(id = "command-template", type = "artifact-template-velocity",
+ file = "Templates/check-command-template.vtl")
+ }
+ nodeTemplate(checkComponent)
+ }
+
+ artifactType(BluePrintTypes.artifactTypeTemplateVelocity())
+ nodeType(BluePrintTypes.nodeTypeComponent())
+ nodeType(BluePrintTypes.componentScriptExecutor())
+
+ } \ No newline at end of file
diff --git a/components/model-catalog/blueprint-model/test-blueprint/capability_cli/TOSCA-Metadata/TOSCA.meta b/components/model-catalog/blueprint-model/test-blueprint/capability_cli/TOSCA-Metadata/TOSCA.meta
index 001889672..6c4bb36f8 100644
--- a/components/model-catalog/blueprint-model/test-blueprint/capability_cli/TOSCA-Metadata/TOSCA.meta
+++ b/components/model-catalog/blueprint-model/test-blueprint/capability_cli/TOSCA-Metadata/TOSCA.meta
@@ -2,4 +2,6 @@ TOSCA-Meta-File-Version: 1.0.0
CSAR-Version: 1.0
Created-By: Brinda Santh
Entry-Definitions: Definitions/capability-cli-blueprint.json
+Template-Name: capability-cli
+Template-Version: 1.0.0
Template-Tags: capability-cli-blueprint
diff --git a/components/model-catalog/blueprint-model/test-blueprint/capability_cli/Templates/check-command-template.vtl b/components/model-catalog/blueprint-model/test-blueprint/capability_cli/Templates/check-command-template.vtl
new file mode 100644
index 000000000..1aabe39c8
--- /dev/null
+++ b/components/model-catalog/blueprint-model/test-blueprint/capability_cli/Templates/check-command-template.vtl
@@ -0,0 +1 @@
+show interfaces | include $vlanId \ No newline at end of file
diff --git a/components/parent/pom.xml b/components/parent/pom.xml
index 4411b84f9..821448d66 100644
--- a/components/parent/pom.xml
+++ b/components/parent/pom.xml
@@ -29,11 +29,6 @@
<packaging>pom</packaging>
<properties>
<kotlin.compiler.jvmTarget>1.8</kotlin.compiler.jvmTarget>
- <spring.boot.version>2.1.3.RELEASE</spring.boot.version>
- <spring.version>5.1.5.RELEASE</spring.version>
- <kotlin.version>1.3.21</kotlin.version>
- <kotlin.maven.version>1.3.21</kotlin.maven.version>
- <kotlin.couroutines.version>1.1.1</kotlin.couroutines.version>
<grpc.version>1.18.0</grpc.version>
<protobuff.java.utils.version>3.6.1</protobuff.java.utils.version>
<eelf.version>1.0.0</eelf.version>
diff --git a/ms/blueprintsprocessor/distribution/src/main/docker/startService.sh b/ms/blueprintsprocessor/distribution/src/main/docker/startService.sh
index 88497156f..d1e09ddc3 100644
--- a/ms/blueprintsprocessor/distribution/src/main/docker/startService.sh
+++ b/ms/blueprintsprocessor/distribution/src/main/docker/startService.sh
@@ -5,4 +5,6 @@ nodeName=BlueprintsProcessor_1.0.0_$(cat /proc/self/cgroup | grep docker | sed s
echo "APP Config HOME : ${APP_CONFIG_HOME}"
export APP_HOME=/opt/app/onap
+keytool -import -trustcacerts -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit -alias ONAP -import -file $APP_CONFIG_HOME/ONAP_RootCA.cer
+
source /etc/run.source
diff --git a/ms/blueprintsprocessor/functions/resource-resolution/src/main/kotlin/scripts/InternalRAProcessor.cba.kts b/ms/blueprintsprocessor/functions/resource-resolution/src/main/kotlin/scripts/InternalRAProcessor.cba.kt
index 32f04e6a0..32f04e6a0 100644
--- a/ms/blueprintsprocessor/functions/resource-resolution/src/main/kotlin/scripts/InternalRAProcessor.cba.kts
+++ b/ms/blueprintsprocessor/functions/resource-resolution/src/main/kotlin/scripts/InternalRAProcessor.cba.kt
diff --git a/ms/blueprintsprocessor/modules/commons/ssh-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/ssh/service/BluePrintSshLibPropertyService.kt b/ms/blueprintsprocessor/modules/commons/ssh-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/ssh/service/BluePrintSshLibPropertyService.kt
index 1950b71aa..829fdda8e 100644
--- a/ms/blueprintsprocessor/modules/commons/ssh-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/ssh/service/BluePrintSshLibPropertyService.kt
+++ b/ms/blueprintsprocessor/modules/commons/ssh-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/ssh/service/BluePrintSshLibPropertyService.kt
@@ -52,7 +52,8 @@ open class BluePrintSshLibPropertyService(private var bluePrintProperties: BlueP
}
fun sshClientProperties(jsonNode: JsonNode): SshClientProperties {
- val type = jsonNode.get("type").textValue()
+ val type = jsonNode.get("type")?.textValue()
+ ?: throw BluePrintProcessorException("missing type field in ssh client properties")
return when (type) {
SshLibConstants.TYPE_BASIC_AUTH -> {
JacksonUtils.readValue(jsonNode,
diff --git a/ms/blueprintsprocessor/modules/inbounds/selfservice-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/selfservice/api/ExecutionServiceController.kt b/ms/blueprintsprocessor/modules/inbounds/selfservice-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/selfservice/api/ExecutionServiceController.kt
index 60016fb98..d48f0c7e4 100644
--- a/ms/blueprintsprocessor/modules/inbounds/selfservice-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/selfservice/api/ExecutionServiceController.kt
+++ b/ms/blueprintsprocessor/modules/inbounds/selfservice-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/selfservice/api/ExecutionServiceController.kt
@@ -26,7 +26,8 @@ import org.onap.ccsdk.cds.blueprintsprocessor.core.api.data.ACTION_MODE_ASYNC
import org.onap.ccsdk.cds.blueprintsprocessor.core.api.data.ExecutionServiceInput
import org.onap.ccsdk.cds.blueprintsprocessor.core.api.data.ExecutionServiceOutput
import org.onap.ccsdk.cds.blueprintsprocessor.selfservice.api.utils.determineHttpStatusCode
-import org.onap.ccsdk.cds.controllerblueprints.core.utils.JacksonUtils
+import org.onap.ccsdk.cds.controllerblueprints.core.asJsonPrimitive
+import org.onap.ccsdk.cds.controllerblueprints.core.asJsonType
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.http.MediaType
import org.springframework.http.ResponseEntity
@@ -37,36 +38,37 @@ import org.springframework.web.bind.annotation.*
@RestController
@RequestMapping("/api/v1/execution-service")
@Api(value = "/api/v1/execution-service",
- description = "Interaction with CBA.")
+ description = "Interaction with CBA.")
open class ExecutionServiceController {
@Autowired
lateinit var executionServiceHandler: ExecutionServiceHandler
@RequestMapping(path = ["/health-check"],
- method = [RequestMethod.GET],
- produces = [MediaType.APPLICATION_JSON_VALUE])
+ method = [RequestMethod.GET],
+ produces = [MediaType.APPLICATION_JSON_VALUE])
@ResponseBody
@ApiOperation(value = "Health Check", hidden = true)
fun executionServiceControllerHealthCheck(): JsonNode = runBlocking {
- JacksonUtils.getJsonNode("Success")
+ "Success".asJsonPrimitive()
}
@PostMapping(path = ["/upload"], consumes = [MediaType.MULTIPART_FORM_DATA_VALUE])
@ResponseBody
@PreAuthorize("hasRole('USER')")
@ApiOperation(value = "Upload a CBA",
- notes = "Upload the CBA package. This will also run validation on the CBA.",
- produces = MediaType.APPLICATION_JSON_VALUE)
+ notes = "Upload the CBA package. This will also run validation on the CBA.",
+ produces = MediaType.APPLICATION_JSON_VALUE)
fun upload(@ApiParam(value = "The ZIP file containing the overall CBA package.", required = true)
@RequestPart("file") filePart: FilePart): JsonNode = runBlocking {
- JacksonUtils.getJsonNode(executionServiceHandler.upload(filePart))
+ val uploadId = executionServiceHandler.upload(filePart)
+ """{"upload-id" : "$uploadId"}""".asJsonType()
}
@DeleteMapping("/name/{name}/version/{version}")
@ApiOperation(value = "Delete a CBA",
- notes = "Delete the CBA package identified by its name and version.",
- produces = MediaType.APPLICATION_JSON_VALUE)
+ notes = "Delete the CBA package identified by its name and version.",
+ produces = MediaType.APPLICATION_JSON_VALUE)
@PreAuthorize("hasRole('USER')")
fun deleteBlueprint(@ApiParam(value = "Name of the CBA.", required = true)
@PathVariable(value = "name") name: String,
@@ -77,18 +79,18 @@ open class ExecutionServiceController {
@RequestMapping(path = ["/process"], method = [RequestMethod.POST], produces = [MediaType.APPLICATION_JSON_VALUE])
@ApiOperation(value = "Execute a CBA workflow (action)",
- notes = "Execute the appropriate CBA's action based on the ExecutionServiceInput object passed as input.",
- produces = MediaType.APPLICATION_JSON_VALUE,
- response = ExecutionServiceOutput::class)
+ notes = "Execute the appropriate CBA's action based on the ExecutionServiceInput object passed as input.",
+ produces = MediaType.APPLICATION_JSON_VALUE,
+ response = ExecutionServiceOutput::class)
@ResponseBody
@PreAuthorize("hasRole('USER')")
fun process(@ApiParam(value = "ExecutionServiceInput payload.", required = true)
@RequestBody executionServiceInput: ExecutionServiceInput): ResponseEntity<ExecutionServiceOutput> =
- runBlocking {
- if (executionServiceInput.actionIdentifiers.mode == ACTION_MODE_ASYNC) {
- throw IllegalStateException("Can't process async request through the REST endpoint. Use gRPC for async processing.")
+ runBlocking {
+ if (executionServiceInput.actionIdentifiers.mode == ACTION_MODE_ASYNC) {
+ throw IllegalStateException("Can't process async request through the REST endpoint. Use gRPC for async processing.")
+ }
+ val processResult = executionServiceHandler.doProcess(executionServiceInput)
+ ResponseEntity(processResult, determineHttpStatusCode(processResult.status.code))
}
- val processResult = executionServiceHandler.doProcess(executionServiceInput)
- ResponseEntity(processResult, determineHttpStatusCode(processResult.status.code))
- }
}
diff --git a/ms/blueprintsprocessor/modules/services/execution-service/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/ComponentScriptExecutor.kt b/ms/blueprintsprocessor/modules/services/execution-service/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/ComponentScriptExecutor.kt
index b5dac5a39..95b2afc4c 100644
--- a/ms/blueprintsprocessor/modules/services/execution-service/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/ComponentScriptExecutor.kt
+++ b/ms/blueprintsprocessor/modules/services/execution-service/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/ComponentScriptExecutor.kt
@@ -16,13 +16,16 @@
package org.onap.ccsdk.cds.blueprintsprocessor.services.execution
+import com.fasterxml.jackson.databind.JsonNode
import org.onap.ccsdk.cds.blueprintsprocessor.core.api.data.ExecutionServiceInput
-import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintConstants
-import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintTypes
-import org.onap.ccsdk.cds.controllerblueprints.core.asJsonPrimitive
+import org.onap.ccsdk.cds.controllerblueprints.core.*
+import org.onap.ccsdk.cds.controllerblueprints.core.data.ArtifactDefinition
+import org.onap.ccsdk.cds.controllerblueprints.core.data.Implementation
+import org.onap.ccsdk.cds.controllerblueprints.core.data.NodeTemplate
import org.onap.ccsdk.cds.controllerblueprints.core.data.NodeType
+import org.onap.ccsdk.cds.controllerblueprints.core.dsl.ArtifactDefinitionBuilder
+import org.onap.ccsdk.cds.controllerblueprints.core.dsl.nodeTemplate
import org.onap.ccsdk.cds.controllerblueprints.core.dsl.nodeType
-import org.onap.ccsdk.cds.controllerblueprints.core.getAsString
import org.springframework.beans.factory.config.ConfigurableBeanFactory
import org.springframework.context.annotation.Scope
import org.springframework.stereotype.Component
@@ -76,7 +79,7 @@ open class ComponentScriptExecutor(private var componentFunctionScriptingService
fun BluePrintTypes.componentScriptExecutor(): NodeType {
return nodeType(id = "component-script-executor", version = BluePrintConstants.DEFAULT_VERSION_NUMBER,
- derivedFrom = BluePrintConstants.MODEL_TYPE_NODES_ROOT,
+ derivedFrom = BluePrintConstants.MODEL_TYPE_NODE_COMPONENT,
description = "Generic Script Component Executor") {
attribute(ComponentScriptExecutor.RESPONSE_DATA, BluePrintConstants.DATA_TYPE_JSON, false)
attribute(ComponentScriptExecutor.STATUS, BluePrintConstants.DATA_TYPE_STRING, true)
@@ -105,4 +108,101 @@ fun BluePrintTypes.componentScriptExecutor(): NodeType {
}
}
}
+}
+
+/** Component Builder */
+
+fun componentScriptExecutor(id: String, description: String,
+ block: ComponentScriptExecutorBuilder.() -> Unit): NodeTemplate {
+ return ComponentScriptExecutorBuilder(id, description).apply(block).build()
+}
+
+class ComponentScriptExecutorBuilder(private val id: String, private val description: String) {
+ private var implementation: Implementation? = null
+ private var inputs: MutableMap<String, JsonNode>? = null
+ private var outputs: MutableMap<String, JsonNode>? = null
+ private var artifacts: MutableMap<String, ArtifactDefinition>? = null
+
+ fun implementation(timeout: Int, operationHost: String? = BluePrintConstants.PROPERTY_SELF) {
+ val implementation = Implementation().apply {
+ this.operationHost = operationHost!!
+ this.timeout = timeout
+ }
+ this.implementation = implementation
+ }
+
+ fun inputs(block: InputAssignmentBuilder.() -> Unit) {
+ this.inputs = InputAssignmentBuilder().apply(block).build()
+ }
+
+ fun outputs(block: OutputAssignmentBuilder.() -> Unit) {
+ this.outputs = OutputAssignmentBuilder().apply(block).build()
+ }
+
+ fun artifact(id: String, type: String, file: String) {
+ if (artifacts == null)
+ artifacts = hashMapOf()
+ artifacts!![id] = ArtifactDefinitionBuilder(id, type, file).build()
+ }
+
+ fun artifact(id: String, type: String, file: String, block: ArtifactDefinitionBuilder.() -> Unit) {
+ if (artifacts == null)
+ artifacts = hashMapOf()
+ artifacts!![id] = ArtifactDefinitionBuilder(id, type, file).apply(block).build()
+ }
+
+ fun build(): NodeTemplate {
+ return nodeTemplate(id, "component-script-executor", description) {
+ operation("ComponentScriptExecutor") {
+ implementation(implementation)
+ inputs(inputs)
+ outputs(outputs)
+ }
+ artifacts(artifacts)
+ }
+ }
+
+ class InputAssignmentBuilder {
+ val properties: MutableMap<String, JsonNode> = hashMapOf()
+
+ fun type(type: String) {
+ properties[ComponentScriptExecutor.SCRIPT_TYPE] = type.asJsonPrimitive()
+ }
+
+ fun scriptClassReference(scriptClassReference: String) {
+ properties[ComponentScriptExecutor.SCRIPT_CLASS_REFERENCE] = scriptClassReference.asJsonPrimitive()
+ }
+
+ fun dynamicProperty(dynamicProperty: Any) {
+ dynamicProperty(dynamicProperty.asJsonType())
+ }
+
+ fun dynamicProperty(dynamicProperty: JsonNode) {
+ properties[ComponentScriptExecutor.DYNAMIC_PROPERTIES] = dynamicProperty
+ }
+
+ fun build(): MutableMap<String, JsonNode> {
+ return properties
+ }
+ }
+
+ class OutputAssignmentBuilder {
+ val properties: MutableMap<String, JsonNode> = hashMapOf()
+
+ fun status(status: String) {
+ properties[ComponentScriptExecutor.STATUS] = status.asJsonPrimitive()
+ }
+
+ fun responseData(responseData: Any) {
+ responseData(responseData.asJsonType())
+ }
+
+ fun responseData(responseData: JsonNode) {
+ properties[ComponentScriptExecutor.RESPONSE_DATA] = responseData
+ }
+
+ fun build(): MutableMap<String, JsonNode> {
+ return properties
+ }
+ }
} \ No newline at end of file
diff --git a/ms/blueprintsprocessor/parent/pom.xml b/ms/blueprintsprocessor/parent/pom.xml
index b03c7b4d7..1ed0a6570 100755
--- a/ms/blueprintsprocessor/parent/pom.xml
+++ b/ms/blueprintsprocessor/parent/pom.xml
@@ -14,7 +14,8 @@
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.onap.ccsdk.cds</groupId>
@@ -28,11 +29,6 @@
<description>Blueprints Processor Parent</description>
<properties>
<kotlin.compiler.jvmTarget>1.8</kotlin.compiler.jvmTarget>
- <spring.boot.version>2.1.3.RELEASE</spring.boot.version>
- <spring.version>5.1.5.RELEASE</spring.version>
- <kotlin.version>1.3.21</kotlin.version>
- <kotlin.maven.version>1.3.21</kotlin.maven.version>
- <kotlin.couroutines.version>1.1.1</kotlin.couroutines.version>
<grpc.version>1.18.0</grpc.version>
<sshd.version>2.2.0</sshd.version>
<jsch.version>0.1.55</jsch.version>
diff --git a/ms/controllerblueprints/modules/blueprint-core/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/dsl/BluePrintServiceDSLBuilder.kt b/ms/controllerblueprints/modules/blueprint-core/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/dsl/BluePrintServiceDSLBuilder.kt
index 3415be8f3..c9f7d507c 100644
--- a/ms/controllerblueprints/modules/blueprint-core/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/dsl/BluePrintServiceDSLBuilder.kt
+++ b/ms/controllerblueprints/modules/blueprint-core/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/dsl/BluePrintServiceDSLBuilder.kt
@@ -54,14 +54,14 @@ class ServiceTemplateBuilder(private val name: String,
imports.add(importDefinition)
}
- fun dsl(id: String, json: String) {
- dsl(id, json.asJsonType())
+ fun dsl(id: String, content: Any) {
+ dsl(id, content.asJsonType())
}
fun dsl(id: String, json: JsonNode) {
if (dslDefinitions == null)
dslDefinitions = hashMapOf()
- dslDefinitions!![id] = json.asJsonType()
+ dslDefinitions!![id] = json
}
fun dataTypes(dataTypes: MutableMap<String, DataType>) {
diff --git a/ms/controllerblueprints/modules/blueprint-core/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/dsl/BluePrintTemplateDSLBuilder.kt b/ms/controllerblueprints/modules/blueprint-core/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/dsl/BluePrintTemplateDSLBuilder.kt
index fd747f09c..93b6f4e4e 100644
--- a/ms/controllerblueprints/modules/blueprint-core/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/dsl/BluePrintTemplateDSLBuilder.kt
+++ b/ms/controllerblueprints/modules/blueprint-core/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/dsl/BluePrintTemplateDSLBuilder.kt
@@ -32,6 +32,12 @@ class TopologyTemplateBuilder {
nodeTemplates!![id] = NodeTemplateBuilder(id, type, description).apply(block).build()
}
+ fun nodeTemplate(nodeTemplate: NodeTemplate) {
+ if (nodeTemplates == null)
+ nodeTemplates = hashMapOf()
+ nodeTemplates!![nodeTemplate.id!!] = nodeTemplate
+ }
+
fun nodeTemplateOperation(nodeTemplateName: String, type: String, interfaceName: String, description: String,
operationBlock: OperationAssignmentBuilder.() -> Unit) {
if (nodeTemplates == null)
@@ -48,6 +54,12 @@ class TopologyTemplateBuilder {
workflows!![id] = WorkflowBuilder(id, description).apply(block).build()
}
+ fun workflow(workflow: Workflow) {
+ if (workflows == null)
+ workflows = hashMapOf()
+ workflows!![workflow.id!!] = workflow
+ }
+
//TODO("populate inputs, outputs")
fun workflowNodeTemplate(actionName: String,
nodeTemplateType: String, description: String, block: NodeTemplateBuilder.() -> Unit) {
@@ -113,18 +125,30 @@ class NodeTemplateBuilder(private val id: String,
artifacts!![id] = ArtifactDefinitionBuilder(id, type, file).apply(block).build()
}
+ fun artifacts(artifacts: MutableMap<String, ArtifactDefinition>?) {
+ this.artifacts = artifacts
+ }
+
fun capability(id: String, block: CapabilityAssignmentBuilder.() -> Unit) {
if (capabilities == null)
capabilities = hashMapOf()
capabilities!![id] = CapabilityAssignmentBuilder(id).apply(block).build()
}
+ fun capabilities(capabilities: MutableMap<String, CapabilityAssignment>?) {
+ this.capabilities = capabilities
+ }
+
fun requirement(id: String, capability: String, node: String, relationship: String) {
if (requirements == null)
requirements = hashMapOf()
requirements!![id] = RequirementAssignmentBuilder(id, capability, node, relationship).build()
}
+ fun requirements(requirements: MutableMap<String, RequirementAssignment>?) {
+ this.requirements = requirements
+ }
+
fun build(): NodeTemplate {
nodeTemplate.id = id
nodeTemplate.type = type
diff --git a/ms/controllerblueprints/modules/blueprint-core/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/dsl/BluePrintTypeDSLBuilder.kt b/ms/controllerblueprints/modules/blueprint-core/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/dsl/BluePrintTypeDSLBuilder.kt
index 8afe695ca..6dc5647da 100644
--- a/ms/controllerblueprints/modules/blueprint-core/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/dsl/BluePrintTypeDSLBuilder.kt
+++ b/ms/controllerblueprints/modules/blueprint-core/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/dsl/BluePrintTypeDSLBuilder.kt
@@ -384,6 +384,10 @@ class PropertyDefinitionBuilder(private val id: String,
propertyDefinition.defaultValue = defaultValue
}
+ fun value(value: Any) {
+ value(value.asJsonType())
+ }
+
fun value(value: JsonNode) {
propertyDefinition.value = value
}
diff --git a/ms/controllerblueprints/modules/blueprint-core/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/scripts/BluePrintScriptingHost.kt b/ms/controllerblueprints/modules/blueprint-core/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/scripts/BluePrintScriptingHost.kt
index 05a147171..d35f2b49b 100644
--- a/ms/controllerblueprints/modules/blueprint-core/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/scripts/BluePrintScriptingHost.kt
+++ b/ms/controllerblueprints/modules/blueprint-core/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/scripts/BluePrintScriptingHost.kt
@@ -31,14 +31,13 @@ val blueprintScriptCompiler = JvmScriptCompiler(defaultJvmScriptingHostConfigura
open class BlueprintScriptingHost(evaluator: ScriptEvaluator) : BasicScriptingHost(blueprintScriptCompiler, evaluator) {
- override fun eval(script: SourceCode, scriptCompilationConfiguration: ScriptCompilationConfiguration,
- configuration: ScriptEvaluationConfiguration?): ResultWithDiagnostics<EvaluationResult> =
+ override fun eval(script: SourceCode, compilationConfiguration: ScriptCompilationConfiguration,
+ evaluationConfiguration: ScriptEvaluationConfiguration?): ResultWithDiagnostics<EvaluationResult> =
runInCoroutineContext {
-
- blueprintScriptCompiler(script, scriptCompilationConfiguration)
- .onSuccess {
- evaluator(it, configuration)
+ blueprintScriptCompiler(script, compilationConfiguration)
+ .onSuccess { compiledScript ->
+ evaluator(compiledScript, evaluationConfiguration ?: ScriptEvaluationConfiguration.Default)
}.onFailure { failedResult ->
val messages = failedResult.reports.joinToString("\n")
throw BluePrintProcessorException(messages)
@@ -51,7 +50,7 @@ open class BluePrintScriptEvaluator(private val scriptClassName: String) : Scrip
private val log = LoggerFactory.getLogger(BluePrintScriptEvaluator::class.java)!!
override suspend operator fun invoke(compiledScript: CompiledScript<*>,
- scriptEvaluationConfiguration: ScriptEvaluationConfiguration?
+ scriptEvaluationConfiguration: ScriptEvaluationConfiguration
): ResultWithDiagnostics<EvaluationResult> =
try {
log.debug("Getting script class name($scriptClassName) from the compiled sources ")
@@ -59,20 +58,19 @@ open class BluePrintScriptEvaluator(private val scriptClassName: String) : Scrip
val bluePrintCompiledScript = compiledScript as BluePrintCompiledScript
bluePrintCompiledScript.scriptClassFQName = scriptClassName
- val classResult = compiledScript.getClass(scriptEvaluationConfiguration)
- when (classResult) {
+ when (val classResult = compiledScript.getClass(scriptEvaluationConfiguration)) {
is ResultWithDiagnostics.Failure -> classResult
is ResultWithDiagnostics.Success -> {
val scriptClass = classResult.value
val args = ArrayList<Any?>()
- scriptEvaluationConfiguration?.get(ScriptEvaluationConfiguration.providedProperties)?.forEach {
+ scriptEvaluationConfiguration.get(ScriptEvaluationConfiguration.providedProperties)?.forEach {
args.add(it.value)
}
- scriptEvaluationConfiguration?.get(ScriptEvaluationConfiguration.implicitReceivers)?.let {
+ scriptEvaluationConfiguration.get(ScriptEvaluationConfiguration.implicitReceivers)?.let {
args.addAll(it)
}
- scriptEvaluationConfiguration?.get(ScriptEvaluationConfiguration.constructorArgs)?.let {
+ scriptEvaluationConfiguration.get(ScriptEvaluationConfiguration.constructorArgs)?.let {
args.addAll(it)
}
diff --git a/ms/controllerblueprints/modules/blueprint-core/src/test/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/service/BluePrintTemplateServiceTest.kt b/ms/controllerblueprints/modules/blueprint-core/src/test/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/service/BluePrintTemplateServiceTest.kt
index de6d4d8e4..ce41cfa1f 100644
--- a/ms/controllerblueprints/modules/blueprint-core/src/test/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/service/BluePrintTemplateServiceTest.kt
+++ b/ms/controllerblueprints/modules/blueprint-core/src/test/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/service/BluePrintTemplateServiceTest.kt
@@ -20,11 +20,8 @@ package org.onap.ccsdk.cds.controllerblueprints.core.service
import kotlinx.coroutines.runBlocking
import org.junit.Test
-import org.junit.runner.RunWith
-import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintConstants
import org.onap.ccsdk.cds.controllerblueprints.core.utils.BluePrintMetadataUtils
import org.onap.ccsdk.cds.controllerblueprints.core.utils.JacksonUtils
-import org.springframework.test.context.junit4.SpringRunner
import kotlin.test.BeforeTest
import kotlin.test.assertEquals
import kotlin.test.assertNotNull
@@ -58,7 +55,7 @@ class BluePrintTemplateServiceTest {
val template = JacksonUtils.getClassPathFileContent("templates/master.jinja")
val json = JacksonUtils.getClassPathFileContent("templates/base-config-data-jinja.json")
- var element: MutableMap<String, Any> = mutableMapOf()
+ val element: MutableMap<String, Any> = mutableMapOf()
element["additional_array"] = arrayListOf(hashMapOf("name" to "Element1", "location" to "Region0"),
hashMapOf("name" to "Element2", "location" to "Region1"))
diff --git a/ms/controllerblueprints/modules/blueprint-validation/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/validation/BluePrintAttributeDefinitionValidatorImpl.kt b/ms/controllerblueprints/modules/blueprint-validation/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/validation/BluePrintAttributeDefinitionValidatorImpl.kt
index 3cec5af7b..5a9736bc8 100644
--- a/ms/controllerblueprints/modules/blueprint-validation/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/validation/BluePrintAttributeDefinitionValidatorImpl.kt
+++ b/ms/controllerblueprints/modules/blueprint-validation/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/validation/BluePrintAttributeDefinitionValidatorImpl.kt
@@ -17,7 +17,6 @@
package org.onap.ccsdk.cds.controllerblueprints.validation
-import org.slf4j.LoggerFactory
import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintException
import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintTypes
import org.onap.ccsdk.cds.controllerblueprints.core.data.AttributeDefinition
@@ -25,6 +24,7 @@ import org.onap.ccsdk.cds.controllerblueprints.core.format
import org.onap.ccsdk.cds.controllerblueprints.core.interfaces.BluePrintAttributeDefinitionValidator
import org.onap.ccsdk.cds.controllerblueprints.core.interfaces.BluePrintTypeValidatorService
import org.onap.ccsdk.cds.controllerblueprints.core.service.BluePrintRuntimeService
+import org.slf4j.LoggerFactory
import org.springframework.beans.factory.config.ConfigurableBeanFactory
import org.springframework.context.annotation.Scope
import org.springframework.stereotype.Service
@@ -50,6 +50,9 @@ open class BluePrintAttributeDefinitionValidatorImpl(private val bluePrintTypeVa
BluePrintTypes.validPrimitiveTypes().contains(dataType) -> {
// Do Nothing
}
+ BluePrintTypes.validComplexTypes().contains(dataType) -> {
+ // Do Nothing
+ }
BluePrintTypes.validCollectionTypes().contains(dataType) -> {
val entrySchemaType: String = attributeDefinition.entrySchema?.type
?: throw BluePrintException("Entry schema for DataType ($dataType) for the property ($name) not found")
diff --git a/ms/controllerblueprints/modules/service/src/test/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/BluePrintEnhancerServiceImplTest.kt b/ms/controllerblueprints/modules/service/src/test/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/BluePrintEnhancerServiceImplTest.kt
index b4c29dec3..1f872c2da 100644
--- a/ms/controllerblueprints/modules/service/src/test/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/BluePrintEnhancerServiceImplTest.kt
+++ b/ms/controllerblueprints/modules/service/src/test/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/BluePrintEnhancerServiceImplTest.kt
@@ -19,15 +19,12 @@ package org.onap.ccsdk.cds.controllerblueprints.service.enhancer
import kotlinx.coroutines.runBlocking
import org.junit.Assert
-import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.onap.ccsdk.cds.controllerblueprints.TestApplication
-import org.onap.ccsdk.cds.controllerblueprints.core.compress
import org.onap.ccsdk.cds.controllerblueprints.core.deleteDir
import org.onap.ccsdk.cds.controllerblueprints.core.interfaces.BluePrintEnhancerService
import org.onap.ccsdk.cds.controllerblueprints.core.interfaces.BluePrintValidatorService
-import org.onap.ccsdk.cds.controllerblueprints.core.normalizedFile
import org.onap.ccsdk.cds.controllerblueprints.core.normalizedPathName
import org.onap.ccsdk.cds.controllerblueprints.service.load.ModelTypeLoadService
import org.onap.ccsdk.cds.controllerblueprints.service.load.ResourceDictionaryLoadService
@@ -53,8 +50,11 @@ class BluePrintEnhancerServiceImplTest {
@Autowired
lateinit var bluePrintValidatorService: BluePrintValidatorService
- @Before
- fun init() {
+
+ @Test
+ @Throws(Exception::class)
+ fun testEnhancementAndValidation() {
+
runBlocking {
modelTypeLoadService.loadPathModelType("./../../../../components/model-catalog/definition-type/starter-type")
@@ -62,46 +62,48 @@ class BluePrintEnhancerServiceImplTest {
dictPaths.add("./../../../../components/model-catalog/resource-dictionary/starter-dictionary")
dictPaths.add("./../../../../components/model-catalog/resource-dictionary/test-dictionary")
resourceDictionaryLoadService.loadPathsResourceDictionary(dictPaths)
+
+ testBaseConfigEnhancementAndValidation()
+ testVFWEnhancementAndValidation()
+ testGoldenEnhancementAndValidation()
+ testCapabilityRestconfEnhancementAndValidation()
+ testRemoteScriptsEnhancementAndValidation()
+ testCapabilityCliEnhancementAndValidation()
}
}
- @Test
- @Throws(Exception::class)
- fun testEnhancementAndValidation() {
+ fun testBaseConfigEnhancementAndValidation() {
val basePath = "./../../../../components/model-catalog/blueprint-model/test-blueprint/baseconfiguration"
testComponentInvokeEnhancementAndValidation(basePath, "base-enhance")
}
- @Test
- @Throws(Exception::class)
fun testVFWEnhancementAndValidation() {
val basePath = "./../../../../components/model-catalog/blueprint-model/service-blueprint/vFW"
testComponentInvokeEnhancementAndValidation(basePath, "vFW-enhance")
}
- @Test
- @Throws(Exception::class)
fun testGoldenEnhancementAndValidation() {
val basePath = "./../../../../components/model-catalog/blueprint-model/test-blueprint/golden"
testComponentInvokeEnhancementAndValidation(basePath, "golden-enhance")
}
- @Test
- @Throws(Exception::class)
fun testCapabilityRestconfEnhancementAndValidation() {
val basePath = "./../../../../components/model-catalog/blueprint-model/test-blueprint/capability_restconf"
testComponentInvokeEnhancementAndValidation(basePath, "capability_restconf-enhance")
}
- @Test
- @Throws(Exception::class)
fun testRemoteScriptsEnhancementAndValidation() {
val basePath = "./../../../../components/model-catalog/blueprint-model/test-blueprint/remote_scripts"
testComponentInvokeEnhancementAndValidation(basePath, "remote_scripts-enhance")
}
+ fun testCapabilityCliEnhancementAndValidation() {
+ val basePath = "./../../../../components/model-catalog/blueprint-model/test-blueprint/capability_cli"
+ testComponentInvokeEnhancementAndValidation(basePath, "capability_cli-enhance")
+ }
+
private fun testComponentInvokeEnhancementAndValidation(basePath: String, targetDirName: String) {
runBlocking {
val targetPath = normalizedPathName("target/blueprints/enrichment", targetDirName)
diff --git a/ms/controllerblueprints/parent/pom.xml b/ms/controllerblueprints/parent/pom.xml
index 6ff76e944..4b571191d 100644
--- a/ms/controllerblueprints/parent/pom.xml
+++ b/ms/controllerblueprints/parent/pom.xml
@@ -29,11 +29,6 @@
<packaging>pom</packaging>
<properties>
<kotlin.compiler.jvmTarget>1.8</kotlin.compiler.jvmTarget>
- <spring.boot.version>2.1.3.RELEASE</spring.boot.version>
- <spring.version>5.1.5.RELEASE</spring.version>
- <kotlin.version>1.3.21</kotlin.version>
- <kotlin.maven.version>1.3.21</kotlin.maven.version>
- <kotlin.couroutines.version>1.1.1</kotlin.couroutines.version>
<grpc.version>1.18.0</grpc.version>
<protobuff.java.utils.version>3.6.1</protobuff.java.utils.version>
<eelf.version>1.0.0</eelf.version>