tree d647084f9bf6cd535c996718467c97407048119d
parent 1a6330c13400b7cd2159d6277abfd178c4d2cde7
author Tao Ke <taok@google.com> 1775269911 +0000
committer Tao Ke <taok@google.com> 1775363739 +0000

gbmcweb master: SRCREV bump a665e..7df88

Alex Lai (1):
      Add PowerControl data to StoreImpl's ToJson output.

David Tang (1):
      Refactor PeciScanner to trigger on Host Power transitions

Edward Lee (6):
      Fix Data Race in E2E Test
      Store OVC and OVC Config as Optional Member Variables
      Store TrustBundle, ServerCert, SCKeys in CredentialManager
      Parse Activated Bmc Ssh Keys on Tlbmc Startup
      Use std::to_array for pattern_entity_pair_array.
      Migrate OsVerificationCert Ownership to Credential Manager

Hao Zhou (2):
      This CL introduces several optimizations to the HFT service to improve performance and ensure more robust resource handling.
      Adds a test to ensure that the HFT service does not leak resources when a client subscribe to nonexistent sensors

Jane Kramer (1):
      bmcweb: Remove login routes

gBMC Team (21):
      gbmcweb: clear BIOS settings before Chassis.Reset PowerCycle
      Add ability to set and store devpaths in Sensor objects.
      Integrate FruCollector into zone manager
      bmcweb: Remove login routes
      tlBMC HAL: Fix Diorite ADT sensor conversion
      Return NotFoundError if file doesn't exist in FileManager::ReadFile
      Fix 2 IncludeCleaner findings: * Included header <cstdlib> is not used directly * Used header "platforms/gbmc/g3_shared_libs/subprojects/owner_certificate/owner_verification_cert_configuration.proto.h" is not included directly
      Integrate SMBIOS inventory and enhance test verification for mvan10.
      Remove `is_thermal_pid` field from `PidLoopConfig`
      Fix 4 IncludeCleaner findings: * Used header "third_party/milotic/external/cc/tlbmc/configs/gpio_config.proto.h" is not included directly (3 times) * Included header "third_party/absl/status/statusor.h" is not used directly
      Add Syslog Certificate installation support.
      HFT - BMC/gsys - telemetry edge aggregation
      Fix installer package filter logic
      Migrating unit tests for network_adapter.h
      Included header <functional> is not used directly
      Remove Borg-specific logic from Feed Collectors' client side
      ### 🚨🤖 cl/894032966 has broken TAP targets 🤖🚨
      Trigger failsafe when sensor reading is infinite
      Enforce mutex lock for sensor reading during tuning only
      Automated g4 rollback of changelist 889512204.
      Add Google OEM Redfish schema for Chassis Error Counters.

Fusion-Link:
platform27: http://fusion2/516447a1-878d-3682-80ea-36bc0f037a6a
platform28: http://fusion2/6825dcad-3152-369f-a8c3-f30da378a8c2
platform18: http://fusion2/df10cc9c-c9cd-342d-8674-22db99a8e802
platform24: http://fusion2/92b81164-e241-35a2-b257-9fb944ce4993
platform8: http://fusion2/fcdf380a-a6e9-310d-bdca-a214d893bbea
platform11: http://fusion2/2788dd0f-3df1-3d9e-9448-261de5662992
platform26: http://fusion2/957c1104-6500-3397-b376-c24ac613c820
platform29: http://fusion2/0f82bb88-38f0-3e37-aef3-ef26c00a251d
platform23: http://fusion2/c9967b74-0bdc-34b6-9f0d-0bc3125585d1
platform25: http://fusion2/033e0bc4-a06b-3eed-b6c8-a6bdacbce196
platform30: http://fusion2/62dd3f44-4e25-3234-93e3-d4772603b7e2

Platforms-Affected: TTF

Google-Bug-Id: 498952161
Tested: N/A
Change-Id: I3c4ddfdedb20ad9d738f66eff100d411bb27342b
Signed-off-by: Tao Ke <taok@google.com>
(Cherrypick from I3c4ddfdedb20ad9d738f66eff100d411bb27342b)
