Marcin Siodelski [Wed, 17 Aug 2016 09:22:24 +0000 (11:22 +0200)]
[4489] Addressed review comments.
The only review item not addressed with this commit is the
implementation of unit test that operates on the read only
database, i.e. the database containing tables on which the
given user only has SELECT privileges.
[4294] Memfile now supports IPv6 lease stats recounting
src/lib/dhcpsrv/memfile_lease_mgr.h
src/lib/dhcpsrv/memfile_lease_mgr.cc
- MemfileAddressStatsQuery6 - new class, Memfile derivation of
the IPv6 statistical lease data query
- Memfile_LeaseMgr::startAddressStatsQuery6() - new virtual
method that creates and runs the IPv6 lease stats query
src/lib/dhcpsrv/memfile_lease_storage.h
- Added non-unique index on subnet ID to Lease6Storage
src/lib/dhcpsrv/tests/memfile_lease_mgr_unittest.cc
TEST_F(MemfileLeaseMgrTest, recountAddressStats6) - new test
[4294] PostgreSQL now supports IPv6 lease stats recounting
src/lib/dhcpsrv/pgsql_lease_mgr.h
src/lib/dhcpsrv/pgsql_lease_mgr.cc
- Added TaggedStatement RECOUNT_LEASE6_STATS
- PgSqlAddressStatsQuery6 - new class PgSql derivation of the IPv6
statistical lease data query
- PgSqlLeaseMgr::startAddressStatsQuery6() - new virtual method which
creates and runs the IPv6 lease stats query
src/lib/dhcpsrv/tests/pgsql_lease_mgr_unittest.cc
TEST_F(PgSqlLeaseMgrTest, recountAddressStats6) - new test
[4294] Unit tests and MySql now support IPv6 lease stat recounting
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/tests/cfgmgr_unittest.cc
CfgMgrTest:
~CfgMgrTest() - now destroys LeaseMgr singleton
startBackend(int family = AF_INET) - new method to create memfile lease mgr
TEST_F(CfgMgrTest, commitStats4)
TEST_F(CfgMgrTest, commitStats6)
- added call to startBackend()
src/lib/dhcpsrv/tests/pgsql_lease_mgr_unittest.cc
TEST_F(PgSqlLeaseMgrTest, recountAddressStats4) - new test
[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
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/tests/pgsql_exchange_unittest.cc
- Added PgSqlBasicsTest test fixture class and tests which exercise all of
the PostgreSQL data types we currently use with round-trip database writes
and reads
src/lib/dhcpsrv/pgsql_connection.cc
src/lib/dhcpsrv/pgsql_connection.h
- Moved PgSqlResult function impls from .h
- Added exception safe implementation of getColumnLabel() to PgSqlResult
src/lib/dhcpsrv/pgsql_exchange.cc
src/lib/dhcpsrv/pgsql_exchange.h
- PsqlBindArray::add() variants which accept raw pointers now throw
if the pointer is NULL
- PgSqlExchange::getColumnLabel() is now a wrapper around PgSqlResult method
src/lib/dhcpsrv/pgsql_host_data_source.h
src/lib/dhcpsrv/pgsql_host_data_source.cc
- Commentary clean up
src/lib/dhcpsrv/pgsql_lease_mgr.cc
- Commentary clean up