-#if HAVE_SENTINEL
- static_cast<void>(ns);
- return std::make_shared<AsyncSentinelDatabaseDiscovery>(engine,
- logger);
-#else
- return std::make_shared<AsyncHiredisDatabaseDiscovery>(engine,
- ns,
- DatabaseInfo::Type::SINGLE,
- staticAddresses,
- logger);
-#endif
+ if (staticDbType == DatabaseConfiguration::DbType::REDIS_SENTINEL)
+ {
+ static_cast<void>(ns);
+ auto sentinelAddress(staticDatabaseConfiguration.getSentinelAddress());
+ if (sentinelAddress)
+ return std::make_shared<AsyncSentinelDatabaseDiscovery>(engine,
+ logger,
+ *sentinelAddress,
+ staticDatabaseConfiguration.getSentinelMasterName());
+ else
+ SHAREDDATALAYER_ABORT("Sentinel address not configured.");
+ }
+ else
+ {
+ return std::make_shared<AsyncHiredisDatabaseDiscovery>(engine,
+ ns,
+ DatabaseInfo::Type::SINGLE,
+ staticAddresses,
+ logger);
+ }