From 7204dba0b09d8ed329068e6fcb33d8a79a2f4dc9 Mon Sep 17 00:00:00 2001 From: Fabian Zimmermann Date: Sat, 22 Nov 2014 18:09:10 +0100 Subject: [PATCH] Changes required to use addon-sheepdog Just .h and .cc files to avoid users being forced to compile opennebula. (cherry picked from commit 72faa33d2ddc186642aceb1845e9754aff7771c7) (cherry picked from commit 02e34cce7b9d58a54b36ec82f20f6da42e2f59d8) --- include/Image.h | 4 ++++ src/datastore/Datastore.cc | 1 + src/image/Image.cc | 8 ++++++++ src/vmm/LibVirtDriverKVM.cc | 20 ++++++++++++++++++++ 4 files changed, 33 insertions(+) diff --git a/include/Image.h b/include/Image.h index 051e52cb8f..08c9c1f2ef 100644 --- a/include/Image.h +++ b/include/Image.h @@ -82,6 +82,8 @@ public: RBD_CDROM = 4, /** < CEPH RBD CDROM disk */ GLUSTER = 5, /** < Gluster Block Device */ GLUSTER_CDROM = 6, /** < Gluster CDROM Device Device */ + SHEEPDOG = 7, /** < Sheepdog Block Device */ + SHEEPDOG_CDROM = 8, /** < Sheepdog CDROM Device Device */ NONE = 255 /** < No disk type, error situation */ }; @@ -101,6 +103,8 @@ public: case RBD_CDROM: return "RBD_CDROM" ; break; case GLUSTER: return "GLUSTER" ; break; case GLUSTER_CDROM: return "GLUSTER_CDROM" ; break; + case SHEEPDOG: return "SHEEPDOG" ; break; + case SHEEPDOG_CDROM: return "SHEEPDOG_CDROM" ; break; default: return ""; } }; diff --git a/src/datastore/Datastore.cc b/src/datastore/Datastore.cc index 67598b9bb7..6c45d9e484 100644 --- a/src/datastore/Datastore.cc +++ b/src/datastore/Datastore.cc @@ -335,6 +335,7 @@ int Datastore::insert(SqlDB *db, string& error_str) goto error_disk_type; break; case Image::RBD_CDROM: + case Image::SHEEPDOG_CDROM: case Image::GLUSTER_CDROM: goto error_invalid_disk_type; break; diff --git a/src/image/Image.cc b/src/image/Image.cc index 63f6361c30..5f5f81f07b 100644 --- a/src/image/Image.cc +++ b/src/image/Image.cc @@ -610,6 +610,10 @@ int Image::disk_attribute( VectorAttribute * disk, new_disk_type = RBD_CDROM; break; + case SHEEPDOG: + new_disk_type = SHEEPDOG_CDROM; + break; + case GLUSTER: new_disk_type = GLUSTER_CDROM; break; @@ -784,6 +788,10 @@ Image::DiskType Image::str_to_disk_type(string& s_disk_type) { type = Image::RBD; } + else if (s_disk_type == "SHEEPDOG") + { + type = Image::SHEEPDOG; + } else if (s_disk_type == "GLUSTER") { type = Image::GLUSTER; diff --git a/src/vmm/LibVirtDriverKVM.cc b/src/vmm/LibVirtDriverKVM.cc index 14d71b8797..75c7ed73ff 100644 --- a/src/vmm/LibVirtDriverKVM.cc +++ b/src/vmm/LibVirtDriverKVM.cc @@ -537,6 +537,26 @@ int LibVirtDriver::deployment_description_kvm( << "\t\t\t" << endl; } } + else if ( type == "SHEEPDOG" || type == "SHEEPDOG_CDROM" ) + { + if (type == "SHEEPDOG") + { + file << "\t\t" << endl; + } + else + { + file << "\t\t" << endl; + } + + file << "\t\t\t" << endl; + } else if ( type == "GLUSTER" || type == "GLUSTER_CDROM" ) { if ( type == "GLUSTER" )