1
#include "source/server/config_validation/cluster_manager.h"
2

            
3
#include "envoy/config/bootstrap/v3/bootstrap.pb.h"
4
#include "envoy/config/core/v3/config_source.pb.h"
5

            
6
#include "source/common/common/utility.h"
7

            
8
namespace Envoy {
9
namespace Upstream {
10

            
11
absl::StatusOr<ClusterManagerPtr> ValidationClusterManagerFactory::clusterManagerFromProto(
12
136
    const envoy::config::bootstrap::v3::Bootstrap& bootstrap) {
13
136
  absl::Status creation_status = absl::OkStatus();
14
136
  auto cluster_manager = std::unique_ptr<ValidationClusterManager>{
15
136
      new ValidationClusterManager(bootstrap, *this, context_, creation_status)};
16
136
  RETURN_IF_NOT_OK(creation_status);
17
136
  return cluster_manager;
18
136
}
19

            
20
absl::StatusOr<CdsApiPtr> ValidationClusterManagerFactory::createCds(
21
    const envoy::config::core::v3::ConfigSource& cds_config,
22
    const xds::core::v3::ResourceLocator* cds_resources_locator, ClusterManager& cm,
23
5
    bool support_multi_ads_sources) {
24
  // Create the CdsApiImpl...
25
5
  auto cluster_or_error = ProdClusterManagerFactory::createCds(cds_config, cds_resources_locator,
26
5
                                                               cm, support_multi_ads_sources);
27
5
  RETURN_IF_NOT_OK_REF(cluster_or_error.status());
28
  // ... and then throw it away, so that we don't actually connect to it.
29
5
  return nullptr;
30
5
}
31

            
32
} // namespace Upstream
33
} // namespace Envoy