summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorBazaah2024-08-05 10:45:43 +0000
committerBazaah2024-08-05 10:45:43 +0000
commit3c3f9dd124f20b424ff46db8f8fe8f8332067bd8 (patch)
tree52b9a85483faa9048a05941047933920e01b7654
parentda44a9ee63653b9a935393051cd8397047e8888b (diff)
parent2423fcc6d44a7093c1d4532c9f3e6c1b4f5b8f99 (diff)
downloadaur-3c3f9dd124f20b424ff46db8f8fe8f8332067bd8.tar.gz
merge: master <--- feature/v18.2.4-1
* HEAD | \ | * 2423fcc <github@luxolus.com> pkgbuild: pkgver=18.2.4 pkgrel=1 | * b55971a <github@luxolus.com> pkgbuild: update license to use SPDX identifier | * e432e29 <github@luxolus.com> pkgbuild: add ceph-exporter.service to pkg.ceph-mgr | * 879e512 <github@luxolus.com> pkgbuild: add pkg.ceph-node-proxy | * 90b4dfa <github@luxolus.com> pkgbuild: rm included backport (mgr-dashboard-simplify-authentication-protocol) | * 5d846f6 <github@luxolus.com> pkgbuild: rm included backport (ceph-volume-check-generic-reject-reasons) | * 335c26f <github@luxolus.com> pkgbuild: rm superseded patch (tox-mypy-false-postive) | * be62f5b <github@luxolus.com> repo: rm zombie patch (delete-test-librados-asio) | / | master Signed-off-by: Bazaah <github@luxolus.com>
-rw-r--r--.SRCINFO155
-rw-r--r--PKGBUILD42
-rw-r--r--ceph-16.2.7-delete-test-librados-asio.patch26
-rw-r--r--ceph-17.2.4-tox-mypy-false-postive.patch12
-rw-r--r--ceph-18.2.2-backport-ceph-volume-check-generic-reject-reasons.patch178
-rw-r--r--ceph-18.2.2-backport-mgr-dashboard-simplify-authentication-protocol.patch323
6 files changed, 99 insertions, 637 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 07e48e2f567d..2ca96ec937c3 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,10 +1,10 @@
pkgbase = ceph
pkgdesc = Distributed, fault-tolerant storage platform delivering object, block, and file system
- pkgver = 18.2.2
- pkgrel = 4
+ pkgver = 18.2.4
+ pkgrel = 1
url = https://ceph.com/
arch = x86_64
- license = GPL
+ license = GPL-2.0-or-later OR LGPL-2.1-or-later OR LGPL-3.0-or-later
checkdepends = inetutils
checkdepends = xmlstarlet
checkdepends = python-nose
@@ -85,14 +85,13 @@ pkgbase = ceph
makedepends = python-wheel
options = emptydirs
options = !lto
- source = https://download.ceph.com/tarballs/ceph-18.2.2.tar.gz
+ source = https://download.ceph.com/tarballs/ceph-18.2.4.tar.gz
source = ceph.sysusers
source = ceph.sudoers
source = ceph-13.2.2-dont-install-sysvinit-script.patch
source = ceph-disable-empty-readable.sh-test.patch
source = ceph-17.2.5-logrotate-ignore-dups.patch
source = ceph-17.2.4-tox-flake8-git-ls-files.patch
- source = ceph-17.2.4-tox-mypy-false-postive.patch
source = ceph-17.2.4-test-bluefs-split.patch
source = ceph-17.2.4-pybind-unmock-cythonize.patch
source = ceph-17.2.5-fix-iterator-depreciations.patch
@@ -103,10 +102,8 @@ pkgbase = ceph
source = ceph-18.2.0-fmt10-fixes.patch
source = ceph-18.2.0-fix-ecode-shec-test.patch
source = ceph-18.2.0-backport-log-runway-expansion.patch
- source = ceph-18.2.2-backport-mgr-dashboard-simplify-authentication-protocol.patch
source = ceph-18.2.2-mgr-alias-ceph-bcrypt.patch
source = ceph-18.2.2-backport-ceph-volume-unbound-var.patch
- source = ceph-18.2.2-backport-ceph-volume-check-generic-reject-reasons.patch
source = ceph-18.2.2-gcc-14-fixes.patch
source = ceph-18.2.2-std-atomic-depreciations.patch
source = ceph-18.2.2-test-mempool-shard-select-disable.patch
@@ -115,14 +112,13 @@ pkgbase = ceph
source = python-bcrypt-4.1.3.tar.gz::https://github.com/pyca/bcrypt/archive/4.1.3.tar.gz
source = python-bcrypt-prefix-ceph.patch
source = python-bcrypt-allow-subinterpreters.patch
- sha512sums = 2fcd3d67512754947adc8780edbbee9498ef666056b804298cdc998a3eb4a2916c8eb7f2635fd19b78a8b98bd74cce30f969fa2ccb6860257880245c6df703fa
+ sha512sums = a4ebb4e14032e6ab8e1fd8836f39234b771cb0a4b655166e9c69493a2c0d687064af4bb35523d0501629605521854e49f5c53a56279f72810d108c76f4f88c5b
sha512sums = 4354001c1abd9a0c385ba7bd529e3638fb6660b6a88d4e49706d4ac21c81b8e829303a20fb5445730bdac18c4865efb10bc809c1cd56d743c12aa9a52e160049
sha512sums = 41dbc1c395cdf9b3edf5c5d91bbc90f416b4338ad964fa3471f26a4312d3ec2a5dcebbc351a1640dc4b047b4f71aa134ac7486747e5f62980092b0176e7567f5
sha512sums = ea069b75b786c22166c609b127b512802cc5c6e9512d792d7b7b34d276f5b86d57c8c35cfc7b5c855a59c0ba87ba1aabe2ca26da72b26bff46b6ba8410ddb27e
sha512sums = 2234d005df71b3b6013e6b76ad07a5791e3af7efec5f41c78eb1a9c92a22a67f0be9560be59b52534e90bfe251bcf32c33d5d40163f3f8f7e7420691f0f4a222
sha512sums = b12cabda7184721c494edd22250fd05019694d2bc445722d100cdefab5385bd25c2267a029d2f6053932fa6717e38c4314385afd986969ee2744d745b53c8b58
sha512sums = 31e578b240ceaaf1216b56cdce654661eed6529ef642ecad164a02669e850100a49a85dc70f3d744671e2c5dad10aee64be7d091fa33007cb8fc6788a4336799
- sha512sums = f1f549c5da829db787ee6ee3cf47912d5b48efb2533de05fd9735736e9218a78cf79c5958e1409a2c8adcca51460eb3ae7e73b5c1ec6cf73d4f07670c9934c3b
sha512sums = 5b43ba48dde8b7371d4b3976aa3a27ab3ad3a10e110479a101b8f222590bbd6aca318f3ac117f851596fc23daafb53aaa566e055dc9694ab16ab1170e8f77763
sha512sums = 781a01e622a70d56bf1948bdc0b427ffa95a86cec7dd9d26c6007a9ec024a942a8ca55f2acc3d37344862f1d6bf11cae998d8071754cd841a66bfba4ec9c58bf
sha512sums = 612faebfb5eec3651832f349ea3c23b50d2386889ff77592b0acff653049efdc5c2254f63c30d88b9a730813bf1f1945dda0d0beab0db7db3e0708ba8d057a40
@@ -133,10 +129,8 @@ pkgbase = ceph
sha512sums = 4613232e5a0003c08d233e40fe3ac1cd00e1195d29bdd9892188587b4a782d6979004232927c0a1bff554eabf2fb9b18eb751682b7ad90762292b63891f3b301
sha512sums = 9a1183c08f8799b14235c9271519203cbf93e48ca3a8607d3a0500910efca5379c8a08421c377227f93d8436a850f5ca99784f28aaa920e55f0457c657511f17
sha512sums = e238b326609636bc7dd10cec59290e22898948ef105c49643c38d2621abf16c2efcf9581b0b6bad65066607510c9827d00a7abdb14f2054701cc33b7101ea054
- sha512sums = 965f1174ed682409f5aebfe689ccc870a860f323b00dcd4c9ee079839108ee27ed4d8b42d8b59c7e3cc5fb61d554929d9f779ce224691d20b868acf7f15adb2c
sha512sums = 692b9cea0199366fdfbcaff2d9590e3a1e439b948a1a5030215e81fcc8a22ac562b3261e2057470cc8acc20f404869a5a0c4550177788dc2f824523e5267b1eb
sha512sums = 11fae8997e4df4b706245f467dc396d84f1fb48db8e569b1665a4963eb77292415a2493cae033bed23765d82269a3cd6a5bf12c1ba52e3700a63db6ad983ca5a
- sha512sums = 4e23793539043ea571aee8067e09f8caa4d5509ab2e6e2472a4f2d2fc7934f8e2d97a2993b4534e761af6b8ead90b727e4e9fbd10e28143ea7f6bb01f2eaf68e
sha512sums = 3f3a4795dfc58910972fa15a7ca8a4c3206d45351a15db66d8e93da64c7726c5f45256114b20f032d8011ab131ee20d2d8373207ad7e188a2978cf50854e10f1
sha512sums = 2c90c69b3e236622c9fb83214fe7f781c9fcb0de1b372e7837d9963780ead9c2926c347177c03fb94eb05fd838514f3afab42aa50b7c9ac800c34bf59c48b02e
sha512sums = 0ed97f2fb764ec8f7e01be45256377a6b2f451c865348b25b12ca9ef70c7120a0bf62321a9402cc4362618fde3a38ccfcd6eec738fe8cc067f17399700c273f3
@@ -148,9 +142,9 @@ pkgbase = ceph
pkgname = ceph-common
pkgdesc = Ceph Storage common libraries and dependencies
- depends = ceph-compressor=18.2.2-4
- depends = ceph-crypto=18.2.2-4
- depends = ceph-erasure=18.2.2-4
+ depends = ceph-compressor=18.2.4-1
+ depends = ceph-crypto=18.2.4-1
+ depends = ceph-erasure=18.2.4-1
depends = boost-libs
depends = curl
depends = glibc
@@ -187,7 +181,7 @@ pkgname = ceph-erasure
pkgname = ceph-tools
pkgdesc = Ceph Storage miscellaneous tooling and utilities
- depends = ceph-base=18.2.2-4
+ depends = ceph-base=18.2.4-1
depends = bash
depends = boost-libs
depends = gperftools
@@ -197,7 +191,7 @@ pkgname = ceph-tools
pkgname = ceph-test
pkgdesc = Ceph Storage tools for benchmarking and testing live clusters
- depends = ceph-base=18.2.2-4
+ depends = ceph-base=18.2.4-1
depends = libcap
depends = libaio
depends = boost-libs
@@ -207,8 +201,8 @@ pkgname = ceph-test
pkgname = ceph-volume
pkgdesc = Ceph Storage utility for preparing block devices for use as OSDs
- depends = python-ceph-common=18.2.2-4
- depends = ceph-osd=18.2.2-4
+ depends = python-ceph-common=18.2.4-1
+ depends = ceph-osd=18.2.4-1
depends = python
depends = lvm2
depends = python-setuptools
@@ -221,24 +215,28 @@ pkgname = ceph-cephadm
provides = cephadm
conflicts = cephadm
+pkgname = ceph-node-proxy
+ pkgdesc = Ceph Storage daemon for cephadm deployments to collect RedFishAPI hardware metrics
+ depends = python
+
pkgname = ceph-rados
pkgdesc = Ceph Storage utilities and tools for librados
- depends = librados=18.2.2-4
+ depends = librados=18.2.4-1
depends = gcc-libs
pkgname = ceph-base
pkgdesc = Ceph Storage cluster base utilities and configuration
- depends = ceph-common=18.2.2-4
- depends = librados=18.2.2-4
- depends = python-ceph-common=18.2.2-4
- depends = python-rados=18.2.2-4
+ depends = ceph-common=18.2.4-1
+ depends = librados=18.2.4-1
+ depends = python-ceph-common=18.2.4-1
+ depends = python-rados=18.2.4-1
depends = python
backup = etc/logrotate.d/ceph
backup = etc/sudoers.d/90-ceph
pkgname = ceph-mon
pkgdesc = Ceph Storage cluster monitor daemon, for distributed state storage via PAXOS
- depends = ceph-base=18.2.2-4
+ depends = ceph-base=18.2.4-1
depends = bash
depends = boost-libs
depends = fmt
@@ -247,10 +245,10 @@ pkgname = ceph-mon
pkgname = ceph-mgr
pkgdesc = Ceph Storage cluster manager daemon, the API gateway for cluster management
- depends = ceph-base=18.2.2-4
- depends = python-cephfs=18.2.2-4
- depends = python-rbd=18.2.2-4
- depends = libcephsqlite=18.2.2-4
+ depends = ceph-base=18.2.4-1
+ depends = python-cephfs=18.2.4-1
+ depends = python-rbd=18.2.4-1
+ depends = libcephsqlite=18.2.4-1
depends = sqlite
depends = python
depends = boost-libs
@@ -281,7 +279,7 @@ pkgname = ceph-mgr
pkgname = ceph-osd
pkgdesc = Ceph Storage cluster object storage daemon, for managing block devices
- depends = ceph-base=18.2.2-4
+ depends = ceph-base=18.2.4-1
depends = fuse3
depends = bash
depends = boost-libs
@@ -292,20 +290,21 @@ pkgname = ceph-osd
depends = systemd-libs
depends = python
optdepends = ceph-volume: For preparing block devices for OSD daemons
+ optdepends = ceph-node-proxy: For RedFishAPI hardware metrics
optdepends = smartmontools: disk monitoring via S.M.A.R.T
optdepends = nvme-cli: disk monitoring for NVMe drives
backup = etc/sysctl.d/90-ceph-osd.conf
pkgname = ceph-mds
pkgdesc = Ceph Storage cluster metadata server, the API gateway for CephFS
- depends = ceph-base=18.2.2-4
+ depends = ceph-base=18.2.4-1
depends = lua
depends = fmt
depends = gperftools
pkgname = ceph-rbd
pkgdesc = Ceph Storage utilities and tooling for librbd
- depends = librbd=18.2.2-4
+ depends = librbd=18.2.4-1
depends = libnl
depends = fmt
depends = fuse3
@@ -317,7 +316,7 @@ pkgname = ceph-rbd
pkgname = ceph-cephfs
pkgdesc = Ceph Storage utilities and tooling for libcephfs
- depends = libcephfs=18.2.2-4
+ depends = libcephfs=18.2.4-1
depends = fuse3
depends = fmt
depends = gperftools
@@ -329,7 +328,7 @@ pkgname = ceph-cephfs
pkgname = ceph-rgw
pkgdesc = Ceph Storage cluster RADOS Object Gateway daemon, for serving RESTful traffic
- depends = librgw=18.2.2-4
+ depends = librgw=18.2.4-1
depends = gawk
depends = oath-toolkit
depends = boost-libs
@@ -341,7 +340,7 @@ pkgname = ceph-rgw
pkgname = librados
pkgdesc = Ceph Storage client library to the RADOS distributed object store
- depends = ceph-common=18.2.2-4
+ depends = ceph-common=18.2.4-1
depends = bash
depends = boost-libs
depends = fmt
@@ -352,13 +351,13 @@ pkgname = librados
pkgname = libcephfs
pkgdesc = Ceph Storage client library for CephFS, a distributed POSIX filesystem
- depends = librados=18.2.2-4
+ depends = librados=18.2.4-1
depends = fmt
provides = libcephfs.so
pkgname = librbd
pkgdesc = Ceph Storage client library for RADOS block devices
- depends = librados=18.2.2-4
+ depends = librados=18.2.4-1
depends = cryptsetup
depends = fmt
provides = librbd.so
@@ -366,7 +365,7 @@ pkgname = librbd
pkgname = librgw
pkgdesc = Ceph Storage client library to RADOS Object Gateway, a S3 and Swift compatible REST API
- depends = librados=18.2.2-4
+ depends = librados=18.2.4-1
depends = librabbitmq-c
depends = lua
depends = librdkafka
@@ -377,13 +376,13 @@ pkgname = librgw
pkgname = libcephsqlite
pkgdesc = Ceph Storage client library for a RADOS backed sqlite3 VFS extension
- depends = librados=18.2.2-4
+ depends = librados=18.2.4-1
depends = fmt
provides = libcephsqlite.so
pkgname = python-ceph-common
pkgdesc = Ceph Storage python module for common classes, objects and types
- depends = ceph-common=18.2.2-4
+ depends = ceph-common=18.2.4-1
depends = python
depends = python-setuptools
depends = python-prettytable
@@ -391,81 +390,81 @@ pkgname = python-ceph-common
pkgname = python-rados
pkgdesc = Ceph Storage python library for librados
- depends = python-ceph-common=18.2.2-4
- depends = librados=18.2.2-4
+ depends = python-ceph-common=18.2.4-1
+ depends = librados=18.2.4-1
depends = libxcrypt
pkgname = python-rbd
pkgdesc = Ceph Storage python library for librbd
- depends = python-ceph-common=18.2.2-4
- depends = python-rados=18.2.2-4
- depends = librbd=18.2.2-4
+ depends = python-ceph-common=18.2.4-1
+ depends = python-rados=18.2.4-1
+ depends = librbd=18.2.4-1
depends = libxcrypt
pkgname = python-cephfs
pkgdesc = Ceph Storage python library for libcephfs
- depends = python-ceph-common=18.2.2-4
- depends = python-rados=18.2.2-4
- depends = libcephfs=18.2.2-4
+ depends = python-ceph-common=18.2.4-1
+ depends = python-rados=18.2.4-1
+ depends = libcephfs=18.2.4-1
depends = libxcrypt
pkgname = python-rgw
pkgdesc = Ceph Storage python library for librgw
- depends = python-ceph-common=18.2.2-4
- depends = python-rados=18.2.2-4
- depends = librgw=18.2.2-4
+ depends = python-ceph-common=18.2.4-1
+ depends = python-rados=18.2.4-1
+ depends = librgw=18.2.4-1
depends = libxcrypt
pkgname = cephfs-top
pkgdesc = Ceph Storage utility for a top(1) inspired curses TUI for CephFS metrics
- depends = python-ceph-common=18.2.2-4
- depends = python-cephfs=18.2.2-4
+ depends = python-ceph-common=18.2.4-1
+ depends = python-cephfs=18.2.4-1
depends = python
pkgname = cephfs-shell
pkgdesc = Ceph Storage utility for accessing a CephFS filesystem shell
- depends = python-ceph-common=18.2.2-4
- depends = python-cephfs=18.2.2-4
+ depends = python-ceph-common=18.2.4-1
+ depends = python-cephfs=18.2.4-1
depends = python
depends = python-cmd2
depends = python-colorama
pkgname = java-cephfs
pkgdesc = Ceph Storage JNI bindings for CephFS
- depends = libcephfs=18.2.2-4
+ depends = libcephfs=18.2.4-1
depends = java-runtime
pkgname = ceph
pkgdesc = Ceph Storage full install [VIRTUAL]
- depends = ceph-libs=18.2.2-4
- depends = ceph-cluster=18.2.2-4
- depends = ceph-rados=18.2.2-4
- depends = ceph-rbd=18.2.2-4
- depends = ceph-cephfs=18.2.2-4
- depends = ceph-tools=18.2.2-4
- depends = ceph-test=18.2.2-4
- depends = python-rados=18.2.2-4
- depends = python-rbd=18.2.2-4
- depends = python-cephfs=18.2.2-4
- depends = python-rgw=18.2.2-4
+ depends = ceph-libs=18.2.4-1
+ depends = ceph-cluster=18.2.4-1
+ depends = ceph-rados=18.2.4-1
+ depends = ceph-rbd=18.2.4-1
+ depends = ceph-cephfs=18.2.4-1
+ depends = ceph-tools=18.2.4-1
+ depends = ceph-test=18.2.4-1
+ depends = python-rados=18.2.4-1
+ depends = python-rbd=18.2.4-1
+ depends = python-cephfs=18.2.4-1
+ depends = python-rgw=18.2.4-1
pkgname = ceph-libs
pkgdesc = Ceph Storage client libraries [VIRTUAL]
- depends = librados=18.2.2-4
- depends = librbd=18.2.2-4
- depends = libcephfs=18.2.2-4
- depends = librgw=18.2.2-4
- depends = libcephsqlite=18.2.2-4
+ depends = librados=18.2.4-1
+ depends = librbd=18.2.4-1
+ depends = libcephfs=18.2.4-1
+ depends = librgw=18.2.4-1
+ depends = libcephsqlite=18.2.4-1
pkgname = ceph-cluster
pkgdesc = Ceph Storage cluster daemons and components [VIRTUAL]
- depends = ceph-mon=18.2.2-4
- depends = ceph-mgr=18.2.2-4
- depends = ceph-osd=18.2.2-4
- depends = ceph-mds=18.2.2-4
- depends = ceph-rgw=18.2.2-4
- depends = ceph-volume=18.2.2-4
+ depends = ceph-mon=18.2.4-1
+ depends = ceph-mgr=18.2.4-1
+ depends = ceph-osd=18.2.4-1
+ depends = ceph-mds=18.2.4-1
+ depends = ceph-rgw=18.2.4-1
+ depends = ceph-volume=18.2.4-1
pkgname = ceph-cli
pkgdesc = Ceph Storage CLI utility [VIRTUAL]
- depends = ceph-base=18.2.2-4
+ depends = ceph-base=18.2.4-1
diff --git a/PKGBUILD b/PKGBUILD
index 17249ca8d4fe..c3629a5fedf2 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -4,13 +4,13 @@
pkgbase='ceph'
pkgdesc='Distributed, fault-tolerant storage platform delivering object, block, and file system'
-pkgver=18.2.2
-pkgrel=4
+pkgver=18.2.4
+pkgrel=1
url='https://ceph.com/'
arch=('x86_64')
-license=('GPL')
+license=('GPL-2.0-or-later OR LGPL-2.1-or-later OR LGPL-3.0-or-later')
pkgname=(
- ceph-{common,compressor,crypto,erasure,tools,test,volume,cephadm}
+ ceph-{common,compressor,crypto,erasure,tools,test,volume,cephadm,node-proxy}
ceph-{rados,base,mon,mgr,osd,mds,rbd,cephfs,rgw}
lib{rados,cephfs,rbd,rgw,cephsqlite}
python-{ceph-common,rados,rbd,cephfs,rgw}
@@ -70,10 +70,6 @@ source=(
# git repo
'ceph-17.2.4-tox-flake8-git-ls-files.patch'
- # A problem with mypy versions <= 0.981 causes a false postive around numpy imports.
- # See: https://github.com/python/mypy/issues/13627
- 'ceph-17.2.4-tox-mypy-false-postive.patch'
-
# Split up a very IO heavy test suite, as otherwise test is liable to timeout
# NOTE: this is a very large patchset and will guarrented break if/when the upstream
# touches anything in src/test/objectstore
@@ -111,20 +107,12 @@ source=(
# pattern
'ceph-18.2.0-backport-log-runway-expansion.patch'
- # Backport https://github.com/ceph/ceph/pull/55689, removing the mgr dependency on
- # python-pyjwt -> python-cryptography (-> pyo3)
- # See https://github.com/bazaah/aur-ceph/issues/20 for more
- 'ceph-18.2.2-backport-mgr-dashboard-simplify-authentication-protocol.patch'
-
# Make the mgr import our ceph_bcrypt fork instead of the system bcrypt
'ceph-18.2.2-mgr-alias-ceph-bcrypt.patch'
# Backport of https://github.com/ceph/ceph/pull/53327
'ceph-18.2.2-backport-ceph-volume-unbound-var.patch'
- # Backport of https://github.com/ceph/ceph/pull/49954
- 'ceph-18.2.2-backport-ceph-volume-check-generic-reject-reasons.patch'
-
# Fix a few compile errors when using GCC14
'ceph-18.2.2-gcc-14-fixes.patch'
@@ -151,14 +139,13 @@ source=(
# Use our fork of pyo3, reenabling subinterpreter support
'python-bcrypt-allow-subinterpreters.patch'
)
-sha512sums=('2fcd3d67512754947adc8780edbbee9498ef666056b804298cdc998a3eb4a2916c8eb7f2635fd19b78a8b98bd74cce30f969fa2ccb6860257880245c6df703fa'
+sha512sums=('a4ebb4e14032e6ab8e1fd8836f39234b771cb0a4b655166e9c69493a2c0d687064af4bb35523d0501629605521854e49f5c53a56279f72810d108c76f4f88c5b'
'4354001c1abd9a0c385ba7bd529e3638fb6660b6a88d4e49706d4ac21c81b8e829303a20fb5445730bdac18c4865efb10bc809c1cd56d743c12aa9a52e160049'
'41dbc1c395cdf9b3edf5c5d91bbc90f416b4338ad964fa3471f26a4312d3ec2a5dcebbc351a1640dc4b047b4f71aa134ac7486747e5f62980092b0176e7567f5'
'ea069b75b786c22166c609b127b512802cc5c6e9512d792d7b7b34d276f5b86d57c8c35cfc7b5c855a59c0ba87ba1aabe2ca26da72b26bff46b6ba8410ddb27e'
'2234d005df71b3b6013e6b76ad07a5791e3af7efec5f41c78eb1a9c92a22a67f0be9560be59b52534e90bfe251bcf32c33d5d40163f3f8f7e7420691f0f4a222'
'b12cabda7184721c494edd22250fd05019694d2bc445722d100cdefab5385bd25c2267a029d2f6053932fa6717e38c4314385afd986969ee2744d745b53c8b58'
'31e578b240ceaaf1216b56cdce654661eed6529ef642ecad164a02669e850100a49a85dc70f3d744671e2c5dad10aee64be7d091fa33007cb8fc6788a4336799'
- 'f1f549c5da829db787ee6ee3cf47912d5b48efb2533de05fd9735736e9218a78cf79c5958e1409a2c8adcca51460eb3ae7e73b5c1ec6cf73d4f07670c9934c3b'
'5b43ba48dde8b7371d4b3976aa3a27ab3ad3a10e110479a101b8f222590bbd6aca318f3ac117f851596fc23daafb53aaa566e055dc9694ab16ab1170e8f77763'
'781a01e622a70d56bf1948bdc0b427ffa95a86cec7dd9d26c6007a9ec024a942a8ca55f2acc3d37344862f1d6bf11cae998d8071754cd841a66bfba4ec9c58bf'
'612faebfb5eec3651832f349ea3c23b50d2386889ff77592b0acff653049efdc5c2254f63c30d88b9a730813bf1f1945dda0d0beab0db7db3e0708ba8d057a40'
@@ -169,10 +156,8 @@ sha512sums=('2fcd3d67512754947adc8780edbbee9498ef666056b804298cdc998a3eb4a2916c8
'4613232e5a0003c08d233e40fe3ac1cd00e1195d29bdd9892188587b4a782d6979004232927c0a1bff554eabf2fb9b18eb751682b7ad90762292b63891f3b301'
'9a1183c08f8799b14235c9271519203cbf93e48ca3a8607d3a0500910efca5379c8a08421c377227f93d8436a850f5ca99784f28aaa920e55f0457c657511f17'
'e238b326609636bc7dd10cec59290e22898948ef105c49643c38d2621abf16c2efcf9581b0b6bad65066607510c9827d00a7abdb14f2054701cc33b7101ea054'
- '965f1174ed682409f5aebfe689ccc870a860f323b00dcd4c9ee079839108ee27ed4d8b42d8b59c7e3cc5fb61d554929d9f779ce224691d20b868acf7f15adb2c'
'692b9cea0199366fdfbcaff2d9590e3a1e439b948a1a5030215e81fcc8a22ac562b3261e2057470cc8acc20f404869a5a0c4550177788dc2f824523e5267b1eb'
'11fae8997e4df4b706245f467dc396d84f1fb48db8e569b1665a4963eb77292415a2493cae033bed23765d82269a3cd6a5bf12c1ba52e3700a63db6ad983ca5a'
- '4e23793539043ea571aee8067e09f8caa4d5509ab2e6e2472a4f2d2fc7934f8e2d97a2993b4534e761af6b8ead90b727e4e9fbd10e28143ea7f6bb01f2eaf68e'
'3f3a4795dfc58910972fa15a7ca8a4c3206d45351a15db66d8e93da64c7726c5f45256114b20f032d8011ab131ee20d2d8373207ad7e188a2978cf50854e10f1'
'2c90c69b3e236622c9fb83214fe7f781c9fcb0de1b372e7837d9963780ead9c2926c347177c03fb94eb05fd838514f3afab42aa50b7c9ac800c34bf59c48b02e'
'0ed97f2fb764ec8f7e01be45256377a6b2f451c865348b25b12ca9ef70c7120a0bf62321a9402cc4362618fde3a38ccfcd6eec738fe8cc067f17399700c273f3'
@@ -485,6 +470,7 @@ _make_ceph_packages() {
$bin/ceph-mgr \
$bin/ceph-exporter \
$systemd/ceph-mgr{.target,@.service} \
+ $systemd/ceph-exporter.service \
$share/ceph/mgr/*
_package ceph-osd \
@@ -572,6 +558,11 @@ _make_ceph_packages() {
$bin/cephfs-top \
$python/cephfs_top-*
+ _package ceph-node-proxy \
+ $bin/ceph-node-proxy \
+ $python/ceph_node_proxy \
+ $python/ceph_node_proxy-*egg-info*
+
###############################################
# Ceph misc. utils #
###############################################
@@ -842,6 +833,7 @@ package_ceph-osd() {
)
optdepends=(
'ceph-volume: For preparing block devices for OSD daemons'
+ 'ceph-node-proxy: For RedFishAPI hardware metrics'
'smartmontools: disk monitoring via S.M.A.R.T'
'nvme-cli: disk monitoring for NVMe drives'
)
@@ -1025,6 +1017,16 @@ package_cephfs-top() {
_print
}
+package_ceph-node-proxy() {
+ pkgdesc='Ceph Storage daemon for cephadm deployments to collect RedFishAPI hardware metrics'
+ depends=(
+ 'python'
+ )
+
+ mv __pkg__/$pkgname/* "$pkgdir"
+ _print
+}
+
package_ceph-cephadm() {
pkgdesc='Ceph Storage adminstration and configuration utility'
provides=('cephadm')
diff --git a/ceph-16.2.7-delete-test-librados-asio.patch b/ceph-16.2.7-delete-test-librados-asio.patch
deleted file mode 100644
index 62a5874f6f45..000000000000
--- a/ceph-16.2.7-delete-test-librados-asio.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff --git a/src/test/librados/CMakeLists.txt b/src/test/librados/CMakeLists.txt
-index e9338bbd464..f869ca4e821 100644
---- a/src/test/librados/CMakeLists.txt
-+++ b/src/test/librados/CMakeLists.txt
-@@ -58,9 +58,9 @@ add_executable(ceph_test_rados_api_aio_pp
- target_link_libraries(ceph_test_rados_api_aio_pp
- librados ${UNITTEST_LIBS} radostest-cxx)
-
--add_executable(ceph_test_rados_api_asio asio.cc)
--target_link_libraries(ceph_test_rados_api_asio global
-- librados ${UNITTEST_LIBS} Boost::coroutine Boost::context)
-+#add_executable(ceph_test_rados_api_asio asio.cc)
-+#target_link_libraries(ceph_test_rados_api_asio global
-+# librados ${UNITTEST_LIBS} Boost::coroutine Boost::context)
-
- add_executable(ceph_test_rados_api_list
- list.cc
-@@ -144,7 +144,7 @@ target_link_libraries(ceph_test_rados_api_snapshots_pp
- install(TARGETS
- ceph_test_rados_api_aio
- ceph_test_rados_api_aio_pp
-- ceph_test_rados_api_asio
-+ #ceph_test_rados_api_asio
- ceph_test_rados_api_c_read_operations
- ceph_test_rados_api_c_write_operations
- ceph_test_rados_api_cmd
diff --git a/ceph-17.2.4-tox-mypy-false-postive.patch b/ceph-17.2.4-tox-mypy-false-postive.patch
deleted file mode 100644
index 836dbd3f18fd..000000000000
--- a/ceph-17.2.4-tox-mypy-false-postive.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/src/pybind/mgr/tox.ini b/src/pybind/mgr/tox.ini
-index 85e7ae3db11..9a8d009b973 100644
---- a/src/pybind/mgr/tox.ini
-+++ b/src/pybind/mgr/tox.ini
-@@ -88,7 +88,6 @@ commands =
- -m crash \
- -m dashboard \
- -m devicehealth \
-- -m diskprediction_local \
- -m hello \
- -m influx \
- -m iostat \
diff --git a/ceph-18.2.2-backport-ceph-volume-check-generic-reject-reasons.patch b/ceph-18.2.2-backport-ceph-volume-check-generic-reject-reasons.patch
deleted file mode 100644
index e7f401ef21d3..000000000000
--- a/ceph-18.2.2-backport-ceph-volume-check-generic-reject-reasons.patch
+++ /dev/null
@@ -1,178 +0,0 @@
-From a78e660728c6c0442cdbfa65db776b5856aee933 Mon Sep 17 00:00:00 2001
-From: Kim Minjong <make.dirty.code@gmail.com>
-Date: Fri, 3 Feb 2023 11:47:47 +0900
-Subject: [PATCH 1/2] ceph-volume: fix a bug in _check_generic_reject_reasons
-
-The types of removable and ro are wrong. Here, both filters are not
-working at all. Changed this from integer to string and corrected the test
-data.
-
-Delete redundant logic in get_block_devs_sysfs. Given the name of the
-function, I think it is correct to judge from _check_generic_reject_reasons,
-and in fact it was before v17.2.4.
-
-Fixes: https://tracker.ceph.com/issues/58591
-Signed-off-by: Kim Minjong <make.dirty.code@gmail.com>
----
- .../ceph_volume/tests/util/test_device.py | 22 +++++++++----------
- src/ceph-volume/ceph_volume/util/device.py | 4 ++--
- src/ceph-volume/ceph_volume/util/disk.py | 2 --
- 3 files changed, 13 insertions(+), 15 deletions(-)
-
-diff --git a/src/ceph-volume/ceph_volume/tests/util/test_device.py b/src/ceph-volume/ceph_volume/tests/util/test_device.py
-index e382981d9232e..e2ea026286f91 100644
---- a/src/ceph-volume/ceph_volume/tests/util/test_device.py
-+++ b/src/ceph-volume/ceph_volume/tests/util/test_device.py
-@@ -241,7 +241,7 @@ def test_is_ceph_disk_member_not_available_blkid(self, fake_call, monkeypatch, p
-
- @patch("ceph_volume.util.disk.has_bluestore_label", lambda x: False)
- def test_reject_removable_device(self, fake_call, device_info):
-- data = {"/dev/sdb": {"removable": 1}}
-+ data = {"/dev/sdb": {"removable": "1"}}
- lsblk = {"TYPE": "disk", "NAME": "sdb"}
- device_info(devices=data,lsblk=lsblk)
- disk = device.Device("/dev/sdb")
-@@ -249,7 +249,7 @@ def test_reject_removable_device(self, fake_call, device_info):
-
- @patch("ceph_volume.util.disk.has_bluestore_label", lambda x: False)
- def test_reject_device_with_gpt_headers(self, fake_call, device_info):
-- data = {"/dev/sdb": {"removable": 0, "size": 5368709120}}
-+ data = {"/dev/sdb": {"removable": "0", "size": 5368709120}}
- lsblk = {"TYPE": "disk", "NAME": "sdb"}
- blkid= {"PTTYPE": "gpt"}
- device_info(
-@@ -262,7 +262,7 @@ def test_reject_device_with_gpt_headers(self, fake_call, device_info):
-
- @patch("ceph_volume.util.disk.has_bluestore_label", lambda x: False)
- def test_accept_non_removable_device(self, fake_call, device_info):
-- data = {"/dev/sdb": {"removable": 0, "size": 5368709120}}
-+ data = {"/dev/sdb": {"removable": "0", "size": 5368709120}}
- lsblk = {"TYPE": "disk", "NAME": "sdb"}
- device_info(devices=data,lsblk=lsblk)
- disk = device.Device("/dev/sdb")
-@@ -286,7 +286,7 @@ def test_accept_symlink_to_device(self,
- fake_call):
- m_os_path_islink.return_value = True
- m_os_path_realpath.return_value = '/dev/sdb'
-- data = {"/dev/sdb": {"ro": 0, "size": 5368709120}}
-+ data = {"/dev/sdb": {"ro": "0", "size": 5368709120}}
- lsblk = {"TYPE": "disk"}
- device_info(devices=data,lsblk=lsblk)
- disk = device.Device("/dev/test_symlink")
-@@ -304,7 +304,7 @@ def test_reject_symlink_to_device_mapper(self,
- fake_call):
- m_os_path_islink.return_value = True
- m_os_readlink.return_value = '/dev/dm-0'
-- data = {"/dev/mapper/mpatha": {"ro": 0, "size": 5368709120}}
-+ data = {"/dev/mapper/mpatha": {"ro": "0", "size": 5368709120}}
- lsblk = {"TYPE": "disk"}
- device_info(devices=data,lsblk=lsblk)
- disk = device.Device("/dev/mapper/mpatha")
-@@ -312,7 +312,7 @@ def test_reject_symlink_to_device_mapper(self,
-
- @patch("ceph_volume.util.disk.has_bluestore_label", lambda x: False)
- def test_reject_readonly_device(self, fake_call, device_info):
-- data = {"/dev/cdrom": {"ro": 1}}
-+ data = {"/dev/cdrom": {"ro": "1"}}
- lsblk = {"TYPE": "disk", "NAME": "cdrom"}
- device_info(devices=data,lsblk=lsblk)
- disk = device.Device("/dev/cdrom")
-@@ -328,7 +328,7 @@ def test_reject_smaller_than_5gb(self, fake_call, device_info):
-
- @patch("ceph_volume.util.disk.has_bluestore_label", lambda x: False)
- def test_accept_non_readonly_device(self, fake_call, device_info):
-- data = {"/dev/sda": {"ro": 0, "size": 5368709120}}
-+ data = {"/dev/sda": {"ro": "0", "size": 5368709120}}
- lsblk = {"TYPE": "disk", "NAME": "sda"}
- device_info(devices=data,lsblk=lsblk)
- disk = device.Device("/dev/sda")
-@@ -594,10 +594,10 @@ class TestDeviceOrdering(object):
-
- def setup_method(self):
- self.data = {
-- "/dev/sda": {"removable": 0},
-- "/dev/sdb": {"removable": 1}, # invalid
-- "/dev/sdc": {"removable": 0},
-- "/dev/sdd": {"removable": 1}, # invalid
-+ "/dev/sda": {"removable": "0"},
-+ "/dev/sdb": {"removable": "1"}, # invalid
-+ "/dev/sdc": {"removable": "0"},
-+ "/dev/sdd": {"removable": "1"}, # invalid
- }
-
- @patch("ceph_volume.util.disk.has_bluestore_label", lambda x: False)
-diff --git a/src/ceph-volume/ceph_volume/util/device.py b/src/ceph-volume/ceph_volume/util/device.py
-index d61222afe0a0b..d01d395339d4a 100644
---- a/src/ceph-volume/ceph_volume/util/device.py
-+++ b/src/ceph-volume/ceph_volume/util/device.py
-@@ -594,8 +594,8 @@ def has_partitions(self):
-
- def _check_generic_reject_reasons(self):
- reasons = [
-- ('removable', 1, 'removable'),
-- ('ro', 1, 'read-only'),
-+ ('removable', '1', 'removable'),
-+ ('ro', '1', 'read-only'),
- ]
- rejected = [reason for (k, v, reason) in reasons if
- self.sys_api.get(k, '') == v]
-diff --git a/src/ceph-volume/ceph_volume/util/disk.py b/src/ceph-volume/ceph_volume/util/disk.py
-index a96b0f0a7f84a..fa900e5da0f3a 100644
---- a/src/ceph-volume/ceph_volume/util/disk.py
-+++ b/src/ceph-volume/ceph_volume/util/disk.py
-@@ -779,8 +779,6 @@ def holder_inner_loop():
- continue
- type_ = 'disk'
- holders = os.listdir(os.path.join(_sys_block_path, dev, 'holders'))
-- if get_file_contents(os.path.join(_sys_block_path, dev, 'removable')) == "1":
-- continue
- if holder_inner_loop():
- continue
- dm_dir_path = os.path.join(_sys_block_path, dev, 'dm')
-
-From bd5e1a83495e31e457827f564c56fba23f4da8c9 Mon Sep 17 00:00:00 2001
-From: Kim Minjong <make.dirty.code@gmail.com>
-Date: Fri, 3 Feb 2023 13:57:05 +0900
-Subject: [PATCH 2/2] ceph-volume: allow removable devices but exclude USB
-
-Changed the logic to exclude USB devices to pass hot swap devices that were
-passed through before the bug.
-
-Fixes: https://tracker.ceph.com/issues/57907
-Fixes: https://tracker.ceph.com/issues/58189
-Fixes: https://tracker.ceph.com/issues/58306
-Fixes: https://tracker.ceph.com/issues/58591
-Signed-off-by: Kim Minjong <make.dirty.code@gmail.com>
----
- src/ceph-volume/ceph_volume/util/device.py | 2 +-
- src/ceph-volume/ceph_volume/util/disk.py | 4 ++++
- 2 files changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/src/ceph-volume/ceph_volume/util/device.py b/src/ceph-volume/ceph_volume/util/device.py
-index d01d395339d4a..bb806292f2c48 100644
---- a/src/ceph-volume/ceph_volume/util/device.py
-+++ b/src/ceph-volume/ceph_volume/util/device.py
-@@ -594,7 +594,7 @@ def has_partitions(self):
-
- def _check_generic_reject_reasons(self):
- reasons = [
-- ('removable', '1', 'removable'),
-+ ('id_bus', 'usb', 'id_bus'),
- ('ro', '1', 'read-only'),
- ]
- rejected = [reason for (k, v, reason) in reasons if
-diff --git a/src/ceph-volume/ceph_volume/util/disk.py b/src/ceph-volume/ceph_volume/util/disk.py
-index fa900e5da0f3a..dc1d9b1b79205 100644
---- a/src/ceph-volume/ceph_volume/util/disk.py
-+++ b/src/ceph-volume/ceph_volume/util/disk.py
-@@ -916,6 +916,10 @@ def get_devices(_sys_block_path='/sys/block', device=''):
- metadata['path'] = diskname
- metadata['type'] = block[2]
-
-+ # some facts from udevadm
-+ p = udevadm_property(sysdir)
-+ metadata['id_bus'] = p.get('ID_BUS', '')
-+
- device_facts[diskname] = metadata
- return device_facts
-
diff --git a/ceph-18.2.2-backport-mgr-dashboard-simplify-authentication-protocol.patch b/ceph-18.2.2-backport-mgr-dashboard-simplify-authentication-protocol.patch
deleted file mode 100644
index 2f398465c887..000000000000
--- a/ceph-18.2.2-backport-mgr-dashboard-simplify-authentication-protocol.patch
+++ /dev/null
@@ -1,323 +0,0 @@
-From fcbd8fdae9d80d9a9bd61838aeaf41b504a5888a Mon Sep 17 00:00:00 2001
-From: Daniel Persson <mailto.woden@gmail.com>
-Date: Wed, 29 Nov 2023 09:39:51 +0000
-Subject: [PATCH 1/3] mgr/dashboard: Simplify authentication protocol By
- removing the dependency to PyJWT we also remove the dependency to the
- cryptographic library which in the dashboard module will create a crash. In
- newer implementations of the library PyO3 is used to run rust code in order
- to encrypt with Elliptic Curves. This is never used in the dashboard
- communication so a much simpler implementation where we only use the hmac
- sha256 algorithm to create the signed JWT message could be used.
-
-Fixes: https://forum.proxmox.com/threads/ceph-warning-post-upgrade-to-v8.129371
-Signed-off-by: Daniel Persson <mailto.woden@gmail.com>
-(cherry picked from commit c616a9d017b5fcc85bb5c1556bccf4c77cc3899e)
----
- src/pybind/mgr/dashboard/constraints.txt | 1 -
- src/pybind/mgr/dashboard/exceptions.py | 12 ++++
- src/pybind/mgr/dashboard/requirements.txt | 1 -
- src/pybind/mgr/dashboard/services/auth.py | 70 ++++++++++++++++++++---
- src/pybind/mgr/dashboard/tox.ini | 1 +
- 5 files changed, 74 insertions(+), 11 deletions(-)
-
-diff --git a/src/pybind/mgr/dashboard/constraints.txt b/src/pybind/mgr/dashboard/constraints.txt
-index 55f81c92dec06..fd6141048800a 100644
---- a/src/pybind/mgr/dashboard/constraints.txt
-+++ b/src/pybind/mgr/dashboard/constraints.txt
-@@ -1,6 +1,5 @@
- CherryPy~=13.1
- more-itertools~=8.14
--PyJWT~=2.0
- bcrypt~=3.1
- python3-saml~=1.4
- requests~=2.26
-diff --git a/src/pybind/mgr/dashboard/exceptions.py b/src/pybind/mgr/dashboard/exceptions.py
-index 96cbc52335613..d396a38d2c3a2 100644
---- a/src/pybind/mgr/dashboard/exceptions.py
-+++ b/src/pybind/mgr/dashboard/exceptions.py
-@@ -121,3 +121,15 @@ class GrafanaError(Exception):
-
- class PasswordPolicyException(Exception):
- pass
-+
-+
-+class ExpiredSignatureError(Exception):
-+ pass
-+
-+
-+class InvalidTokenError(Exception):
-+ pass
-+
-+
-+class InvalidAlgorithmError(Exception):
-+ pass
-diff --git a/src/pybind/mgr/dashboard/requirements.txt b/src/pybind/mgr/dashboard/requirements.txt
-index 8003d62a5523f..292971819c9c6 100644
---- a/src/pybind/mgr/dashboard/requirements.txt
-+++ b/src/pybind/mgr/dashboard/requirements.txt
-@@ -1,7 +1,6 @@
- bcrypt
- CherryPy
- more-itertools
--PyJWT
- pyopenssl
- requests
- Routes
-diff --git a/src/pybind/mgr/dashboard/services/auth.py b/src/pybind/mgr/dashboard/services/auth.py
-index f13963abffdd4..3c6002312524d 100644
---- a/src/pybind/mgr/dashboard/services/auth.py
-+++ b/src/pybind/mgr/dashboard/services/auth.py
-@@ -1,17 +1,19 @@
- # -*- coding: utf-8 -*-
-
-+import base64
-+import hashlib
-+import hmac
- import json
- import logging
- import os
- import threading
- import time
- import uuid
--from base64 import b64encode
-
- import cherrypy
--import jwt
-
- from .. import mgr
-+from ..exceptions import ExpiredSignatureError, InvalidAlgorithmError, InvalidTokenError
- from .access_control import LocalAuthenticator, UserDoesNotExist
-
- cherrypy.config.update({
-@@ -33,7 +35,7 @@ class JwtManager(object):
- @staticmethod
- def _gen_secret():
- secret = os.urandom(16)
-- return b64encode(secret).decode('utf-8')
-+ return base64.b64encode(secret).decode('utf-8')
-
- @classmethod
- def init(cls):
-@@ -45,6 +47,54 @@ def init(cls):
- mgr.set_store('jwt_secret', secret)
- cls._secret = secret
-
-+ @classmethod
-+ def array_to_base64_string(cls, message):
-+ jsonstr = json.dumps(message, sort_keys=True).replace(" ", "")
-+ string_bytes = base64.urlsafe_b64encode(bytes(jsonstr, 'UTF-8'))
-+ return string_bytes.decode('UTF-8').replace("=", "")
-+
-+ @classmethod
-+ def encode(cls, message, secret):
-+ header = {"alg": cls.JWT_ALGORITHM, "typ": "JWT"}
-+ base64_header = cls.array_to_base64_string(header)
-+ base64_message = cls.array_to_base64_string(message)
-+ base64_secret = base64.urlsafe_b64encode(hmac.new(
-+ bytes(secret, 'UTF-8'),
-+ msg=bytes(base64_header + "." + base64_message, 'UTF-8'),
-+ digestmod=hashlib.sha256
-+ ).digest()).decode('UTF-8').replace("=", "")
-+ return base64_header + "." + base64_message + "." + base64_secret
-+
-+ @classmethod
-+ def decode(cls, message, secret):
-+ split_message = message.split(".")
-+ base64_header = split_message[0]
-+ base64_message = split_message[1]
-+ base64_secret = split_message[2]
-+
-+ decoded_header = json.loads(base64.urlsafe_b64decode(base64_header))
-+
-+ if decoded_header['alg'] != cls.JWT_ALGORITHM:
-+ raise InvalidAlgorithmError()
-+
-+ incoming_secret = base64.urlsafe_b64encode(hmac.new(
-+ bytes(secret, 'UTF-8'),
-+ msg=bytes(base64_header + "." + base64_message, 'UTF-8'),
-+ digestmod=hashlib.sha256
-+ ).digest()).decode('UTF-8').replace("=", "")
-+
-+ if base64_secret != incoming_secret:
-+ raise InvalidTokenError()
-+
-+ # We add ==== as padding to ignore the requirement to have correct padding in
-+ # the urlsafe_b64decode method.
-+ decoded_message = json.loads(base64.urlsafe_b64decode(base64_message + "===="))
-+ now = int(time.time())
-+ if decoded_message['exp'] < now:
-+ raise ExpiredSignatureError()
-+
-+ return decoded_message
-+
- @classmethod
- def gen_token(cls, username):
- if not cls._secret:
-@@ -59,13 +109,13 @@ def gen_token(cls, username):
- 'iat': now,
- 'username': username
- }
-- return jwt.encode(payload, cls._secret, algorithm=cls.JWT_ALGORITHM) # type: ignore
-+ return cls.encode(payload, cls._secret) # type: ignore
-
- @classmethod
- def decode_token(cls, token):
- if not cls._secret:
- cls.init()
-- return jwt.decode(token, cls._secret, algorithms=cls.JWT_ALGORITHM) # type: ignore
-+ return cls.decode(token, cls._secret) # type: ignore
-
- @classmethod
- def get_token_from_header(cls):
-@@ -99,8 +149,8 @@ def get_username(cls):
- @classmethod
- def get_user(cls, token):
- try:
-- dtoken = JwtManager.decode_token(token)
-- if not JwtManager.is_blocklisted(dtoken['jti']):
-+ dtoken = cls.decode_token(token)
-+ if not cls.is_blocklisted(dtoken['jti']):
- user = AuthManager.get_user(dtoken['username'])
- if user.last_update <= dtoken['iat']:
- return user
-@@ -110,10 +160,12 @@ def get_user(cls, token):
- )
- else:
- cls.logger.debug('Token is block-listed') # type: ignore
-- except jwt.ExpiredSignatureError:
-+ except ExpiredSignatureError:
- cls.logger.debug("Token has expired") # type: ignore
-- except jwt.InvalidTokenError:
-+ except InvalidTokenError:
- cls.logger.debug("Failed to decode token") # type: ignore
-+ except InvalidAlgorithmError:
-+ cls.logger.debug("Only the HS256 algorithm is supported.") # type: ignore
- except UserDoesNotExist:
- cls.logger.debug( # type: ignore
- "Invalid token: user %s does not exist", dtoken['username']
-diff --git a/src/pybind/mgr/dashboard/tox.ini b/src/pybind/mgr/dashboard/tox.ini
-index 47756e946e125..271df286ec5e8 100644
---- a/src/pybind/mgr/dashboard/tox.ini
-+++ b/src/pybind/mgr/dashboard/tox.ini
-@@ -20,6 +20,7 @@ addopts =
- deps =
- -rrequirements.txt
- -cconstraints.txt
-+ PyJWT
-
- [base-test]
- deps =
-
-From d456590743aa26d7d253b20294f5aa33544ab8a7 Mon Sep 17 00:00:00 2001
-From: Daniel Persson <mailto.woden@gmail.com>
-Date: Sun, 3 Dec 2023 08:03:47 +0000
-Subject: [PATCH 2/3] mgr/dashboard: Changes suggested after review by
- @epuertat.
-
-Move the JWT requirement to the test requirements file. Also remove JWT from ceph specification and debian build.
-
-Signed-off-by: Daniel Persson <mailto.woden@gmail.com>
-(cherry picked from commit c1ea66fe12f86e7a63681cba860fb91b1ea86e12)
----
- ceph.spec.in | 4 ----
- debian/control | 1 -
- src/pybind/mgr/dashboard/requirements-test.txt | 1 +
- src/pybind/mgr/dashboard/tox.ini | 1 -
- 4 files changed, 1 insertion(+), 6 deletions(-)
-
-diff --git a/ceph.spec.in b/ceph.spec.in
-index ff8aa5aafbff8..c4281abc5bfbb 100644
---- a/ceph.spec.in
-+++ b/ceph.spec.in
-@@ -412,7 +412,6 @@ BuildRequires: xmlsec1-nss
- BuildRequires: xmlsec1-openssl
- BuildRequires: xmlsec1-openssl-devel
- BuildRequires: python%{python3_pkgversion}-cherrypy
--BuildRequires: python%{python3_pkgversion}-jwt
- BuildRequires: python%{python3_pkgversion}-routes
- BuildRequires: python%{python3_pkgversion}-scipy
- BuildRequires: python%{python3_pkgversion}-werkzeug
-@@ -425,7 +424,6 @@ BuildRequires: libxmlsec1-1
- BuildRequires: libxmlsec1-nss1
- BuildRequires: libxmlsec1-openssl1
- BuildRequires: python%{python3_pkgversion}-CherryPy
--BuildRequires: python%{python3_pkgversion}-PyJWT
- BuildRequires: python%{python3_pkgversion}-Routes
- BuildRequires: python%{python3_pkgversion}-Werkzeug
- BuildRequires: python%{python3_pkgversion}-numpy-devel
-@@ -617,7 +615,6 @@ Requires: ceph-prometheus-alerts = %{_epoch_prefix}%{version}-%{release}
- Requires: python%{python3_pkgversion}-setuptools
- %if 0%{?fedora} || 0%{?rhel}
- Requires: python%{python3_pkgversion}-cherrypy
--Requires: python%{python3_pkgversion}-jwt
- Requires: python%{python3_pkgversion}-routes
- Requires: python%{python3_pkgversion}-werkzeug
- %if 0%{?weak_deps}
-@@ -626,7 +623,6 @@ Recommends: python%{python3_pkgversion}-saml
- %endif
- %if 0%{?suse_version}
- Requires: python%{python3_pkgversion}-CherryPy
--Requires: python%{python3_pkgversion}-PyJWT
- Requires: python%{python3_pkgversion}-Routes
- Requires: python%{python3_pkgversion}-Werkzeug
- Recommends: python%{python3_pkgversion}-python3-saml
-diff --git a/debian/control b/debian/control
-index 837a55a371670..e7b123ec381e7 100644
---- a/debian/control
-+++ b/debian/control
-@@ -91,7 +91,6 @@ Build-Depends: automake,
- python3-all-dev,
- python3-cherrypy3,
- python3-natsort,
-- python3-jwt <pkg.ceph.check>,
- python3-pecan <pkg.ceph.check>,
- python3-bcrypt <pkg.ceph.check>,
- tox <pkg.ceph.check>,
-diff --git a/src/pybind/mgr/dashboard/requirements-test.txt b/src/pybind/mgr/dashboard/requirements-test.txt
-index da283d0b64aaa..aa80b3336b540 100644
---- a/src/pybind/mgr/dashboard/requirements-test.txt
-+++ b/src/pybind/mgr/dashboard/requirements-test.txt
-@@ -2,3 +2,4 @@ pytest-cov
- pytest-instafail
- pyfakefs==4.5.0
--jsonschema
-+jsonschema~=4.0
-+PyJWT~=2.0
-diff --git a/src/pybind/mgr/dashboard/tox.ini b/src/pybind/mgr/dashboard/tox.ini
-index 271df286ec5e8..47756e946e125 100644
---- a/src/pybind/mgr/dashboard/tox.ini
-+++ b/src/pybind/mgr/dashboard/tox.ini
-@@ -20,7 +20,6 @@ addopts =
- deps =
- -rrequirements.txt
- -cconstraints.txt
-- PyJWT
-
- [base-test]
- deps =
-
-From 04b3792228415fa0320eb2e28c60e00fac68d3d8 Mon Sep 17 00:00:00 2001
-From: Daniel Persson <mailto.woden@gmail.com>
-Date: Sun, 3 Dec 2023 09:46:56 +0000
-Subject: [PATCH 3/3] mgr/dashboard: Updated test dependencies
-
-Seemed that the test dependencies was separated in two different requirements files
-one for the testing and one for linting. Added the JWT dependency in the linting file
-as well.
-
-Signed-off-by: Daniel Persson <mailto.woden@gmail.com>
-(cherry picked from commit 06765e648acb1676d5d563c631b8d8fc08b5323c)
----
- src/pybind/mgr/dashboard/requirements-lint.txt | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/pybind/mgr/dashboard/requirements-lint.txt b/src/pybind/mgr/dashboard/requirements-lint.txt
-index 57e5191574083..571c92a4ebfbc 100644
---- a/src/pybind/mgr/dashboard/requirements-lint.txt
-+++ b/src/pybind/mgr/dashboard/requirements-lint.txt
-@@ -9,3 +9,4 @@ autopep8==1.5.7
- pyfakefs==4.5.0
- isort==5.5.3
--jsonschema==4.16.0
-+jsonschema~=4.0
-+PyJWT~=2.0