mirror of
https://github.com/OpenNebula/one.git
synced 2025-03-23 22:50:09 +03:00
Feature #1223: Use the disk_id to generate the disk.i paths everywhere
This commit is contained in:
parent
1eebdbc07a
commit
0f59a29e48
@ -504,6 +504,7 @@ void TransferManager::prolog_migr_action(int vid)
|
||||
string tm_mad;
|
||||
string system_tm_mad;
|
||||
string ds_id;
|
||||
int disk_id;
|
||||
|
||||
vector<const Attribute *> attrs;
|
||||
int num;
|
||||
@ -564,6 +565,7 @@ void TransferManager::prolog_migr_action(int vid)
|
||||
|
||||
tm_mad = disk->vector_value("TM_MAD");
|
||||
ds_id = disk->vector_value("DATASTORE_ID");
|
||||
disk->vector_value_str("DISK_ID", disk_id);
|
||||
|
||||
if ( tm_mad.empty() || ds_id.empty() )
|
||||
{
|
||||
@ -574,9 +576,9 @@ void TransferManager::prolog_migr_action(int vid)
|
||||
xfr << "MV "
|
||||
<< tm_mad << " "
|
||||
<< vm->get_previous_hostname() << ":"
|
||||
<< vm->get_remote_system_dir() << "/disk." << i << " "
|
||||
<< vm->get_remote_system_dir() << "/disk." << disk_id << " "
|
||||
<< vm->get_hostname() << ":"
|
||||
<< vm->get_remote_system_dir() << "/disk." << i << " "
|
||||
<< vm->get_remote_system_dir() << "/disk." << disk_id << " "
|
||||
<< vm->get_oid() << " "
|
||||
<< ds_id << endl;
|
||||
}
|
||||
@ -629,6 +631,7 @@ void TransferManager::prolog_resume_action(int vid)
|
||||
string tm_mad;
|
||||
string system_tm_mad;
|
||||
string ds_id;
|
||||
int disk_id;
|
||||
|
||||
vector<const Attribute *> attrs;
|
||||
int num;
|
||||
@ -688,6 +691,7 @@ void TransferManager::prolog_resume_action(int vid)
|
||||
|
||||
tm_mad = disk->vector_value("TM_MAD");
|
||||
ds_id = disk->vector_value("DATASTORE_ID");
|
||||
disk->vector_value_str("DISK_ID", disk_id);
|
||||
|
||||
if ( tm_mad.empty() || ds_id.empty() )
|
||||
{
|
||||
@ -698,9 +702,9 @@ void TransferManager::prolog_resume_action(int vid)
|
||||
xfr << "MV "
|
||||
<< tm_mad << " "
|
||||
<< nd.get_nebula_hostname() << ":"
|
||||
<< vm->get_system_dir() << "/disk." << i << " "
|
||||
<< vm->get_system_dir() << "/disk." << disk_id << " "
|
||||
<< vm->get_hostname() << ":"
|
||||
<< vm->get_remote_system_dir() << "/disk." << i << " "
|
||||
<< vm->get_remote_system_dir() << "/disk." << disk_id << " "
|
||||
<< vm->get_oid() << " "
|
||||
<< ds_id << endl;
|
||||
}
|
||||
@ -935,6 +939,7 @@ void TransferManager::epilog_stop_action(int vid)
|
||||
string tm_mad;
|
||||
string system_tm_mad;
|
||||
string ds_id;
|
||||
int disk_id;
|
||||
|
||||
VirtualMachine * vm;
|
||||
Nebula& nd = Nebula::instance();
|
||||
@ -995,6 +1000,7 @@ void TransferManager::epilog_stop_action(int vid)
|
||||
|
||||
tm_mad = disk->vector_value("TM_MAD");
|
||||
ds_id = disk->vector_value("DATASTORE_ID");
|
||||
disk->vector_value_str("DISK_ID", disk_id);
|
||||
|
||||
if (tm_mad.empty() || ds_id.empty())
|
||||
{
|
||||
@ -1005,9 +1011,9 @@ void TransferManager::epilog_stop_action(int vid)
|
||||
xfr << "MV "
|
||||
<< tm_mad << " "
|
||||
<< vm->get_hostname() << ":"
|
||||
<< vm->get_remote_system_dir() << "/disk." << i << " "
|
||||
<< vm->get_remote_system_dir() << "/disk." << disk_id << " "
|
||||
<< nd.get_nebula_hostname() << ":"
|
||||
<< vm->get_system_dir() << "/disk." << i << " "
|
||||
<< vm->get_system_dir() << "/disk." << disk_id << " "
|
||||
<< vm->get_oid() << " "
|
||||
<< ds_id << endl;
|
||||
}
|
||||
@ -1058,6 +1064,7 @@ void TransferManager::epilog_delete_action(int vid)
|
||||
string system_tm_mad;
|
||||
string tm_mad;
|
||||
string ds_id;
|
||||
int disk_id;
|
||||
|
||||
VirtualMachine * vm;
|
||||
Nebula& nd = Nebula::instance();
|
||||
@ -1118,6 +1125,7 @@ void TransferManager::epilog_delete_action(int vid)
|
||||
|
||||
tm_mad = disk->vector_value("TM_MAD");
|
||||
ds_id = disk->vector_value("DATASTORE_ID");
|
||||
disk->vector_value_str("DISK_ID", disk_id);
|
||||
|
||||
if ( tm_mad.empty() || ds_id.empty() )
|
||||
{
|
||||
@ -1128,7 +1136,7 @@ void TransferManager::epilog_delete_action(int vid)
|
||||
xfr << "DELETE "
|
||||
<< tm_mad << " "
|
||||
<< vm->get_hostname() << ":"
|
||||
<< vm->get_remote_system_dir() << "/disk." << i << " "
|
||||
<< vm->get_remote_system_dir() << "/disk." << disk_id << " "
|
||||
<< vm->get_oid() << " "
|
||||
<< ds_id << endl;
|
||||
}
|
||||
@ -1178,6 +1186,7 @@ void TransferManager::epilog_delete_previous_action(int vid)
|
||||
string system_tm_mad;
|
||||
string tm_mad;
|
||||
string ds_id;
|
||||
int disk_id;
|
||||
|
||||
VirtualMachine * vm;
|
||||
Nebula& nd = Nebula::instance();
|
||||
@ -1238,6 +1247,7 @@ void TransferManager::epilog_delete_previous_action(int vid)
|
||||
|
||||
tm_mad = disk->vector_value("TM_MAD");
|
||||
ds_id = disk->vector_value("DATASTORE_ID");
|
||||
disk->vector_value_str("DISK_ID", disk_id);
|
||||
|
||||
if (tm_mad.empty() || ds_id.empty())
|
||||
{
|
||||
@ -1248,7 +1258,7 @@ void TransferManager::epilog_delete_previous_action(int vid)
|
||||
xfr << "DELETE "
|
||||
<< tm_mad << " "
|
||||
<< vm->get_previous_hostname() << ":"
|
||||
<< vm->get_remote_system_dir() << "/disk." << i << " "
|
||||
<< vm->get_remote_system_dir() << "/disk." << disk_id << " "
|
||||
<< vm->get_oid() << " "
|
||||
<< ds_id << endl;
|
||||
}
|
||||
|
@ -54,6 +54,7 @@ int LibVirtDriver::deployment_description_kvm(
|
||||
string ro = "";
|
||||
string driver = "";
|
||||
string cache = "";
|
||||
int disk_id;
|
||||
string default_driver = "";
|
||||
string default_driver_cache = "";
|
||||
bool readonly;
|
||||
@ -306,6 +307,7 @@ int LibVirtDriver::deployment_description_kvm(
|
||||
bus = disk->vector_value("BUS");
|
||||
driver = disk->vector_value("DRIVER");
|
||||
cache = disk->vector_value("CACHE");
|
||||
disk->vector_value_str("DISK_ID", disk_id);
|
||||
|
||||
if (target.empty())
|
||||
{
|
||||
@ -335,19 +337,19 @@ int LibVirtDriver::deployment_description_kvm(
|
||||
{
|
||||
file << "\t\t<disk type='block' device='disk'>" << endl
|
||||
<< "\t\t\t<source dev='" << vm->get_remote_system_dir()
|
||||
<< "/disk." << i << "'/>" << endl;
|
||||
<< "/disk." << disk_id << "'/>" << endl;
|
||||
}
|
||||
else if ( type == "CDROM" )
|
||||
{
|
||||
file << "\t\t<disk type='file' device='cdrom'>" << endl
|
||||
<< "\t\t\t<source file='" << vm->get_remote_system_dir()
|
||||
<< "/disk." << i << "'/>" << endl;
|
||||
<< "/disk." << disk_id << "'/>" << endl;
|
||||
}
|
||||
else
|
||||
{
|
||||
file << "\t\t<disk type='file' device='disk'>" << endl
|
||||
<< "\t\t\t<source file='" << vm->get_remote_system_dir()
|
||||
<< "/disk." << i << "'/>" << endl;
|
||||
<< "/disk." << disk_id << "'/>" << endl;
|
||||
}
|
||||
|
||||
// ---- target device to map the disk ----
|
||||
|
@ -55,6 +55,7 @@ int LibVirtDriver::deployment_description_vmware(
|
||||
string source = "";
|
||||
string datastore = "";
|
||||
string driver = "";
|
||||
int disk_id;
|
||||
string default_driver = "";
|
||||
bool readonly;
|
||||
|
||||
@ -199,6 +200,7 @@ int LibVirtDriver::deployment_description_vmware(
|
||||
bus = disk->vector_value("BUS");
|
||||
source = disk->vector_value("SOURCE");
|
||||
driver = disk->vector_value("DRIVER");
|
||||
disk->vector_value_str("DISK_ID", disk_id);
|
||||
|
||||
if (target.empty())
|
||||
{
|
||||
@ -226,19 +228,19 @@ int LibVirtDriver::deployment_description_vmware(
|
||||
{
|
||||
file << "\t\t<disk type='block' device='disk'>" << endl;
|
||||
file << "\t\t\t<source file=[" << datastore << "] " << vm->get_oid()
|
||||
<< "/disk." << i << "'/>" << endl;
|
||||
<< "/disk." << disk_id << "'/>" << endl;
|
||||
}
|
||||
else if ( type == "CDROM" )
|
||||
{
|
||||
file << "\t\t<disk type='file' device='cdrom'>" << endl;
|
||||
file << "\t\t\t<source file=[" << datastore << "] " << vm->get_oid()
|
||||
<< "/disk." << i << ".iso'/>" << endl;
|
||||
<< "/disk." << disk_id << ".iso'/>" << endl;
|
||||
}
|
||||
else
|
||||
{
|
||||
file << "\t\t<disk type='file' device='disk'>" << endl
|
||||
<< "\t\t\t<source file='[" << datastore <<"] " << vm->get_oid()
|
||||
<< "/disk." << i << "/disk.vmdk'/>" << endl;
|
||||
<< "/disk." << disk_id << "/disk.vmdk'/>" << endl;
|
||||
}
|
||||
|
||||
file << "\t\t\t<target dev='" << target << "'";
|
||||
|
@ -1368,7 +1368,7 @@ void VirtualMachineManager::attach_action(
|
||||
system_tm_mad = nd.get_system_ds_tm_mad();
|
||||
opennebula_hostname = nd.get_nebula_hostname();
|
||||
|
||||
disk_id = disk->vector_value("DISK_ID", disk_id);
|
||||
disk->vector_value("DISK_ID", disk_id);
|
||||
|
||||
Nebula::instance().get_tm()->prolog_transfer_command(
|
||||
vm,
|
||||
@ -1490,7 +1490,7 @@ void VirtualMachineManager::detach_action(
|
||||
system_tm_mad = nd.get_system_ds_tm_mad();
|
||||
opennebula_hostname = nd.get_nebula_hostname();
|
||||
|
||||
disk_id = disk->vector_value("DISK_ID", disk_id);
|
||||
disk->vector_value("DISK_ID", disk_id);
|
||||
|
||||
Nebula::instance().get_tm()->epilog_transfer_command(vm,disk,os,error_str);
|
||||
|
||||
|
@ -50,6 +50,7 @@ int XenDriver::deployment_description(
|
||||
string ro = "";
|
||||
string type = "";
|
||||
string driver = "";
|
||||
int disk_id;
|
||||
string default_driver = "";
|
||||
string mode;
|
||||
|
||||
@ -237,6 +238,7 @@ int XenDriver::deployment_description(
|
||||
type = disk->vector_value("TYPE");
|
||||
ro = disk->vector_value("READONLY");
|
||||
driver = disk->vector_value("DRIVER");
|
||||
disk->vector_value_str("DISK_ID", disk_id);
|
||||
|
||||
if ( target.empty() )
|
||||
{
|
||||
@ -276,7 +278,7 @@ int XenDriver::deployment_description(
|
||||
}
|
||||
}
|
||||
|
||||
file << vm->get_remote_system_dir() << "/disk." << i << ","
|
||||
file << vm->get_remote_system_dir() << "/disk." << disk_id << ","
|
||||
<< target << ","
|
||||
<< mode
|
||||
<< "'," << endl;
|
||||
|
Loading…
x
Reference in New Issue
Block a user