|  | #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; | 
|  | } |