+ dbHostAddrs = dbHostEnvVariableValue;
+ }
+ else if (sentinelPortEnvVariableValue.empty() && !dbClusterAddrListEnvVariableValue.empty())
+ {
+ validateAndSetDbType("sdl-standalone-cluster", databaseConfiguration, sourceForDatabaseConfiguration);
+ dbHostAddrs = dbClusterAddrListEnvVariableValue;
+ }
+ else if (!sentinelPortEnvVariableValue.empty() && !dbClusterAddrListEnvVariableValue.empty())
+ {
+ validateAndSetDbType("sdl-sentinel-cluster", databaseConfiguration, sourceForDatabaseConfiguration);
+ dbHostAddrs = dbClusterAddrListEnvVariableValue;
+ }
+ else
+ {
+ std::ostringstream os;
+ os << "Configuration error in " << sourceForDatabaseConfiguration << ": "
+ << "Missing environment variable configuration!";
+ throw Exception(os.str());
+ }
+
+ if (!dbPortEnvVariableValue.empty())
+ appendDBPortToAddrList(dbHostAddrs, dbPortEnvVariableValue);
+ parseDatabaseServersConfigurationFromString(databaseConfiguration,
+ dbHostAddrs,
+ sourceForDatabaseConfiguration);
+ auto dbType = databaseConfiguration.getDbType();
+ if (DatabaseConfiguration::DbType::REDIS_SENTINEL == dbType ||
+ DatabaseConfiguration::DbType::SDL_SENTINEL_CLUSTER == dbType)
+ {
+ databaseConfiguration.checkAndApplySentinelPorts(sentinelPortEnvVariableValue);
+ databaseConfiguration.checkAndApplySentinelMasterNames(sentinelMasterNameEnvVariableValue);