]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
node-proxy: add packaging related changes
authorGuillaume Abrioux <gabrioux@ibm.com>
Mon, 15 Jan 2024 14:09:23 +0000 (14:09 +0000)
committerGuillaume Abrioux <gabrioux@ibm.com>
Thu, 25 Jan 2024 16:12:17 +0000 (16:12 +0000)
This adds the required changes to build an RPM of node-proxy.

Signed-off-by: Guillaume Abrioux <gabrioux@ibm.com>
(cherry picked from commit 940ce782b5843ef1c0a80a74c5ad2af3f635a8b9)

ceph.spec.in
src/CMakeLists.txt
src/ceph-node-proxy/CMakeLists.txt [new file with mode: 0644]
src/ceph-node-proxy/MANIFEST.in [new file with mode: 0644]
src/ceph-node-proxy/ceph_node_proxy/__init__.py
src/ceph-node-proxy/setup.py [new file with mode: 0644]

index 414963e2e4ca8f4df21976329b7bbbf1036237cb..2832129e6c05eb4cab44b5bc5a014b3e6e42e333 100644 (file)
@@ -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
index e1f90f72b2dbf7f3e7087f58bb571d27bea8c158..af33d4d6affeaae42f4f773ae94f33a790c43dce 100644 (file)
@@ -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 (file)
index 0000000..0f83b0b
--- /dev/null
@@ -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 (file)
index 0000000..3e6850f
--- /dev/null
@@ -0,0 +1,2 @@
+include bin/ceph-node-proxy
+
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..20403aa92bbf5fd1b72bba6a9f2016752997a405 100644 (file)
@@ -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 (file)
index 0000000..7dcc7cd
--- /dev/null
@@ -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',
+    ]
+)