]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#103,!289] Do not throw when there are no shared networks to delete.
authorMarcin Siodelski <marcin@isc.org>
Thu, 4 Apr 2019 09:57:13 +0000 (11:57 +0200)
committerMarcin Siodelski <marcin@isc.org>
Wed, 10 Apr 2019 14:57:43 +0000 (16:57 +0200)
src/lib/dhcpsrv/cfg_shared_networks.h
src/lib/dhcpsrv/tests/cfg_shared_networks4_unittest.cc
src/lib/dhcpsrv/tests/cfg_shared_networks6_unittest.cc

index 21e4db2dd1f606a538ad74464900172f811afe25..7d7bb993060314ce69dd98fe8072888882813002 100644 (file)
@@ -13,7 +13,6 @@
 #include <exceptions/exceptions.h>
 #include <dhcpsrv/shared_network.h>
 #include <boost/shared_ptr.hpp>
-#include <iterator>
 #include <string>
 
 namespace isc {
@@ -81,18 +80,9 @@ public:
     /// @param id Identifier of the shared networks to be deleted.
     ///
     /// @return Number of deleted shared networks.
-    /// @throw isc::BadValue if the networks do not exist.
     uint64_t del(const uint64_t id) {
         auto& index = networks_.template get<SharedNetworkIdIndexTag>();
         auto sn_range = index.equal_range(id);
-        uint64_t num = std::distance(sn_range.first, sn_range.second);
-
-        // No such shared networm found. Return an error.
-        if (num == 0) {
-            isc_throw(BadValue, "unable to delete non-existing networks "
-                      "with id of '" << id << "' from shared networks "
-                      "configuration");
-        }
 
         // For each shared network found, dereference the subnets belonging
         // to it.
@@ -101,9 +91,7 @@ public:
         }
 
         // Remove the shared networks.
-        index.erase(sn_range.first, sn_range.second);
-
-        return (num);
+        return (static_cast<uint64_t>(index.erase(id)));
     }
 
     /// @brief Retrieves shared network by name.
index ca6ce63ba2824c2d68df6c051932b8141e02d28a..1332fe21994705b99649bf3492e74e4e31576ed5 100644 (file)
@@ -167,8 +167,7 @@ TEST(CfgSharedNetworks4Test, deleteNetworksById) {
     EXPECT_FALSE(returned_network);
     EXPECT_FALSE(cfg.getByName("fly"));
 
-    // A second attempt to delete should result in an error.
-    EXPECT_THROW(cfg.del(network1->getId()), BadValue);
+    EXPECT_EQ(0, cfg.del(network1->getId()));
 }
 
 // This test verifies that shared networks must have unique names.
index ee631ea231db754f91660f556c70e0c2acb885fa..c561c93f02c56eb58eefbed9755bb8fde7e6f206 100644 (file)
@@ -153,8 +153,7 @@ TEST(CfgSharedNetworks6Test, deleteNetworksById) {
     EXPECT_FALSE(returned_network);
     EXPECT_FALSE(cfg.getByName("fly"));
 
-    // A second attempt to delete should result in an error.
-    EXPECT_THROW(cfg.del(network1->getId()), BadValue);
+    EXPECT_EQ(0, cfg.del(network1->getId()));
 }
 
 // This test verifies that shared networks must have unique names.