1
0
mirror of https://github.com/OpenNebula/one.git synced 2025-03-22 18:50:08 +03:00

B #2544: Fixed bug with CONTEXT and volatile disks

This commit is contained in:
juanmont 2018-11-14 14:33:18 +01:00 committed by Ruben S. Montero
parent a27e525c4e
commit da7242f724

View File

@ -1622,16 +1622,17 @@ int VirtualMachineDisks::check_tm_mad(const string& tm_mad, string& error)
DatastorePool * dspool = Nebula::instance().get_dspool();
std::string _tm_mad = tm_mad;
one_util::toupper(_tm_mad);
for (disk_iterator it = begin(); it != end() ; ++it)
{
int ds_img_id;
VirtualMachineDisk * disk = *it;
std::string tm_mad_disk;
(*it)->vector_value("TM_MAD", tm_mad_disk);
disk->vector_value("TM_MAD", tm_mad_disk);
one_util::toupper(tm_mad_disk);
@ -1640,7 +1641,7 @@ int VirtualMachineDisks::check_tm_mad(const string& tm_mad, string& error)
continue;
}
if ( (*it)->vector_value("DATASTORE_ID", ds_img_id) == 0 )
if ( disk->vector_value("DATASTORE_ID", ds_img_id) == 0 )
{
std::string ln_target, clone_target, disk_type;
@ -1652,24 +1653,18 @@ int VirtualMachineDisks::check_tm_mad(const string& tm_mad, string& error)
return -1;
}
if ( ds_img->get_tm_mad_targets(tm_mad, ln_target, clone_target,
if ( ds_img->get_tm_mad_targets(tm_mad, ln_target, clone_target,
disk_type) != 0 )
{
error = "Image Datastore does not support transfer mode: " + tm_mad;
return -1;
}
(*it)->replace("CLONE_TARGET", clone_target);
(*it)->replace("LN_TARGET", ln_target);
(*it)->replace("DISK_TYPE", disk_type);
(*it)->replace("TM_MAD_SYSTEM", tm_mad);
disk->replace("CLONE_TARGET", clone_target);
disk->replace("LN_TARGET", ln_target);
disk->replace("DISK_TYPE", disk_type);
disk->replace("TM_MAD_SYSTEM", tm_mad);
}
else
{
error = "Image datastore not defined for VM DISK";
return -1;
}
}
return 0;
}