[4481] Made query4 and query6 callout arguments uniformly available
The client packet is now uniformly available to all client packet driven
callouts for both v4 and v6:
Added "query4" to lease4_select and lease4_renew
src/bin/dhcp4/dhcp4_hooks.dox
Added query4 argument to lease4_select and lease4_renew documentation
src/bin/dhcp4/tests/hooks_unittest.cc
Revamped to track both query4 and response4 arguments
TEST_F(HooksDhcpv4SrvTest, lease4RenewSimple) - modified to verify
query4 set by lease4_renew callout
src/lib/dhcpsrv/alloc_engine.cc
- AllocEngine::createLease4()
- AllocEngine::reuseExpiredLease4() - modified to add query4 to
lease4_select callout arguments
- AllocEngine::renewLease4() - modified to add query4 to lease4_renew
callout arguments
src/lib/dhcpsrv/tests/alloc_engine_hooks_unittest.cc
HookAllocEngine4Test() - modified to track query4 argument
TEST_F(HookAllocEngine4Test, lease4_select) - modified to verify query4
callout argument
Added "query6" to pkt6_send and lease6_select
src/bin/dhcp6/dhcp6_hooks.dox
Added query6 argument to pkt6_send and lease6_select documentation
src/bin/dhcp6/dhcp6_srv.cc
Dhcpv6Srv::processPacket(Pkt6Ptr& query, Pkt6Ptr& rsp) - modified to
add query6 to the pkt_send callout arguments
src/bin/dhcp6/tests/hooks_unittest.cc
Revamped to track both query4 and response4 arguments
TEST_F(HooksDhcpv6SrvTest, simplePkt6Send) - modified to
verify query6 set by pkt6_send callout
src/lib/dhcpsrv/alloc_engine.cc
- AllocEngine::createLease4()
- AllocEngine::reuseExpiredLease6() - modified to add query6 to
lease6_select callout arguments
callout arguments
src/lib/dhcpsrv/tests/alloc_engine_hooks_unittest.cc
HookAllocEngine6Test() - modified to track query6 argument
TEST_F(HookAllocEngine6Test, lease4_select) - modified to verify
query6 argument
Stephen Morris [Tue, 10 May 2016 14:03:02 +0000 (15:03 +0100)]
[4485] Change type of variables to overcome compiler objections
One compiler was objecting to placing the address of a size_t variable
into a variable declared as "unsigned long*". Changing the
declaration from "size_t" to "unsigned long" fixes the problem.
src/bin/dhcp4/tests/hooks_unittest.cc
TEST_F(LoadUnloadDhcpv4SrvTest, unloadLibaries) - new test that
verifies Hooks libraries are unloaded by the Dhcpv4Srv destructor
src/bin/dhcp6/tests/hooks_unittest.cc
TEST_F(LoadUnloadDhcpv6SrvTest, unloadLibaries) - new test that
verifies Hooks libraries are unloaded by the Dhcpv4Srv destructor
[4492] Explicitly unload hook libraries prior during shutdown
A call to HooksManager::getHooksManager().unloadLibraries() was added to
the destructors Dhcpv4Srv::~Dhcpv4Srv() and Dhcpv6Srv::~Dhcpv6Srv(). This
ensures hook libraries are unloaded prior to static objects.
[4297] Addressed review comments:
- returnining different values in callout_params_library.cc
- returned values are now described for getParameter
- corrected index syntax comment in getParameter
- added missing include
- hooks_user.dox updated
- hooks unit test moved, so it is now next to other hooks tests
[4239] Added drop scripts for both MySQL and Postgresql
Rather than use hard-coded lists or query logic for dropping the
database all MySQL and Posgresql tests use new drop scripts
added to src/bind/admin/scripts.
src/bin/admin/scripts/mysql/dhcpdb_drop.mysql
- New SQL script to drop a MySQL database
src/bin/admin/scripts/pgsql/dhcpdb_drop.pgsql
- New SQL script to drop a Postgresql database
src/bin/admin/tests/mysql_tests.sh.in
- mysql_wipe() - modified to use new drop script
src/bin/admin/tests/pgsql_tests.sh.in
- pgsql_wipe() modified to use new drop script
src/lib/dhcpsrv/tests/mysql_lease_mgr_unittest.cc
- TEST(MySqlOpenTest, OpenDatabase) - added show_err=true
to destroyMySQLSchema() calls
src/lib/dhcpsrv/tests/pgsql_lease_mgr_unittest.cc
- TEST(PgSqlOpenTest, OpenDatabase) - added show_err=true
to destroyMySQLSchema() calls
src/lib/dhcpsrv/testutils/mysql_schema.cc
- destroyMySQLSchema(bool show_err) - modified to use the new
drop script and accept show_err parameter
src/lib/dhcpsrv/testutils/pgsql_schema.cc
- destroyPgSQLSchema(bool show_err) - modified to use the new
drop script and accept show_err parameter
[4239] MySQL and Postgresql unit tests use production schema create scripts
src/lib/dhcpsrv/testutils/schema.h
src/lib/dhcpsrv/testutils/schema.cc
New files that contain constants and functions common to RDBMS
testing
src/lib/dhcpsrv/testutils/pgsql_schema.h
src/lib/dhcpsrv/testutils/pgsql_schema.cc
New files that contain constants and functions needed for
Posgresql testing
src/lib/dhcpsrv/testutils/mysql_schema.cc
src/lib/dhcpsrv/testutils/mysql_schema.h
Removed common constants and functions
Added MYSQL_VALID_TYPE
runMySQLScript() - new function to submit a script to MySQL
src/lib/dhcpsrv/pgsql_lease_mgr.cc
PgSqlLease6Exchange - replaced uint32_t iaid member with Uiaid union
instance. This permits the value to be safely stored in the database
as an INT (signed 4-byte value)
getColumnValue()- added int32_t variant of this method
[4239] MySQL unit tests in dhcpsrv now use production db create script
src/lib/dhcpsrv/tests/mysql_lease_mgr_unittest.cc
TEST(MySqlOpenTest, OpenDatabase) - pass in show_err=true for call
to createMySQLSchema()
src/lib/dhcpsrv/testutils/Makefile.am
- Added definition of TEST_ADMIN_SCRIPTS_DIR
- removed schema_mysql_copy.h
src/lib/dhcpsrv/testutils/mysql_schema.cc
- Removed include of schema_mysql_copy.h
- destroyMySQLSchema() - now contains destroy_statment[] formerly
defined in schema_mysql_copy.h
- createMySQLSchema() - Creates the database through command line
invocation of MySQL cli, mysql, passing it the production database
creation script