]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#103,!289] MySQL Config Backend tags configuration elements with db ids.
authorMarcin Siodelski <marcin@isc.org>
Tue, 9 Apr 2019 09:17:34 +0000 (11:17 +0200)
committerMarcin Siodelski <marcin@isc.org>
Wed, 10 Apr 2019 15:01:25 +0000 (17:01 +0200)
src/hooks/dhcp/mysql_cb/mysql_cb_dhcp4.cc
src/hooks/dhcp/mysql_cb/mysql_cb_impl.cc
src/hooks/dhcp/mysql_cb/tests/mysql_cb_dhcp4_unittest.cc

index 786fe0ebaf201a69ee6b19cca0dd56dd3746f4e6..bd3e2c5cb40b5c593d899d276b42abcb4d5d5a60 100644 (file)
@@ -1038,6 +1038,7 @@ public:
 
                 last_network_id = out_bindings[0]->getInteger<uint64_t>();
                 last_network.reset(new SharedNetwork4(out_bindings[1]->getString()));
+                last_network->setId(last_network_id);
 
                 // client_class
                 if (!out_bindings[2]->amNull()) {
index 8ac602aa8ae17ece46c0b4c264a5c6859fb1b54b..7ed30a279cdac6c6586952948e17437d22a2307c 100644 (file)
@@ -334,6 +334,9 @@ MySqlConfigBackendImpl::getOptionDefs(const int index,
             // space
             last_def->setOptionSpaceName(out_bindings[3]->getStringOrDefault(""));
 
+            // id
+            last_def->setId(last_def_id);
+
             // record_types
             ElementPtr record_types_element = out_bindings[8]->getJSON();
             if (record_types_element) {
@@ -628,6 +631,11 @@ MySqlConfigBackendImpl::processOptionRow(const Option::Universe& universe,
     desc->space_name_ = space;
     desc->setModificationTime((*(first_binding + 11))->getTimestamp());
 
+    // Set database id for the option.
+    if (!(*first_binding)->amNull()) {
+        desc->setId((*first_binding)->getInteger<uint64_t>());
+    }
+
     return (desc);
 }
 
index 6036d020b95c03e338fcfa5f84e9f7302d8e4f11..ab215a30697470a6709dbc2a5655beb6b238bdd0 100644 (file)
@@ -1002,6 +1002,8 @@ TEST_F(MySqlConfigBackendDHCPv4Test, getSharedNetwork4) {
                                                      test_networks_[0]->getName());
     ASSERT_TRUE(returned_network);
 
+    EXPECT_GT(returned_network->getId(), 0);
+
     // The easiest way to verify whether the returned shared network matches the
     // inserted shared network is to convert both to text.
     EXPECT_EQ(shared_network->toElement()->str(),
@@ -1267,6 +1269,7 @@ TEST_F(MySqlConfigBackendDHCPv4Test, getOptionDef4) {
                               test_option_defs_[0]->getCode(),
                               test_option_defs_[0]->getOptionSpaceName());
     ASSERT_TRUE(returned_option_def);
+    EXPECT_GT(returned_option_def->getId(), 0);
 
     EXPECT_TRUE(returned_option_def->equals(*option_def));
 
@@ -1532,6 +1535,7 @@ TEST_F(MySqlConfigBackendDHCPv4Test, getAllOptions4) {
         auto option0 = index.find(test_options_[0]->option_->getType());
         ASSERT_FALSE(option0 == index.end());
         testOptionsEquivalent(*test_options_[0], *option0);
+        EXPECT_GT(option0->getId(), 0);
     }
 
     {
@@ -1539,6 +1543,7 @@ TEST_F(MySqlConfigBackendDHCPv4Test, getAllOptions4) {
         auto option1 = index.find(test_options_[1]->option_->getType());
         ASSERT_FALSE(option1 == index.end());
         testOptionsEquivalent(*test_options_[1], *option1);
+        EXPECT_GT(option1->getId(), 0);
     }
 
     {
@@ -1546,6 +1551,7 @@ TEST_F(MySqlConfigBackendDHCPv4Test, getAllOptions4) {
         auto option5 = index.find(test_options_[5]->option_->getType());
         ASSERT_FALSE(option5 == index.end());
         testOptionsEquivalent(*test_options_[5], *option5);
+        EXPECT_GT(option5->getId(), 0);
     }
 }
 
@@ -1623,6 +1629,7 @@ TEST_F(MySqlConfigBackendDHCPv4Test, createUpdateDeleteSubnetOption4) {
     {
         SCOPED_TRACE("verify returned option");
         testOptionsEquivalent(*opt_boot_file_name, returned_opt_boot_file_name);
+        EXPECT_GT(returned_opt_boot_file_name.getId(), 0);
     }
 
     {
@@ -1725,6 +1732,7 @@ TEST_F(MySqlConfigBackendDHCPv4Test, createUpdateDeletePoolOption4) {
     {
         SCOPED_TRACE("verify returned pool option");
         testOptionsEquivalent(*opt_boot_file_name, returned_opt_boot_file_name);
+        EXPECT_GT(returned_opt_boot_file_name.getId(), 0);
     }
 
     {
@@ -1842,6 +1850,7 @@ TEST_F(MySqlConfigBackendDHCPv4Test, createUpdateDeleteSharedNetworkOption4) {
     {
         SCOPED_TRACE("verify returned option");
         testOptionsEquivalent(*opt_boot_file_name, returned_opt_boot_file_name);
+        EXPECT_GT(returned_opt_boot_file_name.getId(), 0);
     }
 
     {