blob: 88b41e56fc3e2066388fe93417459df1ca0bf577 [file] [log] [blame]
"""Copybara config to export files from google3 to gRPC repo in gBMC
Validate the config in terms of syntax:
copybara validate third_party/gbmcweb/copy.bara.sky
Test the transformation (add --init-history --squash for the first run)
1. Run the workflow in dry-run mode
alias copybara='/google/bin/releases/copybara/public/copybara/copybara'
copybara third_party/gbmcweb/copy.bara.sky gbmcweb_presubmit_piper_to_gerrit 12345 --dry-run --ignore-noop
2. Format patch (get the GIT_DIR from the copybara output)
GIT_DIR=/usr/local/google/home/$USER/copybara/cache/git_repos/rpc%3A%2F%2Fgbmc%2Fgbmcweb git format-patch -1 \
&& cp 0001-DO-NOT-SUBMIT.patch /path/to/gbmcweb
3. Apply the patch and test there.
"""
load("//devtools/copybara/library/feedback", "critique_findings_to_gerrit")
load("//devtools/copybara/library/scrubbing", "cc_scrub", "doc_scrub", "message_scrub_google_block", "proto_scrub")
load("//devtools/copybara/library/workflow", "piper_sot_to_gerrit")
###################################################################################
# Do not modify this file from GoB. This file should only be modified in google3. #
###################################################################################
########################
# Private definitions
########################
# all c++ source files under current directory recrusively in google3
_g3_cc_files = ["**.h", "**.cc"]
# all c++ source files under current directory recrusively in GoB
_gob_cc_files = ["**.h", "**.cpp", "**.hpp", "**.cc"]
# Common files like OWNERS, METADATA, etc are excluded
_excluded_meta_files = [
"google3/third_party/gbmcweb/BUILD",
"google3/third_party/gbmcweb/bluze.textproto",
"google3/third_party/gbmcweb/METADATA",
"google3/third_party/gbmcweb/third_party.gbmcweb.blueprint",
"google3/third_party/gbmcweb/OWNERS",
"google3/third_party/gbmcweb/demo/**",
"google3/third_party/gbmcweb/**/BUILD",
]
_all_gbmcweb_google3_files = [
# go/keep-sorted start
"google3/third_party/gbmcweb/LICENSE",
"google3/third_party/gbmcweb/config/bmcweb_config.h.in",
"google3/third_party/gbmcweb/config/meson.build",
"google3/third_party/gbmcweb/config/meson_options.txt",
"google3/third_party/gbmcweb/http/app.cc",
# "google3/third_party/gbmcweb/http/http_response_test.cc",
"google3/third_party/gbmcweb/http/app.h",
"google3/third_party/gbmcweb/http/app_get_routes_test.cc",
"google3/third_party/gbmcweb/http/app_singleton.cc",
"google3/third_party/gbmcweb/http/app_singleton.h",
"google3/third_party/gbmcweb/http/common.h",
"google3/third_party/gbmcweb/http/http_client.h",
"google3/third_party/gbmcweb/http/http_connection.h",
"google3/third_party/gbmcweb/http/http_request.cc",
"google3/third_party/gbmcweb/http/http_request.h",
"google3/third_party/gbmcweb/http/http_response.cc",
"google3/third_party/gbmcweb/http/http_response.h",
"google3/third_party/gbmcweb/http/http_server.h",
"google3/third_party/gbmcweb/http/logging.h",
"google3/third_party/gbmcweb/http/mutual_tls.h",
"google3/third_party/gbmcweb/http/parsing.h",
"google3/third_party/gbmcweb/http/routing.cc",
"google3/third_party/gbmcweb/http/routing.h",
"google3/third_party/gbmcweb/http/routing_test.cc",
"google3/third_party/gbmcweb/http/utility.cc",
"google3/third_party/gbmcweb/http/utility.h",
"google3/third_party/gbmcweb/http/utility_test.cc",
"google3/third_party/gbmcweb/http/verb.h",
"google3/third_party/gbmcweb/http/verb_test.cc",
"google3/third_party/gbmcweb/http/websocket.h",
"google3/third_party/gbmcweb/include/async_resolve.h",
"google3/third_party/gbmcweb/include/async_resp.cc",
"google3/third_party/gbmcweb/include/async_resp.h",
"google3/third_party/gbmcweb/include/authentication.h",
"google3/third_party/gbmcweb/include/dbus_utility.cc",
"google3/third_party/gbmcweb/include/dbus_utility.h",
"google3/third_party/gbmcweb/include/dbus_utility_test.cc",
"google3/third_party/gbmcweb/include/event_service_store.h",
"google3/third_party/gbmcweb/include/forward_unauthorized.h",
"google3/third_party/gbmcweb/include/http_utility.h",
"google3/third_party/gbmcweb/include/http_utility_test.cc",
"google3/third_party/gbmcweb/include/human_sort.h",
"google3/third_party/gbmcweb/include/human_sort_test.cc",
"google3/third_party/gbmcweb/include/json_html_serializer.h",
"google3/third_party/gbmcweb/include/openbmc_dbus_rest.h",
"google3/third_party/gbmcweb/include/openbmc_dbus_rest_test.cc",
"google3/third_party/gbmcweb/include/pam_authenticate.h",
"google3/third_party/gbmcweb/include/persistent_data.h",
"google3/third_party/gbmcweb/include/random.h",
"google3/third_party/gbmcweb/include/request_stats.cc",
"google3/third_party/gbmcweb/include/request_stats.h",
"google3/third_party/gbmcweb/include/request_stats_test.cc",
"google3/third_party/gbmcweb/include/security_headers.h",
"google3/third_party/gbmcweb/include/sessions.cc",
"google3/third_party/gbmcweb/include/sessions.h",
#"google3/third_party/gbmcweb/**",
"google3/third_party/gbmcweb/include/source_location.h",
"google3/third_party/gbmcweb/include/ssl_key_handler.h",
"google3/third_party/gbmcweb/include/str_utility.h",
"google3/third_party/gbmcweb/include/str_utility_test.cc",
"google3/third_party/gbmcweb/include/webroutes.h",
"google3/third_party/gbmcweb/redfish_core/include/aggregation_utils.h",
"google3/third_party/gbmcweb/redfish_core/include/error_messages.cc",
"google3/third_party/gbmcweb/redfish_core/include/error_messages.h",
"google3/third_party/gbmcweb/redfish_core/include/error_messages_test.cc",
"google3/third_party/gbmcweb/redfish_core/include/generated/enums/**",
"google3/third_party/gbmcweb/redfish_core/include/privileges.h",
"google3/third_party/gbmcweb/redfish_core/include/privileges_test.cc",
"google3/third_party/gbmcweb/redfish_core/include/query.cc",
"google3/third_party/gbmcweb/redfish_core/include/query.h",
"google3/third_party/gbmcweb/redfish_core/include/query_test.cc",
"google3/third_party/gbmcweb/redfish_core/include/redfish_aggregator.h",
"google3/third_party/gbmcweb/redfish_core/include/redfish_aggregator_test.cc",
"google3/third_party/gbmcweb/redfish_core/include/registries.cc",
"google3/third_party/gbmcweb/redfish_core/include/registries.h",
"google3/third_party/gbmcweb/redfish_core/include/registries/base_message_registry.h",
"google3/third_party/gbmcweb/redfish_core/include/registries/openbmc_message_registry.h",
"google3/third_party/gbmcweb/redfish_core/include/registries/privilege_registry.h",
"google3/third_party/gbmcweb/redfish_core/include/registries_test.cc",
"google3/third_party/gbmcweb/redfish_core/include/schemas.h",
"google3/third_party/gbmcweb/redfish_core/include/utils/dbus_utils.h",
"google3/third_party/gbmcweb/redfish_core/include/utils/hex_utils.h",
"google3/third_party/gbmcweb/redfish_core/include/utils/hex_utils_test.cc",
"google3/third_party/gbmcweb/redfish_core/include/utils/ip_utils.h",
"google3/third_party/gbmcweb/redfish_core/include/utils/ip_utils_test.cc",
"google3/third_party/gbmcweb/redfish_core/include/utils/json_utils.cc",
"google3/third_party/gbmcweb/redfish_core/include/utils/json_utils.h",
"google3/third_party/gbmcweb/redfish_core/include/utils/json_utils_test.cc",
"google3/third_party/gbmcweb/scripts/generate_schema_collections.py",
"google3/third_party/gbmcweb/scripts/generate_schema_enums.py",
"google3/third_party/gbmcweb/scripts/parse_registries.py",
"google3/third_party/gbmcweb/scripts/update_schemas.py",
# go/keep-sorted end
]
_git_files = [
# go/keep-sorted start
"LICENSE",
"config/bmcweb_config.h.in",
"config/meson.build",
"http/app.cpp",
"http/app.hpp",
"http/app_singleton.cpp",
"http/app_singleton.hpp",
"http/common.hpp",
"http/http_client.hpp",
"http/http_connection.hpp",
"http/http_request.cpp",
"http/http_request.hpp",
"http/http_response.cpp",
"http/http_response.hpp",
"http/http_server.hpp",
"http/logging.hpp",
"http/mutual_tls.hpp",
"http/parsing.hpp",
"http/routing.cpp",
"http/routing.hpp",
"http/utility.cpp",
"http/utility.hpp",
"http/verb.hpp",
"http/websocket.hpp",
"include/async_resolve.hpp",
"include/async_resp.cpp",
"include/async_resp.hpp",
"include/authentication.hpp",
"include/dbus_utility.cpp",
"include/dbus_utility.hpp",
"include/event_service_store.hpp",
"include/forward_unauthorized.hpp",
"include/http_utility.hpp",
"include/human_sort.hpp",
"include/json_html_serializer.hpp",
"include/openbmc_dbus_rest.hpp",
"include/pam_authenticate.hpp",
"include/persistent_data.hpp",
"include/random.hpp",
"include/request_stats.hpp",
"include/security_headers.hpp",
"include/sessions.cpp",
"include/sessions.hpp",
"include/source_location.hpp",
"include/ssl_key_handler.hpp",
"include/str_utility.hpp",
"include/webroutes.hpp",
"meson_options.txt",
"redfish-core/include/aggregation_utils.hpp",
"redfish-core/include/error_messages.hpp",
"redfish-core/include/generated/enums/**",
"redfish-core/include/privileges.hpp",
"redfish-core/include/query.cpp",
"redfish-core/include/query.hpp",
"redfish-core/include/redfish_aggregator.hpp",
"redfish-core/include/registries.hpp",
"redfish-core/include/registries/base_message_registry.hpp",
"redfish-core/include/registries/openbmc_message_registry.hpp",
"redfish-core/include/registries/privilege_registry.hpp",
"redfish-core/include/schemas.hpp",
"redfish-core/include/utils/dbus_utils.hpp",
"redfish-core/include/utils/hex_utils.hpp",
"redfish-core/include/utils/ip_utils.hpp",
"redfish-core/include/utils/json_utils.hpp",
"redfish-core/src/error_messages.cpp",
"redfish-core/src/registries.cpp",
"redfish-core/src/utils/json_utils.cpp",
"scripts/generate_schema_collections.py",
"scripts/generate_schema_enums.py",
"scripts/parse_registries.py",
"scripts/update_schemas.py",
# "test/http/http_response_test.cpp",
"src/request_stats.cpp",
"test/http/crow_getroutes_test.cpp",
"test/http/router_test.cpp",
"test/http/utility_test.cpp",
"test/http/verb_test.cpp",
"test/include/dbus_utility_test.cpp",
"test/include/http_utility_test.cpp",
"test/include/human_sort_test.cpp",
"test/include/openbmc_dbus_rest_test.cpp",
"test/include/request_stats_test.cpp",
"test/include/str_utility_test.cpp",
"test/redfish-core/include/privileges_test.cpp",
"test/redfish-core/include/query_test.cpp",
"test/redfish-core/include/redfish_aggregator_test.cpp",
"test/redfish-core/include/registries_test.cpp",
"test/redfish-core/include/utils/hex_utils_test.cpp",
"test/redfish-core/include/utils/ip_utils_test.cpp",
"test/redfish-core/include/utils/json_utils_test.cpp",
"test/redfish-core/src/error_messages_test.cpp",
# go/keep-sorted end
]
# copy.bara.sky is g3 origin file only for piper to gob workflow
# copy.bara.sky is excluded from g3 destination file in reverse workflow to avoid any edit from gob
_google3_files_for_origin = glob(
include = [
"google3/third_party/gbmcweb/copy.bara.sky",
] + _all_gbmcweb_google3_files,
exclude = _excluded_meta_files,
)
_google3_files_for_destination = glob(
include = _all_gbmcweb_google3_files,
exclude = _excluded_meta_files,
)
# copy.bara.sky is gob destination file only for piper to gob workflow
# copy.bara.sky is excluded from gob origin file in reverse workflow to avoid any edit from gob
_git_files_for_destination = glob(
include = [
"copy.bara.sky",
] + _git_files,
exclude = [".gitignore"],
)
_git_files_for_origin = glob(
include = _git_files,
exclude = [".gitignore"],
)
_allowed_authors = {
"haoooamazing": "Hao Zhou <haoooamazing@google.com>",
"nanzhou": "Nan Zhou <nanzhou@google.com>",
}
########################
# Transformations
########################
_transformations = [
###############################
# common scrubs
###############################
cc_scrub(),
proto_scrub(),
doc_scrub(),
###############################
# common headers
###############################
core.replace(
# tranformation for all boost header
before = "third_party/boost/do_not_include_from_google3_only_third_party/boost/boost",
after = "boost",
paths = glob(_g3_cc_files),
),
core.replace(
before = "#include \"third_party/json/include/nlohmann/json.hpp\"",
after = "#include <nlohmann/json.hpp>",
paths = glob(_g3_cc_files),
),
core.replace(
# tranformation for all absl header
before = "#include \"third_party/absl",
after = "#include \"absl",
paths = glob(_g3_cc_files),
),
core.replace(
# transformation for all sdbusplus header
before = "#include \"third_party/openbmc_sdbusplus/include/sdbusplus",
after = "#include \"sdbusplus",
paths = glob(_g3_cc_files),
),
core.replace(
# transformation for all grpc header
before = "#include \"third_party/grpc/include/grpcpp",
after = "#include \"grpcpp",
paths = glob(_g3_cc_files),
),
core.replace(
before = "#include \"testing/base/public/gunit.h\"",
after = "#include <gtest/gtest.h>",
paths = glob(_g3_cc_files),
),
core.replace(
before = "#include \"testing/base/public/gmock.h\"",
after = "#include <gmock/gmock.h>",
paths = glob(_g3_cc_files),
),
###############################
# Internal headers
###############################
core.replace(
before = "third_party/gbmcweb/http/verb.h",
after = "verb.hpp",
paths = glob(_g3_cc_files),
),
core.replace(
before = "#include \"third_party/gbmcweb/http/utility.h\"",
after = "#include \"utility.hpp\"",
paths = glob(_g3_cc_files),
),
core.replace(
# For CRYPTO_memcmp only
before = "<openssl/mem.h>",
after = "<openssl/crypto.h>",
paths = glob(
include = [
"google3/third_party/gbmcweb/http/utility.cc",
],
),
),
core.replace(
before = "third_party/gbmcweb/config/bmcweb_config.h",
after = "bmcweb_config.h",
paths = glob(_g3_cc_files),
),
core.replace(
before = "third_party/gbmcweb/redfish_core/include/utils/hex_utils.h",
after = "hex_utils.hpp",
paths = glob(_g3_cc_files),
),
core.replace(
before = "third_party/gbmcweb/http/logging.h",
after = "logging.hpp",
paths = glob(_g3_cc_files),
),
core.replace(
before = "third_party/gbmcweb/include/sessions.h",
after = "sessions.hpp",
paths = glob(_g3_cc_files),
),
core.replace(
before = "third_party/gbmcweb/include/random.h",
after = "random.hpp",
paths = glob(_g3_cc_files),
),
core.replace(
before = "third_party/gbmcweb/redfish_core/include/utils/ip_utils.h",
after = "ip_utils.hpp",
paths = glob(_g3_cc_files),
),
core.replace(
before = "third_party/milotic/internal/cc/authz/bmcweb_authorizer_singleton.h",
after = "bmcweb_authorizer_singleton.h",
paths = glob(_g3_cc_files),
),
core.replace(
before = "third_party/gbmcweb/http/common.h",
after = "common.hpp",
paths = glob(_g3_cc_files),
),
core.replace(
before = "third_party/gbmcweb/http/http_request.h",
after = "http_request.hpp",
paths = glob(_g3_cc_files),
),
core.replace(
before = "third_party/milotic/internal/cc/bmcweb/managed_store_clock.h",
after = "managed_store_clock.hpp",
paths = glob(_g3_cc_files),
),
core.replace(
before = "third_party/gbmcweb/include/request_stats.h",
after = "request_stats.hpp",
paths = glob(_g3_cc_files),
),
core.replace(
before = "third_party/ecclesia/lib/redfish/event/server/subscription.h",
after = "subscription.h",
paths = glob(_g3_cc_files),
),
core.replace(
before = "third_party/gbmcweb/http/http_response.h",
after = "http_response.hpp",
paths = glob(_g3_cc_files),
),
core.replace(
before = "#include \"third_party/milotic/internal/cc/bmcweb/managed_store.h\"",
after = "#include \"managed_store.hpp\"",
paths = glob(_g3_cc_files),
),
core.replace(
before = "third_party/milotic/internal/cc/bmcweb/mock_managed_store.h",
after = "test/g3/mock_managed_store.hpp",
paths = glob(_g3_cc_files),
),
core.replace(
before = "third_party/gbmcweb/include/async_resp.h",
after = "async_resp.hpp",
paths = glob(_g3_cc_files),
),
core.replace(
before = "third_party/gbmcweb/include/dbus_utility.h",
after = "dbus_utility.hpp",
paths = glob(_g3_cc_files),
),
core.replace(
before = "third_party/gbmcweb/redfish_core/include/privileges.h",
after = "privileges.hpp",
paths = glob(_g3_cc_files),
),
core.replace(
before = "third_party/gbmcweb/include/event_service_store.h",
after = "event_service_store.hpp",
paths = glob(_g3_cc_files),
),
core.replace(
before = "third_party/gbmcweb/include/http_utility.h",
after = "http_utility.hpp",
paths = glob(_g3_cc_files),
),
core.replace(
before = "third_party/gbmcweb/include/forward_unauthorized.h",
after = "forward_unauthorized.hpp",
paths = glob(_g3_cc_files),
),
core.replace(
before = "third_party/gbmcweb/include/pam_authenticate.h",
after = "pam_authenticate.hpp",
paths = glob(_g3_cc_files),
),
core.replace(
before = "third_party/gbmcweb/include/webroutes.h",
after = "webroutes.hpp",
paths = glob(_g3_cc_files),
),
core.replace(
before = "third_party/gbmcweb/include/authentication.h",
after = "authentication.hpp",
paths = glob(_g3_cc_files),
),
core.replace(
before = "third_party/gbmcweb/include/json_html_serializer.h",
after = "json_html_serializer.hpp",
paths = glob(_g3_cc_files),
),
core.replace(
before = "third_party/gbmcweb/http/mutual_tls.h",
after = "mutual_tls.hpp",
paths = glob(_g3_cc_files),
),
core.replace(
before = "third_party/gbmcweb/include/security_headers.h",
after = "security_headers.hpp",
paths = glob(_g3_cc_files),
),
core.replace(
before = "third_party/gbmcweb/include/ssl_key_handler.h",
after = "ssl_key_handler.hpp",
paths = glob(_g3_cc_files),
),
core.replace(
before = "third_party/gbmcweb/http/http_connection.h",
after = "http_connection.hpp",
paths = glob(_g3_cc_files),
),
core.replace(
before = "third_party/gbmcweb/include/async_resolve.h",
after = "async_resolve.hpp",
paths = glob(_g3_cc_files),
),
core.replace(
before = "third_party/milotic/internal/cc/bmcweb/managed_store_types.h",
after = "managed_store_types.hpp",
paths = glob(_g3_cc_files),
),
core.replace(
before = "third_party/gbmcweb/include/source_location.h",
after = "source_location.hpp",
paths = glob(_g3_cc_files),
),
core.replace(
before = "third_party/gbmcweb/redfish_core/include/registries/base_message_registry.h",
after = "registries/base_message_registry.hpp",
paths = glob(_g3_cc_files),
),
core.replace(
before = "third_party/gbmcweb/redfish_core/include/registries/openbmc_message_registry.h",
after = "registries/openbmc_message_registry.hpp",
paths = glob(_g3_cc_files),
),
core.replace(
before = "third_party/gbmcweb/include/str_utility.h",
after = "str_utility.hpp",
paths = glob(_g3_cc_files),
),
core.replace(
before = "third_party/gbmcweb/redfish_core/include/registries.h",
after = "registries.hpp",
paths = glob(_g3_cc_files),
),
core.replace(
before = "third_party/ecclesia/lib/redfish/authorizer_enums.h",
after = "authorizer_enums.h",
paths = glob(_g3_cc_files),
),
core.replace(
before = "third_party/milotic/internal/cc/redfish/uri_to_entity.h",
after = "uri_to_entity.h",
paths = glob(_g3_cc_files),
),
core.replace(
before = "third_party/gbmcweb/redfish_core/include/utils/dbus_utils.h",
after = "dbus_utils.hpp",
paths = glob(_g3_cc_files),
),
core.replace(
# full line is best practice to avoid same name collisions (e.g.websocket.hpp from boost
before = "#include \"third_party/gbmcweb/http/websocket.h\"",
after = "#include \"websocket.hpp\"",
paths = glob(_g3_cc_files),
),
core.replace(
before = "third_party/gbmcweb/http/routing.h",
after = "routing.hpp",
paths = glob(_g3_cc_files),
),
core.replace(
before = "third_party/gbmcweb/redfish_core/include/error_messages.h",
after = "error_messages.hpp",
paths = glob(_g3_cc_files),
),
# core.replace(
# before = "third_party/gbmcweb/include/persistent_data.h",
# after = "persistent_data.hpp",
# paths = glob(_g3_cc_files),
# ),
# core.replace(
# before = "third_party/gbmcweb/include/security_headers.h",
# after = "security_headers.hpp",
# paths = glob(_g3_cc_files),
# ),
core.replace(
before = "third_party/milotic/internal/cc/bmcweb/app_interface.h",
after = "app_interface.h",
paths = glob(_g3_cc_files),
),
core.replace(
before = "third_party/milotic/internal/cc/bmcweb/smart_router.h",
after = "smart_router.h",
paths = glob(_g3_cc_files),
),
core.replace(
before = "third_party/gbmcweb/http/app.h",
after = "app.hpp",
paths = glob(_g3_cc_files),
),
core.replace(
before = "third_party/gbmcweb/http/http_server.h",
after = "http_server.hpp",
paths = glob(_g3_cc_files),
),
core.replace(
before = "third_party/gbmcweb/http/parsing.h",
after = "parsing.hpp",
paths = glob(_g3_cc_files),
),
core.replace(
before = "third_party/gbmcweb/include/openbmc_dbus_rest.h",
after = "openbmc_dbus_rest.hpp",
paths = glob(_g3_cc_files),
),
core.replace(
before = "third_party/gbmcweb/http/app_singleton.h",
after = "app_singleton.hpp",
paths = glob(_g3_cc_files),
),
core.replace(
before = "third_party/gbmcweb/redfish_core/include/aggregation_utils.h",
after = "aggregation_utils.hpp",
paths = glob(_g3_cc_files),
),
core.replace(
before = "third_party/gbmcweb/http/http_client.h",
after = "http_client.hpp",
paths = glob(_g3_cc_files),
),
core.replace(
before = "third_party/gbmcweb/redfish_core/include/redfish_aggregator.h",
after = "redfish_aggregator.hpp",
paths = glob(_g3_cc_files),
),
core.replace(
before = "third_party/gbmcweb/redfish_core/include/query.h",
after = "query.hpp",
paths = glob(_g3_cc_files),
),
core.replace(
before = "third_party/gbmcweb/include/human_sort.h",
after = "human_sort.hpp",
paths = glob(_g3_cc_files),
),
core.replace(
before = "third_party/gbmcweb/redfish_core/include/utils/json_utils.h",
after = "json_utils.hpp",
paths = glob(_g3_cc_files),
),
core.replace(
# replace for third_party/gbmcweb/scripts/update_schemas.py
before = "from google3.third_party.gbmcweb.scripts.generate_schema_collections import generate_top_collections",
after = "from generate_schema_collections import generate_top_collections",
paths = glob(["google3/third_party/gbmcweb/scripts/update_schemas.py"]),
),
core.replace(
# replace for third_party/gbmcweb/scripts/update_schemas.py
before = "import google3.third_party.gbmcweb.scripts.generate_schema_enums as generate_schema_enums",
after = "import generate_schema_enums",
paths = glob(["google3/third_party/gbmcweb/scripts/update_schemas.py"]),
),
###############################
# move
###############################
# Operations are in sequence.
core.move(
before = "google3/third_party/gbmcweb/http/verb.h",
after = "http/verb.hpp",
),
core.move(
before = "google3/third_party/gbmcweb/http/verb_test.cc",
after = "test/http/verb_test.cpp",
),
core.move(
before = "google3/third_party/gbmcweb/http/logging.h",
after = "http/logging.hpp",
),
core.move(
before = "google3/third_party/gbmcweb/http/utility.cc",
after = "http/utility.cpp",
),
core.move(
before = "google3/third_party/gbmcweb/http/utility.h",
after = "http/utility.hpp",
),
core.move(
before = "google3/third_party/gbmcweb/http/utility_test.cc",
after = "test/http/utility_test.cpp",
),
core.move(
before = "google3/third_party/gbmcweb/http/common.h",
after = "http/common.hpp",
),
core.move(
before = "google3/third_party/gbmcweb/config/bmcweb_config.h.in",
after = "config/bmcweb_config.h.in",
),
core.move(
before = "google3/third_party/gbmcweb/config/meson.build",
after = "config/meson.build",
),
core.move(
before = "google3/third_party/gbmcweb/config/meson_options.txt",
after = "meson_options.txt",
),
core.move(
before = "google3/third_party/gbmcweb/redfish_core/include/utils/hex_utils.h",
after = "redfish-core/include/utils/hex_utils.hpp",
),
core.move(
before = "google3/third_party/gbmcweb/redfish_core/include/utils/hex_utils_test.cc",
after = "test/redfish-core/include/utils/hex_utils_test.cpp",
),
core.move(
before = "google3/third_party/gbmcweb/include/random.h",
after = "include/random.hpp",
),
core.move(
before = "google3/third_party/gbmcweb/redfish_core/include/utils/ip_utils.h",
after = "redfish-core/include/utils/ip_utils.hpp",
),
core.move(
before = "google3/third_party/gbmcweb/redfish_core/include/utils/ip_utils_test.cc",
after = "test/redfish-core/include/utils/ip_utils_test.cpp",
),
core.move(
before = "google3/third_party/gbmcweb/include/sessions.cc",
after = "include/sessions.cpp",
),
core.move(
before = "google3/third_party/gbmcweb/include/sessions.h",
after = "include/sessions.hpp",
),
core.move(
before = "google3/third_party/gbmcweb/http/http_request.cc",
after = "http/http_request.cpp",
),
core.move(
before = "google3/third_party/gbmcweb/http/http_request.h",
after = "http/http_request.hpp",
),
core.move(
before = "google3/third_party/gbmcweb/include/request_stats.h",
after = "include/request_stats.hpp",
),
core.move(
before = "google3/third_party/gbmcweb/include/request_stats.cc",
after = "src/request_stats.cpp",
),
core.move(
before = "google3/third_party/gbmcweb/include/request_stats_test.cc",
after = "test/include/request_stats_test.cpp",
),
core.move(
before = "google3/third_party/gbmcweb/http/http_response.h",
after = "http/http_response.hpp",
),
core.move(
before = "google3/third_party/gbmcweb/http/http_response.cc",
after = "http/http_response.cpp",
),
# core.move(
# before = "google3/third_party/gbmcweb/http/http_response_test.cc",
# after = "test/http/http_response_test.cpp",
# ),
core.move(
before = "google3/third_party/gbmcweb/include/async_resp.h",
after = "include/async_resp.hpp",
),
core.move(
before = "google3/third_party/gbmcweb/include/async_resp.cc",
after = "include/async_resp.cpp",
),
core.move(
before = "google3/third_party/gbmcweb/include/dbus_utility.cc",
after = "include/dbus_utility.cpp",
),
core.move(
before = "google3/third_party/gbmcweb/include/dbus_utility.h",
after = "include/dbus_utility.hpp",
),
core.move(
before = "google3/third_party/gbmcweb/include/dbus_utility_test.cc",
after = "test/include/dbus_utility_test.cpp",
),
core.move(
before = "google3/third_party/gbmcweb/http/parsing.h",
after = "http/parsing.hpp",
),
core.move(
before = "google3/third_party/gbmcweb/redfish_core/include/privileges.h",
after = "redfish-core/include/privileges.hpp",
),
core.move(
before = "google3/third_party/gbmcweb/redfish_core/include/privileges_test.cc",
after = "test/redfish-core/include/privileges_test.cpp",
),
core.move(
before = "google3/third_party/gbmcweb/include/security_headers.h",
after = "include/security_headers.hpp",
),
core.move(
before = "google3/third_party/gbmcweb/http/websocket.h",
after = "http/websocket.hpp",
),
core.move(
before = "google3/third_party/gbmcweb/include/event_service_store.h",
after = "include/event_service_store.hpp",
),
core.move(
before = "google3/third_party/gbmcweb/include/ssl_key_handler.h",
after = "include/ssl_key_handler.hpp",
),
core.move(
before = "google3/third_party/gbmcweb/http/mutual_tls.h",
after = "http/mutual_tls.hpp",
),
core.move(
before = "google3/third_party/gbmcweb/include/persistent_data.h",
after = "include/persistent_data.hpp",
),
core.move(
before = "google3/third_party/gbmcweb/include/json_html_serializer.h",
after = "include/json_html_serializer.hpp",
),
core.move(
before = "google3/third_party/gbmcweb/include/forward_unauthorized.h",
after = "include/forward_unauthorized.hpp",
),
core.move(
before = "google3/third_party/gbmcweb/include/http_utility.h",
after = "include/http_utility.hpp",
),
core.move(
before = "google3/third_party/gbmcweb/include/http_utility_test.cc",
after = "test/include/http_utility_test.cpp",
),
core.move(
before = "google3/third_party/gbmcweb/include/pam_authenticate.h",
after = "include/pam_authenticate.hpp",
),
core.move(
before = "google3/third_party/gbmcweb/include/webroutes.h",
after = "include/webroutes.hpp",
),
core.move(
before = "google3/third_party/gbmcweb/include/authentication.h",
after = "include/authentication.hpp",
),
core.move(
before = "google3/third_party/gbmcweb/include/async_resolve.h",
after = "include/async_resolve.hpp",
),
core.move(
before = "google3/third_party/gbmcweb/http/http_connection.h",
after = "http/http_connection.hpp",
),
core.move(
before = "google3/third_party/gbmcweb/http/http_server.h",
after = "http/http_server.hpp",
),
core.move(
before = "google3/third_party/gbmcweb/http/http_client.h",
after = "http/http_client.hpp",
),
core.move(
before = "google3/third_party/gbmcweb/redfish_core/include/utils/dbus_utils.h",
after = "redfish-core/include/utils/dbus_utils.hpp",
),
core.move(
before = "google3/third_party/gbmcweb/include/source_location.h",
after = "include/source_location.hpp",
),
core.move(
before = "google3/third_party/gbmcweb/include/str_utility.h",
after = "include/str_utility.hpp",
),
core.move(
before = "google3/third_party/gbmcweb/include/str_utility_test.cc",
after = "test/include/str_utility_test.cpp",
),
core.move(
before = "google3/third_party/gbmcweb/redfish_core/include/registries.h",
after = "redfish-core/include/registries.hpp",
),
core.move(
before = "google3/third_party/gbmcweb/redfish_core/include/registries.cc",
after = "redfish-core/src/registries.cpp",
),
core.move(
before = "google3/third_party/gbmcweb/redfish_core/include/registries_test.cc",
after = "test/redfish-core/include/registries_test.cpp",
),
core.move(
before = "google3/third_party/gbmcweb/redfish_core/include/error_messages.h",
after = "redfish-core/include/error_messages.hpp",
),
core.move(
before = "google3/third_party/gbmcweb/redfish_core/include/error_messages.cc",
after = "redfish-core/src/error_messages.cpp",
),
core.move(
before = "google3/third_party/gbmcweb/redfish_core/include/error_messages_test.cc",
after = "test/redfish-core/src/error_messages_test.cpp",
),
core.move(
before = "google3/third_party/gbmcweb/http/routing.h",
after = "http/routing.hpp",
),
core.move(
before = "google3/third_party/gbmcweb/http/routing.cc",
after = "http/routing.cpp",
),
core.move(
before = "google3/third_party/gbmcweb/http/routing_test.cc",
after = "test/http/router_test.cpp",
),
core.move(
before = "google3/third_party/gbmcweb/http/app.h",
after = "http/app.hpp",
),
core.move(
before = "google3/third_party/gbmcweb/http/app.cc",
after = "http/app.cpp",
),
core.move(
before = "google3/third_party/gbmcweb/http/app_get_routes_test.cc",
after = "test/http/crow_getroutes_test.cpp",
),
core.move(
before = "google3/third_party/gbmcweb/include/openbmc_dbus_rest.h",
after = "include/openbmc_dbus_rest.hpp",
),
core.move(
before = "google3/third_party/gbmcweb/include/openbmc_dbus_rest_test.cc",
after = "test/include/openbmc_dbus_rest_test.cpp",
),
core.move(
before = "google3/third_party/gbmcweb/http/app_singleton.h",
after = "http/app_singleton.hpp",
),
core.move(
before = "google3/third_party/gbmcweb/http/app_singleton.cc",
after = "http/app_singleton.cpp",
),
core.move(
before = "google3/third_party/gbmcweb/redfish_core/include/redfish_aggregator.h",
after = "redfish-core/include/redfish_aggregator.hpp",
),
core.move(
before = "google3/third_party/gbmcweb/redfish_core/include/redfish_aggregator_test.cc",
after = "test/redfish-core/include/redfish_aggregator_test.cpp",
),
core.move(
before = "google3/third_party/gbmcweb/redfish_core/include/query.h",
after = "redfish-core/include/query.hpp",
),
core.move(
before = "google3/third_party/gbmcweb/redfish_core/include/query.cc",
after = "redfish-core/include/query.cpp",
),
core.move(
before = "google3/third_party/gbmcweb/redfish_core/include/query_test.cc",
after = "test/redfish-core/include/query_test.cpp",
),
core.move(
before = "google3/third_party/gbmcweb/include/human_sort.h",
after = "include/human_sort.hpp",
),
core.move(
before = "google3/third_party/gbmcweb/include/human_sort_test.cc",
after = "test/include/human_sort_test.cpp",
),
core.move(
before = "google3/third_party/gbmcweb/redfish_core/include/utils/json_utils.h",
after = "redfish-core/include/utils/json_utils.hpp",
),
core.move(
before = "google3/third_party/gbmcweb/redfish_core/include/utils/json_utils.cc",
after = "redfish-core/src/utils/json_utils.cpp",
),
core.move(
before = "google3/third_party/gbmcweb/redfish_core/include/utils/json_utils_test.cc",
after = "test/redfish-core/include/utils/json_utils_test.cpp",
),
core.move(
before = "google3/third_party/gbmcweb/scripts/parse_registries.py",
after = "scripts/parse_registries.py",
),
core.move(
before = "google3/third_party/gbmcweb/redfish_core/include/registries/base_message_registry.h",
after = "redfish-core/include/registries/base_message_registry.hpp",
),
core.move(
before = "google3/third_party/gbmcweb/redfish_core/include/registries/openbmc_message_registry.h",
after = "redfish-core/include/registries/openbmc_message_registry.hpp",
),
core.move(
before = "google3/third_party/gbmcweb/redfish_core/include/registries/privilege_registry.h",
after = "redfish-core/include/registries/privilege_registry.hpp",
),
core.move(
before = "google3/third_party/gbmcweb/scripts/generate_schema_collections.py",
after = "scripts/generate_schema_collections.py",
),
core.move(
before = "google3/third_party/gbmcweb/scripts/generate_schema_enums.py",
after = "scripts/generate_schema_enums.py",
),
core.move(
before = "google3/third_party/gbmcweb/scripts/update_schemas.py",
after = "scripts/update_schemas.py",
),
core.move(
before = "google3/third_party/gbmcweb/redfish_core/include/aggregation_utils.h",
after = "redfish-core/include/aggregation_utils.hpp",
),
core.move(
before = "google3/third_party/gbmcweb/redfish_core/include/schemas.h",
after = "redfish-core/include/schemas.hpp",
),
core.transform(
transformations = [
core.move(
before = "google3/third_party/gbmcweb/redfish_core/include/generated/enums/${file}.h",
after = "redfish-core/include/generated/enums/${file}.hpp",
regex_groups = {"file": ".*"},
),
],
reversal = [
core.move(
before = "redfish-core/include/generated/enums/${file}.hpp",
after = "google3/third_party/gbmcweb/redfish_core/include/generated/enums/${file}.h",
regex_groups = {"file": ".*"},
),
],
),
core.move(
before = "google3/third_party/gbmcweb/LICENSE",
after = "LICENSE",
),
########################
# Unidirectional files from G3 -> GoB
########################
core.move(
before = "google3/third_party/gbmcweb/copy.bara.sky",
after = "copy.bara.sky",
),
########################
# Check for leaks after last transform
########################
leakr.check(),
]
_reverse_transformations = [
###############################
# common headers
###############################
# Operations are in sequence.
core.replace(
before = "#include \"boost",
after = "#include \"third_party/boost/do_not_include_from_google3_only_third_party/boost/boost",
paths = glob(_gob_cc_files),
),
core.replace(
before = "#include <nlohmann/json.hpp>",
after = "#include \"third_party/json/include/nlohmann/json.hpp\"",
paths = glob(_gob_cc_files),
),
core.replace(
# tranformation for all absl header
before = "#include \"absl",
after = "#include \"third_party/absl",
paths = glob(_gob_cc_files),
),
core.replace(
# transformation for all sdbusplus header
before = "#include \"sdbusplus",
after = "#include \"third_party/openbmc_sdbusplus/include/sdbusplus",
paths = glob(_gob_cc_files),
),
core.replace(
# transformation for all grpc header
before = "#include \"grpcpp",
after = "#include \"third_party/grpc/include/grpcpp",
paths = glob(_gob_cc_files),
),
core.replace(
before = "#include <gtest/gtest.h>",
after = "#include \"testing/base/public/gunit.h\"",
paths = glob(_gob_cc_files),
),
core.replace(
before = "#include <gmock/gmock.h>",
after = "#include \"testing/base/public/gmock.h\"",
paths = glob(_gob_cc_files),
),
###############################
# Internal headers
###############################
core.replace(
before = "#include \"verb.hpp\"",
after = "#include \"third_party/gbmcweb/http/verb.h\"",
paths = glob(_gob_cc_files),
),
core.replace(
before = "#include \"utility.hpp\"",
after = "#include \"third_party/gbmcweb/http/utility.h\"",
paths = glob(_gob_cc_files),
),
core.replace(
# For CRYPTO_memcmp only
before = "<openssl/crypto.h>",
after = "<openssl/mem.h>",
paths = glob(
include = ["http/utility.cpp"],
),
),
core.replace(
before = "bmcweb_config.h",
after = "third_party/gbmcweb/config/bmcweb_config.h",
paths = glob(_gob_cc_files),
),
core.replace(
before = "hex_utils.hpp",
after = "third_party/gbmcweb/redfish_core/include/utils/hex_utils.h",
paths = glob(_gob_cc_files),
),
core.replace(
before = "logging.hpp",
after = "third_party/gbmcweb/http/logging.h",
paths = glob(_gob_cc_files),
),
core.replace(
before = "sessions.hpp",
after = "third_party/gbmcweb/include/sessions.h",
paths = glob(_gob_cc_files),
),
core.replace(
before = "random.hpp",
after = "third_party/gbmcweb/include/random.h",
paths = glob(_gob_cc_files),
),
core.replace(
before = "ip_utils.hpp",
after = "third_party/gbmcweb/redfish_core/include/utils/ip_utils.h",
paths = glob(_gob_cc_files),
),
core.replace(
before = "bmcweb_authorizer_singleton.h",
after = "third_party/milotic/internal/cc/authz/bmcweb_authorizer_singleton.h",
paths = glob(_gob_cc_files),
),
core.replace(
before = "common.hpp",
after = "third_party/gbmcweb/http/common.h",
paths = glob(_gob_cc_files),
),
core.replace(
before = "http_request.hpp",
after = "third_party/gbmcweb/http/http_request.h",
paths = glob(_gob_cc_files),
),
core.replace(
before = "managed_store_clock.hpp",
after = "third_party/milotic/internal/cc/bmcweb/managed_store_clock.h",
paths = glob(_gob_cc_files),
),
core.replace(
before = "request_stats.hpp",
after = "third_party/gbmcweb/include/request_stats.h",
paths = glob(_gob_cc_files),
),
core.replace(
before = "subscription.h",
after = "third_party/ecclesia/lib/redfish/event/server/subscription.h",
paths = glob(_gob_cc_files),
),
core.replace(
before = "http_response.hpp",
after = "third_party/gbmcweb/http/http_response.h",
paths = glob(_gob_cc_files),
),
core.replace(
before = "#include \"managed_store.hpp\"",
after = "#include \"third_party/milotic/internal/cc/bmcweb/managed_store.h\"",
paths = glob(_gob_cc_files),
),
core.replace(
before = "test/g3/mock_managed_store.hpp",
after = "third_party/milotic/internal/cc/bmcweb/mock_managed_store.h",
paths = glob(_gob_cc_files),
),
core.replace(
before = "async_resp.hpp",
after = "third_party/gbmcweb/include/async_resp.h",
paths = glob(_gob_cc_files),
),
core.replace(
before = "dbus_utility.hpp",
after = "third_party/gbmcweb/include/dbus_utility.h",
paths = glob(_gob_cc_files),
),
core.replace(
before = "privileges.hpp",
after = "third_party/gbmcweb/redfish_core/include/privileges.h",
paths = glob(_gob_cc_files),
),
core.replace(
before = "event_service_store.hpp",
after = "third_party/gbmcweb/include/event_service_store.h",
paths = glob(_gob_cc_files),
),
core.replace(
before = "http_utility.hpp",
after = "third_party/gbmcweb/include/http_utility.h",
paths = glob(_gob_cc_files),
),
core.replace(
before = "forward_unauthorized.hpp",
after = "third_party/gbmcweb/include/forward_unauthorized.h",
paths = glob(_gob_cc_files),
),
core.replace(
before = "pam_authenticate.hpp",
after = "third_party/gbmcweb/include/pam_authenticate.h",
paths = glob(_gob_cc_files),
),
core.replace(
before = "webroutes.hpp",
after = "third_party/gbmcweb/include/webroutes.h",
paths = glob(_gob_cc_files),
),
core.replace(
before = "authentication.hpp",
after = "third_party/gbmcweb/include/authentication.h",
paths = glob(_gob_cc_files),
),
core.replace(
before = "json_html_serializer.hpp",
after = "third_party/gbmcweb/include/json_html_serializer.h",
paths = glob(_gob_cc_files),
),
core.replace(
before = "mutual_tls.hpp",
after = "third_party/gbmcweb/http/mutual_tls.h",
paths = glob(_gob_cc_files),
),
core.replace(
before = "security_headers.hpp",
after = "third_party/gbmcweb/include/security_headers.h",
paths = glob(_gob_cc_files),
),
core.replace(
before = "ssl_key_handler.hpp",
after = "third_party/gbmcweb/include/ssl_key_handler.h",
paths = glob(_gob_cc_files),
),
core.replace(
before = "http_connection.hpp",
after = "third_party/gbmcweb/http/http_connection.h",
paths = glob(_gob_cc_files),
),
core.replace(
before = "async_resolve.hpp",
after = "third_party/gbmcweb/include/async_resolve.h",
paths = glob(_gob_cc_files),
),
core.replace(
before = "managed_store_types.hpp",
after = "third_party/milotic/internal/cc/bmcweb/managed_store_types.h",
paths = glob(_gob_cc_files),
),
core.replace(
before = "source_location.hpp",
after = "third_party/gbmcweb/include/source_location.h",
paths = glob(_gob_cc_files),
),
core.replace(
before = "registries/base_message_registry.hpp",
after = "third_party/gbmcweb/redfish_core/include/registries/base_message_registry.h",
paths = glob(_gob_cc_files),
),
core.replace(
before = "registries/openbmc_message_registry.hpp",
after = "third_party/gbmcweb/redfish_core/include/registries/openbmc_message_registry.h",
paths = glob(_gob_cc_files),
),
core.replace(
before = "str_utility.hpp",
after = "third_party/gbmcweb/include/str_utility.h",
paths = glob(_gob_cc_files),
),
core.replace(
before = "registries.hpp",
after = "third_party/gbmcweb/redfish_core/include/registries.h",
paths = glob(_gob_cc_files),
),
core.replace(
before = "authorizer_enums.h",
after = "third_party/ecclesia/lib/redfish/authorizer_enums.h",
paths = glob(_gob_cc_files),
),
core.replace(
before = "uri_to_entity.h",
after = "third_party/milotic/internal/cc/redfish/uri_to_entity.h",
paths = glob(_gob_cc_files),
),
core.replace(
before = "dbus_utils.hpp",
after = "third_party/gbmcweb/redfish_core/include/utils/dbus_utils.h",
paths = glob(_gob_cc_files),
),
core.replace(
# full line is best practice to avoid same name collisions (e.g.websocket.hpp from boost)
before = "#include \"websocket.hpp\"",
after = "#include \"third_party/gbmcweb/http/websocket.h\"",
paths = glob(_gob_cc_files),
),
core.replace(
before = "routing.hpp",
after = "third_party/gbmcweb/http/routing.h",
paths = glob(_gob_cc_files),
),
core.replace(
before = "error_messages.hpp",
after = "third_party/gbmcweb/redfish_core/include/error_messages.h",
paths = glob(_gob_cc_files),
),
# core.replace(
# before = "persistent_data.hpp",
# after = "third_party/gbmcweb/include/persistent_data.h",
# paths = glob(_gob_cc_files),
# ),
# core.replace(
# before = "security_headers.hpp",
# after = "third_party/gbmcweb/include/security_headers.h",
# paths = glob(_gob_cc_files),
# ),
core.replace(
before = "app_interface.h",
after = "third_party/milotic/internal/cc/bmcweb/app_interface.h",
paths = glob(_gob_cc_files),
),
core.replace(
before = "smart_router.h",
after = "third_party/milotic/internal/cc/bmcweb/smart_router.h",
paths = glob(_gob_cc_files),
),
core.replace(
before = "app.hpp",
after = "third_party/gbmcweb/http/app.h",
paths = glob(_gob_cc_files),
),
core.replace(
before = "http_server.hpp",
after = "third_party/gbmcweb/http/http_server.h",
paths = glob(_gob_cc_files),
),
core.replace(
before = "parsing.hpp",
after = "third_party/gbmcweb/http/parsing.h",
paths = glob(_gob_cc_files),
),
core.replace(
before = "openbmc_dbus_rest.hpp",
after = "third_party/gbmcweb/include/openbmc_dbus_rest.h",
paths = glob(_gob_cc_files),
),
core.replace(
before = "app_singleton.hpp",
after = "third_party/gbmcweb/http/app_singleton.h",
paths = glob(_gob_cc_files),
),
core.replace(
before = "aggregation_utils.hpp",
after = "third_party/gbmcweb/redfish_core/include/aggregation_utils.h",
paths = glob(_gob_cc_files),
),
core.replace(
before = "http_client.hpp",
after = "third_party/gbmcweb/http/http_client.h",
paths = glob(_gob_cc_files),
),
core.replace(
before = "redfish_aggregator.hpp",
after = "third_party/gbmcweb/redfish_core/include/redfish_aggregator.h",
paths = glob(_gob_cc_files),
),
core.replace(
before = "query.hpp",
after = "third_party/gbmcweb/redfish_core/include/query.h",
paths = glob(_gob_cc_files),
),
core.replace(
before = "human_sort.hpp",
after = "third_party/gbmcweb/include/human_sort.h",
paths = glob(_gob_cc_files),
),
core.replace(
before = "json_utils.hpp",
after = "third_party/gbmcweb/redfish_core/include/utils/json_utils.h",
paths = glob(_gob_cc_files),
),
core.replace(
# replace for scripts/update_schemas.py
before = "from generate_schema_collections import generate_top_collections",
after = "from google3.third_party.gbmcweb.scripts.generate_schema_collections import generate_top_collections",
paths = glob(["scripts/update_schemas.py"]),
),
core.replace(
# replace for scripts/update_schemas.py
before = "import generate_schema_enums",
after = "import google3.third_party.gbmcweb.scripts.generate_schema_enums as generate_schema_enums",
paths = glob(["scripts/update_schemas.py"]),
),
###############################
# move
###############################
# Operations are in sequence.
core.move(
before = "http/verb.hpp",
after = "google3/third_party/gbmcweb/http/verb.h",
),
core.move(
before = "test/http/verb_test.cpp",
after = "google3/third_party/gbmcweb/http/verb_test.cc",
),
core.move(
before = "http/logging.hpp",
after = "google3/third_party/gbmcweb/http/logging.h",
),
core.move(
before = "http/utility.cpp",
after = "google3/third_party/gbmcweb/http/utility.cc",
),
core.move(
before = "http/utility.hpp",
after = "google3/third_party/gbmcweb/http/utility.h",
),
core.move(
before = "test/http/utility_test.cpp",
after = "google3/third_party/gbmcweb/http/utility_test.cc",
),
core.move(
before = "http/common.hpp",
after = "google3/third_party/gbmcweb/http/common.h",
),
core.move(
before = "config/bmcweb_config.h.in",
after = "google3/third_party/gbmcweb/config/bmcweb_config.h.in",
),
core.move(
before = "config/meson.build",
after = "google3/third_party/gbmcweb/config/meson.build",
),
core.move(
before = "meson_options.txt",
after = "google3/third_party/gbmcweb/config/meson_options.txt",
),
core.move(
before = "redfish-core/include/utils/hex_utils.hpp",
after = "google3/third_party/gbmcweb/redfish_core/include/utils/hex_utils.h",
),
core.move(
before = "test/redfish-core/include/utils/hex_utils_test.cpp",
after = "google3/third_party/gbmcweb/redfish_core/include/utils/hex_utils_test.cc",
),
core.move(
before = "include/random.hpp",
after = "google3/third_party/gbmcweb/include/random.h",
),
core.move(
before = "redfish-core/include/utils/ip_utils.hpp",
after = "google3/third_party/gbmcweb/redfish_core/include/utils/ip_utils.h",
),
core.move(
before = "test/redfish-core/include/utils/ip_utils_test.cpp",
after = "google3/third_party/gbmcweb/redfish_core/include/utils/ip_utils_test.cc",
),
core.move(
before = "include/sessions.cpp",
after = "google3/third_party/gbmcweb/include/sessions.cc",
),
core.move(
before = "include/sessions.hpp",
after = "google3/third_party/gbmcweb/include/sessions.h",
),
core.move(
before = "http/http_request.cpp",
after = "google3/third_party/gbmcweb/http/http_request.cc",
),
core.move(
before = "http/http_request.hpp",
after = "google3/third_party/gbmcweb/http/http_request.h",
),
core.move(
before = "include/request_stats.hpp",
after = "google3/third_party/gbmcweb/include/request_stats.h",
),
core.move(
before = "src/request_stats.cpp",
after = "google3/third_party/gbmcweb/include/request_stats.cc",
),
core.move(
before = "test/include/request_stats_test.cpp",
after = "google3/third_party/gbmcweb/include/request_stats_test.cc",
),
core.move(
before = "http/http_response.hpp",
after = "google3/third_party/gbmcweb/http/http_response.h",
),
core.move(
before = "http/http_response.cpp",
after = "google3/third_party/gbmcweb/http/http_response.cc",
),
# core.move(
# before = "test/http/http_response_test.cpp",
# after = "google3/third_party/gbmcweb/http/http_response_test.cc",
# ),
core.move(
before = "include/async_resp.hpp",
after = "google3/third_party/gbmcweb/include/async_resp.h",
),
core.move(
before = "include/async_resp.cpp",
after = "google3/third_party/gbmcweb/include/async_resp.cc",
),
core.move(
before = "include/dbus_utility.cpp",
after = "google3/third_party/gbmcweb/include/dbus_utility.cc",
),
core.move(
before = "include/dbus_utility.hpp",
after = "google3/third_party/gbmcweb/include/dbus_utility.h",
),
core.move(
before = "test/include/dbus_utility_test.cpp",
after = "google3/third_party/gbmcweb/include/dbus_utility_test.cc",
),
core.move(
before = "http/parsing.hpp",
after = "google3/third_party/gbmcweb/http/parsing.h",
),
core.move(
before = "redfish-core/include/privileges.hpp",
after = "google3/third_party/gbmcweb/redfish_core/include/privileges.h",
),
core.move(
before = "test/redfish-core/include/privileges_test.cpp",
after = "google3/third_party/gbmcweb/redfish_core/include/privileges_test.cc",
),
core.move(
before = "include/security_headers.hpp",
after = "google3/third_party/gbmcweb/include/security_headers.h",
),
core.move(
before = "http/websocket.hpp",
after = "google3/third_party/gbmcweb/http/websocket.h",
),
core.move(
before = "include/event_service_store.hpp",
after = "google3/third_party/gbmcweb/include/event_service_store.h",
),
core.move(
before = "include/ssl_key_handler.hpp",
after = "google3/third_party/gbmcweb/include/ssl_key_handler.h",
),
core.move(
before = "http/mutual_tls.hpp",
after = "google3/third_party/gbmcweb/http/mutual_tls.h",
),
core.move(
before = "include/persistent_data.hpp",
after = "google3/third_party/gbmcweb/include/persistent_data.h",
),
core.move(
before = "include/json_html_serializer.hpp",
after = "google3/third_party/gbmcweb/include/json_html_serializer.h",
),
core.move(
before = "include/forward_unauthorized.hpp",
after = "google3/third_party/gbmcweb/include/forward_unauthorized.h",
),
core.move(
before = "include/http_utility.hpp",
after = "google3/third_party/gbmcweb/include/http_utility.h",
),
core.move(
before = "test/include/http_utility_test.cpp",
after = "google3/third_party/gbmcweb/include/http_utility_test.cc",
),
core.move(
before = "include/pam_authenticate.hpp",
after = "google3/third_party/gbmcweb/include/pam_authenticate.h",
),
core.move(
before = "include/webroutes.hpp",
after = "google3/third_party/gbmcweb/include/webroutes.h",
),
core.move(
before = "include/authentication.hpp",
after = "google3/third_party/gbmcweb/include/authentication.h",
),
core.move(
before = "include/async_resolve.hpp",
after = "google3/third_party/gbmcweb/include/async_resolve.h",
),
core.move(
before = "http/http_connection.hpp",
after = "google3/third_party/gbmcweb/http/http_connection.h",
),
core.move(
before = "http/http_server.hpp",
after = "google3/third_party/gbmcweb/http/http_server.h",
),
core.move(
before = "http/http_client.hpp",
after = "google3/third_party/gbmcweb/http/http_client.h",
),
core.move(
before = "redfish-core/include/utils/dbus_utils.hpp",
after = "google3/third_party/gbmcweb/redfish_core/include/utils/dbus_utils.h",
),
core.move(
before = "include/source_location.hpp",
after = "google3/third_party/gbmcweb/include/source_location.h",
),
core.move(
before = "include/str_utility.hpp",
after = "google3/third_party/gbmcweb/include/str_utility.h",
),
core.move(
before = "test/include/str_utility_test.cpp",
after = "google3/third_party/gbmcweb/include/str_utility_test.cc",
),
core.move(
before = "redfish-core/include/registries.hpp",
after = "google3/third_party/gbmcweb/redfish_core/include/registries.h",
),
core.move(
before = "redfish-core/src/registries.cpp",
after = "google3/third_party/gbmcweb/redfish_core/include/registries.cc",
),
core.move(
before = "test/redfish-core/include/registries_test.cpp",
after = "google3/third_party/gbmcweb/redfish_core/include/registries_test.cc",
),
core.move(
before = "redfish-core/include/error_messages.hpp",
after = "google3/third_party/gbmcweb/redfish_core/include/error_messages.h",
),
core.move(
before = "redfish-core/src/error_messages.cpp",
after = "google3/third_party/gbmcweb/redfish_core/include/error_messages.cc",
),
core.move(
before = "test/redfish-core/src/error_messages_test.cpp",
after = "google3/third_party/gbmcweb/redfish_core/include/error_messages_test.cc",
),
core.move(
before = "http/routing.hpp",
after = "google3/third_party/gbmcweb/http/routing.h",
),
core.move(
before = "http/routing.cpp",
after = "google3/third_party/gbmcweb/http/routing.cc",
),
core.move(
before = "test/http/router_test.cpp",
after = "google3/third_party/gbmcweb/http/routing_test.cc",
),
core.move(
before = "http/app.hpp",
after = "google3/third_party/gbmcweb/http/app.h",
),
core.move(
before = "http/app.cpp",
after = "google3/third_party/gbmcweb/http/app.cc",
),
core.move(
before = "test/http/crow_getroutes_test.cpp",
after = "google3/third_party/gbmcweb/http/app_get_routes_test.cc",
),
core.move(
before = "include/openbmc_dbus_rest.hpp",
after = "google3/third_party/gbmcweb/include/openbmc_dbus_rest.h",
),
core.move(
before = "test/include/openbmc_dbus_rest_test.cpp",
after = "google3/third_party/gbmcweb/include/openbmc_dbus_rest_test.cc",
),
core.move(
before = "http/app_singleton.hpp",
after = "google3/third_party/gbmcweb/http/app_singleton.h",
),
core.move(
before = "http/app_singleton.cpp",
after = "google3/third_party/gbmcweb/http/app_singleton.cc",
),
core.move(
before = "redfish-core/include/redfish_aggregator.hpp",
after = "google3/third_party/gbmcweb/redfish_core/include/redfish_aggregator.h",
),
core.move(
before = "test/redfish-core/include/redfish_aggregator_test.cpp",
after = "google3/third_party/gbmcweb/redfish_core/include/redfish_aggregator_test.cc",
),
core.move(
before = "redfish-core/include/query.hpp",
after = "google3/third_party/gbmcweb/redfish_core/include/query.h",
),
core.move(
before = "redfish-core/include/query.cpp",
after = "google3/third_party/gbmcweb/redfish_core/include/query.cc",
),
core.move(
before = "test/redfish-core/include/query_test.cpp",
after = "google3/third_party/gbmcweb/redfish_core/include/query_test.cc",
),
core.move(
before = "include/human_sort.hpp",
after = "google3/third_party/gbmcweb/include/human_sort.h",
),
core.move(
before = "test/include/human_sort_test.cpp",
after = "google3/third_party/gbmcweb/include/human_sort_test.cc",
),
core.move(
before = "redfish-core/include/utils/json_utils.hpp",
after = "google3/third_party/gbmcweb/redfish_core/include/utils/json_utils.h",
),
core.move(
before = "redfish-core/src/utils/json_utils.cpp",
after = "google3/third_party/gbmcweb/redfish_core/include/utils/json_utils.cc",
),
core.move(
before = "test/redfish-core/include/utils/json_utils_test.cpp",
after = "google3/third_party/gbmcweb/redfish_core/include/utils/json_utils_test.cc",
),
core.move(
before = "scripts/parse_registries.py",
after = "google3/third_party/gbmcweb/scripts/parse_registries.py",
),
core.move(
before = "redfish-core/include/registries/base_message_registry.hpp",
after = "google3/third_party/gbmcweb/redfish_core/include/registries/base_message_registry.h",
),
core.move(
before = "redfish-core/include/registries/openbmc_message_registry.hpp",
after = "google3/third_party/gbmcweb/redfish_core/include/registries/openbmc_message_registry.h",
),
core.move(
before = "redfish-core/include/registries/privilege_registry.hpp",
after = "google3/third_party/gbmcweb/redfish_core/include/registries/privilege_registry.h",
),
core.move(
before = "scripts/generate_schema_collections.py",
after = "google3/third_party/gbmcweb/scripts/generate_schema_collections.py",
),
core.move(
before = "scripts/generate_schema_enums.py",
after = "google3/third_party/gbmcweb/scripts/generate_schema_enums.py",
),
core.move(
before = "scripts/update_schemas.py",
after = "google3/third_party/gbmcweb/scripts/update_schemas.py",
),
core.move(
before = "redfish-core/include/aggregation_utils.hpp",
after = "google3/third_party/gbmcweb/redfish_core/include/aggregation_utils.h",
),
core.move(
before = "redfish-core/include/schemas.hpp",
after = "google3/third_party/gbmcweb/redfish_core/include/schemas.h",
),
core.transform(
transformations = [
core.move(
before = "redfish-core/include/generated/enums/${file}.hpp",
after = "google3/third_party/gbmcweb/redfish_core/include/generated/enums/${file}.h",
regex_groups = {"file": ".*"},
),
],
reversal = [
core.move(
before = "google3/third_party/gbmcweb/redfish_core/include/generated/enums/${file}.h",
after = "redfish-core/include/generated/enums/${file}.hpp",
regex_groups = {"file": ".*"},
),
],
),
core.move(
before = "LICENSE",
after = "google3/third_party/gbmcweb/LICENSE",
),
########################
# Check for leaks after last transform
########################
leakr.check(),
]
########################
# Workflows
########################
piper_sot_to_gerrit(
name_prefix = "gbmcweb",
google3_files = _google3_files_for_origin,
default_author = "gBMC Team <gbmc-core@google.com>",
allowed_authors = _allowed_authors,
contact_email = "gbmc-core+copybara@google.com",
url = "rpc://gbmc/gbmcweb",
branch = "master",
transformations = _transformations,
owner_mdb = "gbmc-git-approvers",
ci_labels = ["Presubmit"],
common_flags = {
# "--ignore-noop": [],
"--read-config-from-change": [],
},
git_files = _git_files_for_destination,
metadata_scrubber = message_scrub_google_block(),
)
# Workflow for moving changes from gerrit to google3
core.workflow(
name = "gbmcweb_gob_to_piper_reverse_workflow",
origin = git.gerrit_origin(
url = "rpc://gbmc/gbmcweb",
branch = "master",
import_wip_changes = False,
),
origin_files = _git_files_for_origin,
destination = piper.destination(
mode = "AUTO_SUBMIT",
reviewers = [
"haoooamazing@google.com",
"nanzhou@google.com",
],
cc = [
"haoooamazing@google.com",
],
),
destination_files = _google3_files_for_destination,
mode = "CHANGE_REQUEST",
# cannot pass through since vendor will not have access to google3
authoring = authoring.allowed(
default = "gBMC Team <gbmc-core@google.com>",
allowlist = [
"haoooamazing",
],
),
transformations = _reverse_transformations,
)
# automate reverse workflow
service.migration(
migration_name = "gbmcweb_gob_to_piper_reverse_workflow",
owner_mdb = "gbmc-git-approvers",
contact_email = "gbmc-core+copybara@google.com",
cns_mdb = "copybara-freebie",
notifications = service.notifications(
on_error = [service.email(address = "gbmc-core+copybara@google.com")],
),
state = "ACTIVE",
)
# feedback from critique to gerrit
critique_findings_to_gerrit(
name = "gbmcweb_piper_sot_findings_to_gerrit",
description = "Post presubmit TAP findings from Critique to the original Gerrit review",
categories = [
"Presubmit:Tests:CheckGbmcwebTap",
"Presubmit:Tests:CheckMilotic",
"Presubmit:Tests:CheckMiloticAsan",
"Presubmit:Tests:CheckMiloticMsan",
"Presubmit:Tests:CheckMiloticTsan",
],
gob_url = "rpc://gbmc/gbmcweb",
label = "Google-Verified",
checker = leakr.check(),
piper_files = _google3_files_for_destination,
)
# automate feedback (critique -> gerrit) for reverse workflow (gob->piper)
service.migration(
migration_name = "gbmcweb_piper_sot_findings_to_gerrit",
owner_mdb = "gbmc-git-approvers",
contact_email = "gbmc-core+copybara@google.com",
cns_mdb = "copybara-freebie",
notifications = service.notifications(
on_error = [service.email(address = "gbmc-core+copybara@google.com")],
),
state = "ACTIVE",
)