Merge "TemplateResolutionService default #occurrence 0->1"
authorDan Timoney <dtimoney@att.com>
Tue, 30 Jul 2019 16:31:48 +0000 (16:31 +0000)
committerGerrit Code Review <gerrit@onap.org>
Tue, 30 Jul 2019 16:31:48 +0000 (16:31 +0000)
71 files changed:
.gitignore
cds-ui/client/src/app/common/constants/app-constants.ts
cds-ui/client/src/app/common/shared/components/home/home.component.html
cds-ui/client/src/app/common/shared/components/home/home.component.scss
cds-ui/client/src/app/feature-modules/blueprint/blueprint.module.ts
cds-ui/client/src/app/feature-modules/blueprint/modify-template/editor/editor.component.ts
cds-ui/client/src/app/feature-modules/blueprint/modify-template/editor/editor.service.ts
cds-ui/client/src/app/feature-modules/blueprint/search-edit-cba/search-edit-cba.component.html [deleted file]
cds-ui/client/src/app/feature-modules/blueprint/search-edit-cba/search-edit-cba.component.scss [deleted file]
cds-ui/client/src/app/feature-modules/blueprint/search-edit-cba/search-edit-cba.component.spec.ts [deleted file]
cds-ui/client/src/app/feature-modules/blueprint/search-edit-cba/search-edit-cba.component.ts [deleted file]
cds-ui/client/src/app/feature-modules/blueprint/select-template/search-template/search-from-database/search-from-database.component.html
cds-ui/client/src/app/feature-modules/blueprint/select-template/search-template/search-from-database/search-from-database.component.scss
cds-ui/client/src/app/feature-modules/blueprint/select-template/search-template/search-from-database/search-from-database.component.ts
cds-ui/client/src/app/feature-modules/blueprint/select-template/search-template/search-template.service.ts
cds-ui/client/src/app/feature-modules/resource-definition/resource-edit/sources-template/sources-template.component.html
cds-ui/client/src/app/feature-modules/resource-definition/resource-edit/sources-template/sources-template.component.ts
cds-ui/server/src/controllers/blueprint-rest.controller.ts
cds-ui/server/src/controllers/index.ts
components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/artifact_types.json [new file with mode: 0644]
components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/data_types.json [new file with mode: 0644]
components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/node_types.json [new file with mode: 0644]
components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/policy_types.json [new file with mode: 0644]
components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/relationship_types.json [new file with mode: 0644]
components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/resources_definition_types.json [new file with mode: 0644]
components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/vDNS-CDS.json [new file with mode: 0644]
components/model-catalog/blueprint-model/service-blueprint/vLB/Plans/CONFIG_ConfigDeploy.xml [new file with mode: 0644]
components/model-catalog/blueprint-model/service-blueprint/vLB/Scripts/python/ConfigDeploy.py [new file with mode: 0644]
components/model-catalog/blueprint-model/service-blueprint/vLB/TOSCA-Metadata/TOSCA.meta [new file with mode: 0644]
components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/base_template-mapping.json [new file with mode: 0644]
components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/base_template-template.vtl [new file with mode: 0644]
components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/baseconfig-mapping.json [new file with mode: 0644]
components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/baseconfig-template.vtl [new file with mode: 0644]
components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/incremental-config-mapping.json [new file with mode: 0644]
components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/incremental-config-template.vtl [new file with mode: 0644]
components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/nf-params-mapping.json [new file with mode: 0644]
components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/nf-params-template.vtl [new file with mode: 0644]
components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vdns-mapping.json [new file with mode: 0644]
components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vdns-template.vtl [new file with mode: 0644]
components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vdns-vnf-mapping.json [new file with mode: 0644]
components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vdns-vnf-template.vtl [new file with mode: 0644]
components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vlb-mapping.json [new file with mode: 0644]
components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vlb-template.vtl [new file with mode: 0644]
components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vpkg-mapping.json [new file with mode: 0644]
components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/vpkg-template.vtl [new file with mode: 0644]
components/model-catalog/blueprint-model/test-blueprint/capability_cli/Definitions/artifact_types.json [new file with mode: 0644]
components/model-catalog/blueprint-model/test-blueprint/capability_cli/Definitions/capability-cli-blueprint.json
components/model-catalog/blueprint-model/test-blueprint/capability_cli/Definitions/data_types.json [new file with mode: 0644]
components/model-catalog/blueprint-model/test-blueprint/capability_cli/Definitions/node_types.json [new file with mode: 0644]
components/model-catalog/blueprint-model/test-blueprint/capability_cli/Definitions/policy_types.json [new file with mode: 0644]
components/model-catalog/blueprint-model/test-blueprint/capability_cli/Definitions/relationship_types.json [new file with mode: 0644]
components/model-catalog/blueprint-model/test-blueprint/capability_cli/Definitions/resources_definition_types.json [new file with mode: 0644]
components/model-catalog/blueprint-model/test-blueprint/capability_cli/Scripts/kotlin/CapabilityCli.kt
components/model-catalog/blueprint-model/test-blueprint/capability_cli/Scripts/kotlin/CapabilityCliDefinitions.kt [new file with mode: 0644]
components/model-catalog/blueprint-model/test-blueprint/capability_cli/TOSCA-Metadata/TOSCA.meta
components/model-catalog/blueprint-model/test-blueprint/capability_cli/Templates/check-command-template.vtl [new file with mode: 0644]
components/parent/pom.xml
ms/blueprintsprocessor/distribution/src/main/docker/startService.sh
ms/blueprintsprocessor/functions/resource-resolution/src/main/kotlin/scripts/InternalRAProcessor.cba.kt [moved from ms/blueprintsprocessor/functions/resource-resolution/src/main/kotlin/scripts/InternalRAProcessor.cba.kts with 100% similarity]
ms/blueprintsprocessor/modules/commons/ssh-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/ssh/service/BluePrintSshLibPropertyService.kt
ms/blueprintsprocessor/modules/inbounds/selfservice-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/selfservice/api/ExecutionServiceController.kt
ms/blueprintsprocessor/modules/services/execution-service/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/ComponentScriptExecutor.kt
ms/blueprintsprocessor/parent/pom.xml
ms/controllerblueprints/modules/blueprint-core/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/dsl/BluePrintServiceDSLBuilder.kt
ms/controllerblueprints/modules/blueprint-core/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/dsl/BluePrintTemplateDSLBuilder.kt
ms/controllerblueprints/modules/blueprint-core/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/dsl/BluePrintTypeDSLBuilder.kt
ms/controllerblueprints/modules/blueprint-core/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/scripts/BluePrintScriptingHost.kt
ms/controllerblueprints/modules/blueprint-core/src/test/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/service/BluePrintTemplateServiceTest.kt
ms/controllerblueprints/modules/blueprint-validation/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/validation/BluePrintAttributeDefinitionValidatorImpl.kt
ms/controllerblueprints/modules/service/src/test/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/BluePrintEnhancerServiceImplTest.kt
ms/controllerblueprints/parent/pom.xml

