blob: edf60211a7297a5a6581abcca1d4fc29f7f006ee [file] [log] [blame]
#include <memory>
#include "absl/base/log_severity.h"
#include "absl/flags/declare.h"
#include "absl/flags/flag.h"
#include "absl/flags/parse.h"
#include "absl/log/globals.h"
#include "absl/time/time.h"
#include "tlbmc/pacemaker/pacemaker.h"
#include "tlbmc/redfish/app.h"
#include "server.h"
ABSL_DECLARE_FLAG(int, stderrthreshold);
ABSL_DECLARE_FLAG(int, minloglevel);
ABSL_FLAG(int, port, 2998, "The port to listen on.");
ABSL_FLAG(absl::Duration, pacemaker_interval, absl::Minutes(5),
"The interval between pacemaker checks.");
int main(int argc, char* argv[]) {
absl::ParseCommandLine(argc, argv);
absl::SetMinLogLevel(
static_cast<absl::LogSeverityAtLeast>(absl::GetFlag(FLAGS_minloglevel)));
absl::SetStderrThreshold(static_cast<absl::LogSeverityAtLeast>(
absl::GetFlag(FLAGS_stderrthreshold)));
auto app = std::make_unique<milotic_tlbmc::RedfishApp>(
milotic_tlbmc::Pacemaker::Create(
absl::GetFlag(FLAGS_pacemaker_interval),
std::make_unique<milotic_tlbmc::ShellCommandExecutor>()));
// TODO(rahulkpr): Add routes for pacemaker.
milotic::RedfishServiceConfig service_config{
.port = absl::GetFlag(FLAGS_port),
.enable_pacemaker = true,
};
milotic::GrpcRedfishService grpc_service(*app, service_config);
grpc_service.Wait();
return 0;
}