src/lib/dhcpsrv/mysql_lease_mgr.h
src/lib/dhcpsrv/mysql_lease_mgr.cc
Replaced this class heirarchy:
AddressStatsQuery4 <-- MySqlAddressStatsQuery4
AddressStatsQuery6 <-- MySqlAddressStatsQuery6
With this one:
LeaseStatsQuery <-- MySqlLeaseStatsQuery
src/lib/dhcpsrv/cfg_subnets6.cc
- CfgSubnets6::removeStatistics() - added removal of declined stats
- CfgSubnets6::updateStatistics() - added call to recountAddressStats6()
src/lib/dhcpsrv/mysql_lease_mgr.h
src/lib/dhcpsrv/mysql_lease_mgr.cc
- Added TaggedStatement RECOUNT_LEASE6_STATS
- MySqlAddressStatsQuery6 - new MySql derivation of AddressStatsQuery6
- MySqlLeaseMgr::startAddressStatsQuery6() - new virtual method which
creates and starts a MySqlAddressStatsQuery6
src/lib/dhcpsrv/tests/generic_lease_mgr_unittest.h
src/lib/dhcpsrv/tests/generic_lease_mgr_unittest.cc
- GenericLeaseMgrTest::checkAddressStats4 renamed to checkAddressStats as
it applies to either v4 or v6
- GenericLeaseMgrTest::makeLease6() - new method which creates a minimal
IPv6 lease and adds it to lease storage
- GenericLeaseMgrTest::testRecountAddressStats6() - new method which
checks IPv6 lease stats recounting
src/lib/dhcpsrv/tests/mysql_lease_mgr_unittest.cc
- TEST_F(MySqlLeaseMgrTest, recountAddressStats6) - new test
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
src/lib/dhcpsrv/dhcpsrv_messages.mes
added messages DHCPSRV_MYSQL_FATAL_ERROR, DHCPSRV_PGSQL_FATAL_ERROR
src/lib/dhcpsrv/mysql_lease_mgr.cc
added MySQL client error code include
MySqlLeaseMgr::checkError() - method is no longer inlined in
the header. Expanded to detect unrecoverable errors, log
them and call exit().
src/lib/dhcpsrv/mysql_lease_mgr.h
Removed inline implemenation of MySqlLeaseMgr::checkError(),
and expanded commentary
src/lib/dhcpsrv/pgsql_lease_mgr.cc
PgSqlLeaseMgr::addLeaseCommon() - now uses checkStatementError()
PgSqlLeaseMgr::checkStatementError() - Expanded to detect
unrecoverable errors, log them and call exit().
src/lib/dhcpsrv/pgsql_lease_mgr.h
Expanded commentary for PgSqlLeaseMgr::checkStatementError()
- code refactoring after last commit, clean-up, compilation fixes
- Makefile updates
- Added new unit-tests for DataSource (mostly moved from LeaseMgr
unit-tests)
As the address is th eprimary key of the table, there can only ever
be at most one lease in the database with a given address. Additional
selection by subnet ID is not needed.