From: Paulo E. Castro Date: Fri, 7 Feb 2025 22:04:53 +0000 (+0000) Subject: Move proto generation code block out of if(WITH_MGR_DASHBOARD_FRONTEND). X-Git-Tag: v20.0.0~169^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=37e633384b7c18893bc0e30a8f3967f6496da00b;p=ceph.git Move proto generation code block out of if(WITH_MGR_DASHBOARD_FRONTEND). - This ensures protos are built during the RPM build process. - gitignore the sourced gateway.proto file. Signed-off-by: Paulo E. Castro --- diff --git a/.gitignore b/.gitignore index e4aadc53315d5..9b18809ae32a5 100644 --- a/.gitignore +++ b/.gitignore @@ -99,5 +99,6 @@ src/pybind/rgw/rgw.c src/pybind/rgw/rgw.egg-info/ # GRPC protobuff file generation #PR 61089 +src/pybind/mgr/dashboard/services/proto/gateway.proto src/pybind/mgr/dashboard/services/proto/gateway_pb2.py src/pybind/mgr/dashboard/services/proto/gateway_pb2_grpc.py \ No newline at end of file diff --git a/src/pybind/mgr/dashboard/CMakeLists.txt b/src/pybind/mgr/dashboard/CMakeLists.txt index 9dc4ecc4a274c..02990971ebcda 100644 --- a/src/pybind/mgr/dashboard/CMakeLists.txt +++ b/src/pybind/mgr/dashboard/CMakeLists.txt @@ -1,3 +1,32 @@ +# Required for building the dashboard grpc protos at build time +set(CEPH_GRPC_VIRTUALENV ${CEPH_BUILD_VIRTUALENV}/ceph-grpc-virtualenv) +set(CEPH_NVME_GATEWAY_PROTO_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/nvmeof/gateway/control/proto) + +add_custom_command( + OUTPUT ${CEPH_GRPC_VIRTUALENV}/lib/python*/site-packages/grpc_tools + COMMAND ${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python=${Python3_EXECUTABLE} ${CEPH_GRPC_VIRTUALENV} + COMMAND ${CEPH_GRPC_VIRTUALENV}/bin/pip install grpcio-tools + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + COMMENT "grpcio-tools is being installed") + +# protobuffer files generation +add_custom_command( + OUTPUT "${CMAKE_CURRENT_SOURCE_DIR}/services/proto/gateway_pb2.py" "${CMAKE_CURRENT_SOURCE_DIR}/services/proto/gateway_pb2_grpc.py" + COMMAND cp ${CEPH_NVME_GATEWAY_PROTO_DIR}/gateway.proto dashboard/services/proto/gateway.proto + COMMAND . ${CEPH_GRPC_VIRTUALENV}/bin/activate && ${CEPH_GRPC_VIRTUALENV}/bin/python -m grpc_tools.protoc --proto_path=. --python_out=. --grpc_python_out=. dashboard/services/proto/gateway.proto && deactivate + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/.. + DEPENDS ${CEPH_NVME_GATEWAY_PROTO_DIR}/gateway.proto ${CEPH_GRPC_VIRTUALENV}/lib/python*/site-packages/grpc_tools + COMMENT "proto generation for grpc deps") +add_custom_target(mgr-dashboard-services-deps + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/services/proto/gateway_pb2.py ${CMAKE_CURRENT_SOURCE_DIR}/services/proto/gateway_pb2_grpc.py + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) + +add_custom_target(mgr-dashboard-services-build + ALL + DEPENDS mgr-dashboard-services-deps) + +add_dependencies(tests mgr-dashboard-services-build) + install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} DESTINATION ${CEPH_INSTALL_DATADIR}/mgr ${mgr_module_install_excludes} @@ -15,35 +44,6 @@ if(WITH_MGR_DASHBOARD_FRONTEND) add_tox_test(mgr-dashboard-openapi TOX_ENVS openapi-check) endif() - # Required for building the dashboard grpc protos at build time - set(CEPH_GRPC_VIRTUALENV ${CEPH_BUILD_VIRTUALENV}/ceph-grpc-virtualenv) - set(CEPH_NVME_GATEWAY_PROTO_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/nvmeof/gateway/control/proto) - - add_custom_command( - OUTPUT ${CEPH_GRPC_VIRTUALENV}/lib/python*/site-packages/grpc_tools - COMMAND ${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python=${Python3_EXECUTABLE} ${CEPH_GRPC_VIRTUALENV} - COMMAND ${CEPH_GRPC_VIRTUALENV}/bin/pip install grpcio-tools - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} - COMMENT "grpcio-tools is being installed") - - # protobuffer files generation - add_custom_command( - OUTPUT "${CMAKE_CURRENT_SOURCE_DIR}/services/proto/gateway_pb2.py" "${CMAKE_CURRENT_SOURCE_DIR}/services/proto/gateway_pb2_grpc.py" - COMMAND cp ${CEPH_NVME_GATEWAY_PROTO_DIR}/gateway.proto dashboard/services/proto/gateway.proto - COMMAND . ${CEPH_GRPC_VIRTUALENV}/bin/activate && ${CEPH_GRPC_VIRTUALENV}/bin/python -m grpc_tools.protoc --proto_path=. --python_out=. --grpc_python_out=. dashboard/services/proto/gateway.proto && deactivate - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/.. - DEPENDS ${CEPH_NVME_GATEWAY_PROTO_DIR}/gateway.proto ${CEPH_GRPC_VIRTUALENV}/lib/python*/site-packages/grpc_tools - COMMENT "proto generation for grpc deps") - add_custom_target(mgr-dashboard-services-deps - DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/services/proto/gateway_pb2.py ${CMAKE_CURRENT_SOURCE_DIR}/services/proto/gateway_pb2_grpc.py - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) - - add_custom_target(mgr-dashboard-services-build - ALL - DEPENDS mgr-dashboard-services-deps) - - add_dependencies(tests mgr-dashboard-services-build) - else() if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/frontend/dist) # prebuilt