- simgrid::s4u::Host* src_pm = vm->getPm();
-
- if (src_pm->isOff())
- THROWF(vm_error, 0, "Cannot migrate VM '%s' from host '%s', which is offline.", vm->get_cname(),
- src_pm->get_cname());
- if (dst_pm->isOff())
- THROWF(vm_error, 0, "Cannot migrate VM '%s' to host '%s', which is offline.", vm->get_cname(), dst_pm->get_cname());
- if (vm->getState() != SURF_VM_STATE_RUNNING)
- THROWF(vm_error, 0, "Cannot migrate VM '%s' that is not running yet.", vm->get_cname());
- if (vm->getImpl()->isMigrating)
- THROWF(vm_error, 0, "Cannot migrate VM '%s' that is already migrating.", vm->get_cname());
-
- vm->getImpl()->isMigrating = true;
+ simgrid::s4u::Host* src_pm = vm->get_pm();
+
+ if (not src_pm->is_on())
+ throw simgrid::VmFailureException(
+ XBT_THROW_POINT, simgrid::xbt::string_printf("Cannot migrate VM '%s' from host '%s', which is offline.",
+ vm->get_cname(), src_pm->get_cname()));
+ if (not dst_pm->is_on())
+ throw simgrid::VmFailureException(
+ XBT_THROW_POINT, simgrid::xbt::string_printf("Cannot migrate VM '%s' to host '%s', which is offline.",
+ vm->get_cname(), dst_pm->get_cname()));
+ if (vm->get_state() != simgrid::s4u::VirtualMachine::State::RUNNING)
+ throw simgrid::VmFailureException(
+ XBT_THROW_POINT,
+ simgrid::xbt::string_printf("Cannot migrate VM '%s' that is not running yet.", vm->get_cname()));
+ if (vm->get_vm_impl()->is_migrating())
+ throw simgrid::VmFailureException(
+ XBT_THROW_POINT,
+ simgrid::xbt::string_printf("Cannot migrate VM '%s' that is already migrating.", vm->get_cname()));
+
+ vm->start_migration();