mirror of
https://github.com/OpenNebula/one.git
synced 2025-03-22 18:50:08 +03:00
Feature #1222: Add vm id and datastore id to all TM operations
This commit is contained in:
parent
a76be30312
commit
55dade0271
@ -215,6 +215,7 @@ void TransferManager::prolog_action(int vid)
|
||||
string size;
|
||||
string format;
|
||||
string tm_mad, system_tm_mad;
|
||||
string ds_id;
|
||||
|
||||
VirtualMachine * vm;
|
||||
Nebula& nd = Nebula::instance();
|
||||
@ -265,7 +266,7 @@ void TransferManager::prolog_action(int vid)
|
||||
|
||||
num = vm->get_template_attribute("DISK",attrs);
|
||||
|
||||
for (int i=0; i < num ;i++, source="", type="", clon="", tm_mad="")
|
||||
for (int i=0; i < num ;i++, source="", type="", clon="",tm_mad="",ds_id="-")
|
||||
{
|
||||
disk = dynamic_cast<const VectorAttribute *>(attrs[i]);
|
||||
|
||||
@ -282,6 +283,13 @@ void TransferManager::prolog_action(int vid)
|
||||
(int(*)(int))toupper);
|
||||
}
|
||||
|
||||
ds_id = disk->vector_value("DATASTORE_ID");
|
||||
|
||||
if ( ds_id.empty() )
|
||||
{
|
||||
ds_id = "-";
|
||||
}
|
||||
|
||||
if ( type == "SWAP" )
|
||||
{
|
||||
// -----------------------------------------------------------------
|
||||
@ -300,7 +308,9 @@ void TransferManager::prolog_action(int vid)
|
||||
<< system_tm_mad << " "
|
||||
<< size << " "
|
||||
<< vm->get_hostname() << ":"
|
||||
<< vm->get_remote_system_dir() << "/disk." << i << endl;
|
||||
<< vm->get_remote_system_dir() << "/disk." << i << " "
|
||||
<< vm->get_oid() << " "
|
||||
<< ds_id << endl;
|
||||
}
|
||||
else if ( type == "FS" )
|
||||
{
|
||||
@ -322,7 +332,9 @@ void TransferManager::prolog_action(int vid)
|
||||
<< size << " "
|
||||
<< format << " "
|
||||
<< vm->get_hostname() << ":"
|
||||
<< vm->get_remote_system_dir() << "/disk." << i << endl;
|
||||
<< vm->get_remote_system_dir() << "/disk." << i << " "
|
||||
<< vm->get_oid() << " "
|
||||
<< ds_id << endl;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -388,7 +400,7 @@ void TransferManager::prolog_action(int vid)
|
||||
xfr << " " << size;
|
||||
}
|
||||
|
||||
xfr << endl;
|
||||
xfr << " " << vm->get_oid() << " " << ds_id << endl;
|
||||
}
|
||||
}
|
||||
|
||||
@ -417,7 +429,7 @@ void TransferManager::prolog_action(int vid)
|
||||
|
||||
xfr << vm->get_hostname() << ":"
|
||||
<< vm->get_remote_system_dir() << "/disk." << num
|
||||
<< endl;
|
||||
<< " " << vm->get_oid() << " -" << endl;
|
||||
}
|
||||
|
||||
xfr.close();
|
||||
@ -478,6 +490,7 @@ void TransferManager::prolog_migr_action(int vid)
|
||||
const VectorAttribute * disk;
|
||||
string tm_mad;
|
||||
string system_tm_mad;
|
||||
string ds_id;
|
||||
|
||||
vector<const Attribute *> attrs;
|
||||
int num;
|
||||
@ -526,7 +539,7 @@ void TransferManager::prolog_migr_action(int vid)
|
||||
|
||||
num = vm->get_template_attribute("DISK",attrs);
|
||||
|
||||
for (int i=0 ; i < num ; i++, tm_mad="")
|
||||
for (int i=0 ; i < num ; i++, tm_mad="", ds_id="-")
|
||||
{
|
||||
disk = dynamic_cast<const VectorAttribute *>(attrs[i]);
|
||||
|
||||
@ -542,13 +555,22 @@ void TransferManager::prolog_migr_action(int vid)
|
||||
continue;
|
||||
}
|
||||
|
||||
ds_id = disk->vector_value("DATASTORE_ID");
|
||||
|
||||
if ( ds_id.empty() )
|
||||
{
|
||||
ds_id = "-";
|
||||
}
|
||||
|
||||
//MV tm_mad prev_host:remote_system_dir/disk.i host:remote_system_dir/disk.i
|
||||
xfr << "MV "
|
||||
<< tm_mad << " "
|
||||
<< vm->get_previous_hostname() << ":"
|
||||
<< vm->get_remote_system_dir() << "/disk." << i << " "
|
||||
<< vm->get_hostname() << ":"
|
||||
<< vm->get_remote_system_dir() << "/disk." << i << endl;
|
||||
<< vm->get_remote_system_dir() << "/disk." << i << " "
|
||||
<< vm->get_oid() << " "
|
||||
<< ds_id << endl;
|
||||
}
|
||||
|
||||
//MV tm_mad prev_host:remote_system_dir host:remote_system_dir
|
||||
@ -557,7 +579,8 @@ void TransferManager::prolog_migr_action(int vid)
|
||||
<< vm->get_previous_hostname() << ":"
|
||||
<< vm->get_remote_system_dir() << " "
|
||||
<< vm->get_hostname() << ":"
|
||||
<< vm->get_remote_system_dir() << endl;
|
||||
<< vm->get_remote_system_dir() << " "
|
||||
<< vm->get_oid() << " -" << endl;
|
||||
|
||||
xfr.close();
|
||||
|
||||
@ -601,6 +624,7 @@ void TransferManager::prolog_resume_action(int vid)
|
||||
const VectorAttribute * disk;
|
||||
string tm_mad;
|
||||
string system_tm_mad;
|
||||
string ds_id;
|
||||
|
||||
vector<const Attribute *> attrs;
|
||||
int num;
|
||||
@ -648,7 +672,7 @@ void TransferManager::prolog_resume_action(int vid)
|
||||
// ------------------------------------------------------------------------
|
||||
num = vm->get_template_attribute("DISK",attrs);
|
||||
|
||||
for (int i=0 ; i < num ; i++, tm_mad="")
|
||||
for (int i=0 ; i < num ; i++, tm_mad="", ds_id="-")
|
||||
{
|
||||
disk = dynamic_cast<const VectorAttribute *>(attrs[i]);
|
||||
|
||||
@ -664,20 +688,30 @@ void TransferManager::prolog_resume_action(int vid)
|
||||
continue;
|
||||
}
|
||||
|
||||
ds_id = disk->vector_value("DATASTORE_ID");
|
||||
|
||||
if ( ds_id.empty() )
|
||||
{
|
||||
ds_id = "-";
|
||||
}
|
||||
|
||||
//MV tm_mad fe:system_dir/disk.i host:remote_system_dir/disk.i
|
||||
xfr << "MV "
|
||||
<< tm_mad << " "
|
||||
<< nd.get_nebula_hostname() << ":"
|
||||
<< vm->get_system_dir() << "/disk." << i << " "
|
||||
<< vm->get_hostname() << ":"
|
||||
<< vm->get_remote_system_dir() << "/disk." << i << endl;
|
||||
<< vm->get_remote_system_dir() << "/disk." << i << " "
|
||||
<< vm->get_oid() << " "
|
||||
<< ds_id << endl;
|
||||
}
|
||||
|
||||
//MV tm_mad fe:system_dir host:remote_system_dir
|
||||
xfr << "MV "
|
||||
<< system_tm_mad << " "
|
||||
<< nd.get_nebula_hostname() << ":"<< vm->get_system_dir() << " "
|
||||
<< vm->get_hostname() << ":" << vm->get_remote_system_dir() << endl;
|
||||
<< vm->get_hostname() << ":" << vm->get_remote_system_dir()<< " "
|
||||
<< vm->get_oid() << " -" << endl;
|
||||
|
||||
xfr.close();
|
||||
|
||||
@ -719,6 +753,7 @@ void TransferManager::epilog_action(int vid)
|
||||
string xfr_name;
|
||||
string system_tm_mad;
|
||||
string tm_mad;
|
||||
string ds_id;
|
||||
|
||||
const VectorAttribute * disk;
|
||||
string save;
|
||||
@ -770,7 +805,7 @@ void TransferManager::epilog_action(int vid)
|
||||
|
||||
num = vm->get_template_attribute("DISK",attrs);
|
||||
|
||||
for (int i=0; i < num ;i++,save="")
|
||||
for (int i=0; i < num; i++, save="", ds_id="-")
|
||||
{
|
||||
disk = dynamic_cast<const VectorAttribute *>(attrs[i]);
|
||||
|
||||
@ -786,6 +821,13 @@ void TransferManager::epilog_action(int vid)
|
||||
continue;
|
||||
}
|
||||
|
||||
ds_id = disk->vector_value("DATASTORE_ID");
|
||||
|
||||
if ( ds_id.empty() )
|
||||
{
|
||||
ds_id = "-";
|
||||
}
|
||||
|
||||
transform(save.begin(),save.end(),save.begin(),(int(*)(int))toupper);
|
||||
|
||||
tm_mad = disk->vector_value("TM_MAD");
|
||||
@ -814,7 +856,9 @@ void TransferManager::epilog_action(int vid)
|
||||
<< tm_mad << " "
|
||||
<< vm->get_hostname() << ":"
|
||||
<< vm->get_remote_system_dir() << "/disk." << i << " "
|
||||
<< source << endl;
|
||||
<< source << " "
|
||||
<< vm->get_oid() << " "
|
||||
<< ds_id << endl;
|
||||
}
|
||||
else if ( !tm_mad.empty() ) //No saving disk and no system_ds disk
|
||||
{
|
||||
@ -822,14 +866,17 @@ void TransferManager::epilog_action(int vid)
|
||||
xfr << "DELETE "
|
||||
<< tm_mad << " "
|
||||
<< vm->get_hostname() << ":"
|
||||
<< vm->get_remote_system_dir() << "/disk." << i << endl;
|
||||
<< vm->get_remote_system_dir() << "/disk." << i << " "
|
||||
<< vm->get_oid() << " "
|
||||
<< ds_id << endl;
|
||||
}
|
||||
}
|
||||
|
||||
//DELETE system_tm_mad hostname:remote_system_dir
|
||||
xfr << "DELETE "
|
||||
<< system_tm_mad << " "
|
||||
<< vm->get_hostname() << ":" << vm->get_remote_system_dir() << endl;
|
||||
<< vm->get_hostname() << ":" << vm->get_remote_system_dir() << " "
|
||||
<< vm->get_oid() << " -" << endl;
|
||||
|
||||
xfr.close();
|
||||
|
||||
@ -871,6 +918,7 @@ void TransferManager::epilog_stop_action(int vid)
|
||||
string xfr_name;
|
||||
string tm_mad;
|
||||
string system_tm_mad;
|
||||
string ds_id;
|
||||
|
||||
VirtualMachine * vm;
|
||||
Nebula& nd = Nebula::instance();
|
||||
@ -918,7 +966,7 @@ void TransferManager::epilog_stop_action(int vid)
|
||||
// ------------------------------------------------------------------------
|
||||
num = vm->get_template_attribute("DISK",attrs);
|
||||
|
||||
for (int i=0 ; i < num ; i++, tm_mad="")
|
||||
for (int i=0 ; i < num ; i++, tm_mad="", ds_id="-")
|
||||
{
|
||||
disk = dynamic_cast<const VectorAttribute *>(attrs[i]);
|
||||
|
||||
@ -934,20 +982,30 @@ void TransferManager::epilog_stop_action(int vid)
|
||||
continue;
|
||||
}
|
||||
|
||||
ds_id = disk->vector_value("DATASTORE_ID");
|
||||
|
||||
if ( ds_id.empty() )
|
||||
{
|
||||
ds_id = "-";
|
||||
}
|
||||
|
||||
//MV tm_mad host:remote_system_dir/disk.i fe:system_dir/disk.i
|
||||
xfr << "MV "
|
||||
<< tm_mad << " "
|
||||
<< vm->get_hostname() << ":"
|
||||
<< vm->get_remote_system_dir() << "/disk." << i << " "
|
||||
<< nd.get_nebula_hostname() << ":"
|
||||
<< vm->get_system_dir() << "/disk." << i << endl;
|
||||
<< vm->get_system_dir() << "/disk." << i << " "
|
||||
<< vm->get_oid() << " "
|
||||
<< ds_id << endl;
|
||||
}
|
||||
|
||||
//MV system_tm_mad hostname:remote_system_dir fe:system_dir
|
||||
xfr << "MV "
|
||||
<< system_tm_mad << " "
|
||||
<< vm->get_hostname() << ":" << vm->get_remote_system_dir() << " "
|
||||
<< nd.get_nebula_hostname() << ":" << vm->get_system_dir() << endl;
|
||||
<< nd.get_nebula_hostname() << ":" << vm->get_system_dir() << " "
|
||||
<< vm->get_oid() << " -" << endl;
|
||||
|
||||
xfr.close();
|
||||
|
||||
@ -990,6 +1048,7 @@ void TransferManager::epilog_delete_action(int vid)
|
||||
string xfr_name;
|
||||
string system_tm_mad;
|
||||
string tm_mad;
|
||||
string ds_id;
|
||||
|
||||
VirtualMachine * vm;
|
||||
Nebula& nd = Nebula::instance();
|
||||
@ -1037,7 +1096,7 @@ void TransferManager::epilog_delete_action(int vid)
|
||||
// -------------------------------------------------------------------------
|
||||
num = vm->get_template_attribute("DISK",attrs);
|
||||
|
||||
for (int i=0 ; i < num ; i++, tm_mad="")
|
||||
for (int i=0 ; i < num ; i++, tm_mad="", ds_id="-")
|
||||
{
|
||||
disk = dynamic_cast<const VectorAttribute *>(attrs[i]);
|
||||
|
||||
@ -1053,17 +1112,27 @@ void TransferManager::epilog_delete_action(int vid)
|
||||
continue;
|
||||
}
|
||||
|
||||
ds_id = disk->vector_value("DATASTORE_ID");
|
||||
|
||||
if ( ds_id.empty() )
|
||||
{
|
||||
ds_id = "-";
|
||||
}
|
||||
|
||||
//DELETE tm_mad host:remote_system_dir/disk.i
|
||||
xfr << "DELETE "
|
||||
<< tm_mad << " "
|
||||
<< vm->get_hostname() << ":"
|
||||
<< vm->get_remote_system_dir() << "/disk." << i << endl;
|
||||
<< vm->get_remote_system_dir() << "/disk." << i << " "
|
||||
<< vm->get_oid() << " "
|
||||
<< ds_id << endl;
|
||||
}
|
||||
|
||||
//DELETE system_tm_mad hostname:remote_system_dir
|
||||
xfr << "DELETE "
|
||||
<< system_tm_mad << " "
|
||||
<< vm->get_hostname() <<":"<< vm->get_remote_system_dir() << endl;
|
||||
<< vm->get_hostname() <<":"<< vm->get_remote_system_dir() << " "
|
||||
<< vm->get_oid() << " -";
|
||||
|
||||
xfr.close();
|
||||
|
||||
@ -1108,6 +1177,7 @@ void TransferManager::epilog_delete_previous_action(int vid)
|
||||
string xfr_name;
|
||||
string system_tm_mad;
|
||||
string tm_mad;
|
||||
string ds_id;
|
||||
|
||||
VirtualMachine * vm;
|
||||
Nebula& nd = Nebula::instance();
|
||||
@ -1156,7 +1226,7 @@ void TransferManager::epilog_delete_previous_action(int vid)
|
||||
// ------------------------------------------------------------------------
|
||||
num = vm->get_template_attribute("DISK",attrs);
|
||||
|
||||
for (int i=0 ; i < num ; i++, tm_mad="")
|
||||
for (int i=0 ; i < num ; i++, tm_mad="", ds_id="-")
|
||||
{
|
||||
disk = dynamic_cast<const VectorAttribute *>(attrs[i]);
|
||||
|
||||
@ -1172,18 +1242,27 @@ void TransferManager::epilog_delete_previous_action(int vid)
|
||||
continue;
|
||||
}
|
||||
|
||||
ds_id = disk->vector_value("DATASTORE_ID");
|
||||
|
||||
if ( ds_id.empty() )
|
||||
{
|
||||
ds_id = "-";
|
||||
}
|
||||
|
||||
//DELETE tm_mad prev_host:remote_system_dir/disk.i
|
||||
xfr << "DELETE "
|
||||
<< tm_mad << " "
|
||||
<< vm->get_previous_hostname() << ":"
|
||||
<< vm->get_remote_system_dir() << "/disk." << i << endl;
|
||||
<< vm->get_remote_system_dir() << "/disk." << i << " "
|
||||
<< vm->get_oid() << " "
|
||||
<< ds_id << endl;
|
||||
}
|
||||
|
||||
//DELTE system_tm_mad prev_host:remote_system_dir
|
||||
xfr << "DELETE "
|
||||
<< system_tm_mad << " "
|
||||
<< vm->get_previous_hostname() <<":"<< vm->get_remote_system_dir()
|
||||
<< endl;
|
||||
<< " " << vm->get_oid() << " -" << endl;
|
||||
|
||||
xfr.close();
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user