mirror of
https://gitlab.isc.org/isc-projects/kea
synced 2025-09-01 06:25:34 +00:00
[4294] Memfile and MySql now support recalulating IPv4 lease statistics
src/lib/dhcpsrv/cfg_subnets4.cc CfgSubnets4::removeStatistics() - added removal of all lease statistics per subnet, and global declined address stats CfgSubnets4::updateStatistics() - added call to LeaseMgr::recountAddressStats4 src/lib/dhcpsrv/lease.cc src/lib/dhcpsrv/lease.h Replaces lease state constants with LeaseState enumeration. src/lib/dhcpsrv/lease_mgr.cc src/lib/dhcpsrv/lease_mgr.h struct AddressStatsRow4 - contains the content of one row of the IPv4 lease statistical data result set class AddressStatsQuery4 - base class for constructing the IPv4 lease statistical data result set for an IPv4 lease storage LeaseMgr::recountAddressStats4() - new method which recalculates per-subnet and global stats for IPv4 leases LeaseMgr::startAddressStatsQuery4() - new virtual method that fetches the IPv4 lease statistical data result set src/lib/dhcpsrv/lease_mgr_factory.h src/lib/dhcpsrv/lease_mgr_factory.cc LeaseMgrFactory::haveInstance() - new static method which indicates whether or not the lease manager singleton exists src/lib/dhcpsrv/memfile_lease_mgr.h src/lib/dhcpsrv/memfile_lease_mgr.cc MemfileAddressStatsQuery4 - Derivation of AddressStatsQuery4, it constructs the IPv4 lease statistical data by iterating over IPv4 lease storage Memfile_LeaseMgr::startAddressStatsQuery4() - new virtual method which creates, starts, and returns a MemfileAddressStatsQuery4 src/lib/dhcpsrv/memfile_lease_storage.h Added an a per subnet_ID index to IPv4 storage src/lib/dhcpsrv/mysql_lease_mgr.h src/lib/dhcpsrv/mysql_lease_mgr.cc - Added RECOUNT_LEASE4_STATS query MySqlAddressStatsQuery4 Derivation of AddressStatsQuery4, it constructs the IPv4 lease statistical data by executing RECOUNT_LEASE4_STATS MySqlLeaseMgr::startAddressStatsQuery4() - new virtual method which creates, starts, and returns a MySqlAddressStatsQuery4 src/lib/dhcpsrv/tests/alloc_engine_utils.cc AllocEngine6Test::AllocEngine6Test() AllocEngine4Test::AllocEngine4Test() - moved lease mgr create up above configuration commit src/lib/dhcpsrv/tests/cfg_db_access_unittest.cc ~CfgMySQLDbAccessTest() - added destruction of lease manager singleton, otherwise subsequent tests can fail src/lib/dhcpsrv/tests/generic_lease_mgr_unittest.h src/lib/dhcpsrv/tests/generic_lease_mgr_unittest.cc GenericLeaseMgrTest::checkStat() - new method for comparing a stat GenericLeaseMgrTest::checkAddressStats4() - new method for comparing a list of stats GenericLeaseMgrTest::makeLease4() - new method for making a minimal lease GenericLeaseMgrTest::testRecountAddressStats4() - new method which tests a lease manager's ability to recalculate the IPv4 lease statistics src/lib/dhcpsrv/tests/memfile_lease_mgr_unittest.cc TEST_F(MemfileLeaseMgrTest, recountAddressStats4) - new test which tests Memfile_LeaseMgr's ability to recalculate IPv4 lease statistics src/lib/dhcpsrv/tests/mysql_lease_mgr_unittest.cc TEST_F(MySqlLeaseMgrTest, recountAddressStats4) - new test which tests MySqlLeaseMgr's ability to recalculate IPv4 lease statistics
This commit is contained in:
@@ -25,7 +25,6 @@ namespace dhcp {
|
||||
class MySqlLease4Exchange;
|
||||
class MySqlLease6Exchange;
|
||||
|
||||
|
||||
/// @brief MySQL Lease Manager
|
||||
///
|
||||
/// This class provides the \ref isc::dhcp::LeaseMgr interface to the MySQL
|
||||
@@ -410,6 +409,7 @@ public:
|
||||
INSERT_LEASE6, // Add entry to lease6 table
|
||||
UPDATE_LEASE4, // Update a Lease4 entry
|
||||
UPDATE_LEASE6, // Update a Lease6 entry
|
||||
RECOUNT_LEASE4_STATS, // Fetches address statisics
|
||||
NUM_STATEMENTS // Number of statements
|
||||
};
|
||||
|
||||
@@ -590,6 +590,15 @@ private:
|
||||
uint64_t deleteExpiredReclaimedLeasesCommon(const uint32_t secs,
|
||||
StatementIndex statement_index);
|
||||
|
||||
/// @brief Creates and runs the IPv4 lease stats query
|
||||
///
|
||||
/// It creates an instance of a MySqlAddressStatsQuery4 and then
|
||||
/// invokes its start method, which fetches its statistical data
|
||||
/// result set by executing the RECOUNT_LEASE_STATS4 query.
|
||||
/// The query object is then returned.
|
||||
///
|
||||
/// @return The populated query as a pointer to an AddressStatsQuery4
|
||||
virtual AddressStatsQuery4Ptr startAddressStatsQuery4();
|
||||
|
||||
/// @brief Check Error and Throw Exception
|
||||
///
|
||||
|
Reference in New Issue
Block a user