diff --git a/src/lib/dhcpsrv/dhcpsrv_messages.mes b/src/lib/dhcpsrv/dhcpsrv_messages.mes index 5678bac111..4a38f40a49 100644 --- a/src/lib/dhcpsrv/dhcpsrv_messages.mes +++ b/src/lib/dhcpsrv/dhcpsrv_messages.mes @@ -532,6 +532,16 @@ and hardware address. A debug message issued when the server is about to obtain schema version information from the MySQL database. +% DHCPSRV_MYSQL_HOST_DB opening MySQL hosts database: %1 +This informational message is logged when a DHCP server (either V4 or +V6) is about to open a MySQL hosts database. The parameters of the +connection including database name and username needed to access it +(but not the password if any) are logged. + +% DHCPSRV_MYSQL_HOST_DB_GET_VERSION obtaining schema version information for the MySQL hosts database +A debug message issued when the server is about to obtain schema version +information from the MySQL hosts database. + % DHCPSRV_MYSQL_ROLLBACK rolling back MySQL database The code has issued a rollback call. All outstanding transaction will be rolled back and not committed to the database. @@ -658,6 +668,12 @@ and hardware address. A debug message issued when the server is about to obtain schema version information from the PostgreSQL database. +% DHCPSRV_PGSQL_HOST_DB opening PostgreSQL hosts database: %1 +This informational message is logged when a DHCP server (either V4 or +V6) is about to open a PostgreSQL hosts database. The parameters of the +connection including database name and username needed to access it +(but not the password if any) are logged. + % DHCPSRV_PGSQL_ROLLBACK rolling back PostgreSQL database The code has issued a rollback call. All outstanding transaction will be rolled back and not committed to the database. diff --git a/src/lib/dhcpsrv/host_data_source_factory.cc b/src/lib/dhcpsrv/host_data_source_factory.cc index 3865c8184c..524ee4c8e4 100644 --- a/src/lib/dhcpsrv/host_data_source_factory.cc +++ b/src/lib/dhcpsrv/host_data_source_factory.cc @@ -47,45 +47,38 @@ HostDataSourceFactory::getHostDataSourcePtr() { void HostDataSourceFactory::create(const std::string& dbaccess) { - const std::string type = "type"; - // Parse the access string and create a redacted string for logging. DatabaseConnection::ParameterMap parameters = DatabaseConnection::parse(dbaccess); - std::string redacted = - DatabaseConnection::redactedAccessString(parameters); - // Is "type" present? - if (parameters.find(type) == parameters.end()) { - LOG_ERROR(dhcpsrv_logger, DHCPSRV_NOTYPE_DB).arg(dbaccess); - isc_throw(InvalidParameter, "Database configuration parameters do not " + // Get the databaase type and open the corresponding database + DatabaseConnection::ParameterMap::iterator it = parameters.find("type"); + if (it == parameters.end()) { + isc_throw(InvalidParameter, "Host database configuration does not " "contain the 'type' keyword"); } + std::string db_type = it->second; - // Yes, check what it is. #ifdef HAVE_MYSQL - if (parameters[type] == string("mysql")) { - LOG_INFO(dhcpsrv_logger, DHCPSRV_MYSQL_DB).arg(redacted); + if (db_type == "mysql") { + LOG_INFO(dhcpsrv_logger, DHCPSRV_MYSQL_HOST_DB) + .arg(DatabaseConnection::redactedAccessString(parameters)); getHostDataSourcePtr().reset(new MySqlHostDataSource(parameters)); return; } #endif #ifdef HAVE_PGSQL - if (parameters[type] == string("postgresql")) { - LOG_INFO(dhcpsrv_logger, DHCPSRV_PGSQL_DB).arg(redacted); - isc_throw(NotImplemented, "Sorry, Postgres backend for host reservations " + if (db_type == "postgresql") { + isc_throw(NotImplemented, "Sorry, PostgreSQL backend for host reservations " "is not implemented yet."); - // Set pgsql data source here, when it will be implemented. - return; } #endif // Get here on no match. - LOG_ERROR(dhcpsrv_logger, DHCPSRV_UNKNOWN_DB).arg(parameters[type]); - isc_throw(InvalidType, "Database access parameter 'type' does " - "not specify a supported database backend"); + isc_throw(InvalidType, "Hosts database access parameter 'type': " << + db_type << " is invalid"); } void diff --git a/src/lib/dhcpsrv/mysql_host_data_source.cc b/src/lib/dhcpsrv/mysql_host_data_source.cc index 593fbe9d8f..c754769c5b 100644 --- a/src/lib/dhcpsrv/mysql_host_data_source.cc +++ b/src/lib/dhcpsrv/mysql_host_data_source.cc @@ -976,7 +976,7 @@ std::pair MySqlHostDataSource::getVersion() const { const StatementIndex stindex = GET_VERSION; LOG_DEBUG(dhcpsrv_logger, DHCPSRV_DBG_TRACE_DETAIL, - DHCPSRV_MYSQL_GET_VERSION); + DHCPSRV_MYSQL_HOST_DB_GET_VERSION); uint32_t major; // Major version number uint32_t minor; // Minor version number