Add ceph
This commit is contained in:
352
ceph/PKGBUILD
Normal file
352
ceph/PKGBUILD
Normal file
@@ -0,0 +1,352 @@
|
||||
# Maintainer: Thore Bödecker <foxxx0@archlinux.org>
|
||||
# Contributor: Sébastien "Seblu" Luttringer <seblu@archlinux.org>
|
||||
|
||||
# TODO
|
||||
# Dashboard (ng not found?)
|
||||
|
||||
pkgbase='ceph'
|
||||
pkgname=('ceph' 'ceph-libs' 'ceph-mgr')
|
||||
_zstdver=1.5.0
|
||||
pkgver=16.2.7
|
||||
pkgrel=1
|
||||
pkgdesc='Distributed, fault-tolerant storage platform delivering object, block, and file system'
|
||||
arch=('x86_64')
|
||||
url='https://ceph.com/'
|
||||
license=('GPL')
|
||||
makedepends=("zstd" 'bash' 'bc' 'boost' 'boost-libs' 'bzip2' 'c-ares' 'cmake' 'coreutils' 'coffeescript'
|
||||
'cpio' 'crypto++' 'cryptsetup' 'cunit' 'curl' 'cython' 'expat'
|
||||
'fcgi' 'fontconfig' 'fuse2' 'fuse3' 'fmt' 'gcc' 'gcc-libs' 'git' 'glibc' 'gmock' 'gnutls'
|
||||
'gperf' 'gperftools' 'gptfdisk' 'gtest' 'hwloc' 'inetutils' 'java-runtime'
|
||||
'jq' 'jre11-openjdk-headless' 'junit' 'keyutils' 'leveldb' 'libaio'
|
||||
'libatomic_ops' 'libcap' 'libcap-ng' 'libcroco' 'libcurl-compat'
|
||||
'libedit' 'libgudev' 'libnl' 'librabbitmq-c' 'libtool' 'util-linux'
|
||||
'libuv' 'libxml2' 'librdkafka' 'libpciaccess' 'lsb-release' 'lua' 'lz4' 'ncurses'
|
||||
'nss' 'numactl' 'oath-toolkit' 'openssl' 'parted' 'pcre' 'pcre2' 'pkgconf' 'protobuf'
|
||||
'procps-ng' 'python-astroid' 'python-attrs' 'python-bcrypt'
|
||||
'python-cheroot' 'python-cherrypy' 'python-coverage' 'python-dateutil'
|
||||
'python-elasticsearch' 'python-flask' 'python-flask-restful'
|
||||
'python-google-api-python-client' 'python-google-auth'
|
||||
'python-google-auth-httplib2' 'python-grpcio' 'python-isort'
|
||||
'python-jinja' 'python-lazy-object-proxy' 'python-mccabe'
|
||||
'python-isodate' 'python-defusedxml' 'python-pkgconfig' 'python-protobuf'
|
||||
'python-lxml' 'python-xmlsec' 'python-yaml'
|
||||
'python-more-itertools' 'python-numpy' 'python-pbr' 'python-pecan'
|
||||
'python-pip' 'python-pluggy' 'python-portend' 'python-prettytable'
|
||||
'python-prometheus_client' 'python-py' 'python-pycparser'
|
||||
'python-pyjwt' 'python-pyopenssl' 'python-pytz' 'python-requests'
|
||||
'python-routes' 'python-scikit-learn' 'python-scipy'
|
||||
'python-setuptools' 'python-six' 'python-sphinx' 'python-tempora'
|
||||
'python-virtualenv' 'python-werkzeug' 'python-wrapt' 'rabbitmq'
|
||||
'sed' 'snappy' 'socat' 'systemd' 'systemd-libs' 'valgrind'
|
||||
'xfsprogs' 'xmlstarlet' 'xmlsec' 'xxhash' 'yaml-cpp' 'yasm' 'zlib' )
|
||||
checkdepends=('python-mock' 'python-nose' 'python-pycodestyle' 'python-pylint'
|
||||
'python-pytest' 'python-pytest-cov')
|
||||
options=('emptydirs')
|
||||
source=(
|
||||
"https://download.ceph.com/tarballs/${pkgbase}-${pkgver}.tar.gz"
|
||||
'ceph.sysusers'
|
||||
"zstd-${_zstdver}.tar.gz::https://github.com/facebook/zstd/archive/v${_zstdver}.tar.gz"
|
||||
#'glibc2.32-strsignal-compat-backported.patch'
|
||||
'ceph-14.2.0-cflags.patch'
|
||||
'ceph-12.2.4-boost-build-none-options.patch'
|
||||
'ceph-13.2.0-cflags.patch'
|
||||
'ceph-13.2.2-dont-install-sysvinit-script.patch'
|
||||
# 'ceph-14.2.0-link-crc32-statically.patch'
|
||||
'ceph-14.2.0-cython-0.29.patch'
|
||||
'ceph-15.2.0-rocksdb-cmake.patch'
|
||||
'ceph-16.2.0-liburing.patch'
|
||||
# 'ceph-15.2.5-missing-includes.patch'
|
||||
'disable-empty-readable.sh-test.patch'
|
||||
|
||||
|
||||
# Add python >= 3.8 workaround logic for incompatible modules
|
||||
# This has been designated for upstream backporting into the octupus (15) and pacific (16) branches.
|
||||
# TODO: check if merged and included in next releases
|
||||
# https://tracker.ceph.com/issues/45147
|
||||
# https://github.com/ceph/ceph/pull/34846
|
||||
# 'backport_mgr_disabled_modules_workaround_PR34846.patch'
|
||||
)
|
||||
sha512sums=('SKIP'
|
||||
'4354001c1abd9a0c385ba7bd529e3638fb6660b6a88d4e49706d4ac21c81b8e829303a20fb5445730bdac18c4865efb10bc809c1cd56d743c12aa9a52e160049'
|
||||
'25b657529a698eec891f92ff4a085d1fd95d2ff938ce52c8a4ff6163eb0b668ec642dd09e0db190652638cd92371006afa01d8e437437762c4097ad301675c33'
|
||||
'9e6bb46d5bbdc5d93f4f026b2a8d6bdb692d9ea6e7018c1bb0188d95ea8574c76238d968b340fd67ddaa3d8183b310e393e3549dc3a63a795fde696413b0ca94'
|
||||
'6ff46a90d76f667fa23be0f9eb1ed2fb7e30af9a2621aec19944d0a22a431a0f5721603c588286e483ff55c14aac920adfccb039c9678a87cc59640dd70367ae'
|
||||
'8ec0d668fefee12d2c7f5b5297dd81fc6a559f5823d069e6395d9b4240110eb8f95049d3054697a459948c1f3784b4450539849cf9d7f3b1aa1c7fbd96c475df'
|
||||
'ea069b75b786c22166c609b127b512802cc5c6e9512d792d7b7b34d276f5b86d57c8c35cfc7b5c855a59c0ba87ba1aabe2ca26da72b26bff46b6ba8410ddb27e'
|
||||
'82c1608928ee669ef60b8930ce82c443152c446e669e7bde9ce32f78571afb19a9620c3818b69ac8cb3ea33e7d7ac40f77c89162c71b19b157336d907fa23e3d'
|
||||
'SKIP'
|
||||
'8258661e56b5360f4260fdd29b07bac4d415068a112b61ca8c55c529fb1593d8d61a0d59a4eec8f1567b97167c058082198d008f55f8ee701cb46489df5f7823'
|
||||
'2234d005df71b3b6013e6b76ad07a5791e3af7efec5f41c78eb1a9c92a22a67f0be9560be59b52534e90bfe251bcf32c33d5d40163f3f8f7e7420691f0f4a222'
|
||||
'79e337a78cc4bd9ed8c8ab66831b3efd5a3a34e16d2c73ecedef03d2a34c7ac65ea25641a808913cd2dc2dc0f992fac35822efe4188622add6898dce1e5f13e3'
|
||||
'4b4d0528d909fb735975db290bc8495ee626fc78d68b82b3525326cb69326cfc310c3078c529246f3d76cec590a3a7c4e92950009211590ebfe55583c4f5b71d')
|
||||
|
||||
|
||||
# -fno-plt causes linker errors (undefined reference to internal methods)
|
||||
# similar issue: https://bugs.archlinux.org/task/54845
|
||||
# https://github.com/intel/media-driver/commit/d95d8f7ab7ac94a2e0f4ee6a4b4794898dc2d3b7
|
||||
# as of today (2019-07-12) the upstream maintainers do not consider this a bug in their code
|
||||
# (IMHO rightfully so) and thus we strip the option here
|
||||
export CFLAGS="${CFLAGS/-fno-plt/}"
|
||||
export CXXFLAGS="${CXXFLAGS/-fno-plt/}"
|
||||
|
||||
|
||||
prepare() {
|
||||
cd "${srcdir}/${pkgbase}-${pkgver}"
|
||||
|
||||
# apply patches from the source array
|
||||
local filename
|
||||
for filename in "${source[@]%%::*}"; do
|
||||
if [[ "${filename}" =~ \.patch$ ]]; then
|
||||
echo "Applying patch ${filename##*/}"
|
||||
patch -p1 -N -i "${srcdir}/${filename##*/}"
|
||||
fi
|
||||
done
|
||||
|
||||
# temporarily disable unsubscriptable-object (buggy on Python 3.9)
|
||||
# https://github.com/PyCQA/pylint/issues/3882
|
||||
sed -i '/^disable=/a\ unsubscriptable-object,' \
|
||||
src/pybind/mgr/dashboard/.pylintrc
|
||||
|
||||
# mypy complains about this but the exception is handled; not sure what's up
|
||||
sed -i 's/from base64 import encodestring$/& # type: ignore/' \
|
||||
src/pybind/mgr/dashboard/awsauth.py
|
||||
|
||||
# suppress deprecation warnings
|
||||
sed -i '/#ifndef CEPH_CONFIG_H/i#define BOOST_ALLOW_DEPRECATED_HEADERS' \
|
||||
src/common/config.h
|
||||
sed -i '/#ifndef CEPH_TYPES_H/i#define BOOST_ALLOW_DEPRECATED_HEADERS' \
|
||||
src/include/types.h
|
||||
|
||||
# fix boost stuff for system-boost
|
||||
find . -name '*.cmake' -or -name 'CMakeLists.txt' -print0 | xargs --null \
|
||||
sed -r \
|
||||
-e 's|Boost::|boost_|g' \
|
||||
-e 's|Boost_|boost_|g' \
|
||||
-e 's|[Bb]oost_boost|boost_system|g' -i || exit 1
|
||||
|
||||
# remove bundled zstd and replace with newer release
|
||||
#rm -rf src/zstd
|
||||
#ln -sf "${srcdir}/zstd-${_zstdver}" src/zstd
|
||||
|
||||
# remove tests that require root privileges
|
||||
rm src/test/cli/ceph-authtool/cap*.t
|
||||
|
||||
# disable/remove broken tests
|
||||
sed -i '/add_ceph_test(smoke.sh/d' src/test/CMakeLists.txt
|
||||
sed -i '/add_ceph_test(safe-to-destroy.sh/d' src/test/osd/CMakeLists.txt
|
||||
}
|
||||
|
||||
build() {
|
||||
cd "${srcdir}/${pkgbase}-${pkgver}"
|
||||
|
||||
# workaround for boost 1.74 -- similar fix exists upstream but I could
|
||||
# not get it to work: https://github.com/ceph/ceph/commit/3d708219092d
|
||||
CPPFLAGS+=' -DBOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT'
|
||||
|
||||
export CFLAGS+=" ${CPPFLAGS}"
|
||||
export CXXFLAGS+=" ${CPPFLAGS}"
|
||||
export PYTHON_VERSION="$(python --version | awk '{print $2}')"
|
||||
export PYTHON_INCLUDE_DIR="$(python -c "from sysconfig import get_path; print(get_path('include'))")"
|
||||
export CMAKE_BUILD_TYPE='RelWithDebInfo'
|
||||
export CMAKE_WARN_UNUSED_CLI=no
|
||||
|
||||
cmake \
|
||||
-B build \
|
||||
-DCMAKE_INSTALL_PREFIX=/usr \
|
||||
-DCMAKE_INSTALL_SYSCONFDIR=/etc \
|
||||
-DCMAKE_INSTALL_SBINDIR=/usr/bin \
|
||||
-DCMAKE_INSTALL_LIBDIR=/usr/lib \
|
||||
-DCEPH_SYSTEMD_ENV_DIR=/etc/default \
|
||||
-DCMAKE_INSTALL_LIBEXECDIR=/usr/lib \
|
||||
-DCMAKE_INSTALL_SYSTEMD_SERVICEDIR=/usr/lib/systemd/system \
|
||||
-DCMAKE_VERBOSE_MAKEFILE=ON \
|
||||
-DENABLE_GIT_VERSION=ON \
|
||||
-DWITH_PYTHON2=OFF \
|
||||
-DWITH_PYTHON3="${PYTHON_VERSION}" \
|
||||
-DMGR_PYTHON_VERSION=3 \
|
||||
-DPYTHON_INCLUDE_DIR="${PYTHON_INCLUDE_DIR:?}" \
|
||||
-DWITH_BABELTRACE=OFF \
|
||||
-DWITH_LTTNG=OFF \
|
||||
-DWITH_OPENLDAP=OFF \
|
||||
-DWITH_RDMA=OFF \
|
||||
-DWITH_OCF=OFF \
|
||||
-DWITH_DPDK=OFF \
|
||||
-DWITH_SPDK=OFF \
|
||||
-DWITH_CEPHFS=ON \
|
||||
-DWITH_CEPHFS_JAVA=ON \
|
||||
-DWITH_CEPHFS_SHELL=ON \
|
||||
-DWITH_FUSE=ON \
|
||||
-DWITH_LZ4=ON \
|
||||
-DWITH_XFS=ON \
|
||||
-DWITH_MGR=ON \
|
||||
-DWITH_MGR_DASHBOARD_FRONTEND=OFF \
|
||||
-DDASHBOARD_FRONTEND_LANGS="ALL" \
|
||||
-DWITH_RADOSGW=ON \
|
||||
-DWITH_RADOSGW_FCGI_FRONTEND=OFF \
|
||||
-DWITH_RADOSGW_BEAST_FRONTEND=ON \
|
||||
-DWITH_RADOSGW_BEAST_OPENSSL=ON \
|
||||
-DWITH_RADOSGW_AMQP_ENDPOINT=OFF \
|
||||
-DWITH_LIBURING=ON \
|
||||
-DWITH_SYSTEM_LIBURING=ON \
|
||||
-DWITH_SYSTEMD=ON \
|
||||
-DWITH_SYSTEM_BOOST=ON \
|
||||
-DWITH_BOOST_CONTEXT=ON \
|
||||
-DWITH_SYSTEM_GTEST=OFF \
|
||||
-DWITH_SYSTEM_NPM=OFF \
|
||||
-DENABLE_SHARED=ON \
|
||||
-DWITH_TESTS=ON \
|
||||
-Wno-dev
|
||||
|
||||
VERBOSE=1 make -C build all
|
||||
}
|
||||
|
||||
###
|
||||
### testsuite currently broken, needs some debugging
|
||||
###
|
||||
# check() {
|
||||
# cd "${srcdir}/${pkgbase}-${pkgver}"
|
||||
#
|
||||
# export CTEST_PARALLEL_LEVEL=8
|
||||
# export CTEST_OUTPUT_ON_FAILURE=1
|
||||
# VERBOSE=1 make -C build check
|
||||
#
|
||||
# # sometimes processes are not properly terminated...
|
||||
# for process in ceph-mon ceph-mgr ceph-osd; do
|
||||
# pkill -9 "${process}" || true
|
||||
# done
|
||||
# }
|
||||
|
||||
package_ceph-libs() {
|
||||
depends=('boost-libs' 'curl' 'glibc' 'keyutils' 'libutil-linux' 'bzip2' 'lz4' 'nss'
|
||||
'oath-toolkit' 'python' 'snappy' 'systemd-libs' 'fmt')
|
||||
|
||||
cd "${srcdir}/${pkgbase}-${pkgver}"
|
||||
|
||||
# main install
|
||||
VERBOSE=1 make DESTDIR="${pkgdir}" -C build install
|
||||
|
||||
# remove stuff that goes into the ceph package
|
||||
rm -rf "${pkgdir}"/usr/lib/{ceph/mgr,systemd,sysusers.d,tmpfiles.d}
|
||||
rm -rf "${pkgdir}/usr/share"
|
||||
rm -rf "${pkgdir}/usr/sbin"
|
||||
rm -rf "${pkgdir}/usr/bin"
|
||||
rm -rf "${pkgdir}/etc"
|
||||
rm -rf "${pkgdir}/var"
|
||||
}
|
||||
|
||||
package_ceph() {
|
||||
depends=("ceph-libs=${pkgver}-${pkgrel}"
|
||||
'boost-libs' 'curl' 'fuse2' 'fuse3' 'fmt' 'glibc' 'gperftools' 'java-runtime'
|
||||
'keyutils' 'leveldb' 'libaio' 'libutil-linux' 'librdkafka'
|
||||
'lsb-release' 'ncurses'
|
||||
'nss' 'oath-toolkit' 'python' 'python-bcrypt' 'python-setuptools'
|
||||
'python-prettytable' 'python-cmd2' 'python-dateutil' 'snappy' 'sudo' 'systemd-libs'
|
||||
'python-flask' 'python-pecan' 'python-pyopenssl' 'python-requests' 'python-werkzeug' 'xfsprogs'
|
||||
'python-yaml' 'python-pyaml')
|
||||
|
||||
cd "${srcdir}/${pkgbase}-${pkgver}"
|
||||
|
||||
# main install
|
||||
VERBOSE=1 make DESTDIR="${pkgdir}" -C build install
|
||||
|
||||
# fix sbin dir (cmake opt seems to have no effect)
|
||||
mv "${pkgdir}"/usr/sbin/* "${pkgdir}/usr/bin/"
|
||||
rm -rf "${pkgdir}/usr/sbin"
|
||||
|
||||
# remove stuff that is in the ceph-libs package
|
||||
find "${pkgdir}/usr/lib" -maxdepth 1 -type f -delete
|
||||
find "${pkgdir}/usr/lib" -maxdepth 1 -type l -delete
|
||||
find "${pkgdir}/usr/lib/ceph" -maxdepth 1 -type f -delete
|
||||
find "${pkgdir}/usr/lib/ceph" -maxdepth 1 -type l -delete
|
||||
rm -rf "${pkgdir}"/usr/lib/{ceph/{compressor,crypto,erasure-code},rados-classes}
|
||||
rm -rf "${pkgdir}"/usr/lib/python*
|
||||
rm -rf "${pkgdir}/usr/include"
|
||||
|
||||
# remove stuff that is in the ceph-mgr package
|
||||
rm -rf "${pkgdir}"/usr/{bin/ceph-mgr,share/ceph/mgr,lib/systemd/system/ceph-mgr*}
|
||||
|
||||
# remove _test_ binaries from the package, not needed
|
||||
find "${pkgdir}/usr/bin" -maxdepth 1 -type f -iname 'ceph_test_*' -delete
|
||||
|
||||
# install tmpfiles.d and sysusers.d stuff
|
||||
install -Dm644 "${srcdir}/${pkgbase}-${pkgver}/systemd/ceph.tmpfiles.d" \
|
||||
"${pkgdir}/usr/lib/tmpfiles.d/${pkgbase}.conf"
|
||||
install -Dm644 "${srcdir}/ceph.sysusers" \
|
||||
"${pkgdir}/usr/lib/sysusers.d/${pkgbase}.conf"
|
||||
|
||||
# remove debian init script
|
||||
rm -rf "${pkgdir}/etc/init.d"
|
||||
|
||||
# remove drop.ceph.com ssh stuff
|
||||
rm -f "${pkgdir}"/usr/share/ceph/id_rsa_drop.ceph.com
|
||||
rm -f "${pkgdir}"/usr/share/ceph/id_rsa_drop.ceph.com.pub
|
||||
rm -f "${pkgdir}"/usr/share/ceph/known_hosts_drop.ceph.com
|
||||
|
||||
# fix bash completions path
|
||||
install -d -m 755 "${pkgdir}/usr/share/bash-completion"
|
||||
mv "${pkgdir}"/{etc/bash_completion.d,usr/share/bash-completion/completions}
|
||||
|
||||
# fix EnvironmentFile location in systemd service files
|
||||
sed -i 's|/etc/sysconfig/|/etc/conf.d/|g' "${pkgdir}"/usr/lib/systemd/system/*.service
|
||||
|
||||
# prepare some paths and set correct permissions
|
||||
install -D -d -m750 -o 0 -g 340 "${pkgdir}/etc/ceph"
|
||||
install -D -d -m750 -o 340 -g 340 "${pkgdir}/var/log/ceph"
|
||||
install -D -d -m750 -o 340 -g 340 "${pkgdir}/var/lib/ceph"
|
||||
install -D -d -m750 -o 340 -g 340 "${pkgdir}/var/lib/ceph/bootstrap-mds"
|
||||
install -D -d -m750 -o 340 -g 340 "${pkgdir}/var/lib/ceph/bootstrap-osd"
|
||||
install -D -d -m750 -o 340 -g 340 "${pkgdir}/var/lib/ceph/bootstrap-rgw"
|
||||
install -D -d -m750 -o 340 -g 340 "${pkgdir}/var/lib/ceph/mon"
|
||||
install -D -d -m750 -o 340 -g 340 "${pkgdir}/var/lib/ceph/osd"
|
||||
}
|
||||
|
||||
package_ceph-mgr() {
|
||||
depends=("ceph=${pkgver}-${pkgrel}" "ceph-libs=${pkgver}-${pkgrel}"
|
||||
'bash' 'boost-libs' 'coffeescript' 'curl' 'gperftools' 'nodejs' 'nss'
|
||||
'python' 'python-cherrypy' 'python-flask-restful' 'python-pecan'
|
||||
'python-pyjwt' 'python-routes' 'python-jsonpatch' 'python-more-itertools' 'python-numpy'
|
||||
'python-scipy' 'python-six')
|
||||
optdepends=('python-influxdb: influx module'
|
||||
'python-kubernetes: rook module'
|
||||
'python-prometheus_client: prometheus module'
|
||||
'python-remoto: ssh module')
|
||||
conflicts=('ceph<14.2.1-1')
|
||||
|
||||
cd "${srcdir}/${pkgbase}-${pkgver}"
|
||||
|
||||
# main install
|
||||
VERBOSE=1 make DESTDIR="${pkgdir}" -C build install
|
||||
|
||||
# fix sbin dir (cmake opt seems to have no effect)
|
||||
mv "${pkgdir}"/usr/sbin/* "${pkgdir}/usr/bin/"
|
||||
rm -rf "${pkgdir}/usr/sbin"
|
||||
|
||||
# remove everything except mgr related stuff, rest is in ceph/ceph-libs
|
||||
rm -rf "${pkgdir}"/usr/lib/{ceph/{compressor,crypto,erasure-code},rados-classes}
|
||||
rm -rf "${pkgdir}/usr/include"
|
||||
find "${pkgdir}/usr/bin" -maxdepth 1 -type f -not -name 'ceph-mgr' -delete
|
||||
find "${pkgdir}"/usr/lib/systemd/system -maxdepth 1 -type f -not -iname 'ceph-mgr*' -delete
|
||||
find "${pkgdir}"/usr/lib -maxdepth 1 -type f -delete
|
||||
find "${pkgdir}"/usr/lib -maxdepth 1 -type l -delete
|
||||
rm -rf "${pkgdir}"/etc
|
||||
rm -rf "${pkgdir}"/var
|
||||
rm -rf "${pkgdir}"/usr/lib/{ceph,sysusers.d,tmpfiles.d}
|
||||
rm -rf "${pkgdir}"/usr/lib/python*
|
||||
rm -rf "${pkgdir}"/usr/share/{bash-completion,doc,java,man}
|
||||
|
||||
# remove debian init script
|
||||
rm -rf "${pkgdir}/etc/init.d"
|
||||
|
||||
# remove drop.ceph.com ssh stuff
|
||||
rm -f "${pkgdir}"/usr/share/ceph/id_rsa_drop.ceph.com
|
||||
rm -f "${pkgdir}"/usr/share/ceph/id_rsa_drop.ceph.com.pub
|
||||
rm -f "${pkgdir}"/usr/share/ceph/known_hosts_drop.ceph.com
|
||||
|
||||
# fix EnvironmentFile location in systemd service files
|
||||
sed -i 's|/etc/sysconfig/|/etc/conf.d/|g' "${pkgdir}"/usr/lib/systemd/system/*.service
|
||||
|
||||
# prepare some paths and set correct permissions
|
||||
install -D -d -m750 -o 340 -g 340 "${pkgdir}/var/lib/ceph/mgr"
|
||||
}
|
||||
|
||||
# vim:set ts=2 sw=2 et:
|
207
ceph/backport_mgr_disabled_modules_workaround_PR34846.patch
Normal file
207
ceph/backport_mgr_disabled_modules_workaround_PR34846.patch
Normal file
@@ -0,0 +1,207 @@
|
||||
From 40d06ce623f19172721a2f1d5b4f4f8b642a3077 Mon Sep 17 00:00:00 2001
|
||||
From: Kefu Chai <kchai@redhat.com>
|
||||
Date: Thu, 30 Apr 2020 10:43:01 +0800
|
||||
Subject: [PATCH] mgr/PyModuleRegistry: probe modules using std::filesystem
|
||||
|
||||
for better readability
|
||||
|
||||
Signed-off-by: Kefu Chai <kchai@redhat.com>
|
||||
---
|
||||
src/mgr/PyModuleRegistry.cc | 43 +++++++++++++++++--------------------
|
||||
1 file changed, 20 insertions(+), 23 deletions(-)
|
||||
|
||||
diff --git a/src/mgr/PyModuleRegistry.cc b/src/mgr/PyModuleRegistry.cc
|
||||
index 440f7c8bafc1e..466da5d404964 100644
|
||||
--- a/src/mgr/PyModuleRegistry.cc
|
||||
+++ b/src/mgr/PyModuleRegistry.cc
|
||||
@@ -11,6 +11,17 @@
|
||||
* Foundation. See file COPYING.
|
||||
*/
|
||||
|
||||
+#include "PyModuleRegistry.h"
|
||||
+
|
||||
+#if __has_include(<filesystem>)
|
||||
+#include <filesystem>
|
||||
+namespace fs = std::filesystem;
|
||||
+#elif __has_include(<experimental/filesystem>)
|
||||
+#include <experimental/filesystem>
|
||||
+namespace fs = std::experimental::filesystem;
|
||||
+#else
|
||||
+#error std::filesystem not available!
|
||||
+#endif
|
||||
|
||||
#include "include/stringify.h"
|
||||
#include "common/errno.h"
|
||||
@@ -24,8 +35,6 @@
|
||||
|
||||
#include "ActivePyModules.h"
|
||||
|
||||
-#include "PyModuleRegistry.h"
|
||||
-
|
||||
#define dout_context g_ceph_context
|
||||
#define dout_subsys ceph_subsys_mgr
|
||||
|
||||
@@ -258,29 +267,17 @@ void PyModuleRegistry::shutdown()
|
||||
|
||||
std::set<std::string> PyModuleRegistry::probe_modules(const std::string &path) const
|
||||
{
|
||||
- DIR *dir = opendir(path.c_str());
|
||||
- if (!dir) {
|
||||
- return {};
|
||||
- }
|
||||
-
|
||||
- std::set<std::string> modules_out;
|
||||
- struct dirent *entry = NULL;
|
||||
- while ((entry = readdir(dir)) != NULL) {
|
||||
- string n(entry->d_name);
|
||||
- string fn = path + "/" + n;
|
||||
- struct stat st;
|
||||
- int r = ::stat(fn.c_str(), &st);
|
||||
- if (r == 0 && S_ISDIR(st.st_mode)) {
|
||||
- string initfn = fn + "/module.py";
|
||||
- r = ::stat(initfn.c_str(), &st);
|
||||
- if (r == 0) {
|
||||
- modules_out.insert(n);
|
||||
- }
|
||||
+ std::set<std::string> modules;
|
||||
+ for (const auto& entry: fs::directory_iterator(path)) {
|
||||
+ if (!fs::is_directory(entry)) {
|
||||
+ continue;
|
||||
+ }
|
||||
+ auto module_path = entry.path() / "module.py";
|
||||
+ if (fs::exists(module_path)) {
|
||||
+ modules.emplace(entry.path().filename());
|
||||
}
|
||||
}
|
||||
- closedir(dir);
|
||||
-
|
||||
- return modules_out;
|
||||
+ return modules;
|
||||
}
|
||||
|
||||
int PyModuleRegistry::handle_command(
|
||||
From 067adbf9a032b5de793fd0b41b071f24f075270a Mon Sep 17 00:00:00 2001
|
||||
From: Kefu Chai <kchai@redhat.com>
|
||||
Date: Thu, 30 Apr 2020 11:34:07 +0800
|
||||
Subject: [PATCH] mgr: do not load disabled modules
|
||||
|
||||
an option named "mgr_disabled_modules" is added in this change to
|
||||
prevent mgr from loading modules listed in this option. because mgr
|
||||
loads *all* modules found in the configured path, and per
|
||||
https://tracker.ceph.com/issues/45147, python subinterpreter could hang
|
||||
when loading numpy, so this behavior practically creates a deadlock
|
||||
in mgr.
|
||||
|
||||
this issue is found when mgr uses python3.8 runtime. in development
|
||||
environment, it'd be inconvenient to disable the offending mgr module
|
||||
without changing the source code, even if we can choose to not install
|
||||
them, for instance, the enduser can workaround this issue by
|
||||
uninstalling `ceph-mgr-diskprediction-local`.
|
||||
|
||||
an option would be useful in this case, so we can add the module to the
|
||||
list before mgr tries to load it.
|
||||
|
||||
as this issue is found with python3.8 + diskprediction_local (numpy), so
|
||||
this mgr module is disabled by default if mgr is compiled with python3.8
|
||||
runtime.
|
||||
|
||||
Fixes: https://tracker.ceph.com/issues/45147
|
||||
Signed-off-by: Kefu Chai <kchai@redhat.com>
|
||||
---
|
||||
CMakeLists.txt | 5 +++++
|
||||
src/common/options.cc | 14 ++++++++++++++
|
||||
src/include/config-h.in.cmake | 3 +++
|
||||
src/mgr/PyModuleRegistry.cc | 11 ++++++++++-
|
||||
4 files changed, 32 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 0f7e86414c2d2..fa00d1316bcc0 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -442,6 +442,11 @@ if(WITH_MGR)
|
||||
set(MGR_PYTHON_LIBRARIES ${Python3_LIBRARIES})
|
||||
set(MGR_PYTHON_VERSION_MAJOR ${Python3_VERSION_MAJOR})
|
||||
set(MGR_PYTHON_VERSION_MINOR ${Python3_VERSION_MINOR})
|
||||
+ # https://tracker.ceph.com/issues/45147
|
||||
+ if(Python3_VERSION VERSION_GREATER_EQUAL 3.8)
|
||||
+ set(MGR_DISABLED_MODULES "diskprediction_local")
|
||||
+ message(STATUS "mgr module disabled for ${Python3_VERSION}: ${MGR_DISABLED_MODULES}")
|
||||
+ endif()
|
||||
# Boost dependency check deferred to Boost section
|
||||
endif(WITH_MGR)
|
||||
|
||||
diff --git a/src/common/options.cc b/src/common/options.cc
|
||||
index be1e955ab51ea..c78d9b69d7591 100644
|
||||
--- a/src/common/options.cc
|
||||
+++ b/src/common/options.cc
|
||||
@@ -5169,6 +5169,20 @@ std::vector<Option> get_global_options() {
|
||||
.add_service("mgr")
|
||||
.set_description("Filesystem path to manager modules."),
|
||||
|
||||
+ Option("mgr_disabled_modules", Option::TYPE_STR, Option::LEVEL_ADVANCED)
|
||||
+#ifdef MGR_DISABLED_MODULES
|
||||
+ .set_default(MGR_DISABLED_MODULES)
|
||||
+#endif
|
||||
+ .set_flag(Option::FLAG_STARTUP)
|
||||
+ .add_service("mgr")
|
||||
+ .set_description("List of manager modules never get loaded")
|
||||
+ .set_long_description("A comma delimited list of module names. This list "
|
||||
+ "is read by manager when it starts. By default, manager loads all "
|
||||
+ "modules found in specified 'mgr_module_path', and it starts the "
|
||||
+ "enabled ones as instructed. The modules in this list will not be "
|
||||
+ "loaded at all.")
|
||||
+ .add_see_also("mgr_module_path"),
|
||||
+
|
||||
Option("mgr_initial_modules", Option::TYPE_STR, Option::LEVEL_BASIC)
|
||||
.set_default("restful iostat")
|
||||
.set_flag(Option::FLAG_NO_MON_UPDATE)
|
||||
diff --git a/src/include/config-h.in.cmake b/src/include/config-h.in.cmake
|
||||
index dc213938f5c9c..ea550c81e3a0e 100644
|
||||
--- a/src/include/config-h.in.cmake
|
||||
+++ b/src/include/config-h.in.cmake
|
||||
@@ -309,6 +309,9 @@
|
||||
|
||||
#cmakedefine MGR_PYTHON_EXECUTABLE "@MGR_PYTHON_EXECUTABLE@"
|
||||
|
||||
+/* the default value of "mgr_disabled_module" option */
|
||||
+#cmakedefine MGR_DISABLED_MODULES "@MGR_DISABLED_MODULES@"
|
||||
+
|
||||
/* Define to 1 if you have the `getprogname' function. */
|
||||
#cmakedefine HAVE_GETPROGNAME 1
|
||||
|
||||
diff --git a/src/mgr/PyModuleRegistry.cc b/src/mgr/PyModuleRegistry.cc
|
||||
index 466da5d404964..2e2e080aa76c0 100644
|
||||
--- a/src/mgr/PyModuleRegistry.cc
|
||||
+++ b/src/mgr/PyModuleRegistry.cc
|
||||
@@ -25,6 +25,7 @@ namespace fs = std::experimental::filesystem;
|
||||
|
||||
#include "include/stringify.h"
|
||||
#include "common/errno.h"
|
||||
+#include "common/split.h"
|
||||
|
||||
#include "BaseMgrModule.h"
|
||||
#include "PyOSDMap.h"
|
||||
@@ -267,14 +268,22 @@ void PyModuleRegistry::shutdown()
|
||||
|
||||
std::set<std::string> PyModuleRegistry::probe_modules(const std::string &path) const
|
||||
{
|
||||
+ const auto opt = g_conf().get_val<std::string>("mgr_disabled_modules");
|
||||
+ const auto disabled_modules = ceph::split(opt);
|
||||
+
|
||||
std::set<std::string> modules;
|
||||
for (const auto& entry: fs::directory_iterator(path)) {
|
||||
if (!fs::is_directory(entry)) {
|
||||
continue;
|
||||
}
|
||||
+ const std::string name = entry.path().filename();
|
||||
+ if (std::count(disabled_modules.begin(), disabled_modules.end(), name)) {
|
||||
+ dout(10) << "ignoring disabled module " << name << dendl;
|
||||
+ continue;
|
||||
+ }
|
||||
auto module_path = entry.path() / "module.py";
|
||||
if (fs::exists(module_path)) {
|
||||
- modules.emplace(entry.path().filename());
|
||||
+ modules.emplace(name);
|
||||
}
|
||||
}
|
||||
return modules;
|
11
ceph/boost-1.67.patch
Normal file
11
ceph/boost-1.67.patch
Normal file
@@ -0,0 +1,11 @@
|
||||
--- a/src/test/librbd/test_mock_Journal.cc 2018-06-03 01:56:35.407273176 +0300
|
||||
+++ b/src/test/librbd/test_mock_Journal.cc 2018-06-03 01:56:29.800506081 +0300
|
||||
@@ -1,6 +1,8 @@
|
||||
// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
|
||||
// vim: ts=8 sw=2 smarttab
|
||||
|
||||
+#define BOOST_BIND_NO_PLACEHOLDERS
|
||||
+
|
||||
#include "test/librbd/test_mock_fixture.h"
|
||||
#include "test/journal/mock/MockJournaler.h"
|
||||
#include "test/librbd/test_support.h"
|
26
ceph/ceph-12.2.4-boost-build-none-options.patch
Normal file
26
ceph/ceph-12.2.4-boost-build-none-options.patch
Normal file
@@ -0,0 +1,26 @@
|
||||
diff --git a/src/boost/tools/build/src/tools/features/debug-feature.jam b/src/boost/tools/build/src/tools/features/debug-feature.jam
|
||||
index 04958f9a..38b6acf1 100644
|
||||
--- a/src/boost/tools/build/src/tools/features/debug-feature.jam
|
||||
+++ b/src/boost/tools/build/src/tools/features/debug-feature.jam
|
||||
@@ -8,7 +8,7 @@
|
||||
import feature ;
|
||||
|
||||
feature.feature debug-symbols
|
||||
- : on off
|
||||
+ : on off none
|
||||
: propagated ;
|
||||
|
||||
feature.feature profiling
|
||||
diff --git a/src/boost/tools/build/src/tools/features/optimization-feature.jam b/src/boost/tools/build/src/tools/features/optimization-feature.jam
|
||||
index 761f76f1..fb2a5dec 100644
|
||||
--- a/src/boost/tools/build/src/tools/features/optimization-feature.jam
|
||||
+++ b/src/boost/tools/build/src/tools/features/optimization-feature.jam
|
||||
@@ -8,7 +8,7 @@
|
||||
import feature ;
|
||||
|
||||
feature.feature optimization
|
||||
- : off speed space
|
||||
+ : off none speed space
|
||||
: propagated ;
|
||||
|
||||
feature.feature inlining
|
26
ceph/ceph-13.2.0-cflags.patch
Normal file
26
ceph/ceph-13.2.0-cflags.patch
Normal file
@@ -0,0 +1,26 @@
|
||||
diff --git a/cmake/modules/BuildBoost.cmake b/cmake/modules/BuildBoost.cmake
|
||||
index d6572115a4..cc0bdddc9f 100644
|
||||
--- a/cmake/modules/BuildBoost.cmake
|
||||
+++ b/cmake/modules/BuildBoost.cmake
|
||||
@@ -62,7 +62,7 @@ function(do_build_boost version)
|
||||
else()
|
||||
list(APPEND boost_features "address-model=32")
|
||||
endif()
|
||||
- set(BOOST_CXXFLAGS "-fPIC -w") # check on arm, etc <---XXX
|
||||
+ set(BOOST_CXXFLAGS "${CMAKE_CXX_FLAGS} -fPIC -w") # check on arm, etc <---XXX
|
||||
list(APPEND boost_features "cxxflags=${BOOST_CXXFLAGS}")
|
||||
|
||||
list(FIND Boost_BUILD_COMPONENTS "python" with_python)
|
||||
diff --git a/src/compressor/zstd/CMakeLists.txt b/src/compressor/zstd/CMakeLists.txt
|
||||
index 5a80aa539c..8d6ff5c8f0 100644
|
||||
--- a/src/compressor/zstd/CMakeLists.txt
|
||||
+++ b/src/compressor/zstd/CMakeLists.txt
|
||||
@@ -1,7 +1,7 @@
|
||||
# zstd
|
||||
|
||||
# libzstd - build it statically
|
||||
-set(ZSTD_C_FLAGS "-fPIC -Wno-unused-variable -O3")
|
||||
+set(ZSTD_C_FLAGS "-fPIC -Wno-unused-variable $ENV{CFLAGS} -O3")
|
||||
|
||||
include(ExternalProject)
|
||||
ExternalProject_Add(zstd_ext
|
15
ceph/ceph-13.2.2-dont-install-sysvinit-script.patch
Normal file
15
ceph/ceph-13.2.2-dont-install-sysvinit-script.patch
Normal file
@@ -0,0 +1,15 @@
|
||||
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
|
||||
index 874eabfaa1..e337f4cf8e 100644
|
||||
--- a/src/CMakeLists.txt
|
||||
+++ b/src/CMakeLists.txt
|
||||
@@ -601,10 +601,6 @@ install(PROGRAMS
|
||||
${CMAKE_SOURCE_DIR}/src/ceph-run
|
||||
${CMAKE_SOURCE_DIR}/src/ceph-clsinfo
|
||||
DESTINATION bin)
|
||||
-install(PROGRAMS
|
||||
- ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/init-ceph
|
||||
- DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}/init.d
|
||||
- RENAME ceph)
|
||||
|
||||
install(FILES
|
||||
${CMAKE_SOURCE_DIR}/share/id_rsa_drop.ceph.com
|
13
ceph/ceph-14.2.0-cflags.patch
Normal file
13
ceph/ceph-14.2.0-cflags.patch
Normal file
@@ -0,0 +1,13 @@
|
||||
diff --git a/cmake/modules/Distutils.cmake b/cmake/modules/Distutils.cmake
|
||||
index 5697dff85f..7fdcfe4112 100644
|
||||
--- a/cmake/modules/Distutils.cmake
|
||||
+++ b/cmake/modules/Distutils.cmake
|
||||
@@ -61,7 +61,7 @@ function(distutils_add_cython_module name src)
|
||||
CC="${PY_CC}"
|
||||
CXX="${PY_CXX}"
|
||||
LDSHARED="${PY_LDSHARED}"
|
||||
- OPT=\"-DNDEBUG -g -fwrapv -O2 -w\"
|
||||
+ OPT=\"-DNDEBUG -g -fwrapv -w\"
|
||||
LDFLAGS=-L${CMAKE_LIBRARY_OUTPUT_DIRECTORY}
|
||||
CYTHON_BUILD_DIR=${CMAKE_CURRENT_BINARY_DIR}
|
||||
CEPH_LIBDIR=${CMAKE_LIBRARY_OUTPUT_DIRECTORY}
|
17
ceph/ceph-14.2.0-cython-0.29.patch
Normal file
17
ceph/ceph-14.2.0-cython-0.29.patch
Normal file
@@ -0,0 +1,17 @@
|
||||
--- ceph-13.2.1/cmake/modules/Distutils.cmake.old 2018-07-26 17:39:56.000000000 -0000
|
||||
+++ ceph-13.2.1/cmake/modules/Distutils.cmake 2018-12-24 05:43:51.566174070 -0000
|
||||
@@ -58,8 +62,13 @@
|
||||
function(distutils_install_cython_module name)
|
||||
get_property(compiler_launcher GLOBAL PROPERTY RULE_LAUNCH_COMPILE)
|
||||
get_property(link_launcher GLOBAL PROPERTY RULE_LAUNCH_LINK)
|
||||
- set(PY_CC "${compiler_launcher} ${CMAKE_C_COMPILER}")
|
||||
+ string(REPLACE " " ";" cflags ${CMAKE_C_FLAGS})
|
||||
+ list(APPEND cflags -iquote${CMAKE_SOURCE_DIR}/src/include -w)
|
||||
+ list(APPEND cflags -D'void0=dead_function\(void\)')
|
||||
+ list(APPEND cflags -D'__Pyx_check_single_interpreter\(ARG\)=ARG \#\# 0')
|
||||
+ string(REPLACE ";" " " cflags "${cflags}")
|
||||
+ set(PY_CC "${compiler_launcher} ${CMAKE_C_COMPILER} ${cflags}")
|
||||
set(PY_LDSHARED "${link_launcher} ${CMAKE_C_COMPILER} -shared")
|
||||
install(CODE "
|
||||
set(ENV{CC} \"${PY_CC}\")
|
||||
set(ENV{LDSHARED} \"${PY_LDSHARED}\")
|
11
ceph/ceph-14.2.0-link-crc32-statically.patch
Normal file
11
ceph/ceph-14.2.0-link-crc32-statically.patch
Normal file
@@ -0,0 +1,11 @@
|
||||
--- ceph-14.2.0.orig/src/common/CMakeLists.txt 2019-03-18 04:08:29.000000000 -0600
|
||||
+++ ceph-14.2.0/src/common/CMakeLists.txt 2019-03-21 18:42:32.903182824 -0600
|
||||
@@ -165,7 +165,7 @@
|
||||
crc32c_aarch64.c)
|
||||
endif(HAVE_INTEL)
|
||||
|
||||
-add_library(crc32 ${crc32_srcs})
|
||||
+add_library(crc32 STATIC ${crc32_srcs})
|
||||
if(HAVE_ARMV8_CRC)
|
||||
set_target_properties(crc32 PROPERTIES
|
||||
COMPILE_FLAGS "${CMAKE_C_FLAGS} ${ARMV8_CRC_COMPILE_FLAGS}")
|
15
ceph/ceph-15.2.0-rocksdb-cmake.patch
Normal file
15
ceph/ceph-15.2.0-rocksdb-cmake.patch
Normal file
@@ -0,0 +1,15 @@
|
||||
diff --git a/cmake/modules/BuildRocksDB.cmake b/cmake/modules/BuildRocksDB.cmake
|
||||
index de9748878b..4b86b36d35 100644
|
||||
--- a/cmake/modules/BuildRocksDB.cmake
|
||||
+++ b/cmake/modules/BuildRocksDB.cmake
|
||||
@@ -6,10 +6,6 @@ function(build_rocksdb)
|
||||
# CMAKE_PREFIX_PATH, for which reason we'll have to use some other separator.
|
||||
string(REPLACE ";" "!" CMAKE_PREFIX_PATH_ALT_SEP "${CMAKE_PREFIX_PATH}")
|
||||
list(APPEND rocksdb_CMAKE_ARGS -DCMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH_ALT_SEP})
|
||||
- if(CMAKE_TOOLCHAIN_FILE)
|
||||
- list(APPEND rocksdb_CMAKE_ARGS
|
||||
- -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE})
|
||||
- endif()
|
||||
|
||||
if(ALLOCATOR STREQUAL "jemalloc")
|
||||
list(APPEND rocksdb_CMAKE_ARGS -DWITH_JEMALLOC=ON)
|
12
ceph/ceph-15.2.5-missing-includes.patch
Normal file
12
ceph/ceph-15.2.5-missing-includes.patch
Normal file
@@ -0,0 +1,12 @@
|
||||
diff --git a/src/tools/rbd/action/Bench.cc b/src/tools/rbd/action/Bench.cc
|
||||
index aa6edbc18b..90c551c179 100644
|
||||
--- a/src/tools/rbd/action/Bench.cc
|
||||
+++ b/src/tools/rbd/action/Bench.cc
|
||||
@@ -9,6 +9,7 @@
|
||||
#include "common/ceph_mutex.h"
|
||||
#include "include/types.h"
|
||||
#include "global/signal_handler.h"
|
||||
+#include <atomic>
|
||||
#include <iostream>
|
||||
#include <boost/accumulators/accumulators.hpp>
|
||||
#include <boost/accumulators/statistics/stats.hpp>
|
13
ceph/ceph-16.2.0-boost-string.patch
Normal file
13
ceph/ceph-16.2.0-boost-string.patch
Normal file
@@ -0,0 +1,13 @@
|
||||
diff --git a/src/ceph-16.2.7/src/rgw/rgw_string.h b/src/ceph-16.2.7/src/rgw/rgw_string.h
|
||||
index 257daa9..90e64f9 100644
|
||||
--- a/src/ceph-16.2.7/src/rgw/rgw_string.h
|
||||
+++ b/tmp/rgw_string.h
|
||||
@@ -8,6 +8,8 @@
|
||||
#include <stdlib.h>
|
||||
#include <limits.h>
|
||||
#include <string_view>
|
||||
+#include <string>
|
||||
+#include <stdexcept>
|
||||
|
||||
#include <boost/container/small_vector.hpp>
|
||||
|
35
ceph/ceph-16.2.0-liburing.patch
Normal file
35
ceph/ceph-16.2.0-liburing.patch
Normal file
@@ -0,0 +1,35 @@
|
||||
diff --git a/cmake/modules/Finduring.cmake b/cmake/modules/Finduring.cmake
|
||||
index 10c8de4255..c0a4dadfe4 100644
|
||||
--- a/cmake/modules/Finduring.cmake
|
||||
+++ b/cmake/modules/Finduring.cmake
|
||||
@@ -8,10 +8,10 @@ find_path(URING_INCLUDE_DIR liburing.h)
|
||||
find_library(URING_LIBRARIES liburing.a liburing)
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
-find_package_handle_standard_args(uring DEFAULT_MSG URING_LIBRARIES URING_INCLUDE_DIR)
|
||||
+pkg_check_modules(URING REQUIRED liburing)
|
||||
|
||||
if(uring_FOUND AND NOT TARGET uring::uring)
|
||||
- add_library(uring::uring UNKNOWN IMPORTED)
|
||||
+ add_library(uring::uring ALIAS ${URING_LIBRARIES})
|
||||
set_target_properties(uring::uring PROPERTIES
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${URING_INCLUDE_DIR}"
|
||||
IMPORTED_LINK_INTERFACE_LANGUAGES "C"
|
||||
diff --git a/src/blk/CMakeLists.txt b/src/blk/CMakeLists.txt
|
||||
index dc4f9b82ae..e39d690394 100644
|
||||
--- a/src/blk/CMakeLists.txt
|
||||
+++ b/src/blk/CMakeLists.txt
|
||||
@@ -52,10 +52,11 @@ endif()
|
||||
|
||||
if(WITH_LIBURING)
|
||||
if(WITH_SYSTEM_LIBURING)
|
||||
- find_package(uring REQUIRED)
|
||||
+ list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}../../cmake/modules/")
|
||||
+ pkg_check_modules(URING REQUIRED liburing)
|
||||
else()
|
||||
include(Builduring)
|
||||
build_uring()
|
||||
endif()
|
||||
- target_link_libraries(blk PRIVATE uring::uring)
|
||||
+ target_link_libraries(blk PRIVATE ${URING_LIBRARIES})
|
||||
endif()
|
1
ceph/ceph.sysusers
Normal file
1
ceph/ceph.sysusers
Normal file
@@ -0,0 +1 @@
|
||||
u ceph 340 - /run/ceph
|
13
ceph/disable-broken-mgr-dashboard-test.patch
Normal file
13
ceph/disable-broken-mgr-dashboard-test.patch
Normal file
@@ -0,0 +1,13 @@
|
||||
--- a/src/test/CMakeLists.txt 2019-12-06 17:42:34.000000000 +0100
|
||||
+++ b/src/test/CMakeLists.txt 2020-01-04 09:55:50.703888545 +0100
|
||||
@@ -555,8 +555,8 @@ set(env_vars_for_tox_tests
|
||||
WITH_PYTHON3=${WITH_PYTHON3})
|
||||
|
||||
if(WITH_MGR)
|
||||
- add_test(NAME run-tox-mgr-dashboard COMMAND bash ${CMAKE_SOURCE_DIR}/src/pybind/mgr/dashboard/run-tox.sh)
|
||||
- list(APPEND tox_tests run-tox-mgr-dashboard)
|
||||
+ # add_test(NAME run-tox-mgr-dashboard COMMAND bash ${CMAKE_SOURCE_DIR}/src/pybind/mgr/dashboard/run-tox.sh)
|
||||
+ # list(APPEND tox_tests run-tox-mgr-dashboard)
|
||||
set(MGR_DASHBOARD_VIRTUALENV ${CEPH_BUILD_VIRTUALENV}/mgr-dashboard-virtualenv)
|
||||
list(APPEND env_vars_for_tox_tests MGR_DASHBOARD_VIRTUALENV=${MGR_DASHBOARD_VIRTUALENV})
|
||||
|
6
ceph/disable-empty-readable.sh-test.patch
Normal file
6
ceph/disable-empty-readable.sh-test.patch
Normal file
@@ -0,0 +1,6 @@
|
||||
--- a/src/test/encoding/CMakeLists.txt 2019-04-25 20:15:48.000000000 +0200
|
||||
+++ b/src/test/encoding/CMakeLists.txt 2019-07-14 21:11:37.380428899 +0200
|
||||
@@ -1,3 +1,2 @@
|
||||
# scripts
|
||||
add_ceph_test(check-generated.sh ${CMAKE_CURRENT_SOURCE_DIR}/check-generated.sh)
|
||||
-add_ceph_test(readable.sh ${CMAKE_CURRENT_SOURCE_DIR}/readable.sh)
|
11
ceph/exclude-frontend-from-mgr-dashboard-cov.patch
Normal file
11
ceph/exclude-frontend-from-mgr-dashboard-cov.patch
Normal file
@@ -0,0 +1,11 @@
|
||||
--- a/src/pybind/mgr/dashboard/tox.ini 2019-12-06 17:42:34.000000000 +0100
|
||||
+++ c/src/pybind/mgr/dashboard/tox.ini 2020-01-03 15:25:30.074706391 +0100
|
||||
@@ -20,7 +20,7 @@ commands=
|
||||
py27: pip install -r {toxinidir}/requirements-py27.txt
|
||||
py3: pip install -r {toxinidir}/requirements-py3.txt
|
||||
cov: coverage erase
|
||||
- cov: {envbindir}/py.test --cov=. --cov-report= --junitxml=junit.{envname}.xml --doctest-modules controllers services/ tests/ tools.py
|
||||
+ cov: {envbindir}/py.test --cov=. --cov-report= --junitxml=junit.{envname}.xml --ignore=frontend/ --doctest-modules controllers services/ tests/ tools.py
|
||||
cov: coverage combine {toxinidir}/{env:COVERAGE_FILE}
|
||||
cov: coverage report
|
||||
cov: coverage xml
|
8
ceph/fix-ceph_disk-python-interpreter.patch
Normal file
8
ceph/fix-ceph_disk-python-interpreter.patch
Normal file
@@ -0,0 +1,8 @@
|
||||
--- a/src/ceph-disk/ceph_disk/main.py 2017-08-28 18:30:20.000000000 +0200
|
||||
+++ b/src/ceph-disk/ceph_disk/main.py 2017-09-21 13:50:39.373573382 +0200
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/env python
|
||||
+#!/usr/bin/env python2
|
||||
#
|
||||
# Copyright (C) 2015, 2016, 2017 Red Hat <contact@redhat.com>
|
||||
# Copyright (C) 2014 Inktank <info@inktank.com>
|
50
ceph/fix-mgr-dashboard-frontend-unittests-dist-stuff.patch
Normal file
50
ceph/fix-mgr-dashboard-frontend-unittests-dist-stuff.patch
Normal file
@@ -0,0 +1,50 @@
|
||||
--- a/src/pybind/mgr/dashboard/run-frontend-unittests.sh 2020-01-08 19:36:54.000000000 +0100
|
||||
+++ b/src/pybind/mgr/dashboard/run-frontend-unittests.sh 2020-01-10 15:18:39.646510326 +0100
|
||||
@@ -8,7 +8,7 @@ if [ `uname` != "FreeBSD" ]; then
|
||||
fi
|
||||
|
||||
# Build
|
||||
-npm run build -- --prod --progress=false || failed=true
|
||||
+#npm run build -- --prod --progress=false || failed=true
|
||||
|
||||
# Unit Tests
|
||||
config='src/unit-test-configuration.ts'
|
||||
@@ -25,22 +25,22 @@ if [ -e ${config}_old ]; then
|
||||
fi
|
||||
|
||||
# Linting
|
||||
-npm run lint --silent
|
||||
-if [ $? -gt 0 ]; then
|
||||
- failed=true
|
||||
- echo -e "\nTry running 'npm run fix' to fix some linting errors. \
|
||||
-Some errors might need a manual fix."
|
||||
-fi
|
||||
-
|
||||
-# I18N
|
||||
-npm run i18n:extract
|
||||
-i18n_lint=`awk '/<source> |<source>$| <\/source>/,/<\/context-group>/ {printf "%-4s ", NR; print}' src/locale/messages.xlf`
|
||||
-if [[ ! -z $i18n_lint ]]; then
|
||||
- echo -e "The following source translations in 'messages.xlf' need to be \
|
||||
-fixed, please check the I18N suggestions in 'HACKING.rst':\n"
|
||||
- echo "${i18n_lint}"
|
||||
- failed=true
|
||||
-fi
|
||||
+# npm run lint --silent
|
||||
+# if [ $? -gt 0 ]; then
|
||||
+# failed=true
|
||||
+# echo -e "\nTry running 'npm run fix' to fix some linting errors. \
|
||||
+# Some errors might need a manual fix."
|
||||
+# fi
|
||||
+#
|
||||
+# # I18N
|
||||
+# npm run i18n:extract
|
||||
+# i18n_lint=`awk '/<source> |<source>$| <\/source>/,/<\/context-group>/ {printf "%-4s ", NR; print}' src/locale/messages.xlf`
|
||||
+# if [[ ! -z $i18n_lint ]]; then
|
||||
+# echo -e "The following source translations in 'messages.xlf' need to be \
|
||||
+# fixed, please check the I18N suggestions in 'HACKING.rst':\n"
|
||||
+# echo "${i18n_lint}"
|
||||
+# failed=true
|
||||
+# fi
|
||||
|
||||
if [ `uname` != "FreeBSD" ]; then
|
||||
deactivate
|
18
ceph/fix-mgr-dashboard-partial_dict.patch
Normal file
18
ceph/fix-mgr-dashboard-partial_dict.patch
Normal file
@@ -0,0 +1,18 @@
|
||||
--- a/src/pybind/mgr/dashboard/controllers/health.py 2020-11-17 19:12:53.000000000 +0100
|
||||
+++ b/src/pybind/mgr/dashboard/controllers/health.py 2020-11-22 22:13:44.115751086 +0100
|
||||
@@ -11,10 +11,14 @@
|
||||
from ..services.ceph_service import CephService
|
||||
from ..services.iscsi_cli import IscsiGatewaysConfig
|
||||
from ..services.iscsi_client import IscsiClient
|
||||
-from ..tools import partial_dict
|
||||
+#from ..tools import partial_dict
|
||||
from .host import get_hosts
|
||||
|
||||
|
||||
+def partial_dict(orig, keys):
|
||||
+ return {k: orig[k] for k in keys}
|
||||
+
|
||||
+
|
||||
class HealthData(object):
|
||||
"""
|
||||
A class to be used in combination with BaseController to allow either
|
52
ceph/fix-python2-paths.patch
Normal file
52
ceph/fix-python2-paths.patch
Normal file
@@ -0,0 +1,52 @@
|
||||
--- a/CMakeLists.txt 2018-05-29 14:04:02.000000000 +0200
|
||||
+++ b/CMakeLists.txt 2018-06-04 13:41:55.684455580 +0200
|
||||
@@ -49,7 +49,7 @@ endif(WITH_CCACHE)
|
||||
option(WITH_MANPAGE "Build man pages." ON)
|
||||
if(WITH_MANPAGE)
|
||||
find_program(SPHINX_BUILD
|
||||
- sphinx-build)
|
||||
+ sphinx-build2)
|
||||
if(NOT SPHINX_BUILD)
|
||||
message(FATAL_ERROR "Can't find sphinx-build.")
|
||||
endif(NOT SPHINX_BUILD)
|
||||
--- a/src/tools/setup-virtualenv.sh 2018-05-29 14:04:02.000000000 +0200
|
||||
+++ b/src/tools/setup-virtualenv.sh 2018-06-04 13:43:24.767175961 +0200
|
||||
@@ -58,10 +58,10 @@ if [ -z "$DIR" ] ; then
|
||||
fi
|
||||
rm -fr $DIR
|
||||
mkdir -p $DIR
|
||||
-virtualenv --python $PYTHON_BINARY $DIR
|
||||
+virtualenv2 --python $PYTHON_BINARY $DIR
|
||||
. $DIR/bin/activate
|
||||
|
||||
-if pip --help | grep -q disable-pip-version-check; then
|
||||
+if pip2 --help | grep -q disable-pip-version-check; then
|
||||
DISABLE_PIP_VERSION_CHECK=--disable-pip-version-check
|
||||
else
|
||||
DISABLE_PIP_VERSION_CHECK=
|
||||
@@ -69,12 +69,12 @@ fi
|
||||
|
||||
# older versions of pip will not install wrap_console scripts
|
||||
# when using wheel packages
|
||||
-pip $DISABLE_PIP_VERSION_CHECK --log $DIR/log.txt install --upgrade 'pip >= 6.1'
|
||||
+pip2 $DISABLE_PIP_VERSION_CHECK --log $DIR/log.txt install --upgrade 'pip >= 6.1'
|
||||
|
||||
# workaround of https://github.com/pypa/setuptools/issues/1042
|
||||
-pip $DISABLE_PIP_VERSION_CHECK --log $DIR/log.txt install --upgrade "setuptools < 36"
|
||||
+pip2 $DISABLE_PIP_VERSION_CHECK --log $DIR/log.txt install --upgrade "setuptools < 36"
|
||||
|
||||
-if pip --help | grep -q disable-pip-version-check; then
|
||||
+if pip2 --help | grep -q disable-pip-version-check; then
|
||||
DISABLE_PIP_VERSION_CHECK=--disable-pip-version-check
|
||||
else
|
||||
DISABLE_PIP_VERSION_CHECK=
|
||||
@@ -84,7 +84,7 @@ if test -d wheelhouse ; then
|
||||
export NO_INDEX=--no-index
|
||||
fi
|
||||
|
||||
-pip $DISABLE_PIP_VERSION_CHECK --log $DIR/log.txt install $NO_INDEX --find-links=file://$(pwd)/wheelhouse 'tox >=2.9.1'
|
||||
+pip2 $DISABLE_PIP_VERSION_CHECK --log $DIR/log.txt install $NO_INDEX --find-links=file://$(pwd)/wheelhouse 'tox >=2.9.1'
|
||||
if test -f requirements.txt ; then
|
||||
- pip $DISABLE_PIP_VERSION_CHECK --log $DIR/log.txt install $NO_INDEX --find-links=file://$(pwd)/wheelhouse -r requirements.txt
|
||||
+ pip2 $DISABLE_PIP_VERSION_CHECK --log $DIR/log.txt install $NO_INDEX --find-links=file://$(pwd)/wheelhouse -r requirements.txt
|
||||
fi
|
160
ceph/fix-tox-test-commands.patch
Normal file
160
ceph/fix-tox-test-commands.patch
Normal file
@@ -0,0 +1,160 @@
|
||||
--- a/src/pybind/mgr/ansible/run-tox.sh 2019-04-25 20:15:48.000000000 +0200
|
||||
+++ b/src/pybind/mgr/ansible/run-tox.sh 2019-07-14 16:36:54.220654727 +0200
|
||||
@@ -8,22 +8,22 @@
|
||||
test -d ansible && cd ansible
|
||||
|
||||
if [ -e tox.ini ]; then
|
||||
- TOX_PATH=$(readlink -f tox.ini)
|
||||
+ TOX_PATH="$(readlink -f tox.ini)"
|
||||
else
|
||||
- TOX_PATH=$(readlink -f $(dirname $0)/tox.ini)
|
||||
+ TOX_PATH="$(readlink -f "$(dirname "$0")"/tox.ini)"
|
||||
fi
|
||||
|
||||
# tox.ini will take care of this.
|
||||
unset PYTHONPATH
|
||||
export CEPH_BUILD_DIR=$CEPH_BUILD_DIR
|
||||
|
||||
-source ${MGR_ANSIBLE_VIRTUALENV}/bin/activate
|
||||
+source "${MGR_ANSIBLE_VIRTUALENV}"/bin/activate
|
||||
|
||||
if [ "$WITH_PYTHON2" = "ON" ]; then
|
||||
ENV_LIST+="py27"
|
||||
fi
|
||||
-if [ "$WITH_PYTHON3" = "ON" ]; then
|
||||
+if [[ "$WITH_PYTHON3" == "ON" || "$WITH_PYTHON3" == "3" ]]; then
|
||||
ENV_LIST+="py3"
|
||||
fi
|
||||
|
||||
-tox -c ${TOX_PATH} -e ${ENV_LIST}
|
||||
+tox -c "${TOX_PATH}" -e "${ENV_LIST}"
|
||||
--- a/src/pybind/mgr/dashboard/run-tox.sh 2019-04-25 20:15:48.000000000 +0200
|
||||
+++ b/src/pybind/mgr/dashboard/run-tox.sh 2019-07-14 16:36:48.907269344 +0200
|
||||
@@ -8,30 +8,30 @@
|
||||
test -d dashboard && cd dashboard
|
||||
|
||||
if [ -e tox.ini ]; then
|
||||
- TOX_PATH=`readlink -f tox.ini`
|
||||
+ TOX_PATH="$(readlink -f tox.ini)"
|
||||
else
|
||||
- TOX_PATH=`readlink -f $(dirname $0)/tox.ini`
|
||||
+ TOX_PATH="$(readlink -f "$(dirname "$0")"/tox.ini)"
|
||||
fi
|
||||
|
||||
# tox.ini will take care of this.
|
||||
unset PYTHONPATH
|
||||
export CEPH_BUILD_DIR=$CEPH_BUILD_DIR
|
||||
|
||||
-source ${MGR_DASHBOARD_VIRTUALENV}/bin/activate
|
||||
+source "${MGR_DASHBOARD_VIRTUALENV}"/bin/activate
|
||||
|
||||
-if [ "$WITH_PYTHON2" = "ON" ]; then
|
||||
- if [[ -n "$@" ]]; then
|
||||
+if [ "$WITH_PYTHON2" == "ON" ]; then
|
||||
+ if [[ -n "$*" ]]; then
|
||||
ENV_LIST+="py27-run,"
|
||||
else
|
||||
ENV_LIST+="py27-cov,py27-lint,"
|
||||
fi
|
||||
fi
|
||||
-if [ "$WITH_PYTHON3" = "ON" ]; then
|
||||
- if [[ -n "$@" ]]; then
|
||||
+if [[ "$WITH_PYTHON3" == "ON" || "$WITH_PYTHON3" == "3" ]]; then
|
||||
+ if [[ -n "$*" ]]; then
|
||||
ENV_LIST+="py3-run"
|
||||
else
|
||||
ENV_LIST+="py3-cov,py3-lint"
|
||||
fi
|
||||
fi
|
||||
|
||||
-tox -c ${TOX_PATH} -e "$ENV_LIST" "$@"
|
||||
+tox -c "${TOX_PATH}" -e "$ENV_LIST" "$@"
|
||||
--- a/src/pybind/mgr/insights/run-tox.sh 2019-04-25 20:15:48.000000000 +0200
|
||||
+++ b/src/pybind/mgr/insights/run-tox.sh 2019-07-14 16:36:41.347195419 +0200
|
||||
@@ -8,22 +8,22 @@
|
||||
test -d insights && cd insights
|
||||
|
||||
if [ -e tox.ini ]; then
|
||||
- TOX_PATH=`readlink -f tox.ini`
|
||||
+ TOX_PATH="$(readlink -f tox.ini)"
|
||||
else
|
||||
- TOX_PATH=`readlink -f $(dirname $0)/tox.ini`
|
||||
+ TOX_PATH="$(readlink -f "$(dirname "$0")"/tox.ini)"
|
||||
fi
|
||||
|
||||
# tox.ini will take care of this.
|
||||
unset PYTHONPATH
|
||||
export CEPH_BUILD_DIR=$CEPH_BUILD_DIR
|
||||
|
||||
-source ${MGR_INSIGHTS_VIRTUALENV}/bin/activate
|
||||
+source "${MGR_INSIGHTS_VIRTUALENV}"/bin/activate
|
||||
|
||||
if [ "$WITH_PYTHON2" = "ON" ]; then
|
||||
ENV_LIST+="py27"
|
||||
fi
|
||||
-if [ "$WITH_PYTHON3" = "ON" ]; then
|
||||
+if [[ "$WITH_PYTHON3" == "ON" || "$WITH_PYTHON3" == "3" ]]; then
|
||||
ENV_LIST+="py3"
|
||||
fi
|
||||
|
||||
-tox -c ${TOX_PATH} -e ${ENV_LIST}
|
||||
+tox -c "${TOX_PATH}" -e "${ENV_LIST}"
|
||||
--- a/src/pybind/mgr/orchestrator_cli/run-tox.sh 2019-04-25 20:15:48.000000000 +0200
|
||||
+++ b/src/pybind/mgr/orchestrator_cli/run-tox.sh 2019-07-14 16:37:01.734061798 +0200
|
||||
@@ -8,25 +8,24 @@
|
||||
test -d orchestrator_cli && cd orchestrator_cli
|
||||
|
||||
if [ -e tox.ini ]; then
|
||||
- TOX_PATH=$(readlink -f tox.ini)
|
||||
+ TOX_PATH="$(readlink -f tox.ini)"
|
||||
else
|
||||
- TOX_PATH=$(readlink -f $(dirname $0)/tox.ini)
|
||||
+ TOX_PATH="$(readlink -f "$(dirname "$0")"/tox.ini)"
|
||||
fi
|
||||
|
||||
# tox.ini will take care of this.
|
||||
unset PYTHONPATH
|
||||
export CEPH_BUILD_DIR=$CEPH_BUILD_DIR
|
||||
|
||||
-if [ -f ${MGR_ORCHESTRATOR_CLI_VIRTUALENV}/bin/activate ]
|
||||
-then
|
||||
- source ${MGR_ORCHESTRATOR_CLI_VIRTUALENV}/bin/activate
|
||||
+if [[ -r "${MGR_ORCHESTRATOR_CLI_VIRTUALENV}"/bin/activate ]]; then
|
||||
+ source "${MGR_ORCHESTRATOR_CLI_VIRTUALENV}"/bin/activate
|
||||
fi
|
||||
|
||||
if [ "$WITH_PYTHON2" = "ON" ]; then
|
||||
ENV_LIST+="py27"
|
||||
fi
|
||||
-if [ "$WITH_PYTHON3" = "ON" ]; then
|
||||
- ENV_LIST+=",py3"
|
||||
+if [[ "$WITH_PYTHON3" == "ON" || "$WITH_PYTHON3" == "3" ]]; then
|
||||
+ ENV_LIST+="py3"
|
||||
fi
|
||||
|
||||
-tox -c ${TOX_PATH} -e ${ENV_LIST}
|
||||
+tox -c "${TOX_PATH}" -e "${ENV_LIST}"
|
||||
--- a/src/pybind/mgr/dashboard/tox.ini 2019-04-25 20:15:48.000000000 +0200
|
||||
+++ b/src/pybind/mgr/dashboard/tox.ini 2019-07-15 12:36:39.693948289 +0200
|
||||
@@ -1,5 +1,5 @@
|
||||
[tox]
|
||||
-envlist = py27-{cov,lint,run},py3-{cov,lint,run}
|
||||
+envlist = py3-{cov,lint,run}
|
||||
skipsdist = true
|
||||
toxworkdir = {env:CEPH_BUILD_DIR}/dashboard
|
||||
minversion = 2.8.1
|
||||
@@ -11,13 +11,12 @@ setenv=
|
||||
WEBTEST_INTERACTIVE = false
|
||||
LD_LIBRARY_PATH = {toxinidir}/../../../../build/lib
|
||||
PATH = {toxinidir}/../../../../build/bin:$PATH
|
||||
- py27: PYTHONPATH = {toxinidir}/../../../../build/lib/cython_modules/lib.2
|
||||
py3: PYTHONPATH = {toxinidir}/../../../../build/lib/cython_modules/lib.3
|
||||
cov: UNITTEST = true
|
||||
cov: COVERAGE_FILE = .coverage.{envname}
|
||||
commands=
|
||||
pip install -r {toxinidir}/requirements.txt
|
||||
- py27: pip install -r {toxinidir}/requirements-py27.txt
|
||||
+; py27: pip install -r {toxinidir}/requirements-py27.txt
|
||||
py3: pip install -r {toxinidir}/requirements-py3.txt
|
||||
cov: coverage erase
|
||||
cov: {envbindir}/py.test --cov=. --cov-report= --junitxml=junit.{envname}.xml --doctest-modules controllers/rbd.py services/ tests/ tools.py
|
12
ceph/fix_snappy_namespace_uint.patch
Normal file
12
ceph/fix_snappy_namespace_uint.patch
Normal file
@@ -0,0 +1,12 @@
|
||||
diff -upr a/src/compressor/snappy/SnappyCompressor.h b/src/compressor/snappy/SnappyCompressor.h
|
||||
--- a/src/compressor/snappy/SnappyCompressor.h 2021-08-05 19:11:54.000000000 +0200
|
||||
+++ b/src/compressor/snappy/SnappyCompressor.h 2021-09-01 17:38:35.488609568 +0200
|
||||
@@ -96,7 +96,7 @@ class SnappyCompressor : public Compress
|
||||
if (qat_enabled)
|
||||
return qat_accel.decompress(p, compressed_len, dst);
|
||||
#endif
|
||||
- snappy::uint32 res_len = 0;
|
||||
+ std::uint32_t res_len = 0;
|
||||
BufferlistSource source_1(p, compressed_len);
|
||||
if (!snappy::GetUncompressedLength(&source_1, &res_len)) {
|
||||
return -1;
|
63
ceph/glibc2.32-strsignal-compat-backported.patch
Normal file
63
ceph/glibc2.32-strsignal-compat-backported.patch
Normal file
@@ -0,0 +1,63 @@
|
||||
From b9b6faf66ae67648626470cb4fc3f0850ac4d842 Mon Sep 17 00:00:00 2001
|
||||
From: David Disseldorp <ddiss@suse.de>
|
||||
Date: Tue, 1 Sep 2020 13:49:21 +0200
|
||||
Subject: [PATCH] cmake: detect and use sigdescr_np() if available
|
||||
|
||||
sys_siglist is deprecated with glibc 2.32. A new thread-safe and
|
||||
async-signal safe sigdescr_np() function is provided, so use it if
|
||||
available.
|
||||
|
||||
Fixes: https://tracker.ceph.com/issues/47187
|
||||
Signed-off-by: David Disseldorp <ddiss@suse.de>
|
||||
---
|
||||
cmake/modules/CephChecks.cmake | 1 +
|
||||
src/global/signal_handler.h | 8 +++++---
|
||||
src/include/config-h.in.cmake | 3 +++
|
||||
3 files changed, 9 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/cmake/modules/CephChecks.cmake b/cmake/modules/CephChecks.cmake
|
||||
index 23687283a7c6..ca86dcbc73de 100644
|
||||
--- a/cmake/modules/CephChecks.cmake
|
||||
+++ b/cmake/modules/CephChecks.cmake
|
||||
@@ -24,6 +24,7 @@ check_function_exists(strerror_r HAVE_Strerror_R)
|
||||
check_function_exists(name_to_handle_at HAVE_NAME_TO_HANDLE_AT)
|
||||
check_function_exists(pipe2 HAVE_PIPE2)
|
||||
check_function_exists(accept4 HAVE_ACCEPT4)
|
||||
+check_function_exists(sigdescr_np HAVE_SIGDESCR_NP)
|
||||
|
||||
include(CMakePushCheckState)
|
||||
cmake_push_check_state(RESET)
|
||||
diff --git a/src/global/signal_handler.h b/src/global/signal_handler.h
|
||||
index 476724201aa9..c101b2e28733 100644
|
||||
--- a/src/global/signal_handler.h
|
||||
+++ b/src/global/signal_handler.h
|
||||
@@ -20,10 +20,12 @@
|
||||
|
||||
typedef void (*signal_handler_t)(int);
|
||||
|
||||
-#ifndef HAVE_REENTRANT_STRSIGNAL
|
||||
-# define sig_str(signum) sys_siglist[signum]
|
||||
-#else
|
||||
+#ifdef HAVE_SIGDESCR_NP
|
||||
+# define sig_str(signum) sigdescr_np(signum)
|
||||
+#elif HAVE_REENTRANT_STRSIGNAL
|
||||
# define sig_str(signum) strsignal(signum)
|
||||
+#else
|
||||
+# define sig_str(signum) sys_siglist[signum]
|
||||
#endif
|
||||
|
||||
void install_sighandler(int signum, signal_handler_t handler, int flags);
|
||||
diff --git a/src/include/config-h.in.cmake b/src/include/config-h.in.cmake
|
||||
index 1ea3703f620c..59bd4273511a 100644
|
||||
--- a/src/include/config-h.in.cmake
|
||||
+++ b/src/include/config-h.in.cmake
|
||||
@@ -220,6 +220,9 @@
|
||||
/* Define to 1 if you have sched.h. */
|
||||
#cmakedefine HAVE_SCHED 1
|
||||
|
||||
+/* Define to 1 if you have sigdescr_np. */
|
||||
+#cmakedefine HAVE_SIGDESCR_NP 1
|
||||
+
|
||||
/* Support SSE (Streaming SIMD Extensions) instructions */
|
||||
#cmakedefine HAVE_SSE
|
||||
|
671
ceph/mgr-dashboard-update-pylint-to-2.6.0.patch
Normal file
671
ceph/mgr-dashboard-update-pylint-to-2.6.0.patch
Normal file
@@ -0,0 +1,671 @@
|
||||
From e4f179fa960ed18e8f45bc87d26552d720bc819b Mon Sep 17 00:00:00 2001
|
||||
From: Volker Theile <vtheile@suse.com>
|
||||
Date: Fri, 25 Sep 2020 13:17:19 +0200
|
||||
Subject: [PATCH] mgr/dashboard: update pylint to 2.6.0
|
||||
|
||||
* Update pylint to 2.6.0.
|
||||
* Fix pylint issues.
|
||||
|
||||
Fixes: https://tracker.ceph.com/issues/47647
|
||||
|
||||
(cherry picked from commit 298c91958a41674a928d53f010b20f174f16d68f)
|
||||
---
|
||||
src/pybind/mgr/dashboard/.pylintrc | 8 ++++++--
|
||||
.../mgr/dashboard/controllers/nfsganesha.py | 2 +-
|
||||
src/pybind/mgr/dashboard/controllers/osd.py | 2 +-
|
||||
src/pybind/mgr/dashboard/plugins/__init__.py | 2 +-
|
||||
.../mgr/dashboard/requirements-lint.txt | 2 +-
|
||||
src/pybind/mgr/dashboard/services/auth.py | 1 -
|
||||
.../mgr/dashboard/services/ceph_service.py | 2 +-
|
||||
src/pybind/mgr/dashboard/services/cephx.py | 2 +-
|
||||
src/pybind/mgr/dashboard/services/ganesha.py | 20 +++++++++----------
|
||||
.../mgr/dashboard/services/iscsi_client.py | 2 +-
|
||||
.../mgr/dashboard/services/iscsi_config.py | 2 +-
|
||||
src/pybind/mgr/dashboard/services/progress.py | 2 +-
|
||||
.../mgr/dashboard/services/rgw_client.py | 3 ++-
|
||||
src/pybind/mgr/dashboard/tests/__init__.py | 2 +-
|
||||
src/pybind/mgr/dashboard/tests/helper.py | 2 +-
|
||||
.../dashboard/tests/test_access_control.py | 2 +-
|
||||
.../mgr/dashboard/tests/test_api_auditing.py | 2 +-
|
||||
src/pybind/mgr/dashboard/tests/test_cephfs.py | 2 +-
|
||||
.../mgr/dashboard/tests/test_controllers.py | 2 +-
|
||||
src/pybind/mgr/dashboard/tests/test_docs.py | 2 +-
|
||||
.../tests/test_erasure_code_profile.py | 2 +-
|
||||
.../mgr/dashboard/tests/test_exceptions.py | 2 +-
|
||||
.../dashboard/tests/test_feature_toggles.py | 2 +-
|
||||
.../mgr/dashboard/tests/test_ganesha.py | 2 +-
|
||||
.../mgr/dashboard/tests/test_grafana.py | 2 +-
|
||||
src/pybind/mgr/dashboard/tests/test_home.py | 2 +-
|
||||
src/pybind/mgr/dashboard/tests/test_host.py | 2 +-
|
||||
src/pybind/mgr/dashboard/tests/test_iscsi.py | 3 ++-
|
||||
.../mgr/dashboard/tests/test_orchestrator.py | 2 +-
|
||||
src/pybind/mgr/dashboard/tests/test_osd.py | 4 ++--
|
||||
.../mgr/dashboard/tests/test_plugin_debug.py | 2 +-
|
||||
src/pybind/mgr/dashboard/tests/test_pool.py | 2 +-
|
||||
.../mgr/dashboard/tests/test_prometheus.py | 2 +-
|
||||
.../mgr/dashboard/tests/test_rbd_mirroring.py | 2 +-
|
||||
.../mgr/dashboard/tests/test_rest_tasks.py | 2 +-
|
||||
src/pybind/mgr/dashboard/tests/test_rgw.py | 2 +-
|
||||
.../mgr/dashboard/tests/test_rgw_client.py | 2 +-
|
||||
.../mgr/dashboard/tests/test_settings.py | 2 +-
|
||||
src/pybind/mgr/dashboard/tests/test_sso.py | 3 ++-
|
||||
src/pybind/mgr/dashboard/tests/test_tools.py | 2 +-
|
||||
src/pybind/mgr/dashboard/tools.py | 2 +-
|
||||
41 files changed, 58 insertions(+), 52 deletions(-)
|
||||
|
||||
diff --git a/src/pybind/mgr/dashboard/.pylintrc b/src/pybind/mgr/dashboard/.pylintrc
|
||||
index 404a16a2e6..c4bf033cda 100644
|
||||
--- a/src/pybind/mgr/dashboard/.pylintrc
|
||||
+++ b/src/pybind/mgr/dashboard/.pylintrc
|
||||
@@ -15,7 +15,7 @@ ignore-patterns=
|
||||
|
||||
# Python code to execute, usually for sys.path manipulation such as
|
||||
# pygtk.require().
|
||||
-#init-hook=
|
||||
+init-hook='import sys; sys.path.append("./")'
|
||||
|
||||
# Use multiple processes to speed up Pylint.
|
||||
jobs=1
|
||||
@@ -118,7 +118,11 @@ disable=import-star-module-level,
|
||||
too-many-arguments,
|
||||
too-many-locals,
|
||||
too-many-statements,
|
||||
- useless-object-inheritance
|
||||
+ useless-object-inheritance,
|
||||
+ relative-beyond-top-level,
|
||||
+ raise-missing-from,
|
||||
+ super-with-arguments,
|
||||
+ import-outside-toplevel
|
||||
|
||||
|
||||
# Enable the message, report, category or checker with the given id(s). You can
|
||||
diff --git a/src/pybind/mgr/dashboard/controllers/nfsganesha.py b/src/pybind/mgr/dashboard/controllers/nfsganesha.py
|
||||
index 1219f78b95..510b37a712 100644
|
||||
--- a/src/pybind/mgr/dashboard/controllers/nfsganesha.py
|
||||
+++ b/src/pybind/mgr/dashboard/controllers/nfsganesha.py
|
||||
@@ -272,7 +272,7 @@ class NFSGaneshaService(RESTController):
|
||||
class NFSGaneshaUi(BaseController):
|
||||
@Endpoint('GET', '/cephx/clients')
|
||||
def cephx_clients(self):
|
||||
- return [client for client in CephX.list_clients()]
|
||||
+ return list(CephX.list_clients())
|
||||
|
||||
@Endpoint('GET', '/fsals')
|
||||
def fsals(self):
|
||||
diff --git a/src/pybind/mgr/dashboard/controllers/osd.py b/src/pybind/mgr/dashboard/controllers/osd.py
|
||||
index 2731ad0ffc..f95951cba2 100644
|
||||
--- a/src/pybind/mgr/dashboard/controllers/osd.py
|
||||
+++ b/src/pybind/mgr/dashboard/controllers/osd.py
|
||||
@@ -272,7 +272,7 @@ class Osd(RESTController):
|
||||
|
||||
@CreatePermission
|
||||
@osd_task('create', {'tracking_id': '{tracking_id}'})
|
||||
- def create(self, method, data, tracking_id): # pylint: disable=W0622
|
||||
+ def create(self, method, data, tracking_id): # pylint: disable=unused-argument
|
||||
if method == 'bare':
|
||||
return self._create_bare(data)
|
||||
if method == 'drive_groups':
|
||||
diff --git a/src/pybind/mgr/dashboard/plugins/__init__.py b/src/pybind/mgr/dashboard/plugins/__init__.py
|
||||
index 8973654770..3e3aca4001 100644
|
||||
--- a/src/pybind/mgr/dashboard/plugins/__init__.py
|
||||
+++ b/src/pybind/mgr/dashboard/plugins/__init__.py
|
||||
@@ -71,4 +71,4 @@ class DashboardPluginManager(object):
|
||||
PLUGIN_MANAGER = DashboardPluginManager("ceph-mgr.dashboard")
|
||||
|
||||
# Load all interfaces and their hooks
|
||||
-from . import interfaces # noqa: F401 pylint: disable=wrong-import-position,cyclic-import
|
||||
+from . import interfaces # noqa pylint: disable=C0413,W0406
|
||||
diff --git a/src/pybind/mgr/dashboard/requirements-lint.txt b/src/pybind/mgr/dashboard/requirements-lint.txt
|
||||
index 8f68ad3856..f01fa54e6e 100644
|
||||
--- a/src/pybind/mgr/dashboard/requirements-lint.txt
|
||||
+++ b/src/pybind/mgr/dashboard/requirements-lint.txt
|
||||
@@ -1,4 +1,4 @@
|
||||
-pylint==2.3.1; python_version >= '3'
|
||||
+pylint==2.6.0
|
||||
flake8==3.7.8; python_version >= '3'
|
||||
flake8-colors==0.1.6; python_version >= '3'
|
||||
#TODO: Fix docstring issues: https://tracker.ceph.com/issues/41224
|
||||
diff --git a/src/pybind/mgr/dashboard/services/auth.py b/src/pybind/mgr/dashboard/services/auth.py
|
||||
index d829362e63..475d501263 100644
|
||||
--- a/src/pybind/mgr/dashboard/services/auth.py
|
||||
+++ b/src/pybind/mgr/dashboard/services/auth.py
|
||||
@@ -177,7 +177,6 @@ class AuthManagerTool(cherrypy.Tool):
|
||||
|
||||
def _check_authorization(self, username):
|
||||
self.logger.debug("checking authorization...")
|
||||
- username = username
|
||||
handler = cherrypy.request.handler.callable
|
||||
controller = handler.__self__
|
||||
sec_scope = getattr(controller, '_security_scope', None)
|
||||
diff --git a/src/pybind/mgr/dashboard/services/ceph_service.py b/src/pybind/mgr/dashboard/services/ceph_service.py
|
||||
index a6eee2957e..89582e3f73 100644
|
||||
--- a/src/pybind/mgr/dashboard/services/ceph_service.py
|
||||
+++ b/src/pybind/mgr/dashboard/services/ceph_service.py
|
||||
@@ -12,7 +12,7 @@ from .. import mgr
|
||||
from ..exceptions import DashboardException
|
||||
|
||||
try:
|
||||
- from typing import Dict, Any, Union # pylint: disable=unused-import
|
||||
+ from typing import Dict, Any, Union
|
||||
except ImportError:
|
||||
pass # For typing only
|
||||
|
||||
diff --git a/src/pybind/mgr/dashboard/services/cephx.py b/src/pybind/mgr/dashboard/services/cephx.py
|
||||
index ccda387961..60303ad85f 100644
|
||||
--- a/src/pybind/mgr/dashboard/services/cephx.py
|
||||
+++ b/src/pybind/mgr/dashboard/services/cephx.py
|
||||
@@ -22,7 +22,7 @@ class CephX(object):
|
||||
|
||||
@classmethod
|
||||
def list_clients(cls):
|
||||
- return [client for client in cls._clients_map()]
|
||||
+ return list(cls._clients_map())
|
||||
|
||||
@classmethod
|
||||
def get_client_key(cls, client_id):
|
||||
diff --git a/src/pybind/mgr/dashboard/services/ganesha.py b/src/pybind/mgr/dashboard/services/ganesha.py
|
||||
index e9144db406..764ebb3739 100644
|
||||
--- a/src/pybind/mgr/dashboard/services/ganesha.py
|
||||
+++ b/src/pybind/mgr/dashboard/services/ganesha.py
|
||||
@@ -69,7 +69,7 @@ class Ganesha(object):
|
||||
|
||||
@classmethod
|
||||
def get_ganesha_clusters(cls):
|
||||
- return [cluster_id for cluster_id in cls._get_clusters_locations()]
|
||||
+ return list(cls._get_clusters_locations())
|
||||
|
||||
@staticmethod
|
||||
def _get_orch_nfs_instances():
|
||||
@@ -325,7 +325,7 @@ class GaneshaConfParser(object):
|
||||
for key, val in block.items():
|
||||
if key == 'block_name':
|
||||
continue
|
||||
- elif key == '_blocks_':
|
||||
+ if key == '_blocks_':
|
||||
for blo in val:
|
||||
conf_str += GaneshaConfParser.write_block(blo, depth)
|
||||
elif val:
|
||||
@@ -693,21 +693,21 @@ class Export(object):
|
||||
result['attr_expiration_time'] = self.attr_expiration_time
|
||||
result['security_label'] = self.security_label
|
||||
if 'protocols' not in defaults:
|
||||
- result['protocols'] = [p for p in self.protocols]
|
||||
+ result['protocols'] = list(self.protocols)
|
||||
else:
|
||||
def_proto = defaults['protocols']
|
||||
if not isinstance(def_proto, list):
|
||||
def_proto = set([def_proto])
|
||||
if self.protocols != def_proto:
|
||||
- result['protocols'] = [p for p in self.protocols]
|
||||
+ result['protocols'] = list(self.protocols)
|
||||
if 'transports' not in defaults:
|
||||
- result['transports'] = [t for t in self.transports]
|
||||
+ result['transports'] = list(self.transports)
|
||||
else:
|
||||
def_transp = defaults['transports']
|
||||
if not isinstance(def_transp, list):
|
||||
def_transp = set([def_transp])
|
||||
if self.transports != def_transp:
|
||||
- result['transports'] = [t for t in self.transports]
|
||||
+ result['transports'] = list(self.transports)
|
||||
|
||||
result['_blocks_'] = [self.fsal.to_fsal_block()]
|
||||
result['_blocks_'].extend([client.to_client_block()
|
||||
@@ -737,14 +737,14 @@ class Export(object):
|
||||
'path': self.path,
|
||||
'fsal': self.fsal.to_dict(),
|
||||
'cluster_id': self.cluster_id,
|
||||
- 'daemons': sorted([d for d in self.daemons]),
|
||||
+ 'daemons': sorted(list(self.daemons)),
|
||||
'pseudo': self.pseudo,
|
||||
'tag': self.tag,
|
||||
'access_type': self.access_type,
|
||||
'squash': self.squash,
|
||||
'security_label': self.security_label,
|
||||
- 'protocols': sorted([p for p in self.protocols]),
|
||||
- 'transports': sorted([t for t in self.transports]),
|
||||
+ 'protocols': sorted(list(self.protocols)),
|
||||
+ 'transports': sorted(list(self.transports)),
|
||||
'clients': [client.to_dict() for client in self.clients]
|
||||
}
|
||||
|
||||
@@ -992,7 +992,7 @@ class GaneshaConf(object):
|
||||
return None
|
||||
|
||||
def list_daemons(self):
|
||||
- return [daemon_id for daemon_id in self.daemons_conf_blocks]
|
||||
+ return list(self.daemons_conf_blocks)
|
||||
|
||||
def reload_daemons(self, daemons):
|
||||
with mgr.rados.open_ioctx(self.rados_pool) as ioctx:
|
||||
diff --git a/src/pybind/mgr/dashboard/services/iscsi_client.py b/src/pybind/mgr/dashboard/services/iscsi_client.py
|
||||
index b82a51a3d4..c5a6dfa0e7 100644
|
||||
--- a/src/pybind/mgr/dashboard/services/iscsi_client.py
|
||||
+++ b/src/pybind/mgr/dashboard/services/iscsi_client.py
|
||||
@@ -12,7 +12,7 @@ try:
|
||||
except ImportError:
|
||||
from urllib.parse import urlparse
|
||||
|
||||
-from .iscsi_config import IscsiGatewaysConfig # pylint: disable=cyclic-import
|
||||
+from .iscsi_config import IscsiGatewaysConfig
|
||||
from ..settings import Settings
|
||||
from ..rest_client import RestClient
|
||||
|
||||
diff --git a/src/pybind/mgr/dashboard/services/iscsi_config.py b/src/pybind/mgr/dashboard/services/iscsi_config.py
|
||||
index ab90048500..86bdfc770d 100644
|
||||
--- a/src/pybind/mgr/dashboard/services/iscsi_config.py
|
||||
+++ b/src/pybind/mgr/dashboard/services/iscsi_config.py
|
||||
@@ -57,7 +57,7 @@ class IscsiGatewaysConfig(object):
|
||||
"""
|
||||
for gateway_name, gateway_config in config['gateways'].items():
|
||||
if '.' not in gateway_name:
|
||||
- from .iscsi_client import IscsiClient
|
||||
+ from .iscsi_client import IscsiClient # pylint: disable=cyclic-import
|
||||
from ..rest_client import RequestException
|
||||
try:
|
||||
service_url = gateway_config['service_url']
|
||||
diff --git a/src/pybind/mgr/dashboard/services/progress.py b/src/pybind/mgr/dashboard/services/progress.py
|
||||
index d8cf7521fa..d7b9ed973b 100644
|
||||
--- a/src/pybind/mgr/dashboard/services/progress.py
|
||||
+++ b/src/pybind/mgr/dashboard/services/progress.py
|
||||
@@ -12,7 +12,7 @@ from __future__ import absolute_import
|
||||
from datetime import datetime
|
||||
import logging
|
||||
|
||||
-from . import rbd
|
||||
+from . import rbd # pylint: disable=no-name-in-module
|
||||
from .. import mgr
|
||||
|
||||
|
||||
diff --git a/src/pybind/mgr/dashboard/services/rgw_client.py b/src/pybind/mgr/dashboard/services/rgw_client.py
|
||||
index 5507eb6800..aee18acc54 100644
|
||||
--- a/src/pybind/mgr/dashboard/services/rgw_client.py
|
||||
+++ b/src/pybind/mgr/dashboard/services/rgw_client.py
|
||||
@@ -16,7 +16,7 @@ from ..tools import build_url, dict_contains_path, json_str_to_object,\
|
||||
from .. import mgr
|
||||
|
||||
try:
|
||||
- from typing import Dict, List, Optional # pylint: disable=unused-import
|
||||
+ from typing import Dict, List, Optional
|
||||
except ImportError:
|
||||
pass # For typing only
|
||||
|
||||
@@ -303,6 +303,7 @@ class RgwClient(RestClient):
|
||||
if self.userid != RgwClient._SYSTEM_USERID:
|
||||
logger.info("Fetching new keys for user: %s", self.userid)
|
||||
keys = RgwClient.admin_instance().get_user_keys(self.userid)
|
||||
+ # pylint: disable=attribute-defined-outside-init
|
||||
self.auth = S3Auth(keys['access_key'], keys['secret_key'],
|
||||
service_url=self.service_url)
|
||||
else:
|
||||
diff --git a/src/pybind/mgr/dashboard/tests/__init__.py b/src/pybind/mgr/dashboard/tests/__init__.py
|
||||
index 421378a155..8eb5bb8af1 100644
|
||||
--- a/src/pybind/mgr/dashboard/tests/__init__.py
|
||||
+++ b/src/pybind/mgr/dashboard/tests/__init__.py
|
||||
@@ -21,7 +21,7 @@ from ..services.auth import AuthManagerTool
|
||||
from ..services.exception import dashboard_exception_handler
|
||||
|
||||
from ..plugins import PLUGIN_MANAGER
|
||||
-from ..plugins import feature_toggles, debug # noqa # pylint: disable=unused-import
|
||||
+from ..plugins import feature_toggles, debug # noqa
|
||||
|
||||
|
||||
PLUGIN_MANAGER.hook.init()
|
||||
diff --git a/src/pybind/mgr/dashboard/tests/helper.py b/src/pybind/mgr/dashboard/tests/helper.py
|
||||
index 9ec043d6be..06b83d42a8 100644
|
||||
--- a/src/pybind/mgr/dashboard/tests/helper.py
|
||||
+++ b/src/pybind/mgr/dashboard/tests/helper.py
|
||||
@@ -2,7 +2,7 @@
|
||||
from __future__ import absolute_import
|
||||
|
||||
try:
|
||||
- from typing import Dict, Any # pylint: disable=unused-import
|
||||
+ from typing import Dict, Any
|
||||
except ImportError:
|
||||
pass
|
||||
|
||||
diff --git a/src/pybind/mgr/dashboard/tests/test_access_control.py b/src/pybind/mgr/dashboard/tests/test_access_control.py
|
||||
index 0039efc167..81604a161e 100644
|
||||
--- a/src/pybind/mgr/dashboard/tests/test_access_control.py
|
||||
+++ b/src/pybind/mgr/dashboard/tests/test_access_control.py
|
||||
@@ -9,7 +9,7 @@ import unittest
|
||||
|
||||
from datetime import datetime, timedelta
|
||||
|
||||
-from . import CmdException, CLICommandTestMixin
|
||||
+from . import CmdException, CLICommandTestMixin # pylint: disable=no-name-in-module
|
||||
from .. import mgr
|
||||
from ..security import Scope, Permission
|
||||
from ..services.access_control import load_access_control_db, \
|
||||
diff --git a/src/pybind/mgr/dashboard/tests/test_api_auditing.py b/src/pybind/mgr/dashboard/tests/test_api_auditing.py
|
||||
index 0416c03638..023ea7992a 100644
|
||||
--- a/src/pybind/mgr/dashboard/tests/test_api_auditing.py
|
||||
+++ b/src/pybind/mgr/dashboard/tests/test_api_auditing.py
|
||||
@@ -9,7 +9,7 @@ try:
|
||||
except ImportError:
|
||||
import unittest.mock as mock
|
||||
|
||||
-from . import ControllerTestCase, KVStoreMockMixin
|
||||
+from . import ControllerTestCase, KVStoreMockMixin # pylint: disable=no-name-in-module
|
||||
from ..controllers import RESTController, Controller
|
||||
from ..tools import RequestLoggingTool
|
||||
from .. import mgr
|
||||
diff --git a/src/pybind/mgr/dashboard/tests/test_cephfs.py b/src/pybind/mgr/dashboard/tests/test_cephfs.py
|
||||
index e9abda5380..778b0aa275 100644
|
||||
--- a/src/pybind/mgr/dashboard/tests/test_cephfs.py
|
||||
+++ b/src/pybind/mgr/dashboard/tests/test_cephfs.py
|
||||
@@ -6,7 +6,7 @@ except ImportError:
|
||||
from unittest.mock import Mock
|
||||
|
||||
from .. import mgr
|
||||
-from . import ControllerTestCase
|
||||
+from . import ControllerTestCase # pylint: disable=no-name-in-module
|
||||
from ..controllers.cephfs import CephFS
|
||||
|
||||
|
||||
diff --git a/src/pybind/mgr/dashboard/tests/test_controllers.py b/src/pybind/mgr/dashboard/tests/test_controllers.py
|
||||
index 0e88047061..b14878ff2e 100644
|
||||
--- a/src/pybind/mgr/dashboard/tests/test_controllers.py
|
||||
+++ b/src/pybind/mgr/dashboard/tests/test_controllers.py
|
||||
@@ -1,7 +1,7 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import absolute_import
|
||||
|
||||
-from . import ControllerTestCase
|
||||
+from . import ControllerTestCase # pylint: disable=no-name-in-module
|
||||
from ..controllers import BaseController, RESTController, Controller, \
|
||||
ApiController, Endpoint
|
||||
|
||||
diff --git a/src/pybind/mgr/dashboard/tests/test_docs.py b/src/pybind/mgr/dashboard/tests/test_docs.py
|
||||
index a6e03b5267..ccb777aca5 100644
|
||||
--- a/src/pybind/mgr/dashboard/tests/test_docs.py
|
||||
+++ b/src/pybind/mgr/dashboard/tests/test_docs.py
|
||||
@@ -1,7 +1,7 @@
|
||||
# # -*- coding: utf-8 -*-
|
||||
from __future__ import absolute_import
|
||||
|
||||
-from . import ControllerTestCase
|
||||
+from . import ControllerTestCase # pylint: disable=no-name-in-module
|
||||
from ..controllers import RESTController, ApiController, Endpoint, EndpointDoc, ControllerDoc
|
||||
from ..controllers.docs import Docs
|
||||
|
||||
diff --git a/src/pybind/mgr/dashboard/tests/test_erasure_code_profile.py b/src/pybind/mgr/dashboard/tests/test_erasure_code_profile.py
|
||||
index 557b7c1061..d266735e8f 100644
|
||||
--- a/src/pybind/mgr/dashboard/tests/test_erasure_code_profile.py
|
||||
+++ b/src/pybind/mgr/dashboard/tests/test_erasure_code_profile.py
|
||||
@@ -1,7 +1,7 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from .. import mgr
|
||||
-from . import ControllerTestCase
|
||||
+from . import ControllerTestCase # pylint: disable=no-name-in-module
|
||||
from ..controllers.erasure_code_profile import ErasureCodeProfile
|
||||
|
||||
|
||||
diff --git a/src/pybind/mgr/dashboard/tests/test_exceptions.py b/src/pybind/mgr/dashboard/tests/test_exceptions.py
|
||||
index 2bb25da1bf..b42c356479 100644
|
||||
--- a/src/pybind/mgr/dashboard/tests/test_exceptions.py
|
||||
+++ b/src/pybind/mgr/dashboard/tests/test_exceptions.py
|
||||
@@ -5,7 +5,7 @@ import time
|
||||
|
||||
import rados
|
||||
|
||||
-from . import ControllerTestCase
|
||||
+from . import ControllerTestCase # pylint: disable=no-name-in-module
|
||||
from ..services.ceph_service import SendCommandError
|
||||
from ..controllers import RESTController, Controller, Task, Endpoint
|
||||
from ..services.exception import handle_rados_error, handle_send_command_error, \
|
||||
diff --git a/src/pybind/mgr/dashboard/tests/test_feature_toggles.py b/src/pybind/mgr/dashboard/tests/test_feature_toggles.py
|
||||
index 031d0ef839..23068c5eda 100644
|
||||
--- a/src/pybind/mgr/dashboard/tests/test_feature_toggles.py
|
||||
+++ b/src/pybind/mgr/dashboard/tests/test_feature_toggles.py
|
||||
@@ -7,7 +7,7 @@ try:
|
||||
except ImportError:
|
||||
from unittest.mock import Mock, patch
|
||||
|
||||
-from . import KVStoreMockMixin
|
||||
+from . import KVStoreMockMixin # pylint: disable=no-name-in-module
|
||||
from ..plugins.feature_toggles import FeatureToggles, Features
|
||||
|
||||
|
||||
diff --git a/src/pybind/mgr/dashboard/tests/test_ganesha.py b/src/pybind/mgr/dashboard/tests/test_ganesha.py
|
||||
index 03f1f5b551..44498ac40c 100644
|
||||
--- a/src/pybind/mgr/dashboard/tests/test_ganesha.py
|
||||
+++ b/src/pybind/mgr/dashboard/tests/test_ganesha.py
|
||||
@@ -9,7 +9,7 @@ except ImportError:
|
||||
from unittest.mock import MagicMock, Mock
|
||||
|
||||
import orchestrator
|
||||
-from . import KVStoreMockMixin
|
||||
+from . import KVStoreMockMixin # pylint: disable=no-name-in-module
|
||||
from .. import mgr
|
||||
from ..settings import Settings
|
||||
from ..services import ganesha
|
||||
diff --git a/src/pybind/mgr/dashboard/tests/test_grafana.py b/src/pybind/mgr/dashboard/tests/test_grafana.py
|
||||
index 0eb46bf0f0..a5456905f2 100644
|
||||
--- a/src/pybind/mgr/dashboard/tests/test_grafana.py
|
||||
+++ b/src/pybind/mgr/dashboard/tests/test_grafana.py
|
||||
@@ -8,7 +8,7 @@ except ImportError:
|
||||
|
||||
from requests import RequestException
|
||||
|
||||
-from . import ControllerTestCase, KVStoreMockMixin
|
||||
+from . import ControllerTestCase, KVStoreMockMixin # pylint: disable=no-name-in-module
|
||||
from ..controllers.grafana import Grafana
|
||||
from ..grafana import GrafanaRestClient
|
||||
from ..settings import Settings
|
||||
diff --git a/src/pybind/mgr/dashboard/tests/test_home.py b/src/pybind/mgr/dashboard/tests/test_home.py
|
||||
index c3088b7a65..c942eed9be 100644
|
||||
--- a/src/pybind/mgr/dashboard/tests/test_home.py
|
||||
+++ b/src/pybind/mgr/dashboard/tests/test_home.py
|
||||
@@ -8,7 +8,7 @@ try:
|
||||
except ImportError:
|
||||
import unittest.mock as mock
|
||||
|
||||
-from . import ControllerTestCase, FakeFsMixin
|
||||
+from . import ControllerTestCase, FakeFsMixin # pylint: disable=no-name-in-module
|
||||
from .. import mgr
|
||||
|
||||
from ..controllers.home import HomeController, LanguageMixin
|
||||
diff --git a/src/pybind/mgr/dashboard/tests/test_host.py b/src/pybind/mgr/dashboard/tests/test_host.py
|
||||
index ab7286074b..191c3f1245 100644
|
||||
--- a/src/pybind/mgr/dashboard/tests/test_host.py
|
||||
+++ b/src/pybind/mgr/dashboard/tests/test_host.py
|
||||
@@ -7,7 +7,7 @@ except ImportError:
|
||||
|
||||
from orchestrator import HostSpec
|
||||
|
||||
-from . import ControllerTestCase
|
||||
+from . import ControllerTestCase # pylint: disable=no-name-in-module
|
||||
from ..controllers.host import get_hosts, Host, HostUi
|
||||
from .. import mgr
|
||||
|
||||
diff --git a/src/pybind/mgr/dashboard/tests/test_iscsi.py b/src/pybind/mgr/dashboard/tests/test_iscsi.py
|
||||
index 962ffeb684..72d64453ac 100644
|
||||
--- a/src/pybind/mgr/dashboard/tests/test_iscsi.py
|
||||
+++ b/src/pybind/mgr/dashboard/tests/test_iscsi.py
|
||||
@@ -10,7 +10,8 @@ try:
|
||||
except ImportError:
|
||||
import unittest.mock as mock
|
||||
|
||||
-from . import CmdException, ControllerTestCase, CLICommandTestMixin, KVStoreMockMixin
|
||||
+from . import CmdException, ControllerTestCase, CLICommandTestMixin, \
|
||||
+ KVStoreMockMixin # pylint: disable=no-name-in-module
|
||||
from .. import mgr
|
||||
from ..controllers.iscsi import Iscsi, IscsiTarget
|
||||
from ..services.iscsi_client import IscsiClient
|
||||
diff --git a/src/pybind/mgr/dashboard/tests/test_orchestrator.py b/src/pybind/mgr/dashboard/tests/test_orchestrator.py
|
||||
index 714d59c085..9a9d179bbc 100644
|
||||
--- a/src/pybind/mgr/dashboard/tests/test_orchestrator.py
|
||||
+++ b/src/pybind/mgr/dashboard/tests/test_orchestrator.py
|
||||
@@ -6,7 +6,7 @@ except ImportError:
|
||||
|
||||
from orchestrator import InventoryHost
|
||||
|
||||
-from . import ControllerTestCase
|
||||
+from . import ControllerTestCase # pylint: disable=no-name-in-module
|
||||
from .. import mgr
|
||||
from ..controllers.orchestrator import get_device_osd_map
|
||||
from ..controllers.orchestrator import Orchestrator
|
||||
diff --git a/src/pybind/mgr/dashboard/tests/test_osd.py b/src/pybind/mgr/dashboard/tests/test_osd.py
|
||||
index aeb32ed576..063705ddbb 100644
|
||||
--- a/src/pybind/mgr/dashboard/tests/test_osd.py
|
||||
+++ b/src/pybind/mgr/dashboard/tests/test_osd.py
|
||||
@@ -11,11 +11,11 @@ except ImportError:
|
||||
from ceph.deployment.drive_group import DeviceSelection, DriveGroupSpec
|
||||
from ceph.deployment.service_spec import PlacementSpec
|
||||
|
||||
-from . import ControllerTestCase
|
||||
+from . import ControllerTestCase # pylint: disable=no-name-in-module
|
||||
from ..controllers.osd import Osd
|
||||
from ..tools import NotificationQueue, TaskManager
|
||||
from .. import mgr
|
||||
-from .helper import update_dict
|
||||
+from .helper import update_dict # pylint: disable=import-error
|
||||
|
||||
try:
|
||||
from typing import List, Dict, Any # pylint: disable=unused-import
|
||||
diff --git a/src/pybind/mgr/dashboard/tests/test_plugin_debug.py b/src/pybind/mgr/dashboard/tests/test_plugin_debug.py
|
||||
index 4985540046..cb4d1afc21 100644
|
||||
--- a/src/pybind/mgr/dashboard/tests/test_plugin_debug.py
|
||||
+++ b/src/pybind/mgr/dashboard/tests/test_plugin_debug.py
|
||||
@@ -1,7 +1,7 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import absolute_import
|
||||
|
||||
-from . import CLICommandTestMixin, ControllerTestCase
|
||||
+from . import CLICommandTestMixin, ControllerTestCase # pylint: disable=no-name-in-module
|
||||
|
||||
|
||||
class TestPluginDebug(ControllerTestCase, CLICommandTestMixin):
|
||||
diff --git a/src/pybind/mgr/dashboard/tests/test_pool.py b/src/pybind/mgr/dashboard/tests/test_pool.py
|
||||
index e33e436540..179a8feeed 100644
|
||||
--- a/src/pybind/mgr/dashboard/tests/test_pool.py
|
||||
+++ b/src/pybind/mgr/dashboard/tests/test_pool.py
|
||||
@@ -6,7 +6,7 @@ try:
|
||||
except ImportError:
|
||||
import unittest.mock as mock
|
||||
|
||||
-from . import ControllerTestCase
|
||||
+from . import ControllerTestCase # pylint: disable=no-name-in-module
|
||||
from ..controllers.pool import Pool
|
||||
from ..controllers.task import Task
|
||||
from ..tools import NotificationQueue, TaskManager
|
||||
diff --git a/src/pybind/mgr/dashboard/tests/test_prometheus.py b/src/pybind/mgr/dashboard/tests/test_prometheus.py
|
||||
index 3385d66a97..ef669a6203 100644
|
||||
--- a/src/pybind/mgr/dashboard/tests/test_prometheus.py
|
||||
+++ b/src/pybind/mgr/dashboard/tests/test_prometheus.py
|
||||
@@ -5,7 +5,7 @@ try:
|
||||
except ImportError:
|
||||
from unittest.mock import patch
|
||||
|
||||
-from . import ControllerTestCase
|
||||
+from . import ControllerTestCase # pylint: disable=no-name-in-module
|
||||
from .. import mgr
|
||||
from ..controllers.prometheus import Prometheus, PrometheusReceiver, PrometheusNotifications
|
||||
|
||||
diff --git a/src/pybind/mgr/dashboard/tests/test_rbd_mirroring.py b/src/pybind/mgr/dashboard/tests/test_rbd_mirroring.py
|
||||
index ecb4856dc1..d7e0c7dd1e 100644
|
||||
--- a/src/pybind/mgr/dashboard/tests/test_rbd_mirroring.py
|
||||
+++ b/src/pybind/mgr/dashboard/tests/test_rbd_mirroring.py
|
||||
@@ -6,7 +6,7 @@ try:
|
||||
except ImportError:
|
||||
import unittest.mock as mock
|
||||
|
||||
-from . import ControllerTestCase
|
||||
+from . import ControllerTestCase # pylint: disable=no-name-in-module
|
||||
from .. import mgr
|
||||
from ..controllers.summary import Summary
|
||||
from ..controllers.rbd_mirroring import RbdMirroring, RbdMirroringSummary, \
|
||||
diff --git a/src/pybind/mgr/dashboard/tests/test_rest_tasks.py b/src/pybind/mgr/dashboard/tests/test_rest_tasks.py
|
||||
index e9d7907f05..aa158cd288 100644
|
||||
--- a/src/pybind/mgr/dashboard/tests/test_rest_tasks.py
|
||||
+++ b/src/pybind/mgr/dashboard/tests/test_rest_tasks.py
|
||||
@@ -8,7 +8,7 @@ try:
|
||||
except ImportError:
|
||||
import unittest.mock as mock
|
||||
|
||||
-from . import ControllerTestCase
|
||||
+from . import ControllerTestCase # pylint: disable=no-name-in-module
|
||||
from ..controllers import Controller, RESTController, Task
|
||||
from ..controllers.task import Task as TaskController
|
||||
from ..services import progress
|
||||
diff --git a/src/pybind/mgr/dashboard/tests/test_rgw.py b/src/pybind/mgr/dashboard/tests/test_rgw.py
|
||||
index 2c90e7d11b..11818ca2b7 100644
|
||||
--- a/src/pybind/mgr/dashboard/tests/test_rgw.py
|
||||
+++ b/src/pybind/mgr/dashboard/tests/test_rgw.py
|
||||
@@ -3,7 +3,7 @@ try:
|
||||
except ImportError:
|
||||
import unittest.mock as mock
|
||||
|
||||
-from . import ControllerTestCase
|
||||
+from . import ControllerTestCase # pylint: disable=no-name-in-module
|
||||
from ..controllers.rgw import RgwUser
|
||||
|
||||
|
||||
diff --git a/src/pybind/mgr/dashboard/tests/test_rgw_client.py b/src/pybind/mgr/dashboard/tests/test_rgw_client.py
|
||||
index d69ab2f48d..fa711b45ca 100644
|
||||
--- a/src/pybind/mgr/dashboard/tests/test_rgw_client.py
|
||||
+++ b/src/pybind/mgr/dashboard/tests/test_rgw_client.py
|
||||
@@ -9,7 +9,7 @@ except ImportError:
|
||||
|
||||
from ..services.rgw_client import RgwClient, _parse_frontend_config
|
||||
from ..settings import Settings
|
||||
-from . import KVStoreMockMixin
|
||||
+from . import KVStoreMockMixin # pylint: disable=no-name-in-module
|
||||
|
||||
|
||||
class RgwClientTest(unittest.TestCase, KVStoreMockMixin):
|
||||
diff --git a/src/pybind/mgr/dashboard/tests/test_settings.py b/src/pybind/mgr/dashboard/tests/test_settings.py
|
||||
index da54a20655..abdb059c1d 100644
|
||||
--- a/src/pybind/mgr/dashboard/tests/test_settings.py
|
||||
+++ b/src/pybind/mgr/dashboard/tests/test_settings.py
|
||||
@@ -3,7 +3,7 @@ from __future__ import absolute_import
|
||||
|
||||
import errno
|
||||
import unittest
|
||||
-from . import KVStoreMockMixin, ControllerTestCase
|
||||
+from . import KVStoreMockMixin, ControllerTestCase # pylint: disable=no-name-in-module
|
||||
from .. import settings
|
||||
from ..controllers.settings import Settings as SettingsController
|
||||
from ..settings import Settings, handle_option_command
|
||||
diff --git a/src/pybind/mgr/dashboard/tests/test_sso.py b/src/pybind/mgr/dashboard/tests/test_sso.py
|
||||
index f8681b89ed..e8141a09cc 100644
|
||||
--- a/src/pybind/mgr/dashboard/tests/test_sso.py
|
||||
+++ b/src/pybind/mgr/dashboard/tests/test_sso.py
|
||||
@@ -5,7 +5,8 @@ from __future__ import absolute_import
|
||||
import errno
|
||||
import unittest
|
||||
|
||||
-from . import CmdException, exec_dashboard_cmd, KVStoreMockMixin
|
||||
+from . import CmdException, exec_dashboard_cmd, \
|
||||
+ KVStoreMockMixin # pylint: disable=no-name-in-module
|
||||
from ..services.sso import handle_sso_command, load_sso_db
|
||||
|
||||
|
||||
diff --git a/src/pybind/mgr/dashboard/tests/test_tools.py b/src/pybind/mgr/dashboard/tests/test_tools.py
|
||||
index 0f27ec8e63..340ff8c41d 100644
|
||||
--- a/src/pybind/mgr/dashboard/tests/test_tools.py
|
||||
+++ b/src/pybind/mgr/dashboard/tests/test_tools.py
|
||||
@@ -10,7 +10,7 @@ try:
|
||||
except ImportError:
|
||||
from unittest.mock import patch
|
||||
|
||||
-from . import ControllerTestCase
|
||||
+from . import ControllerTestCase # pylint: disable=no-name-in-module
|
||||
from ..services.exception import handle_rados_error
|
||||
from ..controllers import RESTController, ApiController, Controller, \
|
||||
BaseController, Proxy
|
||||
diff --git a/src/pybind/mgr/dashboard/tools.py b/src/pybind/mgr/dashboard/tools.py
|
||||
index 2b6d92ca55..d9a2d813c0 100644
|
||||
--- a/src/pybind/mgr/dashboard/tools.py
|
||||
+++ b/src/pybind/mgr/dashboard/tools.py
|
||||
@@ -30,7 +30,7 @@ from .services.auth import JwtManager
|
||||
|
||||
try:
|
||||
from typing import Any, AnyStr, Callable, DefaultDict, Deque,\
|
||||
- Dict, List, Set, Tuple, Union # noqa pylint: disable=unused-import
|
||||
+ Dict, List, Set, Tuple, Union # noqa
|
||||
except ImportError:
|
||||
pass # For typing only
|
||||
|
65
ceph/qa-src-update-mypy-to-0.782.patch
Normal file
65
ceph/qa-src-update-mypy-to-0.782.patch
Normal file
@@ -0,0 +1,65 @@
|
||||
From a61e8e3b6052bf158fe63ab1cd66197f4ffc3900 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Wagner <sebastian.wagner@suse.com>
|
||||
Date: Thu, 25 Jun 2020 14:11:54 +0200
|
||||
Subject: [PATCH] qa,src: update mypy to 0.782
|
||||
|
||||
(cherry picked from commit 78f3473f55afe14698dc702e24cf34030223a373)
|
||||
---
|
||||
qa/tox.ini | 2 +-
|
||||
src/pybind/mgr/dashboard/rest_client.py | 2 +-
|
||||
src/pybind/mgr/tox.ini | 2 +-
|
||||
src/python-common/requirements.txt | 2 +-
|
||||
4 files changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/qa/tox.ini b/qa/tox.ini
|
||||
index 31a1ef4fd4..33ad2db968 100644
|
||||
--- a/qa/tox.ini
|
||||
+++ b/qa/tox.ini
|
||||
@@ -16,7 +16,7 @@ commands=flake8 --select=F,E9 --exclude=venv,.tox
|
||||
|
||||
[testenv:mypy]
|
||||
basepython = python3
|
||||
-deps = mypy==0.770
|
||||
+deps = mypy==0.782
|
||||
commands = mypy {posargs:.}
|
||||
|
||||
[testenv:pytest]
|
||||
diff --git a/src/pybind/mgr/dashboard/rest_client.py b/src/pybind/mgr/dashboard/rest_client.py
|
||||
index 4d58d0dfde..7c04f36a0d 100644
|
||||
--- a/src/pybind/mgr/dashboard/rest_client.py
|
||||
+++ b/src/pybind/mgr/dashboard/rest_client.py
|
||||
@@ -511,7 +511,7 @@ class RestClient(object):
|
||||
resp_structure = api_kwargs.get('resp_structure', None)
|
||||
args_name = inspect.getargspec(func).args
|
||||
args_dict = dict(zip(args_name[1:], args))
|
||||
- for key, val in kwargs:
|
||||
+ for key, val in kwargs.items():
|
||||
args_dict[key] = val
|
||||
return func(
|
||||
self,
|
||||
diff --git a/src/pybind/mgr/tox.ini b/src/pybind/mgr/tox.ini
|
||||
index 3e129ba64e..4c65be7f16 100644
|
||||
--- a/src/pybind/mgr/tox.ini
|
||||
+++ b/src/pybind/mgr/tox.ini
|
||||
@@ -47,7 +47,7 @@ basepython = python3
|
||||
deps =
|
||||
cython
|
||||
-rrequirements.txt
|
||||
- mypy==0.770
|
||||
+ mypy==0.782
|
||||
commands =
|
||||
mypy --config-file=../../mypy.ini \
|
||||
cephadm/module.py \
|
||||
diff --git a/src/python-common/requirements.txt b/src/python-common/requirements.txt
|
||||
index a269fada78..7df43fb736 100644
|
||||
--- a/src/python-common/requirements.txt
|
||||
+++ b/src/python-common/requirements.txt
|
||||
@@ -1,7 +1,7 @@
|
||||
six
|
||||
pytest >=2.1.3,<5; python_version < '3.5'
|
||||
mock; python_version < '3.3'
|
||||
-mypy==0.770; python_version >= '3'
|
||||
+mypy==0.782; python_version >= '3'
|
||||
pytest-mypy; python_version >= '3'
|
||||
pytest >= 2.1.3; python_version >= '3'
|
||||
pyyaml
|
10
ceph/remove-distro-version-detection.patch
Normal file
10
ceph/remove-distro-version-detection.patch
Normal file
@@ -0,0 +1,10 @@
|
||||
--- a/src/common/util.cc 2018-05-29 14:04:02.000000000 +0200
|
||||
+++ b/src/common/util.cc 2018-06-04 13:45:52.279495745 +0200
|
||||
@@ -96,7 +96,6 @@ static bool os_release_parse(map<string,
|
||||
static const map<string, string> kvm = {
|
||||
{ "distro", "ID=" },
|
||||
{ "distro_description", "PRETTY_NAME=" },
|
||||
- { "distro_version", "VERSION_ID=" }
|
||||
};
|
||||
|
||||
FILE *fp = fopen("/etc/os-release", "r");
|
23
ceph/suppress-pylint-warnings.patch
Normal file
23
ceph/suppress-pylint-warnings.patch
Normal file
@@ -0,0 +1,23 @@
|
||||
--- a/src/pybind/mgr/dashboard/.pylintrc 2019-12-06 17:42:34.000000000 +0100
|
||||
+++ b/src/pybind/mgr/dashboard/.pylintrc 2020-01-03 13:55:54.511393504 +0100
|
||||
@@ -119,7 +119,11 @@ disable=import-star-module-level,
|
||||
too-many-arguments,
|
||||
too-many-locals,
|
||||
too-many-statements,
|
||||
- useless-object-inheritance
|
||||
+ useless-object-inheritance,
|
||||
+ no-else-raise,
|
||||
+ multiple-statements,
|
||||
+ unused-argument,
|
||||
+ protected-access
|
||||
|
||||
|
||||
# Enable the message, report, category or checker with the given id(s). You can
|
||||
--- a/src/pybind/mgr/dashboard/services/rgw_client.py 2019-12-06 17:42:34.000000000 +0100
|
||||
+++ b/src/pybind/mgr/dashboard/services/rgw_client.py 2020-01-03 15:13:15.266131061 +0100
|
||||
@@ -1,4 +1,5 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
+# pylint: disable=unused-argument
|
||||
from __future__ import absolute_import
|
||||
|
||||
import re
|
35
ceph/use-system-zstd-and-fix-zstd-1.4.0-compatbility.patch
Normal file
35
ceph/use-system-zstd-and-fix-zstd-1.4.0-compatbility.patch
Normal file
@@ -0,0 +1,35 @@
|
||||
--- a/src/compressor/zstd/ZstdCompressor.h 2019-04-25 20:15:48.000000000 +0200
|
||||
+++ b/src/compressor/zstd/ZstdCompressor.h 2019-07-17 19:11:33.177014923 +0200
|
||||
@@ -16,7 +16,7 @@
|
||||
#define CEPH_ZSTDCOMPRESSOR_H
|
||||
|
||||
#define ZSTD_STATIC_LINKING_ONLY
|
||||
-#include "zstd/lib/zstd.h"
|
||||
+#include <zstd.h>
|
||||
|
||||
#include "include/buffer.h"
|
||||
#include "include/encoding.h"
|
||||
@@ -30,7 +30,13 @@ class ZstdCompressor : public Compressor
|
||||
|
||||
int compress(const bufferlist &src, bufferlist &dst) override {
|
||||
ZSTD_CStream *s = ZSTD_createCStream();
|
||||
- ZSTD_initCStream_srcSize(s, COMPRESSION_LEVEL, src.length());
|
||||
+
|
||||
+ // ZSTD_initCStream_srcSize(s, COMPRESSION_LEVEL, src.length());
|
||||
+ ZSTD_CCtx_reset(s, ZSTD_reset_session_only);
|
||||
+ ZSTD_CCtx_refCDict(s, NULL); // clear the dictionary (if any)
|
||||
+ ZSTD_CCtx_setParameter(s, ZSTD_c_compressionLevel, COMPRESSION_LEVEL);
|
||||
+ ZSTD_CCtx_setPledgedSrcSize(s, src.length());
|
||||
+
|
||||
auto p = src.begin();
|
||||
size_t left = src.length();
|
||||
|
||||
@@ -48,7 +54,7 @@ class ZstdCompressor : public Compressor
|
||||
inbuf.size = p.get_ptr_and_advance(left, (const char**)&inbuf.src);
|
||||
left -= inbuf.size;
|
||||
ZSTD_EndDirective const zed = (left==0) ? ZSTD_e_end : ZSTD_e_continue;
|
||||
- size_t r = ZSTD_compress_generic(s, &outbuf, &inbuf, zed);
|
||||
+ size_t r = ZSTD_compressStream2(s, &outbuf, &inbuf, zed);
|
||||
if (ZSTD_isError(r)) {
|
||||
return -EINVAL;
|
||||
}
|
10
ceph/use-threadsafe-death-tests-objectstore-memstore.patch
Normal file
10
ceph/use-threadsafe-death-tests-objectstore-memstore.patch
Normal file
@@ -0,0 +1,10 @@
|
||||
--- a/src/test/test_objectstore_memstore.sh 2019-04-25 20:15:48.000000000 +0200
|
||||
+++ b/src/test/test_objectstore_memstore.sh 2019-07-14 21:18:32.845040824 +0200
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/bin/sh -ex
|
||||
|
||||
rm -rf memstore.test_temp_dir
|
||||
-ceph_test_objectstore --gtest_filter=\*/0
|
||||
+ceph_test_objectstore --gtest_filter=\*/0 --gtest_death_test_style=threadsafe
|
||||
|
||||
echo OK
|
Reference in New Issue
Block a user