// This may cause different types of exceptions. We catch them here
// and throw unified exception type.
- parseAllInternal(config_storage, config);
+ parseAll(config_storage, config);
validateRelationships(config_storage);
logConfigStatus(config_storage);
return (config_storage);
}
void
-HAConfigParser::parseAllInternal(const HAConfigMapperPtr& config_storage,
- const ConstElementPtr& config) {
+HAConfigParser::parseAll(const HAConfigMapperPtr& config_storage,
+ const ConstElementPtr& config) {
// Config must be provided.
if (!config) {
isc_throw(ConfigError, "HA configuration must not be null");
isc_throw(ConfigError, "a list of HA configurations must not be empty");
}
for (auto config : config_vec) {
- parseOneInternal(config_storage, config);
+ parseOne(config_storage, config);
}
}
void
-HAConfigParser::parseOneInternal(const HAConfigMapperPtr& config_storage,
- const ElementPtr& config) {
+HAConfigParser::parseOne(const HAConfigMapperPtr& config_storage,
+ const ElementPtr& config) {
// Config must be provided.
if (!config) {
isc_throw(ConfigError, "HA configuration must not be null");
// Set general defaults.
setDefaults(config, HA_CONFIG_DEFAULTS);
- // HA configuration must be a map.
- if (config->getType() != Element::map) {
- isc_throw(ConfigError, "expected list of maps in the HA configuration");
- }
-
// It must contain peers section.
if (!config->contains("peers")) {
isc_throw(ConfigError, "'peers' parameter missing in HA configuration");
try {
config_storage->map(peer_config.first, rel_config);
- } catch (...) {
- isc_throw(HAConfigValidationError, "server names must be unique for different relationships");
+ } catch (const std::exception& ex) {
+ isc_throw(HAConfigValidationError, "server names must be unique for different relationships: "
+ << ex.what());
}
}
}
/// is going to be stored.
///
/// @param config Specified configuration.
- static void parseAllInternal(const HAConfigMapperPtr& config_storage,
- const data::ConstElementPtr& config);
+ static void parseAll(const HAConfigMapperPtr& config_storage,
+ const data::ConstElementPtr& config);
/// @brief Parses HA configuration for a single relationship.
///
///
/// @param config specified configuration for a relationship.
/// @throw ConfigError when parsing fails or configuration is invalid.
- static void parseOneInternal(const HAConfigMapperPtr& config_storage,
- const data::ElementPtr& config);
+ static void parseOne(const HAConfigMapperPtr& config_storage,
+ const data::ElementPtr& config);
/// @brief Validates and returns a value of the parameter.
///