• Thomas Markwalder's avatar
    [4294] Memfile and MySql now support recalulating IPv4 lease statistics · a8f85f25
    Thomas Markwalder authored
    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
    a8f85f25
cfg_subnets4.cc 9.9 KB