/*
- Copyright (c) 2018-2019 Nokia.
+ Copyright (c) 2018-2022 Nokia.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
limitations under the License.
*/
+/*
+ * This source code is part of the near-RT RIC (RAN Intelligent Controller)
+ * platform project (RICP).
+*/
+
#include <cstdlib>
#include "config.h"
#include "private/abort.hpp"
std::shared_ptr<AsyncDatabaseDiscovery> AsyncDatabaseDiscovery::create(std::shared_ptr<Engine> engine,
const boost::optional<Namespace>& ns,
const DatabaseConfiguration& staticDatabaseConfiguration,
+ const boost::optional<std::size_t>& addressIndex,
std::shared_ptr<Logger> logger)
{
- auto staticAddresses(staticDatabaseConfiguration.getServerAddresses());
+ auto staticAddresses(staticDatabaseConfiguration.getServerAddresses(addressIndex));
if (staticAddresses.empty())
staticAddresses = staticDatabaseConfiguration.getDefaultServerAddresses();
else
{
#if HAVE_HIREDIS
- if (staticDbType == DatabaseConfiguration::DbType::REDIS_SENTINEL)
+ if (staticDbType == DatabaseConfiguration::DbType::REDIS_SENTINEL ||
+ staticDbType == DatabaseConfiguration::DbType::SDL_SENTINEL_CLUSTER)
{
- static_cast<void>(ns);
- auto sentinelAddress(staticDatabaseConfiguration.getSentinelAddress());
+ auto sentinelAddress(staticDatabaseConfiguration.getSentinelAddress(addressIndex));
+ auto sentinelMasterName(staticDatabaseConfiguration.getSentinelMasterName(addressIndex));
+
if (sentinelAddress)
return std::make_shared<AsyncSentinelDatabaseDiscovery>(engine,
logger,
*sentinelAddress,
- staticDatabaseConfiguration.getSentinelMasterName());
+ sentinelMasterName);
else
SHAREDDATALAYER_ABORT("Sentinel address not configured.");
}