From e555025cc232e3ad12bd804588a7a8ee747bd9a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pavel=20Czern=C3=BD?= Date: Fri, 14 May 2021 09:47:07 +0200 Subject: [PATCH] B #5400: Fix PoolSQL::exist for PostgreSQL (#1219) --- src/pool/PoolSQL.cc | 10 +++++++--- src/rm/RequestManagerVNTemplate.cc | 15 +-------------- 2 files changed, 8 insertions(+), 17 deletions(-) diff --git a/src/pool/PoolSQL.cc b/src/pool/PoolSQL.cc index 6f9642f075..0c796b1ef0 100644 --- a/src/pool/PoolSQL.cc +++ b/src/pool/PoolSQL.cc @@ -158,13 +158,17 @@ void PoolSQL::exist(const string& id_str, std::set& id_list) std::vector existing_items; one_util::split_unique(id_str, ',', id_list); - search(existing_items, table.c_str(), "1 order by 1 ASC"); + search(existing_items, table.c_str(), "true order by 1 ASC"); - for (auto iterator = id_list.begin(); iterator != id_list.end(); ++iterator) + for (auto iterator = id_list.begin(); iterator != id_list.end();) { if (!std::binary_search(existing_items.begin(), existing_items.end(), *iterator)) { - id_list.erase(iterator); + iterator = id_list.erase(iterator); + } + else + { + ++iterator; } } } diff --git a/src/rm/RequestManagerVNTemplate.cc b/src/rm/RequestManagerVNTemplate.cc index fba33aec50..e1a189cc64 100644 --- a/src/rm/RequestManagerVNTemplate.cc +++ b/src/rm/RequestManagerVNTemplate.cc @@ -49,23 +49,10 @@ void VNTemplateInstantiate::request_execute(xmlrpc_c::paramList const& paramList string name = xmlrpc_c::value_string(paramList.getString(2)); string str_uattrs = xmlrpc_c::value_string(paramList.getString(3)); - if ( auto tmpl = pool->get_ro(id) ) - { - string original_tmpl_name = tmpl->get_name(); - } - else - { - att.resp_id = id; - failure_response(NO_EXISTS, att); - return; - } - - int instantiate_id = id; - int vid; ErrorCode ec; - ec = request_execute(instantiate_id, name, str_uattrs, 0, vid, att); + ec = request_execute(id, name, str_uattrs, 0, vid, att); if ( ec == SUCCESS ) {