blob: 2bf379f6f2612de070ba17eadc528a47c4274150 [file]
#include "tlbmc/resource/syslog_config_utils.h"
#include <string>
#include "absl/status/status.h"
#include "absl/status/statusor.h"
#include "absl/strings/str_cat.h"
#include "absl/strings/string_view.h"
#include "resource.pb.h"
namespace milotic_tlbmc {
absl::StatusOr<SyslogProtocol> GetSyslogProtocolFromRedfishString(
absl::string_view protocol) {
if (protocol == "TCP") {
return SYSLOG_PROTOCOL_TCP;
}
if (protocol == "UDP") {
return SYSLOG_PROTOCOL_UDP;
}
return absl::InvalidArgumentError(
absl::StrCat("Unsupported Redfish syslog protocol: ", protocol));
}
absl::StatusOr<absl::string_view> GetRedfishStringFromSyslogProtocol(
SyslogProtocol protocol) {
switch (protocol) {
case SYSLOG_PROTOCOL_TCP:
return "TCP";
case SYSLOG_PROTOCOL_UDP:
return "UDP";
default:
return absl::InvalidArgumentError(absl::StrCat(
"Unknown syslog protocol enum: ", static_cast<int>(protocol)));
}
}
absl::StatusOr<SyslogTlsMode> GetSyslogTlsModeFromRedfishString(
absl::string_view tls_mode) {
if (tls_mode == "TLS") {
return SYSLOG_TLS_MODE_TLS;
}
if (tls_mode == "Disabled") {
return SYSLOG_TLS_MODE_DISABLED;
}
return absl::InvalidArgumentError(
absl::StrCat("Unsupported Redfish syslog TLS mode: ", tls_mode));
}
absl::StatusOr<absl::string_view> GetRedfishStringFromSyslogTlsMode(
SyslogTlsMode tls_mode) {
switch (tls_mode) {
case SYSLOG_TLS_MODE_TLS:
return "TLS";
case SYSLOG_TLS_MODE_DISABLED:
return "Disabled";
default:
return absl::InvalidArgumentError(absl::StrCat(
"Unknown syslog TLS mode enum: ", static_cast<int>(tls_mode)));
}
}
absl::StatusOr<SyslogProtocol> GetSyslogProtocolFromYoctoString(
absl::string_view protocol) {
if (protocol == "tcp") {
return SYSLOG_PROTOCOL_TCP;
}
if (protocol == "udp") {
return SYSLOG_PROTOCOL_UDP;
}
return absl::InvalidArgumentError(
absl::StrCat("Unsupported Yocto syslog protocol: ", protocol));
}
absl::StatusOr<std::string> GetYoctoStringFromSyslogProtocol(
SyslogProtocol protocol) {
switch (protocol) {
case SYSLOG_PROTOCOL_TCP:
return "tcp";
case SYSLOG_PROTOCOL_UDP:
return "udp";
default:
return absl::InvalidArgumentError(absl::StrCat(
"Unknown syslog protocol enum: ", static_cast<int>(protocol)));
}
}
absl::StatusOr<SyslogTlsMode> GetSyslogTlsModeFromYoctoString(
absl::string_view tls_mode) {
if (tls_mode == "tls") {
return SYSLOG_TLS_MODE_TLS;
}
if (tls_mode == "disabled") {
return SYSLOG_TLS_MODE_DISABLED;
}
return absl::InvalidArgumentError(
absl::StrCat("Unsupported Yocto syslog TLS mode: ", tls_mode));
}
absl::StatusOr<std::string> GetYoctoStringFromSyslogTlsMode(
SyslogTlsMode tls_mode) {
switch (tls_mode) {
case SYSLOG_TLS_MODE_TLS:
return "tls";
case SYSLOG_TLS_MODE_DISABLED:
return "disabled";
default:
return absl::InvalidArgumentError(absl::StrCat(
"Unknown syslog TLS mode enum: ", static_cast<int>(tls_mode)));
}
}
} // namespace milotic_tlbmc