- THROWF(vm_error, 0, "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)
- THROWF(vm_error, 0, "Cannot migrate VM '%s' that is not running yet.", vm->get_cname());
- if (vm->get_impl()->is_migrating_)
- THROWF(vm_error, 0, "Cannot migrate VM '%s' that is already migrating.", vm->get_cname());
-
- vm->get_impl()->is_migrating_ = true;
- simgrid::s4u::VirtualMachine::on_migration_start(*vm);
+ 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();