From 5ed6972b193512bc36e169340dadfbb148a62a72 Mon Sep 17 00:00:00 2001
From: Stefan Derkits <stefan@derkits.at>
Date: Thu, 20 Jun 2013 15:18:37 +0200
Subject: [PATCH] resize VM down after migration in SchedulerB

---
 src/at/ac/tuwien/lsdc/sched/SchedulerB.java | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/src/at/ac/tuwien/lsdc/sched/SchedulerB.java b/src/at/ac/tuwien/lsdc/sched/SchedulerB.java
index be8c601..db30b3f 100644
--- a/src/at/ac/tuwien/lsdc/sched/SchedulerB.java
+++ b/src/at/ac/tuwien/lsdc/sched/SchedulerB.java
@@ -46,6 +46,7 @@ public class SchedulerB extends AbstractSchedulerWithMigration {
 
 	@Override
 	protected boolean deployApp(VirtualMachine vm, Application app) {
+		VirtualMachine current = app.getRunningOn();
 		boolean deployed = false;
 		if (!vm.enoughResources(app)) {
 			try {
@@ -55,8 +56,13 @@ public class SchedulerB extends AbstractSchedulerWithMigration {
 			}
 		}
 		deployed = vm.startApplication(app);
-		if (deployed)
+		if (deployed) {
 			app.setRunningOn(vm);
+			if (current != null) {
+				current.stopApplication(app);
+				current.resizeDown(app);
+			}
+		}
 		return deployed;
 	}
 
@@ -73,7 +79,7 @@ public class SchedulerB extends AbstractSchedulerWithMigration {
 			evt.getApp().setRunningOn(null);
 			vm.stopApplication(evt.getApp());
 			vm.resizeDown(evt.getApp());
-	
+
 			if (vm.getApplications().size() == 0) {
 				PhysicalMachine pm = vm.getRunningOn();
 				pm.stopVirtualMachine(vm);
@@ -122,7 +128,7 @@ public class SchedulerB extends AbstractSchedulerWithMigration {
 			}
 			if (deployed) {
 				insertStopEvent(currTime + evt.getApp().getDuration(), evt.getApp());
-				
+
 				if(manager.countCurrentlyRunningPMs() < manager.getMaxPMs()) {
 					Application app = federation.askToInsource();
 					if(app != null) {
-- 
2.43.0