tree a3872ea86d4d9f1812cbdff2fab169d99f05db3f
parent 732e55c36c49bba90f912677cd9f26412b88b5cd
author John Edward Broadbent <jebr@google.com> 1744063162 +0000
committer John Broadbent <jebr@google.com> 1744825778 -0700

gPowerD master: SRCREV bump ca40ee4b42..a74f36e306

John Broadbent (30):
      Prevent cpp try catch syle error handling. Using try catch blocks will now produce an error similar to the one below.
      Remove -fno-exceptions from executable gpowerd
      Correct scheduler timing, and enable self cancel
      Change the Server creds api to use statusOr for better usage
      Add logic file for registering actions in BMC.
      Change InternalError to be more specific
      Change config file to a textproto, rather then a binary proto.
      cleanup: Remove duplicate BuildFromConfig, and add more logging
      Add a gbmc specific certificate verifier to the BMC safepower agent.
      Fix parsing of json body for redfish actions
      Enable gRPC reflection for gpowerd.
      Prepare payload before writing to HTTP stream.
      Allow the scheduled task to re scheduled it self.
      Fix a bug in state_monitor_bmc.cc.
      Run the event loop, and don't grpc::wait().
      Fix LOAS3 dependencies to gpowerd.
      Add a configurable log level to gpowerd.
      Fix the parsing of the BMC response.
      Remove system_component from ActionConfig.
      Log the current state text, not the enum value. We were using proto reflection for several other uses. So I used used it again to find the text.
      grpc shutdown should cancel all streaming RPC, and not wait for TCP timeout
      gpowerd: Remove unnecessary DaemonContextBMC creation
      #s4: rename read/write functions
      #s4: fix include warnings in gpowerd.cc
      #s4: add BUILD target for setup_configs Remove general configs for machine specific configs, and allow machine to set with a build flag
      Create Safepower configs for platform15
      #S4 default enable `LOAS3_AUTH_FLAG` option, and have the UT skip the AUTH with the `test` option
      #s4 If gpowerd is added to a new platform and the platform variable is not set,
      gpowerd: Add a flag to enable insecure grpc
      platform15 safepower_agent: Add tray_power_cycle action

Shounak Mitra (16):
      Use conditions in action context
      Replace DLOG(FATAL) with LOG(DFATAL)
      Add build target for proto_reader
      #gpowerd - Add build target for BMC state persistence
      #gpowerd - Add build target for BMC scheduler
      #gpowerd - Add build target for bmc daemon context
      #gpowerd - Add build targets for HTTP connection and related
      #gpowerd - Add build target for register_actions
      #gpowerd - Add build targets for gmi reader
      Automated g4 rollback of changelist 707228705.
      Automated g4 rollback of changelist 707220915.
      Roll forward of cl/707220915
      Roll forward cl/707228705
      #gpowerd - Fix gBMC build
      #gpowerd - Add build targets for auth
      #s4_v2: Add build target for gpowerd main

gBMC Team (13):
      Fix 2 IncludeCleaner findings: * Used header "production/sushid/safepower_agent/proto/safepower_agent.proto.h" is not included directly (2 times)
      Fix 2 StringViewParams findings: * This is a change required to migrate function parameters to absl::string_view from const std::string& (2 times)
      Fix 1 ClangTidyBuild finding: * #includes not formatted according to style guide For more info see go/clang_tidy/checks/google3-build-include-order
      Fix 50 ClangTidyBuild findings: * missing #include <string_view> for 'std::string_view' For more info see go/clang_tidy/checks/google3-build-missing-std-includes (25 times) * missing #include <string> for 'std::string' For more info see go/clang_tidy/checks/google3-build-missing-std-includes (7 times) * missing #include <vector> for 'std::vector' For more info see go/clang_tidy/checks/google3-build-missing-std-includes (5 times) * missing #include <utility> for 'std::move' For more info see go/clang_tidy/checks/google3-build-missing-std-includes (4 times) * missing #include <map> for 'std::map' For more info see go/clang_tidy/checks/google3-build-missing-std-includes (2 times) * missing #include <memory> for 'std::unique_ptr' For more info see go/clang_tidy/checks/google3-build-missing-std-includes (2 times) * missing #include <ostream> for 'std::ostream' For more info see go/clang_tidy/checks/google3-build-missing-std-includes * missing #include <set> for 'std::set' For more info see go/clang_tidy/checks/google3-build-missing-std-includes * missing #include <memory> for 'std::shared_ptr' For more info see go/clang_tidy/checks/google3-build-missing-std-includes * missing #include <array> for 'std::array' For more info see go/clang_tidy/checks/google3-build-missing-std-includes * missing #include <utility> for 'std::pair' For more info see go/clang_tidy/checks/google3-build-missing-std-includes
      Fix 2 ClangTidyBuild findings: * missing #include <optional> for 'std::nullopt' For more info see go/clang_tidy/checks/google3-build-missing-std-includes * missing #include <optional> for 'std::optional' For more info see go/clang_tidy/checks/google3-build-missing-std-includes
      Fix 2 ClangTidyLegacy findings: * annotate this function with 'override' or (rarely) 'final' For more info see go/clang_tidy/checks/modernize-use-override (2 times)
      Remove Boost #includes from source files that don't reference boost:: symbols or BOOST_ preprocessor macros.
      Upgrade to the latest protobuf edition
      Fix 1 AbslSpanParams finding: * This is a change required to migrate function parameters to absl::Span from const std::vector
      Fix 9 IncludeCleaner findings: * Used header "production/sushid/safepower_agent/proto/safepower_agent.proto.h" is not included directly (3 times) * Used header "production/sushid/safepower_agent/proto/state_persistence.proto.h" is not included directly (2 times) * Used header "third_party/absl/strings/str_format.h" is not included directly * Used header <iostream> is not included directly * Used header "production/sushid/safepower_agent/proto/safepower_agent_config.proto.h" is not included directly * Used header "google/protobuf/timestamp.proto.h" is not included directly
      Fix 1 AbslSpanParams finding: * This is a change required to migrate function parameters to absl::Span from const std::vector
      Fix 2 IncludeCleaner findings: * Used header "production/sushid/safepower_agent/proto/safepower_agent.proto.h" is not included directly * Used header "production/sushid/safepower_agent/proto/safepower_agent_config.proto.h" is not included directly
      Migrate template alias nullability annotations to macros.

Tested: N/A
Fusion-Link: http://fusion2/9f1404ae-b23f-4637-8813-728381240e43
Google-Bug-Id: 409116678
Change-Id: I4b8aad539c9db77e0a8bd7d04484e3352687535c
Signed-off-by: John Edward Broadbent <jebr@google.com>
