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

feature #523: ImageManager and RequestManager integration

This commit is contained in:
Ruben S. Montero 2011-03-25 23:53:55 +01:00
parent 9799a3bc20
commit b9222df0e3
6 changed files with 26 additions and 36 deletions

View File

@ -313,6 +313,11 @@ int ImageManager::delete_image(int iid)
const ImageManagerDriver* imd = get();
if ( imd == 0 )
{
return -1;
}
imd->rm(img->get_oid(),img->get_source());
img->unlock();

View File

@ -196,7 +196,7 @@ void ImageManagerDriver::protocol(
source = image->get_source();
ipool->drop(image);
rc = ipool->drop(image);
image->unlock();
@ -213,8 +213,8 @@ void ImageManagerDriver::protocol(
{
ostringstream oss;
oss << "Error removing image from repository. Remove file " << source
<< " to completely delete image.";
oss <<"Error removing image from repository. Remove file " << source
<<" to completely delete image.";
NebulaLog::log("ImM",Log::ERROR,oss);
}

View File

@ -36,5 +36,7 @@ fi
SRC=$1
log "Removing $SRC from the image repository"
exec_and_log "rm $SRC"
if [ -e $SRC ] ; then
log "Removing $SRC from the image repository"
exec_and_log "rm $SRC"
fi

View File

@ -48,7 +48,7 @@ void RequestManager::ImageAllocate::execute(
vector<xmlrpc_c::value> arrayData;
xmlrpc_c::value_array * arrayresult;
Nebula& nd = Nebula::instance();
Nebula& nd = Nebula::instance();
ImageManager * imagem = nd.get_imagem();
NebulaLog::log("ReM",Log::DEBUG,"ImageAllocate invoked");
@ -58,7 +58,7 @@ void RequestManager::ImageAllocate::execute(
str_template += "\n";
//--------------------------------------------------------------------------
// Authorize this request
// Authenticate this request
//--------------------------------------------------------------------------
uid = ImageAllocate::upool->authenticate(session);
@ -101,7 +101,6 @@ void RequestManager::ImageAllocate::execute(
}
}
//--------------------------------------------------------------------------
// Get the User Name
//--------------------------------------------------------------------------
@ -129,6 +128,9 @@ void RequestManager::ImageAllocate::execute(
goto error_allocate;
}
//--------------------------------------------------------------------------
// Register the Image in the repository
//--------------------------------------------------------------------------
if ( imagem->register_image(rc) == -1 )
{
goto error_register;

View File

@ -46,6 +46,8 @@ void RequestManager::ImageDelete::execute(
vector<xmlrpc_c::value> arrayData;
xmlrpc_c::value_array * arrayresult;
Nebula& nd = Nebula::instance();
ImageManager * imagem = nd.get_imagem();
NebulaLog::log("ReM",Log::DEBUG,"ImageDelete invoked");
@ -91,17 +93,8 @@ void RequestManager::ImageDelete::execute(
}
}
// Get image from the ImagePool
image = ImageDelete::ipool->get(iid,true);
if ( image == 0 )
{
goto error_image_get;
}
rc = ImageDelete::ipool->drop(image);
image->unlock();
// Delete the Image from the repository
rc = imagem->delete_image(iid);
if ( rc < 0 )
{
@ -133,7 +126,7 @@ error_authorize:
error_delete:
oss << action_error(method_name, "DELETE", "IMAGE", iid, rc)
<< ". Reason: VMs might be running on it.";
<< ". Image is in use.";
image->unlock();
goto error_common;

View File

@ -48,9 +48,9 @@ void RequestManager::ImageEnable::execute(
vector<xmlrpc_c::value> arrayData;
xmlrpc_c::value_array * arrayresult;
Nebula& nd = Nebula::instance();
Nebula& nd = Nebula::instance();
ImageManager * imagem = nd.get_imagem();
NebulaLog::log("ReM",Log::DEBUG,"ImageEnable invoked");
session = xmlrpc_c::value_string (paramList.getString(0));
@ -95,26 +95,14 @@ void RequestManager::ImageEnable::execute(
}
}
// Get image from the ImagePool
image = ImageEnable::ipool->get(iid,true);
if ( image == 0 )
{
goto error_image_get;
}
//TODO rc = image->enable(enable_flag);
// Enable the Image
rc = imagem->enable_image(iid,enable_flag);
if ( rc < 0 )
{
goto error_enable;
}
ImageEnable::ipool->update(image);
image->unlock();
arrayData.push_back(xmlrpc_c::value_boolean(true));
arrayData.push_back(xmlrpc_c::value_int(iid));