"DHCPSRV_LEASE_SANITY_FIXED", "The lease %1 with subnet-id %2 failed subnet-id checks, but was corrected to subnet-id %3.",
"DHCPSRV_MEMFILE_ADD_ADDR4", "adding IPv4 lease with address %1",
"DHCPSRV_MEMFILE_ADD_ADDR6", "adding IPv6 lease with address %1",
- "DHCPSRV_MEMFILE_BEGIN_BUILD_EXTENDED_INFO_TABLES6", "building extended info tables with %1 sanity check level%2, tables %3",
+ "DHCPSRV_MEMFILE_BEGIN_BUILD_EXTENDED_INFO_TABLES6", "building extended info tables with %1 sanity check level, tables %2",
"DHCPSRV_MEMFILE_BEGIN_EXTRACT_EXTENDED_INFO4", "extract extended info with %1 sanity check level%2",
"DHCPSRV_MEMFILE_BEGIN_TRANSACTION", "committing to memory file database",
- "DHCPSRV_MEMFILE_BUILD_EXTENDED_INFO_TABLES6", "building extended info tables saw %1 leases, extended info sanity checks modified %2 / updated %3 leases and %4 leases were entered into tables",
+ "DHCPSRV_MEMFILE_BUILD_EXTENDED_INFO_TABLES6", "building extended info tables saw %1 leases, extended info sanity checks modified %2 leases and %3 leases were entered into tables",
"DHCPSRV_MEMFILE_BUILD_EXTENDED_INFO_TABLES6_ERROR", "building extended info tables got an exception on the lease for %1: %2",
"DHCPSRV_MEMFILE_COMMIT", "committing to memory file database",
"DHCPSRV_MEMFILE_CONVERTING_LEASE_FILES", "running LFC now to convert lease files to the current schema: %1.%2",
A debug message issued when the server is about to add an IPv6 lease
with the specified address to the memory file backend database.
-% DHCPSRV_MEMFILE_BEGIN_BUILD_EXTENDED_INFO_TABLES6 building extended info tables with %1 sanity check level%2, tables %3
+% DHCPSRV_MEMFILE_BEGIN_BUILD_EXTENDED_INFO_TABLES6 building extended info tables with %1 sanity check level, tables %2
A debug message issued when the server is building extended info tables.
-The extended info sanity check level, update in file when requested
-and the fact tables are enabled or disabled are displayed.
+The extended info sanity check level and the fact tables are enabled
+or disabled are displayed.
% DHCPSRV_MEMFILE_BEGIN_EXTRACT_EXTENDED_INFO4 extract extended info with %1 sanity check level%2
A debug message issued when the server is extracting extended info.
The code has issued a begin transaction call. For the memory file database
this is a no-op.
-% DHCPSRV_MEMFILE_BUILD_EXTENDED_INFO_TABLES6 building extended info tables saw %1 leases, extended info sanity checks modified %2 / updated %3 leases and %4 leases were entered into tables
+% DHCPSRV_MEMFILE_BUILD_EXTENDED_INFO_TABLES6 building extended info tables saw %1 leases, extended info sanity checks modified %2 leases and %3 leases were entered into tables
Extended info tables build was finished. Some statistics are displayed, the
updated in database is returned to the command interface.
CSVLeaseFile6>(file6,
lease_file6_,
storage6_);
- static_cast<void>(buildExtendedInfoTables6Internal(false, false));
+ buildExtendedInfoTables6();
}
}
return (0);
}
-size_t
-Memfile_LeaseMgr::buildExtendedInfoTables6Internal(bool update, bool current) {
- CfgConsistencyPtr cfg;
- if (current) {
- cfg = CfgMgr::instance().getCurrentCfg()->getConsistency();
- } else {
- cfg = CfgMgr::instance().getStagingCfg()->getConsistency();
- }
+void
+Memfile_LeaseMgr::buildExtendedInfoTables6() {
+ CfgConsistencyPtr cfg = CfgMgr::instance().getStagingCfg()->getConsistency();
if (!cfg) {
- isc_throw(Unexpected, "the " << (current ? "current" : "staging")
- << " consistency configuration is null");
+ isc_throw(Unexpected, "the staging consistency configuration is null");
}
auto check = cfg->getExtendedInfoSanityCheck();
bool enabled = getExtendedInfoTablesEnabled();
LOG_DEBUG(dhcpsrv_logger, DHCPSRV_DBG_TRACE,
DHCPSRV_MEMFILE_BEGIN_BUILD_EXTENDED_INFO_TABLES6)
.arg(CfgConsistency::sanityCheckToText(check))
- .arg(update ? " updating in file" : "")
.arg(enabled ? "enabled" : "disabled");
// Clear tables when enabled.
size_t leases = 0;
size_t modified = 0;
- size_t updated = 0;
size_t processed = 0;
for (auto lease : storage6_) {
try {
if (upgradeLease6ExtendedInfo(lease, check)) {
++modified;
- if (update && persistLeases(V6)) {
- lease_file6_->append(*lease);
- ++updated;
- }
}
if (enabled && addExtendedInfo6(lease)) {
++processed;
LOG_INFO(dhcpsrv_logger, DHCPSRV_MEMFILE_BUILD_EXTENDED_INFO_TABLES6)
.arg(leases)
.arg(modified)
- .arg(updated)
.arg(processed);
-
- return (updated);
}
size_t
uint8_t link_len,
const asiolink::IOAddress& lower_bound_address,
const LeasePageSize& page_size);
-
- /// @brief Build extended info v6 tables.
- ///
- /// @param update Update extended info in database.
- /// @param current specify whether to use current (true) or staging
- /// (false) config.
- /// @return The number of updates in the database or 0.
- size_t buildExtendedInfoTables6Internal(bool update, bool current);
-
public:
/// @brief Write V4 leases to a file.
/// Extended information / Bulk Lease Query shared interface.
+
+ /// @brief Build extended info v6 tables.
+ void buildExtendedInfoTables6();
+
/// @brief Delete lease6 extended info from tables.
///
/// @param addr The address of the lease.
using Memfile_LeaseMgr::setExtendedInfoTablesEnabled;
using Memfile_LeaseMgr::relay_id6_;
using Memfile_LeaseMgr::remote_id6_;
+ using Memfile_LeaseMgr::buildExtendedInfoTables6;
};
/// @brief Test fixture class for @c Memfile_LeaseMgr
EXPECT_FALSE(isc->contains("relay-info"));
// Enable sanitizing.
- CfgMgr::instance().getCurrentCfg()->getConsistency()->
+ CfgMgr::instance().getStagingCfg()->getConsistency()->
setExtendedInfoSanityCheck(CfgConsistency::EXTENDED_INFO_CHECK_FIX);
- // Now run buildExtendedInfoTables6 with update set to true.
- size_t updated = 0;
- EXPECT_NO_THROW(updated = lease_mgr->buildExtendedInfoTables6(true, true));
- EXPECT_EQ(2, updated);
+ // Now run buildExtendedInfoTables6.
+ EXPECT_NO_THROW(lease_mgr->buildExtendedInfoTables6());
// Check the lease with empty user context was updated.
lease = lease_mgr->getLease6(Lease::TYPE_NA, IOAddress("2001:db8:1::1"));
EXPECT_FALSE(isc->contains("relays"));
EXPECT_TRUE(isc->contains("relay-info"));
- // Check the lease file was updated.
- string new_content =
- "2001:db8:1::1,01:01:01:01:01:01:01:01:01:01:01:01:01,"
- "400,1000,8,100,0,7,128,1,1,,,1,,,,0\n"
-
- "2001:db8:1::2,02:02:02:02:02:02:02:02:02:02:02:02:02,"
- "200,200,8,100,0,7,128,1,1,,,1,"
- "{ \"ISC\": { \"relay-info\": [ { \"hop\": 44,"
- " \"link\": \"2001:db8::4\","
- " \"options\": \"0x00250006010203040506003500086464646464646464\""
- ", \"peer\": \"2001:db8::5\","
- " \"relay-id\": \"6464646464646464\","
- " \"remote-id\": \"010203040506\" } ] } },,,0\n";
- string expected = content + new_content;
- EXPECT_EQ(expected, io.readFile());
+ // The lease file is not more updated.
}
/// @brief Checks that buildExtendedInfoTables6 can rebuild tables.
EXPECT_EQ(2, lease_mgr->remote_id6_.size());
// Rebuild the tables.
- size_t updated = 0;
- EXPECT_NO_THROW(updated = lease_mgr->buildExtendedInfoTables6(false, false));
- EXPECT_EQ(0, updated);
+ EXPECT_NO_THROW(lease_mgr->buildExtendedInfoTables6());
// Check tables.
ASSERT_EQ(1, lease_mgr->relay_id6_.size());