#include <vmmigration.h>
Definition at line 17 of file vmmigration.h.
VmMigration::VmMigration |
( |
| ) |
|
VmMigration::~VmMigration |
( |
| ) |
|
|
virtual |
int VmMigration::command |
( |
int |
argc, |
|
|
const char *const * |
argv |
|
) |
| |
|
virtual |
Definition at line 147 of file vmmigration.cc.
149 if (strcmp(argv[1],
"set-sink") == 0) {
157 }
else if (strcmp(argv[1],
"set-source") == 0) {
158 TcpAgent *vma =
dynamic_cast<TcpAgent*
> (TcpAgent::lookup(argv[2]));
164 }
else if (strcmp(argv[1],
"set-id") == 0) {
166 int num = strtol(argv[2], &stat, 10);
TcpAgent * vm_migration_sender_
VmMigrationSink * vm_migration_sink_
void setVmMigration(VmMigration *vm_migration)
void VmMigration::finalizeMigration |
( |
| ) |
|
Definition at line 96 of file vmmigration.cc.
100 Tcl& tcl = Tcl::instance();
103 tcl.evalf(
"$hosts_(%d) detach-vm-mig-sink $vmmigrationsink_(%d)",
target_->
id_,
id_);
106 tcl.evalf(
"$ns detach-agent $servers_(%d) $vmmigrationsink_(%d) ",
target_->
id_,
id_);
114 tcl.evalf(
"$ns detach-agent $servers_(%d) $vmtsksink_(%d) ",source->
id_,
migrated_vm_->
id_);
118 tcl.evalf(
"$ns detach-agent $switch_C1_([expr %d/($top(NServers)/$NTSwitches)]) $vmtskcomagnt_C_(%d)",source->
id_,
migrated_vm_->
id_);
119 tcl.evalf(
"$ns attach-agent $switch_C1_([expr %d/($top(NServers)/$NTSwitches)]) $vmtskcomagnt_C_(%d)",
target_->
id_,
migrated_vm_->
id_);
124 tcl.evalf(
"$ns detach-agent $servers_(%d) $vmtskoutputagent_(%d) ",source->
id_,
migrated_vm_->
id_);
127 tcl.evalf(
"$ns detach-agent $switch_C1_([expr %d/($top(NServers)/$NTSwitches)]) $vmtskoutputsink_(%d)",source->
id_,
migrated_vm_->
id_);
128 tcl.evalf(
"$ns attach-agent $switch_C1_([expr %d/($top(NServers)/$NTSwitches)]) $vmtskoutputsink_(%d)",
target_->
id_,
migrated_vm_->
id_);
138 std::cerr <<
"Error: Migration object NOT successfully allocated on target.\n";
bool releaseAllocation(ResourceConsumer *rc)
ResourceProvider * getHost()
virtual void updateEnergyAndConsumption()=0
ResourceProvider * target_
Definition at line 22 of file vmmigration.cc.
33 std::vector <ResDemand*>::iterator iter;
34 std::vector <ResDemand*>::iterator iter2;
43 Tcl& tcl = Tcl::instance();
45 tcl.evalf(
"set vmmigrationsource_($next_migration_id) [new Agent/TCP/ProvOutAgent]");
46 tcl.evalf(
"set vmmigrationsink_($next_migration_id) [new Agent/TCPSink/VmMigrationSink]");
49 tcl.evalf(
"$ns attach-agent $servers_(%d) $vmmigrationsource_($next_migration_id)",
migrated_vm_->
getHost()->
id_);
50 tcl.evalf(
"$ns attach-agent $servers_(%d) $vmmigrationsink_($next_migration_id)",
target_->
id_);
51 tcl.evalf(
"$ns connect $vmmigrationsource_($next_migration_id) $vmmigrationsink_($next_migration_id)");
55 tcl.evalf(
"$hosts_(%d) attach-vm-mig-source $vmmigrationsource_($next_migration_id)",
migrated_vm_->
getHost()->
id_);
56 tcl.evalf(
"$hosts_(%d) attach-vm-mig-sink $vmmigrationsink_($next_migration_id)",
target_->
id_);
61 tcl.evalf(
"$vmmigration_($next_migration_id) set-source $vmmigrationsource_($next_migration_id)");
62 tcl.evalf(
"$vmmigration_($next_migration_id) set-sink $vmmigrationsink_($next_migration_id)");
66 tcl.evalf(
"incr next_migration_id");
std::vector< ResDemand * > res_demands
ResourceProvider * getHost()
ResourceProvider * target_
void VmMigration::startMigration |
( |
| ) |
|
Definition at line 77 of file vmmigration.cc.
84 std::cerr <<
"Error: Migration object NOT successfully allocated on target.\n";
TcpAgent * vm_migration_sender_
VmMigrationSink * vm_migration_sink_
double getTotalCap(res_type type)
int tryToAllocate(ResourceConsumer *rc)
ResourceProvider * getHost()
virtual void updateEnergyAndConsumption()=0
ResourceProvider * target_
VM* VmMigration::migrated_vm_ |
|
private |
TcpAgent* VmMigration::vm_migration_sender_ |
|
private |
The documentation for this class was generated from the following files: