1
#include "source/server/utils.h"
2

            
3
#include "envoy/common/exception.h"
4

            
5
#include "source/common/common/assert.h"
6

            
7
namespace Envoy {
8
namespace Server {
9
namespace Utility {
10

            
11
envoy::admin::v3::ServerInfo::State serverState(Init::Manager::State state,
12
22381
                                                bool health_check_failed) {
13
22381
  switch (state) {
14
162
  case Init::Manager::State::Uninitialized:
15
162
    return envoy::admin::v3::ServerInfo::PRE_INITIALIZING;
16
172
  case Init::Manager::State::Initializing:
17
172
    return envoy::admin::v3::ServerInfo::INITIALIZING;
18
22046
  case Init::Manager::State::Initialized:
19
22046
    return health_check_failed ? envoy::admin::v3::ServerInfo::DRAINING
20
22046
                               : envoy::admin::v3::ServerInfo::LIVE;
21
22381
  }
22
1
  IS_ENVOY_BUG("unexpected server state enum");
23
1
  return envoy::admin::v3::ServerInfo::PRE_INITIALIZING;
24
22381
}
25

            
26
absl::Status assertExclusiveLogFormatMethod(
27
    const Options& options,
28
14
    const envoy::config::bootstrap::v3::Bootstrap::ApplicationLogConfig& application_log_config) {
29
14
  if (options.logFormatSet() && application_log_config.has_log_format()) {
30
3
    return absl::InvalidArgumentError(
31
3
        "Only one of ApplicationLogConfig.log_format or CLI option --log-format can be specified.");
32
3
  }
33
11
  return absl::OkStatus();
34
14
}
35

            
36
absl::Status maybeSetApplicationLogFormat(
37
14
    const envoy::config::bootstrap::v3::Bootstrap::ApplicationLogConfig& application_log_config) {
38
14
  if (!application_log_config.has_log_format()) {
39
1
    return absl::OkStatus();
40
1
  }
41

            
42
13
  if (application_log_config.log_format().has_text_format()) {
43
3
    Logger::Registry::setLogFormat(application_log_config.log_format().text_format());
44
10
  } else if (application_log_config.log_format().has_json_format()) {
45
9
    const auto status =
46
9
        Logger::Registry::setJsonLogFormat(application_log_config.log_format().json_format());
47

            
48
9
    if (!status.ok()) {
49
6
      return absl::InvalidArgumentError(
50
6
          fmt::format("setJsonLogFormat error: {}", status.ToString()));
51
6
    }
52
9
  }
53
7
  return absl::OkStatus();
54
13
}
55

            
56
} // namespace Utility
57
} // namespace Server
58
} // namespace Envoy