index 29bf5d4..a0db985 100644 (file)
@@ -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/
index bcfcc4e..5ebde91 100644 (file)
@@ -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',
index ef6880d..f73f0e8 100644 (file)
@@ -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>
index be21b75..20ef5c2 100644 (file)
@@ -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;
 }
index 4d0781a..27803ce 100644 (file)
@@ -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,
index 0a3a8d2..7b2eaeb 100644 (file)
@@ -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":
index ec25244..025fc95 100644 (file)
@@ -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 (file)
index 7371d21..0000000
+++ /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 (file)
index e69de29..0000000
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 (file)
index 78210cf..0000000
+++ /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 (file)
index 4253e21..0000000
+++ /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);
-      // })
-   }
-
-}
index 11c2ff0..ca26039 100644 (file)
@@ -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
index 93f5c9d..6692764 100644 (file)
@@ -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
index a145086..1c36306 100644 (file)
@@ -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'];
+  }
 
 }
index dd17a30..31a839c 100644 (file)
@@ -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);
   }
 }
index b179f01..a5f367d 100644 (file)
@@ -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}}
index 42f990a..3e8f4f8 100644 (file)
@@ -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;
+}
 }
index 14aba56..c73f7a6 100644 (file)
@@ -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.',
index 59f6351..fd4d9c8 100644 (file)
@@ -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 (file)
index 0000000..6ec3b41
--- /dev/null
@@ -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 (file)
index 0000000..346bc4b
--- /dev/null
@@ -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 (file)
index 0000000..0897af5
--- /dev/null
@@ -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 (file)
index 0000000..1e44cc7
--- /dev/null
@@ -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 (file)
index 0000000..027bfc0
--- /dev/null
@@ -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 (file)
index 0000000..4fa179f
--- /dev/null
@@ -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 (file)
index 0000000..fa9f69f
--- /dev/null
@@ -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 (file)
index 0000000..92fb2aa
--- /dev/null
@@ -0,0 +1,27 @@
+<service-logic\r
+  xmlns='http://www.onap.org/sdnc/svclogic'\r
+  xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'\r
+  xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='CONFIG' version='1.0.0'>\r
+    <method rpc='ConfigDeploy' mode='sync'>\r
+        <block atomic="true">\r
+            <execute plugin="nf-account-collection" method="process">\r
+                <outcome value='failure'>\r
+                    <return status="failure">\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='success'>\r
+                    <execute plugin="execute" method="process">\r
+                        <outcome value='failure'>\r
+                            <return status="failure">\r
+                            </return>\r
+                        </outcome>\r
+                        <outcome value='success'>\r
+                            <return status='success'>\r
+                            </return>\r
+                        </outcome>\r
+                    </execute>\r
+                </outcome>\r
+            </execute>\r
+        </block>\r
+    </method>\r
+</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 (file)
index 0000000..9e027e2
--- /dev/null
@@ -0,0 +1,54 @@
+#  Copyright (c) 2019 Bell Canada.\r
+#\r
+#  Licensed under the Apache License, Version 2.0 (the "License");\r
+#  you may not use this file except in compliance with the License.\r
+#  You may obtain a copy of the License at\r
+#\r
+#      http://www.apache.org/licenses/LICENSE-2.0\r
+#\r
+#  Unless required by applicable law or agreed to in writing, software\r
+#  distributed under the License is distributed on an "AS IS" BASIS,\r
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+#  See the License for the specific language governing permissions and\r
+#  limitations under the License.\r
+\r
+import netconf_constant\r
+from common import ResolutionHelper\r
+from time import sleep \r
+from netconfclient import NetconfClient\r
+from org.onap.ccsdk.cds.blueprintsprocessor.functions.netconf.executor import \\r
+  NetconfComponentFunction\r
+\r
+\r
+class ConfigDeploy(NetconfComponentFunction):\r
+\r
+  def process(self, execution_request):      \r
+      log = globals()[netconf_constant.SERVICE_LOG]      \r
+      print(globals())\r
+      print("Waiting 4 minutes until NETCONF server is UP on vLB ...")\r
+      sleep (240)\r
+      nc = NetconfClient(log, self, "netconf-connection")\r
+      rr = ResolutionHelper(self)\r
+\r
+      # Get meshed template from DB\r
+      resolution_key = self.getDynamicProperties("resolution-key").asText()\r
+      payloadHostname = rr.retrieve_resolved_template_from_database(resolution_key, "baseconfig")\r
+      payloadInterface = rr.retrieve_resolved_template_from_database(resolution_key, "incremental-config")\r
+\r
+      nc.connect()\r
+      nc.lock()\r
+      #if not response.isSuccess():\r
+      #  og.error(response.errorMessage)\r
+      nc.discard_change()\r
+      nc.edit_config(message_content=payloadInterface, edit_default_peration="none")\r
+      nc.edit_config(message_content=payloadHostname, edit_default_peration="none")\r
+      nc.validate()\r
+      nc.commit()\r
+      #nc.commit(confirmed = True, confirm_timeout=15)\r
+      nc.unlock()\r
+      nc.disconnect()\r
+\r
+  def recover(self, runtime_exception, execution_request):\r
+        log.error("Exception in the script {}", runtime_exception)\r
+        print self.addError(runtime_exception.cause.message)\r
+        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 (file)
index 0000000..ea1a903
--- /dev/null
@@ -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 (file)
index 0000000..5a3da4e
--- /dev/null
@@ -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 (file)
index 0000000..8055030
--- /dev/null
@@ -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 (file)
index 0000000..246cb40
--- /dev/null
@@ -0,0 +1,113 @@
+[\r
+  {\r
+    "name": "service-instance-id",\r
+    "property": {\r
+      "description": "",\r
+      "required": false,\r
+      "type": "string",\r
+      "status": "",\r
+      "constraints": [\r
+        {}\r
+      ],\r
+      "entry_schema": {\r
+        "type": ""\r
+      }\r
+    },\r
+    "input-param": false,\r
+    "dictionary-name": "service-instance-id",\r
+    "dictionary-source": "input",\r
+    "dependencies": [],\r
+    "version": 0\r
+  },\r
+  {\r
+    "name": "vnf-id",\r
+    "property": {\r
+      "description": "",\r
+      "required": false,\r
+      "type": "string",\r
+      "status": "",\r
+      "constraints": [\r
+        {}\r
+      ],\r
+      "entry_schema": {\r
+        "type": ""\r
+      }\r
+    },\r
+    "input-param": false,\r
+    "dictionary-name": "vnf-id",\r
+    "dictionary-source": "input",\r
+    "dependencies": [],\r
+    "version": 0\r
+  },\r
+  {\r
+    "name": "vdns_vf_module_id",\r
+    "property": {\r
+      "description": "",\r
+      "required": false,\r
+      "type": "string",\r
+      "status": "",\r
+      "constraints": [\r
+        {}\r
+      ],\r
+      "entry_schema": {\r
+        "type": ""\r
+      }\r
+    },\r
+    "input-param": false,\r
+    "dictionary-name": "vdns_vf_module_id",\r
+    "dictionary-source": "primary-config-data",\r
+    "dependencies": [\r
+         "service-instance-id",\r
+      "vnf-id"\r
+    ],\r
+    "version": 0\r
+  },\r
+  {\r
+    "name": "vdns_int_private_ip_0",\r
+    "property": {\r
+      "description": "",\r
+      "required": false,\r
+      "type": "string",\r
+      "status": "",\r
+      "constraints": [\r
+        {}\r
+      ],\r
+      "entry_schema": {\r
+        "type": ""\r
+      }\r
+    },\r
+    "input-param": false,\r
+    "dictionary-name": "vdns_int_private_ip_0",\r
+    "dictionary-source": "primary-config-data",\r
+    "dependencies": [\r
+      "service-instance-id",\r
+      "vnf-id",\r
+      "vdns_vf_module_id"\r
+    ],\r
+    "version": 0\r
+  },\r
+  {\r
+    "name": "vdns_onap_private_ip_0",\r
+    "property": {\r
+      "description": "",\r
+      "required": false,\r
+      "type": "string",\r
+      "status": "",\r
+      "constraints": [\r
+        {}\r
+      ],\r
+      "entry_schema": {\r
+        "type": ""\r
+      }\r
+    },\r
+    "input-param": false,\r
+    "dictionary-name": "vdns_onap_private_ip_0",\r
+    "dictionary-source": "primary-config-data",\r
+    "dependencies": [\r
+      "service-instance-id",\r
+      "vnf-id",\r
+      "vdns_vf_module_id"\r
+    ],\r
+    "version": 0\r
+  }\r
+]
\ 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 (file)
index 0000000..23cd22b
--- /dev/null
@@ -0,0 +1,9 @@
+       {\r
+    "vdns-instance": [\r
+        {\r
+            "ip-addr": "$vdns_int_private_ip_0",\r
+            "oam-ip-addr": "$vdns_onap_private_ip_0",\r
+            "enabled": false\r
+        }\r
+    ]\r
+}
\ 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 (file)
index 0000000..914565a
--- /dev/null
@@ -0,0 +1,113 @@
+[\r
+  {\r
+    "name": "service-instance-id",\r
+    "property": {\r
+      "description": "",\r
+      "required": false,\r
+      "type": "string",\r
+      "status": "",\r
+      "constraints": [\r
+        {}\r
+      ],\r
+      "entry_schema": {\r
+        "type": ""\r
+      }\r
+    },\r
+    "input-param": false,\r
+    "dictionary-name": "service-instance-id",\r
+    "dictionary-source": "input",\r
+    "dependencies": [],\r
+    "version": 0\r
+  },\r
+  {\r
+    "name": "vnf-id",\r
+    "property": {\r
+      "description": "",\r
+      "required": false,\r
+      "type": "string",\r
+      "status": "",\r
+      "constraints": [\r
+        {}\r
+      ],\r
+      "entry_schema": {\r
+        "type": ""\r
+      }\r
+    },\r
+    "input-param": false,\r
+    "dictionary-name": "vnf-id",\r
+    "dictionary-source": "input",\r
+    "dependencies": [],\r
+    "version": 0\r
+  },\r
+  {\r
+    "name": "vdns_vf_module_id",\r
+    "property": {\r
+      "description": "",\r
+      "required": false,\r
+      "type": "string",\r
+      "status": "",\r
+      "constraints": [\r
+        {}\r
+      ],\r
+      "entry_schema": {\r
+        "type": ""\r
+      }\r
+    },\r
+    "input-param": false,\r
+    "dictionary-name": "vdns_vf_module_id",\r
+    "dictionary-source": "primary-config-data",\r
+    "dependencies": [\r
+       "service-instance-id",\r
+      "vnf-id"\r
+    ],\r
+    "version": 0\r
+  },\r
+  {\r
+    "name": "vdns_int_private_ip_0",\r
+    "property": {\r
+      "description": "",\r
+      "required": false,\r
+      "type": "string",\r
+      "status": "",\r
+      "constraints": [\r
+        {}\r
+      ],\r
+      "entry_schema": {\r
+        "type": ""\r
+      }\r
+    },\r
+    "input-param": false,\r
+    "dictionary-name": "vdns_int_private_ip_0",\r
+    "dictionary-source": "primary-config-data",\r
+    "dependencies": [\r
+      "service-instance-id",\r
+      "vnf-id",\r
+      "vdns_vf_module_id"\r
+    ],\r
+    "version": 0\r
+  },\r
+  {\r
+    "name": "vdns_onap_private_ip_0",\r
+    "property": {\r
+      "description": "",\r
+      "required": false,\r
+      "type": "string",\r
+      "status": "",\r
+      "constraints": [\r
+        {}\r
+      ],\r
+      "entry_schema": {\r
+        "type": ""\r
+      }\r
+    },\r
+    "input-param": false,\r
+    "dictionary-name": "vdns_onap_private_ip_0",\r
+    "dictionary-source": "primary-config-data",\r
+    "dependencies": [\r
+      "service-instance-id",\r
+      "vnf-id",\r
+      "vdns_vf_module_id"\r
+    ],\r
+    "version": 0\r
+  }\r
+]
\ 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 (file)
index 0000000..a3cd17f
--- /dev/null
@@ -0,0 +1,9 @@
+{\r
+    "vdns-instance": [\r
+        {\r
+            "ip-addr": "$vdns_int_private_ip_0",\r
+            "oam-ip-addr": "$vdns_onap_private_ip_0",\r
+            "enabled": true\r
+        }\r
+    ]\r
+}
\ 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 (file)
index 0000000..57152c9
--- /dev/null
@@ -0,0 +1,65 @@
+[\r
+  {\r
+    "name": "service-instance-id",\r
+    "property": {\r
+      "description": "",\r
+      "required": false,\r
+      "type": "string",\r
+      "status": "",\r
+      "constraints": [\r
+        {}\r
+      ],\r
+      "entry_schema": {\r
+        "type": ""\r
+      }\r
+    },\r
+    "input-param": false,\r
+    "dictionary-name": "service-instance-id",\r
+    "dictionary-source": "input",\r
+    "dependencies": [],\r
+    "version": 0\r
+  },\r
+  {\r
+    "name": "vnf-id",\r
+    "property": {\r
+      "description": "",\r
+      "required": false,\r
+      "type": "string",\r
+      "status": "",\r
+      "constraints": [\r
+        {}\r
+      ],\r
+      "entry_schema": {\r
+        "type": ""\r
+      }\r
+    },\r
+    "input-param": false,\r
+    "dictionary-name": "vnf-id",\r
+    "dictionary-source": "input",\r
+    "dependencies": [],\r
+    "version": 0\r
+  },\r
+  {\r
+    "name": "ip",\r
+    "property": {\r
+      "description": "",\r
+      "required": false,\r
+      "type": "string",\r
+      "status": "",\r
+      "constraints": [\r
+        {}\r
+      ],\r
+      "entry_schema": {\r
+        "type": ""\r
+      }\r
+    },\r
+    "input-param": false,\r
+    "dictionary-name": "vlb_onap_private_ip_0",\r
+    "dictionary-source": "primary-config-data",\r
+    "dependencies": [\r
+      "service-instance-id",\r
+      "vnf-id"\r
+    ],\r
+    "version": 0\r
+  }\r
+]
\ 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 (file)
index 0000000..968e8a2
--- /dev/null
@@ -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 (file)
index 0000000..c59c134
--- /dev/null
@@ -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 (file)
index 0000000..9c493dc
--- /dev/null
@@ -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 (file)
index 0000000..20e2a27
--- /dev/null
@@ -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 (file)
index 0000000..ec43a5a
--- /dev/null
@@ -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 (file)
index 0000000..8ec07e9
--- /dev/null
@@ -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 (file)
index 0000000..bc495bd
--- /dev/null
@@ -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 (file)
index 0000000..472d766
--- /dev/null
@@ -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 (file)
index 0000000..98d541d
--- /dev/null
@@ -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 (file)
index 0000000..ad507bd
--- /dev/null
@@ -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
index f091100..ceb7051 100644 (file)
       "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 (file)
