2
0
mirror of https://gitlab.isc.org/isc-projects/kea synced 2025-09-01 06:25:34 +00:00

[#101,!58] Implemented ConfigBackendDhcp4Mgr, mysql backend registers/unregisters

src/hooks/dhcp/mysql_cb/mysql_cb_callouts.cc
    load() - added call to register MySQL backend
    unload() - added call to unregister MySQL backend

src/hooks/dhcp/mysql_cb/mysql_cb_dhcp4.*
    MySqlConfigBackendDHCPv4::registerBackendType()
    MySqlConfigBackendDHCPv4::unregisterBackendType()
    - new static methods for registering/unregistering

src/hooks/dhcp/mysql_cb/tests/Makefile.am
    mysql_cb_dhcp4_mgr_unittest.cc  - new file

src/lib/config_backend/base_config_backend_mgr.h
    bool unregisterBackendFactory(const std::string& db_type)
    - new method to unregister factory and delete backends

src/lib/config_backend/base_config_backend_pool.h
    void delAllBackends(const std::string& db_type)
    - new method to delete all backends of a given type

/src/lib/config_backend/tests/config_backend_mgr_unittest.cc
    TEST_F(ConfigBackendMgrTest, unregister) - new test

src/lib/dhcpsrv/Makefile.am
src/lib/dhcpsrv/config_backend_dhcp4.h
src/lib/dhcpsrv/config_backend_dhcp4.cc
    New files that implement ConfigBackendDhcp4Mgr

src/lib/dhcpsrv/config_backend_pool_dhcp4.h
    Added missing public scope, removed pure virtual function

src/lib/eval/tests/Makefile.am
    Added new dependency libkea-cc
This commit is contained in:
Thomas Markwalder
2018-10-10 14:51:59 -04:00
parent 8ddd1a7b1c
commit f4b4bb9f6e
15 changed files with 310 additions and 12 deletions

View File

@@ -574,6 +574,8 @@ configureDhcp4Server(Dhcpv4Srv& server, isc::data::ConstElementPtr config_set,
// This operation should be exception safe but let's make sure.
if (!rollback) {
try {
// if we have config-control DBs attempt to create them here,
// if that fails, rollback?
// Setup the command channel.
configureCommandChannel();
@@ -592,6 +594,9 @@ configureDhcp4Server(Dhcpv4Srv& server, isc::data::ConstElementPtr config_set,
const HooksConfig& libraries =
CfgMgr::instance().getStagingCfg()->getHooksConfig();
libraries.loadLibraries();
// now that we have config-db and hooks, merge in config from DB
// databaseConfigFetch(srv_config, mutable_cfg);
}
catch (const isc::Exception& ex) {
LOG_ERROR(dhcp4_logger, DHCP4_PARSER_COMMIT_FAIL).arg(ex.what());
@@ -606,6 +611,7 @@ configureDhcp4Server(Dhcpv4Srv& server, isc::data::ConstElementPtr config_set,
}
}
// Rollback changes as the configuration parsing failed.
if (rollback) {
// Revert to original configuration of runtime option definitions