Fix Bug 2292: Invalid Member VNF index in Manual Scaling after NS Update remove operation
[osm/NG-UI.git] / src / app / utilities / ns-update / NsUpdateComponent.ts
index b33bfc4..7efba70 100644 (file)
@@ -31,7 +31,7 @@ import { NSUPDATE, TERMINATEVNF } from 'NSInstanceModel';
 import { RestService } from 'RestService';
 import { SharedService } from 'SharedService';
 import { VNFD } from 'VNFDModel';
-import { VNFInstanceDetails } from 'VNFInstanceModel';
+import { InstanceData, VNFInstanceDetails } from 'VNFInstanceModel';
 import { WarningComponent } from 'WarningComponent';
 
 /**
@@ -146,30 +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: {} = {
-                    // eslint-disable-next-line security/detect-object-injection
-                    id: resVNF[memberIndex],
-                    // eslint-disable-next-line security/detect-object-injection
-                    vnfinstanceId: resVNF[vnfinstanceID]
+                    id: resVNF.MemberIndex,
+                    vnfinstanceId: resVNF.VNFInstanceId
                 };
                 this.memberVnfIndex.push(assignMemberIndex);
             });
@@ -190,7 +195,7 @@ 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
+            // eslint-disable-next-line security/detect-object-injection
             vnfdData[memberIndex] === this.memberIndexValue);
         const vnfId: string = 'VNFID';
         const selectedvnfId: string = 'VNFD';
@@ -297,7 +302,7 @@ export class NsUpdateComponent implements OnInit {
                             this.onSubmit();
                         }
                     }).catch((): void => { //empty
-                     }
+                    }
                     );
                 } else {
                     // eslint-disable-next-line security/detect-non-literal-fs-filename
@@ -310,7 +315,7 @@ export class NsUpdateComponent implements OnInit {
                             this.onSubmit();
                         }
                     }).catch((): void => { //empty
-                     });
+                    });
                 }
             }, (error: ERRORDATA): void => {
                 this.restService.handleError(error, 'get');