aboutsummaryrefslogtreecommitdiffstats
path: root/src/app/vnfs/build-artifacts/parameter-definitions/parameter-definition.service.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/app/vnfs/build-artifacts/parameter-definitions/parameter-definition.service.ts')
-rw-r--r--src/app/vnfs/build-artifacts/parameter-definitions/parameter-definition.service.ts145
1 files changed, 116 insertions, 29 deletions
diff --git a/src/app/vnfs/build-artifacts/parameter-definitions/parameter-definition.service.ts b/src/app/vnfs/build-artifacts/parameter-definitions/parameter-definition.service.ts
index 14af6ab..2bd1bc9 100644
--- a/src/app/vnfs/build-artifacts/parameter-definitions/parameter-definition.service.ts
+++ b/src/app/vnfs/build-artifacts/parameter-definitions/parameter-definition.service.ts
@@ -31,6 +31,8 @@ import {UtilityService} from '../../../shared/services/utilityService/utility.se
import {NotificationsService} from 'angular2-notifications';
import 'rxjs/add/operator/map';
import { appConstants } from '../../../../constants/app-constants';
+import { HttpUtilService } from '../../../shared/services/httpUtil/http-util.service';
+
let YAML = require('yamljs');
@@ -38,7 +40,7 @@ declare var $: any;
@Injectable()
export class ParameterDefinitionService {
-
+ clName= "ParameterDefinitionSvc";
public vnfcTypeData: string = '';
public selectedUploadType: string;
@ViewChild(ModalComponent) modalComponent: ModalComponent;
@@ -63,9 +65,12 @@ export class ParameterDefinitionService {
private selectedActionReference: any;
private apiToken = localStorage['apiToken'];
private userId = localStorage['userId'];
+ public versionNoForApiCall=require('../../../../cdt.application.properties.json').versionNoForApiCall;
+
constructor(private mappingEditorService: MappingEditorService,
private paramShareService: ParamShareService,
private nService: NotificationsService,
+ private httpService: HttpUtilService,
private utilService: UtilityService) {
}
@@ -79,6 +84,8 @@ export class ParameterDefinitionService {
this.protocol = protocol;
this.action = action;
this.artifact_fileName = artifactName;
+ this.appDataObject = this.mappingEditorService.appDataObject;
+ this.downloadDataObject = this.mappingEditorService.downloadDataObject;
}
public afterInit(artifactName, displayParamObjects) {
@@ -89,7 +96,8 @@ export class ParameterDefinitionService {
/* Saves pd to appc */
public sendPD(yamlString: String) {
let result: any;
- let payload = '{"userID": "' + this.userId + '","vnf-type" : "' + this.vnfType + '","action" : "' + this.action + '","artifact-name" : "' + this.artifact_fileName + '","artifact-type" : "APPC-CONFIG","artifact-version" : "0.0.1","artifact-contents" : ' + yamlString + '}';
+ let input = this.utilService.createPayLoadForSave("pd_data",this.vnfType,this.action,this.artifact_fileName, this.versionNoForApiCall, yamlString);
+ /*let payload = '{"userID": "' + this.userId + '","vnf-type" : "' + this.vnfType + '","action" : "' + this.action + '","artifact-name" : "' + this.artifact_fileName + '","artifact-type" : "APPC-CONFIG","artifact-version" : "0.0.1","artifact-contents" : ' + yamlString + '}';
let input = {
'input': {
'design-request': {
@@ -98,7 +106,7 @@ export class ParameterDefinitionService {
'payload': payload
}
}
- };
+ };*/
this.appDataObject.pd = input;
}
@@ -114,26 +122,78 @@ export class ParameterDefinitionService {
return result;
}
- //========================== End of removeUnwantedvalues() Method============================================
- populateDataUponSource(displayParamObjects) {
- displayParamObjects.forEach(parameter => {
- if (parameter.source == 'A&AI') {
- parameter.ruleTypeValues = [null, 'vnf-name', 'vm-name-list', 'vnfc-name-list', 'vnf-oam-ipv4-address', 'vnfc-oam-ipv4-address-list'];
- if (parameter['rule-type'] == 'vm-name-list' || parameter['rule-type'] == 'vnfc-name-list' || parameter['rule-type'] == 'vnfc-oam-ipv4-address-list') {
- parameter.showFilterFields = true;
- parameter.enableFilterByValue = false;
- } else {
- parameter.showFilterFields = false;
- }
-
- } else if (parameter.source == 'Manual') {
+ //.. setup display of each parameter row depending on the paramater name,
+ // pre-set values of source and rule-type fields (columns)
+ populateDataUponSource( displayParamObjects) {
+ var methName= "populateDataUponSource";
+ if( this.utilService.getTracelvl() > 0 )
+ console.log( this.clName+": "+methName+": start: displayParamObjects "+
+ "length="+displayParamObjects.length );
+ displayParamObjects.forEach( parameter => {
+ if( this.utilService.getTracelvl() > 0 )
+ console.log( this.clName+": "+methName+": param: name:["+
+ parameter.name+"] source:["+
+ parameter.source+"] rule-type:["+parameter['rule-type']+"]");
+ if( parameter.name == 'NodeList-DD') {
+ if( this.utilService.getTracelvl() > 0 )
+ console.log( this.clName+": "+methName+": the Param is NodeList");
+ parameter.source= "DataDictionary";
+ }
+ else if( parameter.name == 'vnfName-DD' ) {
+ if( this.utilService.getTracelvl() > 0 )
+ console.log( this.clName+": "+methName+": the Param's vnfName-DD");
+ parameter.source= "A&AI";
+ parameter['rule-type']= "vnf-name";
+ };
+ if( parameter.source == 'A&AI') {
+ parameter.ruleTypeValues = [null, 'vnf-name', 'vm-name-list', 'vnfc-name-list', 'vnf-oam-ipv4-address', 'vnfc-oam-ipv4-address-list'];
+ if( parameter['rule-type'] == 'vm-name-list' ||
+ parameter['rule-type'] == 'vnfc-name-list' ||
+ parameter['rule-type'] == 'vnfc-oam-ipv4-address-list')
+ {
+ parameter.showFilterFields = true;
+ parameter.enableFilterByValue = false;
+ } else {
+ parameter.showFilterFields = false;
+ }
+ }
+ else if( parameter.source == 'Manual') {
parameter.ruleTypeValues = [null];
}
+ else if( parameter.source == 'DataDictionary') {
+ parameter.sourceValues = ['DataDictionary'];
+ parameter.ruleTypeValues = ['NodeList'];
+ parameter['rule-type']= 'NodeList';
+ }
else {
parameter.ruleTypeValues = [parameter['rule-type']];
}
+ //.. print-out the parameter's drop-downs for source and rule-type
+ if( this.utilService.getTracelvl() > 1 ) {
+ if( parameter.sourceValues != null &&
+ parameter.sourceValues != undefined )
+ {
+ console.log( this.clName+": "+methName+": sourceValues length="+
+ parameter.sourceValues.length );
+ if( parameter.sourceValues.length > 0 ) {
+ for( var i0=0; i0 < parameter.sourceValues.length; i0++ )
+ console.log( methName+": sourceValues["+i0+"]:["+
+ parameter.sourceValues[i0]+"]");
+ };
+ };
+ if( parameter.ruleTypeValues != null &&
+ parameter.ruleTypeValues != undefined )
+ {
+ console.log( this.clName+": "+methName+": ruleTypeValues length="+
+ parameter.ruleTypeValues.length );
+ if( parameter.ruleTypeValues.length > 0 ) {
+ for( var i0=0; i0 < parameter.ruleTypeValues.length; i0++ )
+ console.log( methName+": ruleTypeValues["+i0+"]:["+
+ parameter.ruleTypeValues[i0]+"]");
+ };
+ };
+ };
});
-
}
//========================== End of getPD() Method============================================
@@ -142,7 +202,7 @@ export class ParameterDefinitionService {
//Added code to deserialize, serialize and format the response keys for display purposes ??May be unneessary?? To Do: - Check
let fileObj = JSON.parse(fileContent);
this.displayParamObjects = this.formatFileContentForDisplay(fileObj);
- this.populateDataUponSource(this.displayParamObjects);
+ this.populateDataUponSource( this.displayParamObjects);
this.formatResponseForKey(this.displayParamObjects);
if (undefined !== this.displayParamObjects)
this.modelParamDefinitionObjects = this.displayParamObjects;
@@ -152,7 +212,6 @@ export class ParameterDefinitionService {
return this.displayParamObjects;
}
- //========================== End of populatePD() Method============================================
/* Formats each object read from YAML file as per page expectations */
formatResponseForKey(param: any[]) {
for (var i = 0; i < param.length; i++) {
@@ -200,8 +259,8 @@ export class ParameterDefinitionService {
}
}
}
-
//========================== End of formatKeys() Method============================================
+
//Send null if there are no keys present - Check with key names being absent
formatKeysForFileGeneration() {
for (var i = 0; i < this.modelParamDefinitionObjects.length; i++) {
@@ -269,7 +328,7 @@ export class ParameterDefinitionService {
}
delete fileModel[i]['response-keys'];
fileModel[i]['response-keys'] = fileModel[i]['response-keys-new'];
- delete fileModel[i]['response-keys=new'];
+ delete fileModel[i]['response-keys-new'];
}
}
return fileModel;
@@ -305,14 +364,22 @@ export class ParameterDefinitionService {
return result;
}
-
- public prepareFileName(): any {
- let fileNameObject: any = this.mappingEditorService.latestAction;
- this.appDataObject = this.mappingEditorService.appDataObject;
- this.downloadDataObject = this.mappingEditorService.downloadDataObject;
- return fileNameObject;
+ //========================== End of clearSessionStorageForParam() Method============================================
+ isValidateSourceAndResponseKeys(objs: any[]) {
+ let isValid = true;
+ if (undefined != objs || null != objs) {
+ for (var i = 0; i < objs.length; i++) {
+ if (objs[i].source == 'INSTAR' && (null == objs[i]['response-keys'] || undefined == objs[i]['response-keys'])) {
+ isValid = false;
+ return isValid;
+ }
+ }
+ }
+ return isValid;
}
+
+
public destroy(displayParamObjects) {
this.displayParamObjects = displayParamObjects;
if (this.mappingEditorService.referenceNameObjects) {
@@ -338,6 +405,8 @@ export class ParameterDefinitionService {
jsonString = jsonString.replace(/"null"/g, 'null');
let saveModel = JSON.parse(jsonString);
let pdFileObject = this.processResponseKeys(saveModel);
+ //Validate for Source =INSTAR and responsekeys present
+ if (this.isValidateSourceAndResponseKeys(pdFileObject)) {
let yamlObject = {
'kind': 'Property Definition',
'version': 'V1',
@@ -362,7 +431,14 @@ export class ParameterDefinitionService {
else {
this.sendPD(JSON.stringify(yamlString));
}
-
+ }
+ else {
+ for (var i = 0; i < this.modelParamDefinitionObjects.length; i++) {
+ this.formatKeys(this.modelParamDefinitionObjects[i]);
+ }
+ this.nService.error('Error', 'Response Keys cannot be empty if source is INSTAR');
+ return;
+ }
//Restore Keys for display
for (var i = 0; i < this.modelParamDefinitionObjects.length; i++) {
this.formatKeys(this.modelParamDefinitionObjects[i]);
@@ -410,7 +486,18 @@ export class ParameterDefinitionService {
}
parameterDefinitionObject['source'] = fields[0];
parameterDefinitionObject['rule-type'] = fields[1];
- }
+ } else {
+ if (parameterDefinitionObject['source'] === 'INSTAR') {
+ parameterDefinitionObject['source'] = 'Manual';
+ parameterDefinitionObject['ruleTypeValues'] = [null];
+ parameterDefinitionObject['rule-type'] = null;
+ parameterDefinitionObject['showFilterFields'] = false;
+ for (let x = 0; x < 5; x++) {
+ parameterDefinitionObject['response-keys'][x]['key-name'] = null;
+ parameterDefinitionObject['response-keys'][x]['key-value'] = null;
+ }
+ }
+ }
this.formatKeys(parameterDefinitionObject); //Ensure there are 3 elements for response-keys, request-keys for display purposes
if (!result.present) { //only push if not present
this.modelParamDefinitionObjects.push(parameterDefinitionObject);