From 90ace2dc7cd06c4933ee14374c9cb8076097d684 Mon Sep 17 00:00:00 2001 From: Guillaume Abrioux Date: Mon, 15 Jan 2024 14:09:23 +0000 Subject: [PATCH] node-proxy: add packaging related changes This adds the required changes to build an RPM of node-proxy. Signed-off-by: Guillaume Abrioux (cherry picked from commit 940ce782b5843ef1c0a80a74c5ad2af3f635a8b9) --- ceph.spec.in | 16 ++++++++ src/CMakeLists.txt | 1 + src/ceph-node-proxy/CMakeLists.txt | 25 ++++++++++++ src/ceph-node-proxy/MANIFEST.in | 2 + .../ceph_node_proxy/__init__.py | 2 + src/ceph-node-proxy/setup.py | 39 +++++++++++++++++++ 6 files changed, 85 insertions(+) create mode 100644 src/ceph-node-proxy/CMakeLists.txt create mode 100644 src/ceph-node-proxy/MANIFEST.in create mode 100644 src/ceph-node-proxy/setup.py diff --git a/ceph.spec.in b/ceph.spec.in index 414963e2e4c..2832129e6c0 100644 --- a/ceph.spec.in +++ b/ceph.spec.in @@ -1288,6 +1288,15 @@ Group: System/Monitoring %description mib This package provides a Ceph MIB for SNMP traps. +%package node-proxy +Summary: hw monitoring agent for Ceph +BuildArch: noarch +%if 0%{?suse_version} +Group: System/Monitoring +%endif +%description node-proxy +This package provides a Ceph hardware monitoring agent. + ################################################################################# # common ################################################################################# @@ -2620,4 +2629,11 @@ exit 0 %attr(0755,root,root) %dir %{_datadir}/snmp %{_datadir}/snmp/mibs +%files node-proxy +%{_sbindir}/ceph-node-proxy +%dir %{python3_sitelib}/ceph_node_proxy +%{python3_sitelib}/ceph_node_proxy/* +%{python3_sitelib}/ceph_node_proxy-* +#%{_mandir}/man8/ceph-node-proxy.8* + %changelog diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index e1f90f72b2d..af33d4d6aff 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -653,6 +653,7 @@ endif() if(NOT WIN32) add_subdirectory(pybind) add_subdirectory(ceph-volume) +add_subdirectory(ceph-node-proxy) add_subdirectory(python-common) add_subdirectory(cephadm) endif(NOT WIN32) diff --git a/src/ceph-node-proxy/CMakeLists.txt b/src/ceph-node-proxy/CMakeLists.txt new file mode 100644 index 00000000000..0f83b0b6caa --- /dev/null +++ b/src/ceph-node-proxy/CMakeLists.txt @@ -0,0 +1,25 @@ + +include(Distutils) + +distutils_install_module(ceph_node_proxy + INSTALL_SCRIPT ${CMAKE_INSTALL_FULL_SBINDIR}) + +# Required for running ceph-node-proxy in a vstart environment +set(CEPH_NODE_PROXY_VIRTUALENV ${CEPH_BUILD_VIRTUALENV}/ceph-node-proxy-virtualenv) + +add_custom_command( + OUTPUT ${CEPH_NODE_PROXY_VIRTUALENV}/bin/python + COMMAND ${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python=${Python3_EXECUTABLE} ${CEPH_NODE_PROXY_VIRTUALENV} + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src/ceph-node-proxy + COMMENT "ceph-node-proxy venv is being created") + +add_custom_command( + OUTPUT ${CEPH_NODE_PROXY_VIRTUALENV}/bin/ceph-node-proxy + DEPENDS ${CEPH_NODE_PROXY_VIRTUALENV}/bin/python + COMMAND . ${CEPH_NODE_PROXY_VIRTUALENV}/bin/activate && ${CEPH_NODE_PROXY_VIRTUALENV}/bin/python setup.py develop && deactivate + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src/ceph-node-proxy + COMMENT "${CMAKE_SOURCE_DIR}/src/ceph-node-proxy") + +add_custom_target(ceph-node-proxy-venv-setup + DEPENDS ${CEPH_NODE_PROXY_VIRTUALENV}/bin/ceph-node-proxy) + diff --git a/src/ceph-node-proxy/MANIFEST.in b/src/ceph-node-proxy/MANIFEST.in new file mode 100644 index 00000000000..3e6850fe101 --- /dev/null +++ b/src/ceph-node-proxy/MANIFEST.in @@ -0,0 +1,2 @@ +include bin/ceph-node-proxy + diff --git a/src/ceph-node-proxy/ceph_node_proxy/__init__.py b/src/ceph-node-proxy/ceph_node_proxy/__init__.py index e69de29bb2d..20403aa92bb 100644 --- a/src/ceph-node-proxy/ceph_node_proxy/__init__.py +++ b/src/ceph-node-proxy/ceph_node_proxy/__init__.py @@ -0,0 +1,2 @@ +__version__ = '1.0.0' +__release__ = 'squid' diff --git a/src/ceph-node-proxy/setup.py b/src/ceph-node-proxy/setup.py new file mode 100644 index 00000000000..7dcc7cdf5bf --- /dev/null +++ b/src/ceph-node-proxy/setup.py @@ -0,0 +1,39 @@ +from setuptools import setup, find_packages +import os + + +setup( + name='ceph-node-proxy', + version='1.0.0', + packages=find_packages(), + + author='', + author_email='gabrioux@ibm.com', + description='node-proxy agent to inventory and report hardware statuses.', + license='LGPLv2+', + keywords='ceph hardware inventory monitoring', + url='https://github.com/ceph/ceph', + zip_safe=False, + install_requires='ceph', + dependency_links=[''.join(['file://', os.path.join(os.getcwd(), '../', + 'python-common#egg=ceph-1.0.0')])], + tests_require=[ + 'pytest >=2.1.3', + 'tox', + 'ceph', + ], + entry_points=dict( + console_scripts=[ + 'ceph-node-proxy = ceph_node_proxy.main:main', + ], + ), + classifiers=[ + 'Environment :: Console', + 'Intended Audience :: Information Technology', + 'Intended Audience :: System Administrators', + 'Operating System :: POSIX :: Linux', + 'License :: OSI Approved :: GNU Lesser General Public License v2 or later (LGPLv2+)', + 'Programming Language :: Python', + 'Programming Language :: Python :: 3.9', + ] +) -- 2.39.5