diff --git a/src/app/utilities/vm-migration/VmMigrationComponent.html b/src/app/utilities/vm-migration/VmMigrationComponent.html
index 343a6be..fa1cd14 100644
--- a/src/app/utilities/vm-migration/VmMigrationComponent.html
+++ b/src/app/utilities/vm-migration/VmMigrationComponent.html
@@ -44,8 +44,8 @@
                 <label for="vduid"> {{'VDUID' | translate}}</label>
             </div>
             <div class="col-sm-6">
-                <ng-select formControlName="vduId" [clearable]="false"
-                    placeholder="{{'SELECT' | translate}} {{'VDUID' | translate}}" [items]="vdu" bindLabel="VDU"
+                <ng-select formControlName="vduId" [clearable]="false" (change)="getCountIndex($event.VDU)"
+                    placeholder="{{'SELECT' | translate}} {{'VDUID' | translate}}" [items]="vduId" bindLabel="VDU"
                     bindValue="VDU" [ngClass]="{ 'is-invalid': submitted && f.vduId.errors }">
                 </ng-select>
             </div>
@@ -56,7 +56,7 @@
             </div>
             <div class="col-sm-6">
                 <ng-select formControlName="countIndex" [clearable]="false"
-                    placeholder="{{'SELECT' | translate}} {{'COUNTINDEX' | translate}}" [items]="vdu"
+                    placeholder="{{'SELECT' | translate}} {{'COUNTINDEX' | translate}}" [items]="countIndex"
                     bindLabel="count-index" bindValue="count-index"
                     [ngClass]="{ 'is-invalid': submitted && f.countIndex.errors }">
                 </ng-select>
diff --git a/src/app/utilities/vm-migration/VmMigrationComponent.ts b/src/app/utilities/vm-migration/VmMigrationComponent.ts
index 0ec8bc4..7ac8af0 100644
--- a/src/app/utilities/vm-migration/VmMigrationComponent.ts
+++ b/src/app/utilities/vm-migration/VmMigrationComponent.ts
@@ -65,6 +65,10 @@
     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 */
@@ -166,6 +170,12 @@
                             vnfInstanceData.push(vnfInstanceDataObj);
                         });
                         this.vdu = vnfInstanceData;
+                        const vduName: string = 'VDU';
+                        this.vduId = this.vdu.filter((vdu: {}, index: number, self: {}[]): {} =>
+                            index === self.findIndex((t: {}): {} => (
+                                t[vduName] === vdu[vduName]
+                            ))
+                        );
                     }
                 }, (error: ERRORDATA): void => {
                     this.restService.handleError(error, 'get');
@@ -174,6 +184,12 @@
         }
     }
 
+    /** Getting count-index by filtering id  */
+    public getCountIndex(id: string): void {
+        const VDU: string = 'VDU';
+        this.countIndex = this.vdu.filter((vnfdData: {}[]): boolean => vnfdData[VDU] === id);
+    }
+
     /** Trigger VM Migration on submit */
     public triggerMigration(): void {
         this.submitted = true;
