-/* Copyright (c) 2013-2018. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2013-2019. The SimGrid Team. All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
#include "src/plugins/vm/VmLiveMigration.hpp"
+#include "simgrid/Exception.hpp"
#include "src/instr/instr_private.hpp"
#include "src/plugins/vm/VirtualMachineImpl.hpp"
#include "src/plugins/vm/VmHostExt.hpp"
-#include "xbt/ex.hpp"
XBT_LOG_NEW_DEFAULT_CATEGORY(vm_live_migration, "S4U virtual machines live migration");
simgrid::instr::Container::by_name(vm_->get_name())->remove_from_parent();
// create new container on the new_host location
- new simgrid::instr::Container(vm_->get_cname(), "VM", simgrid::instr::Container::by_name(dst_pm_->get_name()));
+ new simgrid::instr::Container(vm_->get_name(), "VM", simgrid::instr::Container::by_name(dst_pm_->get_name()));
// end link
msg = simgrid::instr::Container::by_name(vm_->get_name());
s4u::Activity* comm = nullptr;
try {
if (mig_speed > 0)
- comm = mbox->put_init(msg, size)->set_rate(mig_speed)->wait(timeout);
+ comm = mbox->put_init(msg, size)->set_rate(mig_speed)->wait_for(timeout);
else
- comm = mbox->put_async(msg, size)->wait();
+ comm = mbox->put_async(msg, size)->wait_for(timeout);
} catch (xbt_ex& e) {
if (comm) {
sg_size_t remaining = static_cast<sg_size_t>(comm->get_remaining());
simgrid::s4u::VirtualMachine::on_shutdown.connect(&onVirtualMachineShutdown);
}
-/* Deprecated. Please use MSG_vm_create_migratable() instead */
-msg_vm_t MSG_vm_create(msg_host_t ind_pm, const char* name, int coreAmount, int ramsize, int mig_netspeed,
- int dp_intensity)
-{
- return sg_vm_create_migratable(ind_pm, name, coreAmount, ramsize, mig_netspeed, dp_intensity);
-}
-
simgrid::s4u::VirtualMachine* sg_vm_create_migratable(simgrid::s4u::Host* pm, const char* name, int coreAmount,
int ramsize, int mig_netspeed, int dp_intensity)
{
{
simgrid::s4u::Host* src_pm = vm->get_pm();
- if (src_pm->is_off())
+ if (not src_pm->is_on())
THROWF(vm_error, 0, "Cannot migrate VM '%s' from host '%s', which is offline.", vm->get_cname(),
src_pm->get_cname());
- if (dst_pm->is_off())
+ if (not dst_pm->is_on())
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());