X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/9a49b76a51e77beced0dfc5f0f74f38d8cfd6c8f..a92d7b716f51a53dea7f59db8524d4add713b910:/examples/java/cloud/migration/TestHostOnOff.java diff --git a/examples/java/cloud/migration/TestHostOnOff.java b/examples/java/cloud/migration/TestHostOnOff.java index a564bb937c..71ff307396 100644 --- a/examples/java/cloud/migration/TestHostOnOff.java +++ b/examples/java/cloud/migration/TestHostOnOff.java @@ -6,53 +6,50 @@ package cloud.migration; -import java.util.ArrayList; -import java.util.List; -import java.util.Random; - -import org.simgrid.msg.*; +import org.simgrid.msg.Host; +import org.simgrid.msg.HostFailureException; +import org.simgrid.msg.HostNotFoundException; +import org.simgrid.msg.Msg; +import org.simgrid.msg.MsgException; import org.simgrid.msg.Process; +import org.simgrid.msg.VM; // This test aims at validating that the migration process is robust in face of host turning off either on the SRC // node or on the DST node. -public class TestHostOnOff extends Process{ - - public static Host host0 = null; - public static Host host1 = null; - public static Host host2 = null; +public class TestHostOnOff extends Process{ + protected Host host0 = null; + protected Host host1 = null; + protected Host host2 = null; - TestHostOnOff(Host host, String name, String[] args) throws HostNotFoundException, NativeException { - super(host, name, args); + TestHostOnOff(String hostname, String name) throws HostNotFoundException { + super(hostname, name); } public void main(String[] strings) throws MsgException { - double startTime = 0; - double endTime = 0; - /* get hosts 1 and 2*/ try { - host0 = Host.getByName("host0"); - host1 = Host.getByName("host1"); - host1 = Host.getByName("host2"); + host0 = Host.getByName("PM0"); + host1 = Host.getByName("PM1"); + host2 = Host.getByName("PM2"); }catch (HostNotFoundException e) { - e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates. + Msg.error("You are trying to use a non existing node:" + e.getMessage()); } // Robustness on the SRC node - //for (int i =0 ; i < 55000 ; i++) - // test_vm_migrate(host1, i); + for (int i =100 ; i < 55000 ; i+=100) + testVMMigrate(host1, i); // Robustness on the DST node - //for (int i =0 ; i < 55000 ; i++) - // test_vm_migrate(host2, i); + for (int i =0 ; i < 55000 ; i++) + testVMMigrate(host2, i); /* End of Tests */ Msg.info("Nor more tests, Bye Bye !"); Main.setEndOfTest(); } - public static void test_vm_migrate (Host hostToKill, long killAt) throws MsgException { + public void testVMMigrate (Host hostToKill, long killAt) throws MsgException { Msg.info("**** **** **** ***** ***** Test Migrate with host shutdown ***** ***** **** **** ****"); Msg.info("Turn on one host, assign a VM on this host, launch a process inside the VM, migrate the VM and " + "turn off either the SRC or DST"); @@ -66,11 +63,7 @@ public class TestHostOnOff extends Process{ int dpRate = 70; XVM vm0 = null; vm0 = new XVM(host1, "vm0", - 1, // Nb of vcpu 2048, // Ramsize, - 125, // Net Bandwidth - null, //VM disk image - -1, //size of disk image, 125, // Net bandwidth, dpRate // Memory intensity ); @@ -80,9 +73,9 @@ public class TestHostOnOff extends Process{ String[] args = new String[3]; args[0] = "vm0"; - args[1] = "host1"; - args[2] = "host2"; - new Process(host1, "Migrate-" + new Random().nextDouble(), args) { + args[1] = "PM1"; + args[2] = "PM2"; + new Process(host1, "Migrate-" + killAt, args) { public void main(String[] args) { Host destHost = null; Host sourceHost = null; @@ -90,19 +83,17 @@ public class TestHostOnOff extends Process{ try { sourceHost = Host.getByName(args[1]); destHost = Host.getByName(args[2]); - } catch (Exception e) { + } catch (HostNotFoundException e) { + Msg.error("You are trying to migrate from/to a non existing node: " + e.getMessage()); e.printStackTrace(); - System.err.println("You are trying to migrate from/to a non existing node"); } - if (destHost != null) { - if (sourceHost.isOn() && destHost.isOn()) { - try { - Msg.info("Migrate vm "+args[0]+" to node "+destHost.getName()); - VM.getVMByName(args[0]).migrate(destHost); - } catch (HostFailureException e) { - e.printStackTrace(); - Msg.info("Something occurs during the migration that cannot validate the operation"); - } + if (destHost != null && sourceHost.isOn() && destHost.isOn()) { + try { + Msg.info("Migrate vm "+args[0]+" to node "+destHost.getName()); + VM.getVMByName(args[0]).migrate(destHost); + } catch (HostFailureException e) { + Msg.error("Something occurs during the migration that cannot validate the operation: " + e.getMessage()); + e.printStackTrace(); } } } @@ -110,10 +101,8 @@ public class TestHostOnOff extends Process{ // Wait killAt ms before killing thehost Process.sleep(killAt); + Msg.info("The migration process should be stopped and we should catch an exception"); hostToKill.off(); - Process.sleep(5); - Msg.info("The migration process should be stopped and we should catch an exception\n"); - Process.sleep(5); Process.sleep(50000); Msg.info("Destroy VMs"); @@ -121,20 +110,15 @@ public class TestHostOnOff extends Process{ Process.sleep(20000); } - public static void test_vm_shutdown_destroy () throws HostFailureException { + public void testVMShutdownDestroy () throws HostFailureException { Msg.info("**** **** **** ***** ***** Test shutdown a VM ***** ***** **** **** ****"); Msg.info("Turn on host1, assign a VM on host1, launch a process inside the VM, and turn off the vm, " + "and check whether you can reallocate the same VM"); // Create VM0 int dpRate = 70; - XVM vm0 = null; - vm0 = new XVM(host1, "vm0", - 1, // Nb of vcpu + XVM vm0 = new XVM(host1, "vm0", 2048, // Ramsize, - 125, // Net Bandwidth - null, //VM disk image - -1, //size of disk image, 125, // Net bandwidth, dpRate // Memory intensity ); @@ -150,11 +134,7 @@ public class TestHostOnOff extends Process{ Msg.info("Restart VM0"); vm0 = new XVM(host1, "vm0", - 1, // Nb of vcpu 2048, // Ramsize, - 125, // Net Bandwidth - null, //VM disk image - -1, //size of disk image, 125, // Net bandwidth, dpRate // Memory intensity );