From ff089908d18dfaa4dc0ad7e1208f02b733181a43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pavel=20Czern=C3=BD?= Date: Mon, 31 May 2021 16:58:25 +0200 Subject: [PATCH] B #2053: Do not return failure on recursive delete (#1250) (cherry picked from commit 18aee6583e5646863a85a79e1538bbb56bb203d9) --- src/rm/RequestManagerDelete.cc | 10 +++++++--- src/vm/VirtualMachineDisk.cc | 4 ++++ 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/rm/RequestManagerDelete.cc b/src/rm/RequestManagerDelete.cc index 0916bd3318..31088e5ed3 100644 --- a/src/rm/RequestManagerDelete.cc +++ b/src/rm/RequestManagerDelete.cc @@ -233,6 +233,8 @@ int TemplateDelete::drop(std::unique_ptr object, bool recursive, VirtualMachineDisks disks(true); + int tid = object->get_oid(); + if (recursive) { static_cast(object.get())->clone_disks(vdisks); @@ -262,7 +264,7 @@ int TemplateDelete::drop(std::unique_ptr object, bool recursive, { if ( img_delete.request_execute(iid, att) != SUCCESS ) { - NebulaLog::log("ReM", Log::ERROR, att.resp_msg); + NebulaLog::warn("ReM", att.resp_msg); error_ids.insert(iid); } @@ -270,10 +272,12 @@ int TemplateDelete::drop(std::unique_ptr object, bool recursive, if ( !error_ids.empty() ) { - att.resp_msg = "Cannot delete " + object_name(PoolObjectSQL::IMAGE) + + att.resp_msg = "Template " + to_string(tid) + + " deleted, unable to recursively delete " + + object_name(PoolObjectSQL::IMAGE) + ": " + one_util::join(error_ids.begin(), error_ids.end(), ','); - return -1; + NebulaLog::warn("ReM", att.resp_msg); } return 0; diff --git a/src/vm/VirtualMachineDisk.cc b/src/vm/VirtualMachineDisk.cc index 4ade774584..d0fd63f2ef 100644 --- a/src/vm/VirtualMachineDisk.cc +++ b/src/vm/VirtualMachineDisk.cc @@ -158,6 +158,10 @@ int VirtualMachineDisk::get_image_id(int &id, int uid) const { id = image->get_oid(); } + else + { + return -1; + } return 0; }