index 0000000..8c304c4
--- /dev/null
@@ -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 (file)
index 0000000..f09ed99
--- /dev/null
@@ -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 (file)
index 0000000..1e44cc7
--- /dev/null
@@ -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 (file)
index 0000000..4ddd7a5
--- /dev/null
@@ -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 (file)
index 0000000..6f31cf5
--- /dev/null
@@ -0,0 +1 @@
+{ }
\ No newline at end of file
index 270184d..6b1aae4 100644 (file)
 
 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 (file)
index 0000000..3bf07e7
--- /dev/null
@@ -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
index 0018896..6c4bb36 100644 (file)
@@ -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 (file)
index 0000000..1aabe39
--- /dev/null
@@ -0,0 +1 @@
+show interfaces | include $vlanId
\ No newline at end of file
index 4411b84..821448d 100644 (file)
     <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>
index 8849715..d1e09dd 100644 (file)
@@ -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
index 1950b71..829fdda 100644 (file)
@@ -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,
index 60016fb..d48f0c7 100644 (file)
@@ -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))
-        }
 }
index b5dac5a..95b2afc 100644 (file)
 
 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
index b03c7b4..1ed0a65 100755 (executable)
@@ -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>
     <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>
index 3415be8..c9f7d50 100644 (file)
@@ -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>) {
index fd747f0..93b6f4e 100644 (file)
@@ -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
index 8afe695..6dc5647 100644 (file)
@@ -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
     }
index 05a1471..d35f2b4 100644 (file)
@@ -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)
                         }
 
index de6d4d8..ce41cfa 100644 (file)
@@ -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"))
 
index 3cec5af..5a9736b 100644 (file)
@@ -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")
index b4c29de..1f872c2 100644 (file)
@@ -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)
index 6ff76e9..4b57119 100644 (file)
     <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>