1
#include "source/common/config/runtime_utility.h"
2

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

            
5
namespace Envoy {
6
namespace Config {
7

            
8
void translateRuntime(const envoy::config::bootstrap::v3::Runtime& runtime_config,
9
16
                      envoy::config::bootstrap::v3::LayeredRuntime& layered_runtime_config) {
10
16
  {
11
16
    auto* layer = layered_runtime_config.add_layers();
12
16
    layer->set_name("base");
13
16
    layer->mutable_static_layer()->MergeFrom(runtime_config.base());
14
16
  }
15
16
  if (!runtime_config.symlink_root().empty()) {
16
15
    {
17
15
      auto* layer = layered_runtime_config.add_layers();
18
15
      layer->set_name("root");
19
15
      layer->mutable_disk_layer()->set_symlink_root(runtime_config.symlink_root());
20
15
      layer->mutable_disk_layer()->set_subdirectory(runtime_config.subdirectory());
21
15
    }
22
15
    if (!runtime_config.override_subdirectory().empty()) {
23
14
      auto* layer = layered_runtime_config.add_layers();
24
14
      layer->set_name("override");
25
14
      layer->mutable_disk_layer()->set_symlink_root(runtime_config.symlink_root());
26
14
      layer->mutable_disk_layer()->set_subdirectory(runtime_config.override_subdirectory());
27
14
      layer->mutable_disk_layer()->set_append_service_cluster(true);
28
14
    }
29
15
  }
30
16
  {
31
16
    auto* layer = layered_runtime_config.add_layers();
32
16
    layer->set_name("admin");
33
16
    layer->mutable_admin_layer();
34
16
  }
35
16
}
36

            
37
} // namespace Config
38
} // namespace Envoy