diff --git a/include/Image.h b/include/Image.h index 064ec94664..687ae1960e 100644 --- a/include/Image.h +++ b/include/Image.h @@ -394,7 +394,6 @@ public: /** * Modifies the given disk attribute adding the following attributes: * * SOURCE: the file-path. - * * BUS: will only be set if the Image's definition includes it. * * TARGET: will only be set if the Image's definition includes it. * * @param disk attribute for the VM template diff --git a/src/image/Image.cc b/src/image/Image.cc index d64ef4844c..589ac46679 100644 --- a/src/image/Image.cc +++ b/src/image/Image.cc @@ -426,7 +426,6 @@ int Image::disk_attribute( VectorAttribute * disk, ImageType& img_type, string& dev_prefix) { - string bus; string target; string driver; string disk_attr_type; @@ -434,17 +433,14 @@ int Image::disk_attribute( VectorAttribute * disk, ostringstream iid; img_type = type; - bus = disk->vector_value("BUS"); target = disk->vector_value("TARGET"); driver = disk->vector_value("DRIVER"); dev_prefix = disk->vector_value("DEV_PREFIX"); iid << oid; - string template_bus; string template_target; string template_driver; - get_template_attribute("BUS", template_bus); get_template_attribute("TARGET", template_target); get_template_attribute("DRIVER", template_driver); @@ -458,7 +454,9 @@ int Image::disk_attribute( VectorAttribute * disk, if (dev_prefix.empty())//Removed from image template, get it again { dev_prefix = ImagePool::default_dev_prefix(); - } + } + + disk->replace("DEV_PREFIX", dev_prefix); } //--------------------------------------------------------------------------- @@ -468,11 +466,6 @@ int Image::disk_attribute( VectorAttribute * disk, disk->replace("IMAGE_ID", iid.str()); disk->replace("SOURCE", source); - if (bus.empty() && !template_bus.empty()) //BUS in Image, not in DISK - { - disk->replace("BUS",template_bus); - } - if (driver.empty() && !template_driver.empty())//DRIVER in Image,not in DISK { disk->replace("DRIVER",template_driver); diff --git a/src/image/ImagePool.cc b/src/image/ImagePool.cc index 281ad6dde3..2e1a706e5b 100644 --- a/src/image/ImagePool.cc +++ b/src/image/ImagePool.cc @@ -296,16 +296,21 @@ int ImagePool::disk_attribute(VectorAttribute * disk, transform(type.begin(),type.end(),type.begin(),(int(*)(int))toupper); - if ( type == "SWAP" || type == "FS" ) - { - dev_prefix = _default_dev_prefix; - img_type = Image::DATABLOCK; - } - else + if ( type != "SWAP" && type != "FS" ) { error_str = "Unknown disk type " + type; return -1; } + + img_type = Image::DATABLOCK; + dev_prefix = disk->vector_value("DEV_PREFIX"); + + if ( dev_prefix.empty() ) //DEV_PEFIX not in DISK, get default + { + dev_prefix = _default_dev_prefix; + + disk->replace("DEV_PREFIX", dev_prefix); + } } if ( img != 0 ) diff --git a/src/sunstone/public/js/plugins/images-tab.js b/src/sunstone/public/js/plugins/images-tab.js index dc55758419..c52d9e51e1 100644 --- a/src/sunstone/public/js/plugins/images-tab.js +++ b/src/sunstone/public/js/plugins/images-tab.js @@ -98,15 +98,6 @@ var create_image_tmpl = \