Fix Bug 2121: NG-UI uses unmaintained Chokidar version
[osm/NG-UI.git] / src / app / utilities / vm-migration / VmMigrationComponent.ts
index 0ec8bc4..e53ea11 100644 (file)
@@ -18,6 +18,7 @@
 /**
  * @file Vm Migration 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';
@@ -28,7 +29,6 @@ import { environment } from 'environment';
 import { VMMIGRATION } from 'NSInstanceModel';
 import { RestService } from 'RestService';
 import { SharedService } from 'SharedService';
-import { isNullOrUndefined } from 'util';
 import { VDUR, VNFInstanceDetails } from 'VNFInstanceModel';
 
 /**
@@ -65,6 +65,10 @@ export class VmMigrationComponent implements OnInit {
     public instanceId: string;
     /** Form valid on submit trigger @public */
     public submitted: boolean = false;
+    /** Contains vduId @public */
+    public vduId: {};
+    /** Items for countIndex @public */
+    public countIndex: {}[];
     /** Input contains component objects @private */
     @Input() private params: URLPARAMS;
     /** FormBuilder instance added to the formBuilder @private */
@@ -125,12 +129,15 @@ export class VmMigrationComponent implements OnInit {
                 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';
                 const assignMemberIndex: {} = {
+                    // eslint-disable-next-line security/detect-object-injection
                     id: resVNF[memberIndex],
+                    // eslint-disable-next-line security/detect-object-injection
                     vnfinstanceId: resVNF[vnfinstanceID]
                 };
                 this.memberVnfIndex.push(assignMemberIndex);
@@ -155,7 +162,9 @@ export class VmMigrationComponent implements OnInit {
                 subscribe((vnfInstanceDetail: VNFInstanceDetails[]): void => {
                     this.selectedvnfId = vnfInstanceDetail['vnfd-ref'];
                     const VDU: string = 'vdur';
+                    // eslint-disable-next-line security/detect-object-injection
                     if (vnfInstanceDetail[VDU] !== undefined) {
+                        // eslint-disable-next-line security/detect-object-injection
                         vnfInstanceDetail[VDU].forEach((vdu: VDUR): void => {
                             const vnfInstanceDataObj: {} =
                             {
@@ -166,6 +175,13 @@ export class VmMigrationComponent implements OnInit {
                             vnfInstanceData.push(vnfInstanceDataObj);
                         });
                         this.vdu = vnfInstanceData;
+                        const vduName: string = 'VDU';
+                        this.vduId = this.vdu.filter((vdu: {}, index: number, self: {}[]): {} =>
+                            index === self.findIndex((t: {}): {} => (
+                                // eslint-disable-next-line security/detect-object-injection
+                                t[vduName] === vdu[vduName]
+                            ))
+                        );
                     }
                 }, (error: ERRORDATA): void => {
                     this.restService.handleError(error, 'get');
@@ -174,6 +190,13 @@ export class VmMigrationComponent implements OnInit {
         }
     }
 
+    /** Getting count-index by filtering id  */
+    public getCountIndex(id: string): void {
+        const VDU: string = 'VDU';
+        // eslint-disable-next-line security/detect-object-injection
+        this.countIndex = this.vdu.filter((vnfdData: {}[]): boolean => vnfdData[VDU] === id);
+    }
+
     /** Trigger VM Migration on submit */
     public triggerMigration(): void {
         this.submitted = true;
@@ -201,7 +224,6 @@ export class VmMigrationComponent implements OnInit {
             };
         }
         this.migrationInitialization(migrationPayload);
-
     }
 
     /** Initialize the Vm Migration operation @public */
@@ -216,7 +238,9 @@ export class VmMigrationComponent implements OnInit {
         };
         this.restService.postResource(apiURLHeader, migrationPayload).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;
@@ -225,6 +249,7 @@ export class VmMigrationComponent 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.migrationForm.controls[controlName];
     }
 }