Skip to content

Commit

Permalink
mgr/prometheus: use vendored "packaging" instead
Browse files Browse the repository at this point in the history
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 <[email protected]>
  • Loading branch information
tchaikov committed Jan 11, 2023
1 parent 58f33d8 commit cf60892
Show file tree
Hide file tree
Showing 4 changed files with 5 additions and 1 deletion.
1 change: 1 addition & 0 deletions ceph.spec.in
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
1 change: 1 addition & 0 deletions debian/ceph-mgr-modules-core.requires
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,5 @@ CherryPy
pecan
werkzeug
requests
pkg-resources
python-dateutil
3 changes: 2 additions & 1 deletion src/pybind/mgr/prometheus/module.py
Original file line number Diff line number Diff line change
@@ -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
Expand Down Expand Up @@ -32,6 +32,7 @@
# 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.
Expand Down
1 change: 1 addition & 0 deletions src/pybind/mgr/requirements-required.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,6 @@ pytest-cov==2.7.1
pyyaml
requests-mock
scipy
setuptools
werkzeug
natsort

0 comments on commit cf60892

Please sign in to comment.