X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=src%2Fapp%2Futilities%2Fns-update%2FNsUpdateComponent.ts;h=7efba7027e915e9ebde0935c247145596b101bca;hb=c7e646225214c583463c859f267d314fb04e829e;hp=80ddbb4d902e5666a1d36f94e54ee48f08a4ee7d;hpb=99144589707c8c854149258c87cd3871b4c4f6be;p=osm%2FNG-UI.git diff --git a/src/app/utilities/ns-update/NsUpdateComponent.ts b/src/app/utilities/ns-update/NsUpdateComponent.ts index 80ddbb4..7efba70 100644 --- a/src/app/utilities/ns-update/NsUpdateComponent.ts +++ b/src/app/utilities/ns-update/NsUpdateComponent.ts @@ -18,6 +18,7 @@ /** * @file Ns Update Component */ +import { isNullOrUndefined } from 'util'; import { HttpHeaders } from '@angular/common/http'; import { Component, Injector, Input, OnInit } from '@angular/core'; import { AbstractControl, FormBuilder, FormGroup, Validators } from '@angular/forms'; @@ -29,9 +30,8 @@ import { environment } from 'environment'; import { NSUPDATE, TERMINATEVNF } from 'NSInstanceModel'; import { RestService } from 'RestService'; import { SharedService } from 'SharedService'; -import { isNullOrUndefined } from 'util'; import { VNFD } from 'VNFDModel'; -import { VNFInstanceDetails } from 'VNFInstanceModel'; +import { InstanceData, VNFInstanceDetails } from 'VNFInstanceModel'; import { WarningComponent } from 'WarningComponent'; /** @@ -68,6 +68,8 @@ export class NsUpdateComponent implements OnInit { public vnfdIdShow: boolean = false; /** Contains MemberVNFIndex values @public */ public memberVnfIndex: {}[] = []; + /** Contains MemberVNFIndex content @public */ + public selectedVnf: {}[]; /** Array holds VNFR Data filtered with nsr ID @public */ public nsIdFilteredData: {}[] = []; /** Contains vnfdId value @public */ @@ -144,27 +146,35 @@ export class NsUpdateComponent implements OnInit { /** Getting MemberVnfIndex using NSDescriptor API @public */ public getMemberVnfIndex(): void { + this.isLoadingResults = true; const vnfInstanceData: {}[] = []; this.restService.getResource(environment.VNFINSTANCES_URL).subscribe((vnfInstancesData: VNFInstanceDetails[]): void => { vnfInstancesData.forEach((vnfData: VNFInstanceDetails): void => { + const vnfdRef: string = 'vnfd-ref'; + const memberIndex: string = 'member-vnf-index-ref'; + const nsrId: string = 'nsr-id-ref'; + const vnfId: string = 'vnfd-id'; const vnfDataObj: {} = { - VNFD: vnfData['vnfd-ref'], + // eslint-disable-next-line security/detect-object-injection + VNFD: vnfData[vnfdRef], VNFInstanceId: vnfData._id, - MemberIndex: vnfData['member-vnf-index-ref'], - NS: vnfData['nsr-id-ref'], - VNFID: vnfData['vnfd-id'] + // eslint-disable-next-line security/detect-object-injection + MemberIndex: vnfData[memberIndex], + // eslint-disable-next-line security/detect-object-injection + NS: vnfData[nsrId], + // eslint-disable-next-line security/detect-object-injection + VNFID: vnfData[vnfId] }; vnfInstanceData.push(vnfDataObj); }); const nsId: string = 'NS'; + // eslint-disable-next-line security/detect-object-injection this.nsIdFilteredData = vnfInstanceData.filter((vnfdData: {}[]): boolean => vnfdData[nsId] === this.params.id); - this.nsIdFilteredData.forEach((resVNF: {}[]): void => { - const memberIndex: string = 'MemberIndex'; - const vnfinstanceID: string = 'VNFInstanceId'; + this.nsIdFilteredData.forEach((resVNF: InstanceData): void => { const assignMemberIndex: {} = { - id: resVNF[memberIndex], - vnfinstanceId: resVNF[vnfinstanceID] + id: resVNF.MemberIndex, + vnfinstanceId: resVNF.VNFInstanceId }; this.memberVnfIndex.push(assignMemberIndex); }); @@ -185,11 +195,15 @@ export class NsUpdateComponent implements OnInit { let memberIndexFilteredData: {}[] = []; const memberIndex: string = 'MemberIndex'; memberIndexFilteredData = this.nsIdFilteredData.filter((vnfdData: {}[]): boolean => + // eslint-disable-next-line security/detect-object-injection vnfdData[memberIndex] === this.memberIndexValue); const vnfId: string = 'VNFID'; const selectedvnfId: string = 'VNFD'; + this.selectedVnf = memberIndexFilteredData; for (const data of memberIndexFilteredData) { + // eslint-disable-next-line security/detect-object-injection this.vnfID = data[vnfId]; + // eslint-disable-next-line security/detect-object-injection this.selectedvnfId = data[selectedvnfId]; } } @@ -235,6 +249,7 @@ export class NsUpdateComponent implements OnInit { if (this.nsUpdateForm.value.updateType === 'CHANGE_VNFPKG') { this.checkVersion(); } else { + // eslint-disable-next-line security/detect-non-literal-fs-filename const modalRef: NgbModalRef = this.modalService.open(WarningComponent, { backdrop: 'static' }); modalRef.componentInstance.heading = this.translateService.instant('TERMINATEVNF'); modalRef.componentInstance.confirmationMessage = this.translateService.instant('TERMINATEVNFCONTENT'); @@ -243,7 +258,9 @@ export class NsUpdateComponent implements OnInit { if (result.message === CONFIGCONSTANT.done) { this.onSubmit(); } - }).catch(); + }).catch((): void => { + // Catch Navigation Error + }); } this.isLoadingResults = false; } @@ -268,21 +285,27 @@ export class NsUpdateComponent implements OnInit { let vnfIdFilteredData: {}[] = []; const vnfID: string = 'VNFID'; const version: string = 'version'; + // eslint-disable-next-line security/detect-object-injection vnfIdFilteredData = vnfDetails.filter((vnfdData: {}[]): boolean => vnfdData[vnfID] === this.vnfID); for (const data of vnfIdFilteredData) { + // eslint-disable-next-line security/detect-object-injection this.vnfversion = data[version]; } if (this.version === this.vnfversion) { + // eslint-disable-next-line security/detect-non-literal-fs-filename const modalRef: NgbModalRef = this.modalService.open(WarningComponent, { backdrop: 'static' }); - modalRef.componentInstance.heading = this.translateService.instant('UPDATEPOLICIES'); - modalRef.componentInstance.confirmationMessage = this.translateService.instant('UPDATEPOLICIESCONTENT'); - modalRef.componentInstance.submitMessage = this.translateService.instant('UPDATEPOLICIES'); + modalRef.componentInstance.heading = this.translateService.instant('UPDATENS'); + modalRef.componentInstance.confirmationMessage = this.translateService.instant('GENERICCONTENT'); + modalRef.componentInstance.submitMessage = this.translateService.instant('UPDATENS'); modalRef.result.then((result: MODALCLOSERESPONSEDATA): void => { if (result.message === CONFIGCONSTANT.done) { this.onSubmit(); } - }).catch(); + }).catch((): void => { //empty + } + ); } else { + // eslint-disable-next-line security/detect-non-literal-fs-filename const modalRef: NgbModalRef = this.modalService.open(WarningComponent, { backdrop: 'static' }); modalRef.componentInstance.heading = this.translateService.instant('REDEPLOY'); modalRef.componentInstance.confirmationMessage = this.translateService.instant('REDEPLOYCONTENT'); @@ -291,7 +314,8 @@ export class NsUpdateComponent implements OnInit { if (result.message === CONFIGCONSTANT.done) { this.onSubmit(); } - }).catch(); + }).catch((): void => { //empty + }); } }, (error: ERRORDATA): void => { this.restService.handleError(error, 'get'); @@ -316,7 +340,9 @@ export class NsUpdateComponent implements OnInit { }; this.restService.postResource(apiURLHeader, nsUpdatePayload).subscribe((result: {}): void => { this.activeModal.close(modalData); - this.router.navigate(['/instances/ns/history-operations/' + this.params.id]).catch(); + this.router.navigate(['/instances/ns/history-operations/' + this.params.id]).catch((): void => { + // Catch Navigation Error + }); }, (error: ERRORDATA): void => { this.restService.handleError(error, 'post'); this.isLoadingResults = false; @@ -337,6 +363,7 @@ export class NsUpdateComponent implements OnInit { /** Used to get the AbstractControl of controlName passed @private */ private getFormControl(controlName: string): AbstractControl { + // eslint-disable-next-line security/detect-object-injection return this.nsUpdateForm.controls[controlName]; } }