2
0
mirror of https://gitlab.isc.org/isc-projects/kea synced 2025-08-31 05:55:28 +00:00

[616-error-msgs-contain-references-to-config-file-while-config-backend-is-used] Split commit block to add CB indication in log/error messages

This commit is contained in:
Francis Dupont
2019-06-13 02:45:04 +02:00
parent ca63c5a217
commit 94fd660ecb
3 changed files with 53 additions and 9 deletions

View File

@@ -650,10 +650,6 @@ configureDhcp4Server(Dhcpv4Srv& server, isc::data::ConstElementPtr config_set,
const HooksConfig& libraries =
CfgMgr::instance().getStagingCfg()->getHooksConfig();
libraries.loadLibraries();
// If there are config backends, fetch and merge into staging config
server.getCBControl()->databaseConfigFetch(srv_cfg,
CBControlDHCPv4::FetchMode::FETCH_ALL);
}
catch (const isc::Exception& ex) {
LOG_ERROR(dhcp4_logger, DHCP4_PARSER_COMMIT_FAIL).arg(ex.what());
@@ -668,6 +664,29 @@ configureDhcp4Server(Dhcpv4Srv& server, isc::data::ConstElementPtr config_set,
}
}
// Moved from the commit block to add the config backend indication.
if (!rollback) {
try {
// If there are config backends, fetch and merge into staging config
server.getCBControl()->databaseConfigFetch(srv_cfg,
CBControlDHCPv4::FetchMode::FETCH_ALL);
}
catch (const isc::Exception& ex) {
std::ostringstream err;
err << "during update from config backend database: " << ex.what();
LOG_ERROR(dhcp4_logger, DHCP4_PARSER_COMMIT_FAIL).arg((err.str()));
answer = isc::config::createAnswer(CONTROL_RESULT_ERROR, err.str());
rollback = true;
} catch (...) {
// For things like bad_cast in boost::lexical_cast
std::ostringstream err;
err << "during update from config backend database: "
<< "undefined configuration parsing error";
LOG_ERROR(dhcp4_logger, DHCP4_PARSER_COMMIT_FAIL);
answer = isc::config::createAnswer(CONTROL_RESULT_ERROR, err.str());
rollback = true;
}
}
// Rollback changes as the configuration parsing failed.
if (rollback) {