tree e8c75d92d368ef791697e9ee85bf860d9bd27bbe
parent a3a3bc35068ffbe4060f5f1b06cce5e306314b40
author Bojun Wang <bojunw@google.com> 1720722120 +0000
committer Bojun Wang <bojunw@google.com> 1720808758 +0000

g3-shared-libs master: SRCREV bump 74501d063a...d644bf51b8


Rahul Kapoor (9):
      Add error handling for no root subqueries in RedPath query
      Add QueryPlanner tests for error handling
      Add logic to query from service root
      Update and Relocate QueryPlannerOptions
      Add logic to disallow usage of same RedPath in multiple subqueries
      Do not return error if a property to subscribe is not in a resource.
      Add ERROR_UNAVAILABLE to query result status
      Use new QueryResult in IdAssigner
      Add support for RedfishLocation in new normalizer

gBMC Team (31):
      Adding ability to configure timeout via QueryRouterSpec.
      Add a library to tokenize redfish query predicates to make them easier to process.
      Query engine : Make name field non-optional in query proto.
      Add support for parenthesis and expression grouping in predicate object library.
      Add support for presence checks in predicate parsing library.
      Add EVP_CIPHER and EVP_CIPHER_CTX deleters.
      Changing the log message level from ERROR to INFO for logging the entire redfish object when failing query execution early.
      Fix g3-shared-libs/redfish_query_engine install script in bitbake.
      Add unpopulated variable invalidation in query planner.
      #feature Add a new Security Realm deployment type SMALL_SCATTERED.
      [1/N] Implement universe specific coverage generator for default coverage.
      Fix typo in `GetRealmsOfDeplymentTypeInUniverse`.
      Copybara coverage lib to g3_shared_libs.
      Run include-cleaner on //production/msv/...
      Add support for Tier 6 realms to `SecurityRealmMapping`.
      Fix 1 ClangTidyPerformance finding: * the variable 'details' is copy-constructed from a const reference but is only used as const reference; consider making it a const reference For more info see go/clang_tidy/checks/performance-unnecessary-copy-initialization
      Fix generated proto header includes in g3-shared-lib redfish_query_engine.
      Add Tier 6 realm support to C++ `SecurityRealmMappingUtil`.
      Ensuring that the QP halts on first error within a subquery. We explicitly check the result of each ExecuteRedPathStepFromEachSubquery call, which returns false now if execution failed.
      Add Tier 6 realm support to `FakeSecurityRealmMappingUtilBuilder`.
      Fix bug in query planner resume logic where we could potentially dereference an error absl::StatusOr when resuming subscription queries to collection resources. Added a unit test for this case specifically.
      Adding new operators for fuzzy string matching to predicate objects. Adding test to ensure predicates get formed correctly, some minor readability fixes on all the predicate object tests.
      Add fuzzy string comparison operators to Redfish query predicates.
      Add a check for a null object in the response from the Redfish HTTP transport.
      Add util.h and util.cc to copybara.
      Ensuring $filter queries are formed correctly with fuzzy string comparison predicates
      Perform variable substitution at the start of query expression execution.
      Upgrade to the latest protobuf edition
      Update Redpath normalizers to only generate sub-fru stable IDs from EmbeddedLocationContext.
      Sync the prefix lists in the various Machine Locality libraries and keep them synced with IFTTT.
      Fix redfish query engine install for consumer using redfish/transport/* headers

Google-Bug-Id: 327421478
Tested: Compile.
Fusion2: fusion2/b9cbd5db-6fe3-38d3-ba32-3c14c050a5c3
Change-Id: I5f0bbf8594c947051791630cae8614291f5d4ba2
