From: Marcin Siodelski Date: Thu, 4 Oct 2018 18:20:17 +0000 (+0200) Subject: [#93,!35] Config Backend API returns number of deleted entries. X-Git-Tag: 5-netconf-extend-syntax_base~20 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=502a4daa0f856fbb47a4c1018287ade0a44a11ec;p=thirdparty%2Fkea.git [#93,!35] Config Backend API returns number of deleted entries. --- diff --git a/src/hooks/dhcp/mysql_cb/mysql_cb_dhcp4.cc b/src/hooks/dhcp/mysql_cb/mysql_cb_dhcp4.cc index 5f69793805..16d5561685 100644 --- a/src/hooks/dhcp/mysql_cb/mysql_cb_dhcp4.cc +++ b/src/hooks/dhcp/mysql_cb/mysql_cb_dhcp4.cc @@ -407,26 +407,27 @@ public: /// /// @param server_selector Server selector. /// @param subnet_id Identifier of the subnet to be deleted. - void deleteSubnet4(const ServerSelector& /* server_selector */, + /// @return Number of deleted subnets. + uint64_t deleteSubnet4(const ServerSelector& /* server_selector */, const SubnetID& subnet_id) { MySqlBindingCollection in_bindings; in_bindings.push_back(MySqlBinding::createInteger(subnet_id)); // Run DELETE. - conn_.updateDeleteQuery(DELETE_SUBNET4_ID, in_bindings); + return (conn_.updateDeleteQuery(DELETE_SUBNET4_ID, in_bindings)); } /// @brief Deletes pools belonging to a subnet from the database. /// /// @param subnet Pointer to the subnet for which pools should be /// deleted. - void deletePools4(const Subnet4Ptr& subnet) { + uint64_t deletePools4(const Subnet4Ptr& subnet) { MySqlBindingCollection in_bindings = { MySqlBinding::createInteger(subnet->getID()) }; // Run DELETE. - conn_.updateDeleteQuery(DELETE_POOLS4_SUBNET_ID, in_bindings); + return (conn_.updateDeleteQuery(DELETE_POOLS4_SUBNET_ID, in_bindings)); } /// @brief Sends query to the database to retrieve multiple shared @@ -728,8 +729,9 @@ public: /// /// @param server_selector Server selector. /// @param code Option code. - /// @param name Option name. - void deleteOptionDef4(const ServerSelector& /* server_selector */, + /// @param name Option name. + /// @return Number of deleted option definitions. + uint64_t deleteOptionDef4(const ServerSelector& /* server_selector */, const uint16_t code, const std::string& space) { MySqlBindingCollection in_bindings = { @@ -738,7 +740,7 @@ public: }; // Run DELETE. - conn_.updateDeleteQuery(DELETE_OPTION_DEF4_CODE_NAME, in_bindings); + return (conn_.updateDeleteQuery(DELETE_OPTION_DEF4_CODE_NAME, in_bindings)); } }; @@ -1311,76 +1313,81 @@ MySqlConfigBackendDHCPv4::createUpdateGlobalParameter4(const ServerSelector& /* const int64_t /* value */) { } -void +uint64_t MySqlConfigBackendDHCPv4::deleteSubnet4(const ServerSelector& /* server_selector */, const std::string& subnet_prefix) { - impl_->deleteFromTable(MySqlConfigBackendDHCPv4Impl::DELETE_SUBNET4_PREFIX, - subnet_prefix); + return(impl_->deleteFromTable(MySqlConfigBackendDHCPv4Impl::DELETE_SUBNET4_PREFIX, + subnet_prefix)); } -void +uint64_t MySqlConfigBackendDHCPv4::deleteSubnet4(const ServerSelector& server_selector, const SubnetID& subnet_id) { - impl_->deleteSubnet4(server_selector, subnet_id); + return (impl_->deleteSubnet4(server_selector, subnet_id)); } -void +uint64_t MySqlConfigBackendDHCPv4::deleteAllSubnets4(const ServerSelector& /* server_selector */) { - impl_->deleteFromTable(MySqlConfigBackendDHCPv4Impl::DELETE_ALL_SUBNETS4); + return (impl_->deleteFromTable(MySqlConfigBackendDHCPv4Impl::DELETE_ALL_SUBNETS4)); } -void +uint64_t MySqlConfigBackendDHCPv4::deleteSharedNetwork4(const ServerSelector& /* server_selector */, const std::string& name) { - impl_->deleteFromTable(MySqlConfigBackendDHCPv4Impl::DELETE_SHARED_NETWORK4_NAME, - name); + return (impl_->deleteFromTable(MySqlConfigBackendDHCPv4Impl::DELETE_SHARED_NETWORK4_NAME, + name)); } -void +uint64_t MySqlConfigBackendDHCPv4::deleteAllSharedNetworks4(const ServerSelector& /* server_selector */) { - impl_->deleteFromTable(MySqlConfigBackendDHCPv4Impl::DELETE_ALL_SHARED_NETWORKS4); + return (impl_->deleteFromTable(MySqlConfigBackendDHCPv4Impl::DELETE_ALL_SHARED_NETWORKS4)); } -void +uint64_t MySqlConfigBackendDHCPv4::deleteOptionDef4(const ServerSelector& server_selector, const uint16_t code, const std::string& space) { - impl_->deleteOptionDef4(server_selector, code, space); + return (impl_->deleteOptionDef4(server_selector, code, space)); } -void +uint64_t MySqlConfigBackendDHCPv4::deleteAllOptionDefs4(const ServerSelector& /* server_selector */) { - impl_->deleteFromTable(MySqlConfigBackendDHCPv4Impl::DELETE_ALL_OPTION_DEFS4); + return (impl_->deleteFromTable(MySqlConfigBackendDHCPv4Impl::DELETE_ALL_OPTION_DEFS4)); } -void +uint64_t MySqlConfigBackendDHCPv4::deleteOption4(const ServerSelector& /* server_selector */, const uint16_t /* code */, const std::string& /* space */) { + return (0); } -void +uint64_t MySqlConfigBackendDHCPv4::deleteOption4(const ServerSelector& /* server_selector */, const SubnetID& /* subnet_id */, const uint16_t /* code */, const std::string& /* space */) { + return (0); } -void +uint64_t MySqlConfigBackendDHCPv4::deleteOption4(const ServerSelector& /* server_selector */, const asiolink::IOAddress& /* pool_start_address */, const asiolink::IOAddress& /* pool_end_address */, const uint16_t /* code */, const std::string& /* space */) { + return (0); } -void +uint64_t MySqlConfigBackendDHCPv4::deleteGlobalParameter4(const ServerSelector& /* server_selector */, const std::string& /* name */) { + return (0); } -void +uint64_t MySqlConfigBackendDHCPv4::deleteAllGlobalParameters4(const ServerSelector& /* server_selector */) { + return (0); } std::string diff --git a/src/hooks/dhcp/mysql_cb/mysql_cb_dhcp4.h b/src/hooks/dhcp/mysql_cb/mysql_cb_dhcp4.h index 400d5e5250..52d0539099 100644 --- a/src/hooks/dhcp/mysql_cb/mysql_cb_dhcp4.h +++ b/src/hooks/dhcp/mysql_cb/mysql_cb_dhcp4.h @@ -219,7 +219,8 @@ public: /// /// @param server_selector Server selector. /// @param subnet_prefix Prefix of the subnet to be deleted. - virtual void + /// @return Number of deleted subnets. + virtual uint64_t deleteSubnet4(const db::ServerSelector& server_selector, const std::string& subnet_prefix); @@ -227,27 +228,31 @@ public: /// /// @param server_selector Server selector. /// @param subnet_id Identifier of the subnet to be deleted. - virtual void + /// @return Number of deleted subnets. + virtual uint64_t deleteSubnet4(const db::ServerSelector& server_selector, const SubnetID& subnet_id); /// @brief Deletes all subnets. /// /// @param server_selector Server selector. - virtual void + /// @return Number of deleted subnets. + virtual uint64_t deleteAllSubnets4(const db::ServerSelector& server_selector); /// @brief Deletes shared network by name. /// /// @param server_selector Server selector. /// @param name Name of the shared network to be deleted. - virtual void + /// @return Number of deleted shared networks. + virtual uint64_t deleteSharedNetwork4(const db::ServerSelector& server_selector, const std::string& name); /// @brief Deletes all shared networks. /// /// @param server_selector Server selector. - virtual void + /// @return Number of deleted shared networks. + virtual uint64_t deleteAllSharedNetworks4(const db::ServerSelector& server_selector); /// @brief Deletes option definition. @@ -255,14 +260,16 @@ public: /// @param server_selector Server selector. /// @param code Code of the option to be deleted. /// @param space Option space of the option to be deleted. - virtual void + /// @return Number of deleted option definitions. + virtual uint64_t deleteOptionDef4(const db::ServerSelector& server_selector, const uint16_t code, const std::string& space); /// @brief Deletes all option definitions. /// /// @param server_selector Server selector. - virtual void + /// @return Number of deleted option definitions. + virtual uint64_t deleteAllOptionDefs4(const db::ServerSelector& server_selector); /// @brief Deletes global option. @@ -270,7 +277,8 @@ public: /// @param server_selector Server selector. /// @param code Code of the option to be deleted. /// @param space Option space of the option to be deleted. - virtual void + /// @return Number of deleted options. + virtual uint64_t deleteOption4(const db::ServerSelector& server_selector, const uint16_t code, const std::string& space); @@ -281,7 +289,8 @@ public: /// belongs. /// @param code Code of the deleted option. /// @param space Option space of the deleted option. - virtual void + /// @return Number of deleted options. + virtual uint64_t deleteOption4(const db::ServerSelector& server_selector, const SubnetID& subnet_id, const uint16_t code, const std::string& space); @@ -294,7 +303,8 @@ public: /// deleted option belongs. /// @param code Code of the deleted option. /// @param space Option space of the deleted option. - virtual void + /// @return Number of deleted options. + virtual uint64_t deleteOption4(const db::ServerSelector& server_selector, const asiolink::IOAddress& pool_start_address, const asiolink::IOAddress& pool_end_address, @@ -305,14 +315,16 @@ public: /// /// @param server_selector Server selector. /// @param name Name of the global parameter to be deleted. - virtual void + /// @return Number of deleted global parameters. + virtual uint64_t deleteGlobalParameter4(const db::ServerSelector& server_selector, const std::string& name); /// @brief Deletes all global parameters. /// /// @param server_selector Server selector. - virtual void + /// @return Number of deleted global parameters. + virtual uint64_t deleteAllGlobalParameters4(const db::ServerSelector& server_selector); /// @brief Returns backend type in the textual format. diff --git a/src/hooks/dhcp/mysql_cb/mysql_cb_impl.cc b/src/hooks/dhcp/mysql_cb/mysql_cb_impl.cc index 1235bda527..51e8f5990f 100644 --- a/src/hooks/dhcp/mysql_cb/mysql_cb_impl.cc +++ b/src/hooks/dhcp/mysql_cb/mysql_cb_impl.cc @@ -59,18 +59,18 @@ MySqlConfigBackendImpl::~MySqlConfigBackendImpl() { } } -void +uint64_t MySqlConfigBackendImpl::deleteFromTable(const int index) { MySqlBindingCollection in_bindings; - conn_.updateDeleteQuery(index, in_bindings); + return (conn_.updateDeleteQuery(index, in_bindings)); } -void +uint64_t MySqlConfigBackendImpl::deleteFromTable(const int index, const std::string& key) { MySqlBindingCollection in_bindings = { MySqlBinding::createString(key) }; - conn_.updateDeleteQuery(index, in_bindings); + return (conn_.updateDeleteQuery(index, in_bindings)); } void diff --git a/src/hooks/dhcp/mysql_cb/mysql_cb_impl.h b/src/hooks/dhcp/mysql_cb/mysql_cb_impl.h index c3f81f3168..ffb9c9c887 100644 --- a/src/hooks/dhcp/mysql_cb/mysql_cb_impl.h +++ b/src/hooks/dhcp/mysql_cb/mysql_cb_impl.h @@ -36,15 +36,17 @@ public: /// @brief Sends query to delete rows from a table. /// /// @param index Index of the statement to be executed. - void deleteFromTable(const int index); + /// @return Number of deleted rows. + uint64_t deleteFromTable(const int index); /// @brief Sends query to delete rows from a table. /// /// @param index Index of the statement to be executed. /// @param key String value to be used as input binding to the delete /// statement - void deleteFromTable(const int index, - const std::string& key); + /// @return number of deleted rows. + uint64_t deleteFromTable(const int index, + const std::string& key); /// @brief Sends query to the database to retrieve multiple option /// definitions. diff --git a/src/lib/config_backend/base_config_backend_pool.h b/src/lib/config_backend/base_config_backend_pool.h index b3d1c81623..93ad080cff 100644 --- a/src/lib/config_backend/base_config_backend_pool.h +++ b/src/lib/config_backend/base_config_backend_pool.h @@ -389,7 +389,7 @@ protected: /// void createUpdateSubnet6(const Subnet6Ptr& subnet, /// const BackendSelector& backend_selector, /// const ServerSelector& server_selector) { - /// createUpdateDeleteProperty + /// createUpdateDeleteProperty /// (&ConfigBackendDHCPv6::createUpdateSubnet6, backend_selector, /// server_selector, subnet, selector); /// } @@ -406,6 +406,7 @@ protected: /// backend is selected, an exception is thrown. If no backend is selected /// an exception is thrown either. /// + /// @tparam ReturnValue Returned value, typically void or uint64_t. /// @tparam FnPtrArgs Parameter pack holding argument types of the backend /// method to be invoked. /// @tparam Args Parameter pack holding types of the arguments provided @@ -421,12 +422,13 @@ protected: /// was found. /// @throw db::AmbiguousDatabase if multiple databases matching the selector /// were found. - template - void createUpdateDeleteProperty(void (ConfigBackendType::*MethodPointer) - (const db::ServerSelector&, FnPtrArgs...), - const db::BackendSelector& backend_selector, - const db::ServerSelector& server_selector, - Args... input) { + /// @return Number of affected properties, if the value is non void. + template + ReturnValue createUpdateDeleteProperty(ReturnValue (ConfigBackendType::*MethodPointer) + (const db::ServerSelector&, FnPtrArgs...), + const db::BackendSelector& backend_selector, + const db::ServerSelector& server_selector, + Args... input) { auto backends = selectBackends(backend_selector); if (backends.empty()) { isc_throw(db::NoSuchDatabase, "no database found for selector: " @@ -437,7 +439,7 @@ protected: "selector: " << backend_selector.toText()); } - (*(*(backends.begin())).*MethodPointer)(server_selector, input...); + return ((*(*(backends.begin())).*MethodPointer)(server_selector, input...)); } /// @brief Selects existing backends matching the selector. diff --git a/src/lib/config_backend/tests/config_backend_mgr_unittest.cc b/src/lib/config_backend/tests/config_backend_mgr_unittest.cc index 040d1048a2..e724d86410 100644 --- a/src/lib/config_backend/tests/config_backend_mgr_unittest.cc +++ b/src/lib/config_backend/tests/config_backend_mgr_unittest.cc @@ -314,7 +314,7 @@ public: const BackendSelector& backend_selector, const ServerSelector& server_selector = ServerSelector::ALL()) { - createUpdateDeleteProperty&> + createUpdateDeleteProperty&> (&TestConfigBackend::createProperty, backend_selector, server_selector, new_property); } diff --git a/src/lib/dhcpsrv/config_backend_dhcp4.h b/src/lib/dhcpsrv/config_backend_dhcp4.h index 3a6cf0f870..af318d0dcf 100644 --- a/src/lib/dhcpsrv/config_backend_dhcp4.h +++ b/src/lib/dhcpsrv/config_backend_dhcp4.h @@ -220,7 +220,8 @@ public: /// /// @param server_selector Server selector. /// @param subnet_prefix Prefix of the subnet to be deleted. - virtual void + /// @return Number of deleted subnets. + virtual uint64_t deleteSubnet4(const db::ServerSelector& server_selector, const std::string& subnet_prefix) = 0; @@ -228,27 +229,31 @@ public: /// /// @param server_selector Server selector. /// @param subnet_id Identifier of the subnet to be deleted. - virtual void + /// @return Number of deleted subnets. + virtual uint64_t deleteSubnet4(const db::ServerSelector& server_selector, const SubnetID& subnet_id) = 0; /// @brief Deletes all subnets. /// /// @param server_selector Server selector. - virtual void + /// @return Number of deleted subnets. + virtual uint64_t deleteAllSubnets4(const db::ServerSelector& server_selector) = 0; /// @brief Deletes shared network by name. /// /// @param server_selector Server selector. /// @param name Name of the shared network to be deleted. - virtual void + /// @return Number of deleted shared networks.. + virtual uint64_t deleteSharedNetwork4(const db::ServerSelector& server_selector, const std::string& name) = 0; /// @brief Deletes all shared networks. /// /// @param server_selector Server selector. - virtual void + /// @return Number of deleted shared networks. + virtual uint64_t deleteAllSharedNetworks4(const db::ServerSelector& server_selector) = 0; /// @brief Deletes option definition. @@ -256,14 +261,16 @@ public: /// @param server_selector Server selector. /// @param code Code of the option to be deleted. /// @param space Option space of the option to be deleted. - virtual void + /// @return Number of deleted option definitions. + virtual uint64_t deleteOptionDef4(const db::ServerSelector& server_selector, const uint16_t code, const std::string& space) = 0; /// @brief Deletes all option definitions. /// /// @param server_selector Server selector. - virtual void + /// @return Number of deleted option definitions. + virtual uint64_t deleteAllOptionDefs4(const db::ServerSelector& server_selector) = 0; /// @brief Deletes global option. @@ -271,7 +278,8 @@ public: /// @param server_selector Server selector. /// @param code Code of the option to be deleted. /// @param space Option space of the option to be deleted. - virtual void + /// @return Number of deleted options. + virtual uint64_t deleteOption4(const db::ServerSelector& server_selector, const uint16_t code, const std::string& space) = 0; @@ -282,7 +290,8 @@ public: /// belongs. /// @param code Code of the deleted option. /// @param space Option space of the deleted option. - virtual void + /// @return Number of deleted options. + virtual uint64_t deleteOption4(const db::ServerSelector& server_selector, const SubnetID& subnet_id, const uint16_t code, const std::string& space) = 0; @@ -295,7 +304,8 @@ public: /// deleted option belongs. /// @param code Code of the deleted option. /// @param space Option space of the deleted option. - virtual void + /// @return Number of deleted options. + virtual uint64_t deleteOption4(const db::ServerSelector& server_selector, const asiolink::IOAddress& pool_start_address, const asiolink::IOAddress& pool_end_address, @@ -306,14 +316,16 @@ public: /// /// @param server_selector Server selector. /// @param name Name of the global parameter to be deleted. - virtual void + /// @return Number of deleted global parameters. + virtual uint64_t deleteGlobalParameter4(const db::ServerSelector& server_selector, const std::string& name) = 0; /// @brief Deletes all global parameters. /// /// @param server_selector Server selector. - virtual void + /// @return Number of deleted global parameters. + virtual uint64_t deleteAllGlobalParameters4(const db::ServerSelector& server_selector) = 0; }; diff --git a/src/lib/dhcpsrv/config_backend_pool_dhcp4.cc b/src/lib/dhcpsrv/config_backend_pool_dhcp4.cc index d378273781..79a9287634 100644 --- a/src/lib/dhcpsrv/config_backend_pool_dhcp4.cc +++ b/src/lib/dhcpsrv/config_backend_pool_dhcp4.cc @@ -159,7 +159,7 @@ void ConfigBackendPoolDHCPv4::createUpdateSubnet4(const db::BackendSelector& backend_selector, const db::ServerSelector& server_selector, const Subnet4Ptr& subnet) { - createUpdateDeleteProperty + createUpdateDeleteProperty (&ConfigBackendDHCPv4::createUpdateSubnet4, backend_selector, server_selector, subnet); } @@ -168,7 +168,7 @@ void ConfigBackendPoolDHCPv4::createUpdateSharedNetwork4(const db::BackendSelector& backend_selector, const db::ServerSelector& server_selector, const SharedNetwork4Ptr& shared_network) { - createUpdateDeleteProperty + createUpdateDeleteProperty (&ConfigBackendDHCPv4::createUpdateSharedNetwork4, backend_selector, server_selector, shared_network); } @@ -177,7 +177,7 @@ void ConfigBackendPoolDHCPv4::createUpdateOptionDef4(const db::BackendSelector& backend_selector, const db::ServerSelector& server_selector, const OptionDefinitionPtr& option_def) { - createUpdateDeleteProperty + createUpdateDeleteProperty (&ConfigBackendDHCPv4::createUpdateOptionDef4, backend_selector, server_selector, option_def); } @@ -186,7 +186,7 @@ void ConfigBackendPoolDHCPv4::createUpdateOption4(const db::BackendSelector& backend_selector, const db::ServerSelector& server_selector, const OptionPtr& option) { - createUpdateDeleteProperty + createUpdateDeleteProperty (&ConfigBackendDHCPv4::createUpdateOption4, backend_selector, server_selector, option); } @@ -196,7 +196,7 @@ ConfigBackendPoolDHCPv4::createUpdateOption4(const db::BackendSelector& backend_ const db::ServerSelector& server_selector, const SubnetID& subnet_id, const OptionPtr& option) { - createUpdateDeleteProperty + createUpdateDeleteProperty (&ConfigBackendDHCPv4::createUpdateOption4, backend_selector, server_selector, subnet_id, option); } @@ -207,7 +207,7 @@ ConfigBackendPoolDHCPv4::createUpdateOption4(const db::BackendSelector& backend_ const IOAddress& pool_start_address, const IOAddress& pool_end_address, const OptionPtr& option) { - createUpdateDeleteProperty + createUpdateDeleteProperty (&ConfigBackendDHCPv4::createUpdateOption4, backend_selector, server_selector, pool_start_address, pool_end_address, option); } @@ -217,7 +217,7 @@ ConfigBackendPoolDHCPv4::createUpdateGlobalParameter4(const db::BackendSelector& const db::ServerSelector& server_selector, const std::string& name, const std::string& value) { - createUpdateDeleteProperty + createUpdateDeleteProperty (&ConfigBackendDHCPv4::createUpdateGlobalParameter4, backend_selector, server_selector, name, value); } @@ -227,118 +227,118 @@ ConfigBackendPoolDHCPv4::createUpdateGlobalParameter4(const db::BackendSelector& const db::ServerSelector& server_selector, const std::string& name, const int64_t value) { - createUpdateDeleteProperty + createUpdateDeleteProperty (&ConfigBackendDHCPv4::createUpdateGlobalParameter4, backend_selector, server_selector, name, value); } -void +uint64_t ConfigBackendPoolDHCPv4::deleteSubnet4(const db::BackendSelector& backend_selector, const db::ServerSelector& server_selector, const std::string& subnet_prefix) { - createUpdateDeleteProperty - (&ConfigBackendDHCPv4::deleteSubnet4, backend_selector, server_selector, - subnet_prefix); + return (createUpdateDeleteProperty + (&ConfigBackendDHCPv4::deleteSubnet4, backend_selector, server_selector, + subnet_prefix)); } -void +uint64_t ConfigBackendPoolDHCPv4::deleteSubnet4(const db::BackendSelector& backend_selector, const db::ServerSelector& server_selector, const SubnetID& subnet_id) { - createUpdateDeleteProperty - (&ConfigBackendDHCPv4::deleteSubnet4, backend_selector, server_selector, - subnet_id); + return (createUpdateDeleteProperty + (&ConfigBackendDHCPv4::deleteSubnet4, backend_selector, server_selector, + subnet_id)); } -void +uint64_t ConfigBackendPoolDHCPv4::deleteAllSubnets4(const db::BackendSelector& backend_selector, const db::ServerSelector& server_selector) { - createUpdateDeleteProperty<> - (&ConfigBackendDHCPv4::deleteAllSubnets4, backend_selector, server_selector); + return (createUpdateDeleteProperty + (&ConfigBackendDHCPv4::deleteAllSubnets4, backend_selector, server_selector)); } -void +uint64_t ConfigBackendPoolDHCPv4::deleteSharedNetwork4(const db::BackendSelector& backend_selector, const db::ServerSelector& server_selector, const std::string& name) { - createUpdateDeleteProperty - (&ConfigBackendDHCPv4::deleteSharedNetwork4, backend_selector, - server_selector, name); + return (createUpdateDeleteProperty + (&ConfigBackendDHCPv4::deleteSharedNetwork4, backend_selector, + server_selector, name)); } -void +uint64_t ConfigBackendPoolDHCPv4::deleteAllSharedNetworks4(const db::BackendSelector& backend_selector, const db::ServerSelector& server_selector) { - createUpdateDeleteProperty<> - (&ConfigBackendDHCPv4::deleteAllSharedNetworks4, backend_selector, server_selector); + return (createUpdateDeleteProperty + (&ConfigBackendDHCPv4::deleteAllSharedNetworks4, backend_selector, server_selector)); } -void +uint64_t ConfigBackendPoolDHCPv4::deleteOptionDef4(const db::BackendSelector& backend_selector, const db::ServerSelector& server_selector, const uint16_t code, const std::string& space) { - createUpdateDeleteProperty - (&ConfigBackendDHCPv4::deleteOptionDef4, backend_selector, - server_selector, code, space); + return (createUpdateDeleteProperty + (&ConfigBackendDHCPv4::deleteOptionDef4, backend_selector, + server_selector, code, space)); } -void +uint64_t ConfigBackendPoolDHCPv4::deleteAllOptionDefs4(const db::BackendSelector& backend_selector, const db::ServerSelector& server_selector) { - createUpdateDeleteProperty<> - (&ConfigBackendDHCPv4::deleteAllOptionDefs4, backend_selector, server_selector); + return (createUpdateDeleteProperty + (&ConfigBackendDHCPv4::deleteAllOptionDefs4, backend_selector, server_selector)); } -void +uint64_t ConfigBackendPoolDHCPv4::deleteOption4(const db::BackendSelector& backend_selector, const db::ServerSelector& server_selector, const uint16_t code, const std::string& space) { - createUpdateDeleteProperty - (&ConfigBackendDHCPv4::deleteOption4, backend_selector, server_selector, - code, space); + return (createUpdateDeleteProperty + (&ConfigBackendDHCPv4::deleteOption4, backend_selector, server_selector, + code, space)); } -void +uint64_t ConfigBackendPoolDHCPv4::deleteOption4(const db::BackendSelector& backend_selector, const db::ServerSelector& server_selector, const SubnetID& subnet_id, const uint16_t code, const std::string& space) { - createUpdateDeleteProperty - (&ConfigBackendDHCPv4::deleteOption4, backend_selector, server_selector, - subnet_id, code, space); + return (createUpdateDeleteProperty + (&ConfigBackendDHCPv4::deleteOption4, backend_selector, server_selector, + subnet_id, code, space)); } -void +uint64_t ConfigBackendPoolDHCPv4::deleteOption4(const db::BackendSelector& backend_selector, const db::ServerSelector& server_selector, const asiolink::IOAddress& pool_start_address, const asiolink::IOAddress& pool_end_address, const uint16_t code, const std::string& space) { - createUpdateDeleteProperty - (&ConfigBackendDHCPv4::deleteOption4, backend_selector, server_selector, - pool_start_address, pool_end_address, code, space); + return (createUpdateDeleteProperty + (&ConfigBackendDHCPv4::deleteOption4, backend_selector, server_selector, + pool_start_address, pool_end_address, code, space)); } -void +uint64_t ConfigBackendPoolDHCPv4::deleteGlobalParameter4(const db::BackendSelector& backend_selector, const db::ServerSelector& server_selector, const std::string& name) { - createUpdateDeleteProperty - (&ConfigBackendDHCPv4::deleteGlobalParameter4, backend_selector, - server_selector, name); + return (createUpdateDeleteProperty + (&ConfigBackendDHCPv4::deleteGlobalParameter4, backend_selector, + server_selector, name)); } -void +uint64_t ConfigBackendPoolDHCPv4::deleteAllGlobalParameters4(const db::BackendSelector& backend_selector, const db::ServerSelector& server_selector) { - createUpdateDeleteProperty<> - (&ConfigBackendDHCPv4::deleteAllGlobalParameters4, backend_selector, - server_selector); + return (createUpdateDeleteProperty + (&ConfigBackendDHCPv4::deleteAllGlobalParameters4, backend_selector, + server_selector)); } diff --git a/src/lib/dhcpsrv/config_backend_pool_dhcp4.h b/src/lib/dhcpsrv/config_backend_pool_dhcp4.h index 271e5cc462..3ac592dfeb 100644 --- a/src/lib/dhcpsrv/config_backend_pool_dhcp4.h +++ b/src/lib/dhcpsrv/config_backend_pool_dhcp4.h @@ -263,7 +263,8 @@ public: /// @param backend_selector Backend selector. /// @param server_selector Server selector. /// @param subnet_prefix Prefix of the subnet to be deleted. - virtual void + /// @return Number of deleted subnets. + virtual uint64_t deleteSubnet4(const db::BackendSelector& backend_selector, const db::ServerSelector& server_selector, const std::string& subnet_prefix); @@ -273,7 +274,8 @@ public: /// @param backend_selector Backend selector. /// @param server_selector Server selector. /// @param subnet_id Identifier of the subnet to be deleted. - virtual void + /// @return Number of deleted subnets. + virtual uint64_t deleteSubnet4(const db::BackendSelector& backend_selector, const db::ServerSelector& server_selector, const SubnetID& subnet_id); @@ -282,7 +284,8 @@ public: /// /// @param backend_selector Backend selector. /// @param server_selector Server selector. - virtual void + /// @return Number of deleted subnets. + virtual uint64_t deleteAllSubnets4(const db::BackendSelector& backend_selector, const db::ServerSelector& server_selector); @@ -291,7 +294,8 @@ public: /// @param backend_selector Backend selector. /// @param server_selector Server selector. /// @param name Name of the shared network to be deleted. - virtual void + /// @return Number of deleted shared networks. + virtual uint64_t deleteSharedNetwork4(const db::BackendSelector& backend_selector, const db::ServerSelector& server_selector, const std::string& name); @@ -300,7 +304,8 @@ public: /// /// @param backend_selector Backend selector. /// @param server_selector Server selector. - virtual void + /// @return Number of deleted shared networks. + virtual uint64_t deleteAllSharedNetworks4(const db::BackendSelector& backend_selector, const db::ServerSelector& server_selector); @@ -310,7 +315,8 @@ public: /// @param server_selector Server selector. /// @param code Code of the option to be deleted. /// @param space Option space of the option to be deleted. - virtual void + /// @return Number of deleted option definitions. + virtual uint64_t deleteOptionDef4(const db::BackendSelector& backend_selector, const db::ServerSelector& server_selector, const uint16_t code, @@ -320,7 +326,8 @@ public: /// /// @param backend_selector Backend selector. /// @param server_selector Server selector. - virtual void + /// @return Number of deleted option definitions. + virtual uint64_t deleteAllOptionDefs4(const db::BackendSelector& backend_selector, const db::ServerSelector& server_selector); @@ -330,7 +337,8 @@ public: /// @param server_selector Server selector. /// @param code Code of the option to be deleted. /// @param space Option space of the option to be deleted. - virtual void + /// @return Number of deleted options. + virtual uint64_t deleteOption4(const db::BackendSelector& backend_selector, const db::ServerSelector& server_selector, const uint16_t code, @@ -344,7 +352,8 @@ public: /// belongs. /// @param code Code of the deleted option. /// @param space Option space of the deleted option. - virtual void + /// @return Number of deleted options. + virtual uint64_t deleteOption4(const db::BackendSelector& backend_selector, const db::ServerSelector& server_selector, const SubnetID& subnet_id, @@ -360,7 +369,8 @@ public: /// deleted option belongs. /// @param code Code of the deleted option. /// @param space Option space of the deleted option. - virtual void + /// @return Number of deleted options. + virtual uint64_t deleteOption4(const db::BackendSelector& backend_selector, const db::ServerSelector& server_selector, const asiolink::IOAddress& pool_start_address, @@ -373,7 +383,8 @@ public: /// @param backend_selector Backend selector. /// @param server_selector Server selector. /// @param name Name of the global parameter to be deleted. - virtual void + /// @return Number of deleted global parameters. + virtual uint64_t deleteGlobalParameter4(const db::BackendSelector& backend_selector, const db::ServerSelector& server_selector, const std::string& name); @@ -382,7 +393,8 @@ public: /// /// @param backend_selector Backend selector. /// @param server_selector Server selector. - virtual void + /// @return Number of deleted global parameters. + virtual uint64_t deleteAllGlobalParameters4(const db::BackendSelector& backend_selector, const db::ServerSelector& server_selector); };