]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/prometheus: use vendored "packaging" instead 49712/head
authorKefu Chai <tchaikov@gmail.com>
Wed, 11 Jan 2023 04:12:17 +0000 (12:12 +0800)
committerKefu Chai <tchaikov@gmail.com>
Wed, 11 Jan 2023 12:31:03 +0000 (20:31 +0800)
instead of using the top-level "packaging" module, use the one
vendored by setuptools.

packaging python module provides versioning defined by PEP-440.
but python3-packaging is provided by CentOS8 powertools repo,
which is not enabled by default. and in CentOS9, this package
is provided by AppStream instead of BaseOS.

as prometheus mgr module is included by ceph-mgr-module-core,
it would be desirable if our user can install ceph-mgr-module-core
without enabling powertools or AppStream repo on a CentOS or
its derivative distros.

fortunately, setuptools vendors packaging module. and both
CentOS8 and CentOS9 provide python3-setuptools in their BaseOS
repos.

in this change, instead of using "packging" module, we use the
venderored one, which is in turn embedded in pkg_resources.
this python module is provided by python3-setuptools on CentOS
distros, and python3-pkg-resources on Debian and its derivatives.

the packaging recipes are updated accordingly to reflect the
new runtime dependency.

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
ceph.spec.in
debian/ceph-mgr-modules-core.requires
src/pybind/mgr/prometheus/module.py
src/pybind/mgr/requirements-required.txt

index 0ace470f5786f0c17d8fdf21cd71133f7f69c1f2..b13e75ec8b290793f7639ba6b65f245915ea4ebd 100644 (file)
@@ -662,6 +662,7 @@ Requires:       python%{python3_pkgversion}-pecan
 Requires:       python%{python3_pkgversion}-pyOpenSSL
 Requires:       python%{python3_pkgversion}-requests
 Requires:       python%{python3_pkgversion}-dateutil
+Requires:       python%{python3_pkgversion}-setuptools
 %if 0%{?fedora} || 0%{?rhel} >= 8
 Requires:       python%{python3_pkgversion}-cherrypy
 Requires:       python%{python3_pkgversion}-pyyaml
index afefb97d02147eddcf1f9a01c269a53e3b6063ad..9814e67b7108cf9ba99b11ddefa1c3f5fab285c3 100644 (file)
@@ -3,4 +3,5 @@ CherryPy
 pecan
 werkzeug
 requests
+pkg-resources
 python-dateutil
index ae20e639ed88192f31ce50573d2172d0864c018a..ab083d87d1083311105b6fa03dd74f12b44e1eda 100644 (file)
@@ -1,6 +1,6 @@
 import cherrypy
 from collections import defaultdict
-from packaging.version import Version
+from pkg_resources import packaging  # type: ignore
 import json
 import math
 import os
@@ -32,6 +32,7 @@ DEFAULT_PORT = 9283
 # ipv6 isn't yet configured / supported and CherryPy throws an uncaught
 # exception.
 if cherrypy is not None:
+    Version = packaging.version.Version
     v = Version(cherrypy.__version__)
     # the issue was fixed in 3.2.3. it's present in 3.2.2 (current version on
     # centos:7) and back to at least 3.0.0.
index 1c4bbf4710b969e1b6261a1811e289e32db4657d..1fad65c626f8661d04e5238d9f06714a6bd27922 100644 (file)
@@ -12,5 +12,6 @@ pytest-cov==2.7.1
 pyyaml
 requests-mock
 scipy
+setuptools
 werkzeug
 natsort