Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
fix GH#133
authorFrederic Suter <frederic.suter@cc.in2p3.fr>
Fri, 19 Apr 2019 08:35:14 +0000 (10:35 +0200)
committerFrederic Suter <frederic.suter@cc.in2p3.fr>
Fri, 19 Apr 2019 08:35:14 +0000 (10:35 +0200)
When a host is turned off, also shutwdown and turn off the VMs hosted
by this host. This is a rather crude patch that implies to browse the
whole list of existing VMs. A better solution requires a bit more work
and time

src/s4u/s4u_Host.cpp

index 46d86bb..a99e6a8 100644 (file)
@@ -7,6 +7,8 @@
 #include "simgrid/s4u/Actor.hpp"
 #include "simgrid/s4u/Engine.hpp"
 #include "simgrid/s4u/Exec.hpp"
 #include "simgrid/s4u/Actor.hpp"
 #include "simgrid/s4u/Engine.hpp"
 #include "simgrid/s4u/Exec.hpp"
+#include "simgrid/s4u/VirtualMachine.hpp"
+#include "src/plugins/vm/VirtualMachineImpl.hpp"
 #include "src/simix/smx_private.hpp"
 #include "src/surf/HostImpl.hpp"
 
 #include "src/simix/smx_private.hpp"
 #include "src/surf/HostImpl.hpp"
 
@@ -98,6 +100,11 @@ void Host::turn_off()
 {
   if (is_on()) {
     simix::simcall([this] {
 {
   if (is_on()) {
     simix::simcall([this] {
+      for (VirtualMachine* const& vm : vm::VirtualMachineImpl::allVms_)
+        if (vm->get_pm() == this) {
+          vm->shutdown();
+          vm->turn_off();
+        }
       this->pimpl_cpu->turn_off();
       this->pimpl_->turn_off();
 
       this->pimpl_cpu->turn_off();
       this->pimpl_->turn_off();