# vim: set noexpandtab ts=8 sw=8 : # # spec file for package ceph # # Copyright (C) 2004-2019 The Ceph Project Developers. See COPYING file # at the top-level directory of this distribution and at # https://github.com/ceph/ceph/blob/master/COPYING # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. # # This file is under the GNU Lesser General Public License, version 2.1 # # Please submit bugfixes or comments via http://tracker.ceph.com/ # # `rdopkg update-patches` will automatically update this macro: %global commit 1f54d52f20d93c1b91f1ec6af4c67a4b81402800 ################################################################################# # conditional build section # # please read http://rpm.org/user_doc/conditional_builds.html for explanation of # bcond syntax! ################################################################################# %bcond_with make_check %bcond_without ceph_test_package %ifarch s390 %bcond_with tcmalloc %else %bcond_without tcmalloc %endif %if 0%{?fedora} || 0%{?rhel} %bcond_without selinux %if 0%{?rhel} >= 8 %bcond_with cephfs_java %else %bcond_without cephfs_java %endif %bcond_without amqp_endpoint %bcond_without lttng %bcond_without libradosstriper %bcond_without ocf %bcond_without kafka_endpoint %global _remote_tarball_prefix https://download.ceph.com/tarballs/ %endif %if 0%{?suse_version} %bcond_with selinux %bcond_with cephfs_java %bcond_with amqp_endpoint %bcond_with kafka_endpoint #Compat macro for new _fillupdir macro introduced in Nov 2017 %if ! %{defined _fillupdir} %global _fillupdir /var/adm/fillup-templates %endif %if 0%{?is_opensuse} %bcond_without libradosstriper %bcond_without ocf %else %bcond_with libradosstriper %bcond_with ocf %endif %ifarch x86_64 aarch64 ppc64le s390x %bcond_without lttng %else %bcond_with lttng %endif %endif %bcond_with seastar %if 0%{?fedora} >= 29 || 0%{?suse_version} >= 1500 || 0%{?rhel} >= 8 # distros that need a py3 Ceph build %bcond_with python2 %else # distros that need a py2 Ceph build %bcond_without python2 %endif %if 0%{?fedora} || 0%{?suse_version} >= 1500 # distros that ship cmd2 and/or colorama %bcond_without cephfs_shell %else # distros that do _not_ ship cmd2/colorama %bcond_with cephfs_shell %endif %if 0%{without python2} %global _defined_if_python2_absent 1 %endif %if 0%{?fedora} || 0%{?suse_version} || 0%{?rhel} >= 8 %global weak_deps 1 %endif %if %{with selinux} # get selinux policy version %{!?_selinux_policy_version: %global _selinux_policy_version 0.0.0} %endif %{!?_udevrulesdir: %global _udevrulesdir /lib/udev/rules.d} %{!?tmpfiles_create: %global tmpfiles_create systemd-tmpfiles --create} %{!?python3_pkgversion: %global python3_pkgversion 3} %{!?python3_version_nodots: %global python3_version_nodots 3} %{!?python3_version: %global python3_version 3} # define _python_buildid macro which will expand to the empty string when # building with python2 %global _python_buildid %{?_defined_if_python2_absent:%{python3_pkgversion}} # unify libexec for all targets %global _libexecdir %{_exec_prefix}/lib # disable dwz which compresses the debuginfo %global _find_debuginfo_dwz_opts %{nil} ################################################################################# # main package definition ################################################################################# Name: ceph Version: 14.2.11 Release: 147%{?dist} %if 0%{?fedora} || 0%{?rhel} Epoch: 2 %endif # define _epoch_prefix macro which will expand to the empty string if epoch is # undefined %global _epoch_prefix %{?epoch:%{epoch}:} Summary: User space components of the Ceph file system License: LGPL-2.1 and CC-BY-SA-3.0 and GPL-2.0 and BSL-1.0 and BSD-3-Clause and MIT %if 0%{?suse_version} Group: System/Filesystems %endif URL: http://ceph.com/ Source0: %{?_remote_tarball_prefix}%{name}-%{version}.tar.gz Source1: %{name}-%{version}-%{commit}-changes.tar.gz Source2: dashboard_frontend-%{version}-%{commit}.tar.gz Source100: spawn-5f4742f.tar.gz Source101: civetweb.patch Source102: IBM-Z-Fix-fcontext-routines.patch %if 0%{?suse_version} # _insert_obs_source_lines_here ExclusiveArch: x86_64 aarch64 ppc64le s390x %endif ################################################################################# # dependencies that apply across all distro families ################################################################################# Requires: ceph-osd = %{_epoch_prefix}%{version}-%{release} Requires: ceph-mds = %{_epoch_prefix}%{version}-%{release} Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release} Requires: ceph-mon = %{_epoch_prefix}%{version}-%{release} Requires(post): binutils %if 0%{with cephfs_java} BuildRequires: java-devel BuildRequires: sharutils %endif %if 0%{with selinux} BuildRequires: checkpolicy BuildRequires: selinux-policy-devel %endif BuildRequires: gperf %if 0%{?rhel} == 7 BuildRequires: cmake3 > 3.5 %else BuildRequires: cmake > 3.5 %endif BuildRequires: cryptsetup BuildRequires: fuse-devel %if 0%{?rhel} == 7 # devtoolset offers newer make and valgrind-devel, but the old ones are good # enough. BuildRequires: devtoolset-8-gcc-c++ >= 8.2.1 %else BuildRequires: gcc-c++ %endif BuildRequires: gdbm %if 0%{with tcmalloc} # libprofiler did not build on ppc64le until 2.7.90 %if 0%{?fedora} || 0%{?rhel} >= 8 BuildRequires: gperftools-devel >= 2.6.3-3 %endif %if 0%{?rhel} && 0%{?rhel} < 8 BuildRequires: gperftools-devel >= 2.6.1 %endif %if 0%{?suse_version} BuildRequires: gperftools-devel >= 2.4 %endif %endif BuildRequires: leveldb-devel > 1.2 BuildRequires: libaio-devel BuildRequires: libblkid-devel >= 2.17 BuildRequires: libcurl-devel BuildRequires: libcap-ng-devel BuildRequires: libudev-devel BuildRequires: libnl3-devel BuildRequires: liboath-devel BuildRequires: libtool BuildRequires: libxml2-devel BuildRequires: make BuildRequires: ncurses-devel BuildRequires: parted BuildRequires: patch BuildRequires: perl BuildRequires: pkgconfig BuildRequires: procps BuildRequires: python%{_python_buildid} BuildRequires: python%{_python_buildid}-devel BuildRequires: snappy-devel BuildRequires: sudo BuildRequires: udev BuildRequires: util-linux BuildRequires: valgrind-devel BuildRequires: which BuildRequires: xfsprogs BuildRequires: xfsprogs-devel BuildRequires: xmlstarlet BuildRequires: yasm %if 0%{with amqp_endpoint} BuildRequires: librabbitmq-devel %endif %if 0%{with kafka_endpoint} BuildRequires: librdkafka-devel %endif %if 0%{with make_check} BuildRequires: jq BuildRequires: libuuid-devel BuildRequires: python%{_python_buildid}-bcrypt BuildRequires: python%{_python_buildid}-nose BuildRequires: python%{_python_buildid}-pecan BuildRequires: python%{_python_buildid}-requests BuildRequires: python%{_python_buildid}-six BuildRequires: python%{_python_buildid}-virtualenv BuildRequires: socat %endif %if 0%{with seastar} BuildRequires: c-ares-devel BuildRequires: gnutls-devel BuildRequires: hwloc-devel BuildRequires: libpciaccess-devel BuildRequires: lksctp-tools-devel BuildRequires: protobuf-devel BuildRequires: ragel BuildRequires: systemtap-sdt-devel BuildRequires: yaml-cpp-devel %endif ################################################################################# # distro-conditional dependencies ################################################################################# %if 0%{?suse_version} BuildRequires: pkgconfig(systemd) BuildRequires: systemd-rpm-macros %{?systemd_requires} PreReq: %fillup_prereq BuildRequires: fdupes BuildRequires: net-tools BuildRequires: libbz2-devel BuildRequires: mozilla-nss-devel BuildRequires: keyutils-devel BuildRequires: libopenssl-devel BuildRequires: lsb-release BuildRequires: openldap2-devel #BuildRequires: krb5 #BuildRequires: krb5-devel BuildRequires: cunit-devel BuildRequires: python%{_python_buildid}-setuptools BuildRequires: python%{_python_buildid}-Cython BuildRequires: python%{_python_buildid}-PrettyTable BuildRequires: python%{_python_buildid}-Sphinx BuildRequires: rdma-core-devel BuildRequires: liblz4-devel >= 1.7 # for prometheus-alerts BuildRequires: golang-github-prometheus-prometheus %endif %if 0%{?fedora} || 0%{?rhel} Requires: systemd BuildRequires: boost-random BuildRequires: nss-devel BuildRequires: keyutils-libs-devel BuildRequires: libibverbs-devel BuildRequires: librdmacm-devel BuildRequires: openldap-devel #BuildRequires: krb5-devel BuildRequires: openssl-devel BuildRequires: CUnit-devel BuildRequires: redhat-lsb-core %if 0%{with python2} BuildRequires: python2-Cython %endif BuildRequires: python%{python3_pkgversion}-devel BuildRequires: python%{python3_pkgversion}-setuptools %if 0%{?rhel} == 7 BuildRequires: python%{python3_version_nodots}-Cython %else BuildRequires: python%{python3_pkgversion}-Cython %endif BuildRequires: python%{_python_buildid}-prettytable BuildRequires: python%{_python_buildid}-sphinx BuildRequires: lz4-devel >= 1.7 %endif # distro-conditional make check dependencies %if 0%{with make_check} %if 0%{?fedora} || 0%{?rhel} BuildRequires: python%{_python_buildid}-coverage BuildRequires: python%{_python_buildid}-pecan BuildRequires: python%{_python_buildid}-tox BuildRequires: xmlsec1 %if 0%{?rhel} == 7 BuildRequires: pyOpenSSL%{_python_buildid} %else BuildRequires: python%{_python_buildid}-pyOpenSSL %endif BuildRequires: python%{_python_buildid}-cherrypy BuildRequires: python%{_python_buildid}-jwt BuildRequires: python%{_python_buildid}-routes BuildRequires: python%{_python_buildid}-scipy BuildRequires: python%{_python_buildid}-werkzeug %endif %if 0%{?suse_version} BuildRequires: python%{_python_buildid}-CherryPy BuildRequires: python%{_python_buildid}-PyJWT BuildRequires: python%{_python_buildid}-Routes BuildRequires: python%{_python_buildid}-Werkzeug BuildRequires: python%{_python_buildid}-coverage BuildRequires: python%{_python_buildid}-numpy-devel BuildRequires: python%{_python_buildid}-pecan BuildRequires: python%{_python_buildid}-pyOpenSSL BuildRequires: python%{_python_buildid}-tox BuildRequires: rpm-build BuildRequires: xmlsec1-devel %endif %endif # lttng and babeltrace for rbd-replay-prep %if %{with lttng} %if 0%{?fedora} || 0%{?rhel} BuildRequires: lttng-ust-devel BuildRequires: libbabeltrace-devel %endif %if 0%{?suse_version} BuildRequires: lttng-ust-devel BuildRequires: babeltrace-devel %endif %endif %if 0%{?suse_version} BuildRequires: libexpat-devel %endif %if 0%{?rhel} || 0%{?fedora} BuildRequires: expat-devel %endif #hardened-cc1 %if 0%{?fedora} || 0%{?rhel} BuildRequires: redhat-rpm-config %endif %if 0%{with seastar} %if 0%{?fedora} || 0%{?rhel} BuildRequires: cryptopp-devel BuildRequires: numactl-devel BuildRequires: protobuf-compiler %endif %if 0%{?suse_version} BuildRequires: libcryptopp-devel BuildRequires: libnuma-devel %endif %endif %if 0%{?rhel} >= 8 BuildRequires: /usr/bin/pathfix.py %endif %description Ceph is a massively scalable, open-source, distributed storage system that runs on commodity hardware and delivers object, block and file system storage. ################################################################################# # subpackages ################################################################################# %package base Summary: Ceph Base Package %if 0%{?suse_version} Group: System/Filesystems %endif Provides: ceph-test:/usr/bin/ceph-kvstore-tool Requires: ceph-common = %{_epoch_prefix}%{version}-%{release} Requires: librbd1 = %{_epoch_prefix}%{version}-%{release} Requires: librados2 = %{_epoch_prefix}%{version}-%{release} Requires: libcephfs2 = %{_epoch_prefix}%{version}-%{release} Requires: librgw2 = %{_epoch_prefix}%{version}-%{release} %if 0%{with selinux} Requires: ceph-selinux = %{_epoch_prefix}%{version}-%{release} %endif Requires: cryptsetup Requires: e2fsprogs Requires: findutils Requires: grep Requires: logrotate Requires: parted Requires: psmisc Requires: python%{_python_buildid}-setuptools Requires: util-linux Requires: xfsprogs Requires: which %if 0%{?rhel} && 0%{?rhel} < 8 # The following is necessary due to tracker 36508 and can be removed once the # associated upstream bugs are resolved. %if 0%{with tcmalloc} Requires: gperftools-libs >= 2.6.1 %endif %endif %if 0%{?weak_deps} Recommends: chrony %endif %description base Base is the package that includes all the files shared amongst ceph servers %package -n ceph-common Summary: Ceph Common %if 0%{?suse_version} Group: System/Filesystems %endif Requires: librbd1 = %{_epoch_prefix}%{version}-%{release} Requires: librados2 = %{_epoch_prefix}%{version}-%{release} Requires: libcephfs2 = %{_epoch_prefix}%{version}-%{release} Requires: python%{_python_buildid}-rados = %{_epoch_prefix}%{version}-%{release} Requires: python%{_python_buildid}-rbd = %{_epoch_prefix}%{version}-%{release} Requires: python%{_python_buildid}-cephfs = %{_epoch_prefix}%{version}-%{release} Requires: python%{_python_buildid}-rgw = %{_epoch_prefix}%{version}-%{release} Requires: python%{_python_buildid}-ceph-argparse = %{_epoch_prefix}%{version}-%{release} %if 0%{?fedora} || 0%{?rhel} Requires: python%{_python_buildid}-prettytable %endif %if 0%{?suse_version} Requires: python%{_python_buildid}-PrettyTable %endif %if 0%{with libradosstriper} Requires: libradosstriper1 = %{_epoch_prefix}%{version}-%{release} %endif %{?systemd_requires} %if 0%{?suse_version} Requires(pre): pwdutils %endif %description -n ceph-common Common utilities to mount and interact with a ceph storage cluster. Comprised of files that are common to Ceph clients and servers. %package mds Summary: Ceph Metadata Server Daemon %if 0%{?suse_version} Group: System/Filesystems %endif Requires: ceph-base = %{_epoch_prefix}%{version}-%{release} %description mds ceph-mds is the metadata server daemon for the Ceph distributed file system. One or more instances of ceph-mds collectively manage the file system namespace, coordinating access to the shared OSD cluster. %package mon Summary: Ceph Monitor Daemon %if 0%{?suse_version} Group: System/Filesystems %endif Provides: ceph-test:/usr/bin/ceph-monstore-tool Requires: ceph-base = %{_epoch_prefix}%{version}-%{release} %description mon ceph-mon is the cluster monitor daemon for the Ceph distributed file system. One or more instances of ceph-mon form a Paxos part-time parliament cluster that provides extremely reliable and durable storage of cluster membership, configuration, and state. %package mgr Summary: Ceph Manager Daemon %if 0%{?suse_version} Group: System/Filesystems %endif Requires: ceph-base = %{_epoch_prefix}%{version}-%{release} Requires: python%{_python_buildid}-bcrypt Requires: python%{_python_buildid}-pecan Requires: python%{_python_buildid}-requests Requires: python%{_python_buildid}-six %if 0%{?fedora} || 0%{?rhel} Requires: python%{_python_buildid}-cherrypy Requires: python%{_python_buildid}-werkzeug %endif %if 0%{?suse_version} Requires: python%{_python_buildid}-CherryPy Requires: python%{_python_buildid}-Werkzeug %endif %if 0%{?weak_deps} Recommends: ceph-mgr-dashboard = %{_epoch_prefix}%{version}-%{release} Recommends: ceph-mgr-diskprediction-local = %{_epoch_prefix}%{version}-%{release} Recommends: ceph-mgr-diskprediction-cloud = %{_epoch_prefix}%{version}-%{release} Recommends: ceph-mgr-rook = %{_epoch_prefix}%{version}-%{release} Recommends: ceph-mgr-k8sevents = %{_epoch_prefix}%{version}-%{release} Recommends: ceph-mgr-ssh = %{_epoch_prefix}%{version}-%{release} Recommends: python%{_python_buildid}-influxdb %endif %if 0%{?rhel} == 7 Requires: pyOpenSSL %else Requires: python%{_python_buildid}-pyOpenSSL %endif %if 0%{?rhel} < 8 || 0%{?suse_version} Requires: python-enum34 %endif %description mgr ceph-mgr enables python modules that provide services (such as the REST module derived from Calamari) and expose CLI hooks. ceph-mgr gathers the cluster maps, the daemon metadata, and performance counters, and exposes all these to the python modules. %package mgr-dashboard Summary: Ceph Dashboard BuildArch: noarch %if 0%{?suse_version} Group: System/Filesystems %endif Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release} Requires: ceph-grafana-dashboards = %{_epoch_prefix}%{version}-%{release} %if 0%{?fedora} || 0%{?rhel} Requires: python%{_python_buildid}-cherrypy Requires: python%{_python_buildid}-jwt Requires: python%{_python_buildid}-routes Requires: python%{_python_buildid}-werkzeug %if 0%{?weak_deps} Recommends: python%{_python_buildid}-saml %endif %endif %if 0%{?suse_version} Requires: python%{_python_buildid}-CherryPy Requires: python%{_python_buildid}-PyJWT Requires: python%{_python_buildid}-Routes Requires: python%{_python_buildid}-Werkzeug %endif %if 0%{?rhel} == 7 Requires: pyOpenSSL %else Requires: python%{_python_buildid}-pyOpenSSL %endif %description mgr-dashboard ceph-mgr-dashboard is a manager plugin, providing a web-based application to monitor and manage many aspects of a Ceph cluster and related components. See the Dashboard documentation at http://docs.ceph.com/ for details and a detailed feature overview. %package mgr-diskprediction-local Summary: ceph-mgr diskprediction_local plugin BuildArch: noarch %if 0%{?suse_version} Group: System/Filesystems %endif Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release} %if 0%{?fedora} || 0%{?rhel} > 7 || 0%{?suse_version} Requires: python%{_python_buildid}-numpy %if 0%{without python2} Requires: python3-scipy %else Requires: python2-scipy %endif %endif %if 0%{?rhel} == 7 Requires: numpy Requires: scipy %endif %description mgr-diskprediction-local ceph-mgr-diskprediction-local is a ceph-mgr plugin that tries to predict disk failures using local algorithms and machine-learning databases. %package mgr-diskprediction-cloud Summary: ceph-mgr diskprediction_cloud plugin BuildArch: noarch %if 0%{?suse_version} Group: System/Filesystems %endif Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release} %description mgr-diskprediction-cloud ceph-mgr-diskprediction-cloud is a ceph-mgr plugin that tries to predict disk failures using services in the Google cloud. %package mgr-rook BuildArch: noarch Summary: ceph-mgr rook plugin %if 0%{?suse_version} Group: System/Filesystems %endif Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release} Requires: python%{_python_buildid}-kubernetes %description mgr-rook ceph-mgr-rook is a ceph-mgr plugin for orchestration functions using a Rook backend. %package mgr-k8sevents BuildArch: noarch Summary: Ceph Manager plugin to orchestrate ceph-events to kubernetes' events API %if 0%{?suse_version} Group: System/Filesystems %endif Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release} Requires: python%{_python_buildid}-kubernetes %description mgr-k8sevents ceph-mgr-k8sevents is a ceph-mgr plugin that sends every ceph-events to kubernetes' events API %package mgr-ssh Summary: ceph-mgr ssh module BuildArch: noarch %if 0%{?suse_version} Group: System/Filesystems %endif Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release} Requires: python%{_python_buildid}-remoto %description mgr-ssh ceph-mgr-ssh is a ceph-mgr module for orchestration functions using direct SSH connections for management operations. %package fuse Summary: Ceph fuse-based client %if 0%{?suse_version} Group: System/Filesystems %endif Requires: fuse Requires: python%{python3_pkgversion} %description fuse FUSE based client for Ceph distributed network file system %package -n rbd-fuse Summary: Ceph fuse-based client %if 0%{?suse_version} Group: System/Filesystems %endif Requires: librados2 = %{_epoch_prefix}%{version}-%{release} Requires: librbd1 = %{_epoch_prefix}%{version}-%{release} %description -n rbd-fuse FUSE based client to map Ceph rbd images to files %package -n rbd-mirror Summary: Ceph daemon for mirroring RBD images %if 0%{?suse_version} Group: System/Filesystems %endif Requires: ceph-base = %{_epoch_prefix}%{version}-%{release} Requires: librados2 = %{_epoch_prefix}%{version}-%{release} Requires: librbd1 = %{_epoch_prefix}%{version}-%{release} %description -n rbd-mirror Daemon for mirroring RBD images between Ceph clusters, streaming changes asynchronously. %package -n rbd-nbd Summary: Ceph RBD client base on NBD %if 0%{?suse_version} Group: System/Filesystems %endif Requires: librados2 = %{_epoch_prefix}%{version}-%{release} Requires: librbd1 = %{_epoch_prefix}%{version}-%{release} %description -n rbd-nbd NBD based client to map Ceph rbd images to local device %package radosgw Summary: Rados REST gateway %if 0%{?suse_version} Group: System/Filesystems %endif Requires: ceph-base = %{_epoch_prefix}%{version}-%{release} %if 0%{with selinux} Requires: ceph-selinux = %{_epoch_prefix}%{version}-%{release} %endif Requires: librados2 = %{_epoch_prefix}%{version}-%{release} Requires: librgw2 = %{_epoch_prefix}%{version}-%{release} %if 0%{?rhel} || 0%{?fedora} Requires: mailcap %endif %if 0%{?weak_deps} Recommends: gawk %endif %description radosgw RADOS is a distributed object store used by the Ceph distributed storage system. This package provides a REST gateway to the object store that aims to implement a superset of Amazon's S3 service as well as the OpenStack Object Storage ("Swift") API. %if %{with ocf} %package resource-agents Summary: OCF-compliant resource agents for Ceph daemons %if 0%{?suse_version} Group: System/Filesystems %endif Requires: ceph-base = %{_epoch_prefix}%{version} Requires: resource-agents %description resource-agents Resource agents for monitoring and managing Ceph daemons under Open Cluster Framework (OCF) compliant resource managers such as Pacemaker. %endif %package osd Summary: Ceph Object Storage Daemon %if 0%{?suse_version} Group: System/Filesystems %endif Provides: ceph-test:/usr/bin/ceph-osdomap-tool Requires: ceph-base = %{_epoch_prefix}%{version}-%{release} Requires: lvm2 Requires: sudo Requires: libstoragemgmt %description osd ceph-osd is the object storage daemon for the Ceph distributed file system. It is responsible for storing objects on a local file system and providing access to them over the network. %package -n librados2 Summary: RADOS distributed object store client library %if 0%{?suse_version} Group: System/Libraries %endif %if 0%{?rhel} || 0%{?fedora} Obsoletes: ceph-libs < %{_epoch_prefix}%{version}-%{release} %endif %description -n librados2 RADOS is a reliable, autonomic distributed object storage cluster developed as part of the Ceph distributed storage system. This is a shared library allowing applications to access the distributed object store using a simple file-like interface. %package -n librados-devel Summary: RADOS headers %if 0%{?suse_version} Group: Development/Libraries/C and C++ %endif Requires: librados2 = %{_epoch_prefix}%{version}-%{release} Obsoletes: ceph-devel < %{_epoch_prefix}%{version}-%{release} Provides: librados2-devel = %{_epoch_prefix}%{version}-%{release} Obsoletes: librados2-devel < %{_epoch_prefix}%{version}-%{release} %description -n librados-devel This package contains C libraries and headers needed to develop programs that use RADOS object store. %package -n libradospp-devel Summary: RADOS headers %if 0%{?suse_version} Group: Development/Libraries/C and C++ %endif Requires: librados2 = %{_epoch_prefix}%{version}-%{release} Requires: librados-devel = %{_epoch_prefix}%{version}-%{release} %description -n libradospp-devel This package contains C++ libraries and headers needed to develop programs that use RADOS object store. %package -n librgw2 Summary: RADOS gateway client library %if 0%{?suse_version} Group: System/Libraries %endif Requires: librados2 = %{_epoch_prefix}%{version}-%{release} %description -n librgw2 This package provides a library implementation of the RADOS gateway (distributed object store with S3 and Swift personalities). %package -n librgw-devel Summary: RADOS gateway client library %if 0%{?suse_version} Group: Development/Libraries/C and C++ %endif Requires: librados-devel = %{_epoch_prefix}%{version}-%{release} Requires: librgw2 = %{_epoch_prefix}%{version}-%{release} Provides: librgw2-devel = %{_epoch_prefix}%{version}-%{release} Obsoletes: librgw2-devel < %{_epoch_prefix}%{version}-%{release} %description -n librgw-devel This package contains libraries and headers needed to develop programs that use RADOS gateway client library. %if 0%{with python2} %package -n python-rgw Summary: Python 2 libraries for the RADOS gateway %if 0%{?suse_version} Group: Development/Libraries/Python %endif Requires: librgw2 = %{_epoch_prefix}%{version}-%{release} Requires: python-rados = %{_epoch_prefix}%{version}-%{release} %{?python_provide:%python_provide python-rgw} Obsoletes: python-ceph < %{_epoch_prefix}%{version}-%{release} %description -n python-rgw This package contains Python 2 libraries for interacting with Cephs RADOS gateway. %endif %package -n python%{python3_pkgversion}-rgw Summary: Python 3 libraries for the RADOS gateway %if 0%{?suse_version} Group: Development/Libraries/Python %endif Requires: librgw2 = %{_epoch_prefix}%{version}-%{release} Requires: python%{python3_pkgversion}-rados = %{_epoch_prefix}%{version}-%{release} %{?python_provide:%python_provide python%{python3_pkgversion}-rgw} %if 0%{without python2} Provides: python-rgw = %{_epoch_prefix}%{version}-%{release} Obsoletes: python-rgw < %{_epoch_prefix}%{version}-%{release} %endif %description -n python%{python3_pkgversion}-rgw This package contains Python 3 libraries for interacting with Cephs RADOS gateway. %if 0%{with python2} %package -n python-rados Summary: Python 2 libraries for the RADOS object store %if 0%{?suse_version} Group: Development/Libraries/Python %endif Requires: librados2 = %{_epoch_prefix}%{version}-%{release} %{?python_provide:%python_provide python-rados} Obsoletes: python-ceph < %{_epoch_prefix}%{version}-%{release} %description -n python-rados This package contains Python 2 libraries for interacting with Cephs RADOS object store. %endif %package -n python%{python3_pkgversion}-rados Summary: Python 3 libraries for the RADOS object store %if 0%{?suse_version} Group: Development/Libraries/Python %endif Requires: python%{python3_pkgversion} Requires: librados2 = %{_epoch_prefix}%{version}-%{release} %{?python_provide:%python_provide python%{python3_pkgversion}-rados} %if 0%{without python2} Provides: python-rados = %{_epoch_prefix}%{version}-%{release} Obsoletes: python-rados < %{_epoch_prefix}%{version}-%{release} %endif %description -n python%{python3_pkgversion}-rados This package contains Python 3 libraries for interacting with Cephs RADOS object store. %if 0%{with libradosstriper} %package -n libradosstriper1 Summary: RADOS striping interface %if 0%{?suse_version} Group: System/Libraries %endif Requires: librados2 = %{_epoch_prefix}%{version}-%{release} %description -n libradosstriper1 Striping interface built on top of the rados library, allowing to stripe bigger objects onto several standard rados objects using an interface very similar to the rados one. %package -n libradosstriper-devel Summary: RADOS striping interface headers %if 0%{?suse_version} Group: Development/Libraries/C and C++ %endif Requires: libradosstriper1 = %{_epoch_prefix}%{version}-%{release} Requires: librados-devel = %{_epoch_prefix}%{version}-%{release} Requires: libradospp-devel = %{_epoch_prefix}%{version}-%{release} Obsoletes: ceph-devel < %{_epoch_prefix}%{version}-%{release} Provides: libradosstriper1-devel = %{_epoch_prefix}%{version}-%{release} Obsoletes: libradosstriper1-devel < %{_epoch_prefix}%{version}-%{release} %description -n libradosstriper-devel This package contains libraries and headers needed to develop programs that use RADOS striping interface. %endif %package -n librbd1 Summary: RADOS block device client library %if 0%{?suse_version} Group: System/Libraries %endif Requires: librados2 = %{_epoch_prefix}%{version}-%{release} %if 0%{?suse_version} Requires(post): coreutils %endif %if 0%{?rhel} || 0%{?fedora} Obsoletes: ceph-libs < %{_epoch_prefix}%{version}-%{release} %endif %description -n librbd1 RBD is a block device striped across multiple distributed objects in RADOS, a reliable, autonomic distributed object storage cluster developed as part of the Ceph distributed storage system. This is a shared library allowing applications to manage these block devices. %package -n librbd-devel Summary: RADOS block device headers %if 0%{?suse_version} Group: Development/Libraries/C and C++ %endif Requires: librbd1 = %{_epoch_prefix}%{version}-%{release} Requires: librados-devel = %{_epoch_prefix}%{version}-%{release} Requires: libradospp-devel = %{_epoch_prefix}%{version}-%{release} Obsoletes: ceph-devel < %{_epoch_prefix}%{version}-%{release} Provides: librbd1-devel = %{_epoch_prefix}%{version}-%{release} Obsoletes: librbd1-devel < %{_epoch_prefix}%{version}-%{release} %description -n librbd-devel This package contains libraries and headers needed to develop programs that use RADOS block device. %if 0%{with python2} %package -n python-rbd Summary: Python 2 libraries for the RADOS block device %if 0%{?suse_version} Group: Development/Libraries/Python %endif Requires: librbd1 = %{_epoch_prefix}%{version}-%{release} Requires: python-rados = %{_epoch_prefix}%{version}-%{release} %{?python_provide:%python_provide python-rbd} Obsoletes: python-ceph < %{_epoch_prefix}%{version}-%{release} %description -n python-rbd This package contains Python 2 libraries for interacting with Cephs RADOS block device. %endif %package -n python%{python3_pkgversion}-rbd Summary: Python 3 libraries for the RADOS block device %if 0%{?suse_version} Group: Development/Libraries/Python %endif Requires: librbd1 = %{_epoch_prefix}%{version}-%{release} Requires: python%{python3_pkgversion}-rados = %{_epoch_prefix}%{version}-%{release} %{?python_provide:%python_provide python%{python3_pkgversion}-rbd} Provides: python3-rbd = %{_epoch_prefix}%{version}-%{release} %if 0%{without python2} Provides: python-rbd = %{_epoch_prefix}%{version}-%{release} Obsoletes: python-rbd < %{_epoch_prefix}%{version}-%{release} %endif %description -n python%{python3_pkgversion}-rbd This package contains Python 3 libraries for interacting with Cephs RADOS block device. %package -n libcephfs2 Summary: Ceph distributed file system client library %if 0%{?suse_version} Group: System/Libraries %endif Obsoletes: libcephfs1 < %{_epoch_prefix}%{version}-%{release} %if 0%{?rhel} || 0%{?fedora} Obsoletes: ceph-libs < %{_epoch_prefix}%{version}-%{release} Obsoletes: ceph-libcephfs %endif %description -n libcephfs2 Ceph is a distributed network file system designed to provide excellent performance, reliability, and scalability. This is a shared library allowing applications to access a Ceph distributed file system via a POSIX-like interface. %package -n libcephfs-devel Summary: Ceph distributed file system headers %if 0%{?suse_version} Group: Development/Libraries/C and C++ %endif Requires: libcephfs2 = %{_epoch_prefix}%{version}-%{release} Requires: librados-devel = %{_epoch_prefix}%{version}-%{release} Obsoletes: ceph-devel < %{_epoch_prefix}%{version}-%{release} Provides: libcephfs2-devel = %{_epoch_prefix}%{version}-%{release} Obsoletes: libcephfs2-devel < %{_epoch_prefix}%{version}-%{release} %description -n libcephfs-devel This package contains libraries and headers needed to develop programs that use Cephs distributed file system. %if 0%{with python2} %package -n python-cephfs Summary: Python 2 libraries for Ceph distributed file system %if 0%{?suse_version} Group: Development/Libraries/Python %endif Requires: libcephfs2 = %{_epoch_prefix}%{version}-%{release} Requires: python-rados = %{_epoch_prefix}%{version}-%{release} Requires: python-ceph-argparse = %{_epoch_prefix}%{version}-%{release} %{?python_provide:%python_provide python-cephfs} Obsoletes: python-ceph < %{_epoch_prefix}%{version}-%{release} %description -n python-cephfs This package contains Python 2 libraries for interacting with Cephs distributed file system. %endif %package -n python%{python3_pkgversion}-cephfs Summary: Python 3 libraries for Ceph distributed file system %if 0%{?suse_version} Group: Development/Libraries/Python %endif Requires: libcephfs2 = %{_epoch_prefix}%{version}-%{release} Requires: python%{python3_pkgversion}-rados = %{_epoch_prefix}%{version}-%{release} Requires: python%{python3_pkgversion}-ceph-argparse = %{_epoch_prefix}%{version}-%{release} %{?python_provide:%python_provide python%{python3_pkgversion}-cephfs} %if 0%{without python2} Provides: python-cephfs = %{_epoch_prefix}%{version}-%{release} Obsoletes: python-cephfs < %{_epoch_prefix}%{version}-%{release} %endif %description -n python%{python3_pkgversion}-cephfs This package contains Python 3 libraries for interacting with Cephs distributed file system. %if 0%{with python2} %package -n python-ceph-argparse Summary: Python 2 utility libraries for Ceph CLI %if 0%{?suse_version} Group: Development/Libraries/Python %endif %description -n python-ceph-argparse This package contains types and routines for Python 2 used by the Ceph CLI as well as the RESTful interface. These have to do with querying the daemons for command-description information, validating user command input against those descriptions, and submitting the command to the appropriate daemon. %endif %package -n python%{python3_pkgversion}-ceph-argparse Summary: Python 3 utility libraries for Ceph CLI %if 0%{?suse_version} Group: Development/Libraries/Python %endif %{?python_provide:%python_provide python%{python3_pkgversion}-ceph-argparse} %description -n python%{python3_pkgversion}-ceph-argparse This package contains types and routines for Python 3 used by the Ceph CLI as well as the RESTful interface. These have to do with querying the daemons for command-description information, validating user command input against those descriptions, and submitting the command to the appropriate daemon. %if 0%{with cephfs_shell} %package -n cephfs-shell Summary: Interactive shell for Ceph file system Requires: python%{python3_pkgversion}-cmd2 Requires: python%{python3_pkgversion}-colorama Requires: python%{python3_pkgversion}-cephfs %description -n cephfs-shell This package contains an interactive tool that allows accessing a Ceph file system without mounting it by providing a nice pseudo-shell which works like an FTP client. %endif %if 0%{with ceph_test_package} %package -n ceph-test Summary: Ceph benchmarks and test tools %if 0%{?suse_version} Group: System/Benchmark %endif Requires: ceph-common = %{_epoch_prefix}%{version}-%{release} Requires: xmlstarlet Requires: jq Requires: socat %description -n ceph-test This package contains Ceph benchmarks and test tools. %endif %if 0%{with cephfs_java} %package -n libcephfs_jni1 Summary: Java Native Interface library for CephFS Java bindings %if 0%{?suse_version} Group: System/Libraries %endif Requires: java Requires: libcephfs2 = %{_epoch_prefix}%{version}-%{release} %description -n libcephfs_jni1 This package contains the Java Native Interface library for CephFS Java bindings. %package -n libcephfs_jni-devel Summary: Development files for CephFS Java Native Interface library %if 0%{?suse_version} Group: Development/Libraries/Java %endif Requires: java Requires: libcephfs_jni1 = %{_epoch_prefix}%{version}-%{release} Obsoletes: ceph-devel < %{_epoch_prefix}%{version}-%{release} Provides: libcephfs_jni1-devel = %{_epoch_prefix}%{version}-%{release} Obsoletes: libcephfs_jni1-devel < %{_epoch_prefix}%{version}-%{release} %description -n libcephfs_jni-devel This package contains the development files for CephFS Java Native Interface library. %package -n cephfs-java Summary: Java libraries for the Ceph File System %if 0%{?suse_version} Group: System/Libraries %endif Requires: java Requires: libcephfs_jni1 = %{_epoch_prefix}%{version}-%{release} Requires: junit BuildRequires: junit %description -n cephfs-java This package contains the Java libraries for the Ceph File System. %endif %package -n rados-objclass-devel Summary: RADOS object class development kit %if 0%{?suse_version} Group: Development/Libraries/C and C++ %endif Requires: libradospp-devel = %{_epoch_prefix}%{version}-%{release} %description -n rados-objclass-devel This package contains libraries and headers needed to develop RADOS object class plugins. %if 0%{with selinux} %package selinux Summary: SELinux support for Ceph MON, OSD and MDS %if 0%{?suse_version} Group: System/Filesystems %endif Requires: ceph-base = %{_epoch_prefix}%{version}-%{release} Requires: policycoreutils, libselinux-utils Requires(post): ceph-base = %{_epoch_prefix}%{version}-%{release} Requires(post): selinux-policy-base >= %{_selinux_policy_version}, policycoreutils, gawk Requires(postun): policycoreutils %description selinux This package contains SELinux support for Ceph MON, OSD and MDS. The package also performs file-system relabelling which can take a long time on heavily populated file-systems. %endif %if 0%{with python2} %package -n python-ceph-compat Summary: Compatibility package for Cephs python libraries %if 0%{?suse_version} Group: Development/Libraries/Python %endif Obsoletes: python-ceph Requires: python-rados = %{_epoch_prefix}%{version}-%{release} Requires: python-rbd = %{_epoch_prefix}%{version}-%{release} Requires: python-cephfs = %{_epoch_prefix}%{version}-%{release} Requires: python-rgw = %{_epoch_prefix}%{version}-%{release} Provides: python-ceph %description -n python-ceph-compat This is a compatibility package to accommodate python-ceph split into python-rados, python-rbd, python-rgw and python-cephfs. Packages still depending on python-ceph should be fixed to depend on python-rados, python-rbd, python-rgw or python-cephfs instead. %endif %package grafana-dashboards Summary: The set of Grafana dashboards for monitoring purposes BuildArch: noarch %if 0%{?suse_version} Group: System/Filesystems %endif %description grafana-dashboards This package provides a set of Grafana dashboards for monitoring of Ceph clusters. The dashboards require a Prometheus server setup collecting data from Ceph Manager "prometheus" module and Prometheus project "node_exporter" module. The dashboards are designed to be integrated with the Ceph Manager Dashboard web UI. %if 0%{?suse_version} %package prometheus-alerts Summary: Prometheus alerts for a Ceph deplyoment BuildArch: noarch Group: System/Monitoring %description prometheus-alerts This package provides Ceph’s default alerts for Prometheus. %endif ################################################################################# # common ################################################################################# %prep %autosetup -p1 # Apply the rdopkg-tar patches %autosetup -T -D -b 1 # Remove the old dashboard dist rm -rf src/pybind/mgr/dashboard/frontend/dist # Apply new dashboard dist %autosetup -T -D -a 2 # spawn submodule: tar xzf %{SOURCE100} # Civetweb submodule update for chunk encoding fixes: # submodule patches must be handled separately # https://github.com/redhat-openstack/rdopkg/issues/16 pushd src/civetweb patch -p1 --fuzz=0 -i %{SOURCE101} popd # beast patch patch -d ${RPM_BUILD_DIR}/%{name}-%{version}/src/boost -p2 -i ../patches/001-boost-beast-e4500f67.patch # boost s390x patch: patch -p1 -i %{SOURCE102} # Rewrite .git_version file. echo %{commit} > src/.git_version echo v%{version}-%{release} >> src/.git_version %build # LTO can be enabled as soon as the following GCC bug is fixed: # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=48200 %define _lto_cflags %{nil} %if 0%{?rhel} == 7 . /opt/rh/devtoolset-8/enable %endif %if 0%{with cephfs_java} # Find jni.h for i in /usr/{lib64,lib}/jvm/java/include{,/linux}; do [ -d $i ] && java_inc="$java_inc -I$i" done %endif %if 0%{?suse_version} # the following setting fixed an OOM condition we once encountered in the OBS RPM_OPT_FLAGS="$RPM_OPT_FLAGS --param ggc-min-expand=20 --param ggc-min-heapsize=32768" %endif export CPPFLAGS="$java_inc" export CFLAGS="$RPM_OPT_FLAGS" export CXXFLAGS="$RPM_OPT_FLAGS" export LDFLAGS="$RPM_LD_FLAGS" # Parallel build settings ... CEPH_MFLAGS_JOBS="%{?_smp_mflags}" CEPH_SMP_NCPUS=$(echo "$CEPH_MFLAGS_JOBS" | sed 's/-j//') %if 0%{?__isa_bits} == 32 # 32-bit builds can use 3G memory max, which is not enough even for -j2 CEPH_SMP_NCPUS="1" %endif # do not eat all memory echo "Available memory:" free -h echo "System limits:" ulimit -a if test -n "$CEPH_SMP_NCPUS" -a "$CEPH_SMP_NCPUS" -gt 1 ; then mem_per_process=2700 max_mem=$(LANG=C free -m | sed -n "s|^Mem: *\([0-9]*\).*$|\1|p") max_jobs="$(($max_mem / $mem_per_process))" test "$CEPH_SMP_NCPUS" -gt "$max_jobs" && CEPH_SMP_NCPUS="$max_jobs" && echo "Warning: Reducing build parallelism to -j$max_jobs because of memory limits" test "$CEPH_SMP_NCPUS" -le 0 && CEPH_SMP_NCPUS="1" && echo "Warning: Not using parallel build at all because of memory limits" fi export CEPH_SMP_NCPUS export CEPH_MFLAGS_JOBS="-j$CEPH_SMP_NCPUS" env | sort mkdir build cd build %if 0%{?rhel} == 7 CMAKE=cmake3 %else CMAKE=cmake %endif ${CMAKE} .. \ -DCMAKE_INSTALL_PREFIX=%{_prefix} \ -DCMAKE_INSTALL_LIBDIR=%{_libdir} \ -DCMAKE_INSTALL_LIBEXECDIR=%{_libexecdir} \ -DCMAKE_INSTALL_LOCALSTATEDIR=%{_localstatedir} \ -DCMAKE_INSTALL_SYSCONFDIR=%{_sysconfdir} \ -DCMAKE_INSTALL_MANDIR=%{_mandir} \ -DCMAKE_INSTALL_DOCDIR=%{_docdir}/ceph \ -DCMAKE_INSTALL_INCLUDEDIR=%{_includedir} \ -DWITH_MANPAGE=ON \ -DWITH_PYTHON3=%{python3_version} \ -DWITH_MGR_DASHBOARD_FRONTEND=OFF \ %if %{with python2} -DWITH_PYTHON2=ON \ %else -DWITH_PYTHON2=OFF \ -DMGR_PYTHON_VERSION=3 \ %endif %if 0%{without ceph_test_package} -DWITH_TESTS=OFF \ %endif %if 0%{with cephfs_java} -DWITH_CEPHFS_JAVA=ON \ %endif %if 0%{with selinux} -DWITH_SELINUX=ON \ %endif %if %{with lttng} -DWITH_LTTNG=ON \ -DWITH_BABELTRACE=ON \ %else -DWITH_LTTNG=OFF \ -DWITH_BABELTRACE=OFF \ %endif $CEPH_EXTRA_CMAKE_ARGS \ %if 0%{with ocf} -DWITH_OCF=ON \ %endif %ifarch aarch64 armv7hl mips mipsel ppc ppc64 ppc64le %{ix86} x86_64 s390x -DWITH_BOOST_CONTEXT=ON \ %else -DWITH_BOOST_CONTEXT=OFF \ %endif %if 0%{with cephfs_shell} -DWITH_CEPHFS_SHELL=ON \ %endif %if 0%{with libradosstriper} -DWITH_LIBRADOSSTRIPER=ON \ %else -DWITH_LIBRADOSSTRIPER=OFF \ %endif %if 0%{with amqp_endpoint} -DWITH_RADOSGW_AMQP_ENDPOINT=ON \ %else -DWITH_RADOSGW_AMQP_ENDPOINT=OFF \ %endif %if 0%{with kafka_endpoint} -DWITH_RADOSGW_KAFKA_ENDPOINT=ON \ %else -DWITH_RADOSGW_KAFKA_ENDPOINT=OFF \ %endif -DWITH_CUSTOM_BOOST_BEAST_IGNORE_BAD_CONTENT_LENGTH=ON \ -DBOOST_J=$CEPH_SMP_NCPUS \ -DWITH_GRAFANA=ON make "$CEPH_MFLAGS_JOBS" %if 0%{with make_check} %check # run in-tree unittests cd build ctest "$CEPH_MFLAGS_JOBS" %endif %install pushd build make DESTDIR=%{buildroot} install # we have dropped sysvinit bits rm -f %{buildroot}/%{_sysconfdir}/init.d/ceph popd install -m 0644 -D src/etc-rbdmap %{buildroot}%{_sysconfdir}/ceph/rbdmap %if 0%{?fedora} || 0%{?rhel} install -m 0644 -D etc/sysconfig/ceph %{buildroot}%{_sysconfdir}/sysconfig/ceph %endif %if 0%{?suse_version} install -m 0644 -D etc/sysconfig/ceph %{buildroot}%{_fillupdir}/sysconfig.%{name} %endif install -m 0644 -D systemd/ceph.tmpfiles.d %{buildroot}%{_tmpfilesdir}/ceph-common.conf install -m 0644 -D systemd/50-ceph.preset %{buildroot}%{_libexecdir}/systemd/system-preset/50-ceph.preset mkdir -p %{buildroot}%{_sbindir} install -m 0644 -D src/logrotate.conf %{buildroot}%{_sysconfdir}/logrotate.d/ceph chmod 0644 %{buildroot}%{_docdir}/ceph/sample.ceph.conf install -m 0644 -D COPYING %{buildroot}%{_docdir}/ceph/COPYING install -m 0644 -D etc/sysctl/90-ceph-osd.conf %{buildroot}%{_sysctldir}/90-ceph-osd.conf # firewall templates and /sbin/mount.ceph symlink %if 0%{?suse_version} mkdir -p %{buildroot}/sbin ln -sf %{_sbindir}/mount.ceph %{buildroot}/sbin/mount.ceph %endif # udev rules install -m 0644 -D udev/50-rbd.rules %{buildroot}%{_udevrulesdir}/50-rbd.rules # sudoers.d install -m 0600 -D sudoers.d/ceph-osd-smartctl %{buildroot}%{_sysconfdir}/sudoers.d/ceph-osd-smartctl %if 0%{?rhel} >= 8 pathfix.py -pni "%{__python3} %{py3_shbang_opts}" %{buildroot}%{_bindir}/* pathfix.py -pni "%{__python3} %{py3_shbang_opts}" %{buildroot}%{_sbindir}/* %endif #set up placeholder directories mkdir -p %{buildroot}%{_sysconfdir}/ceph mkdir -p %{buildroot}%{_localstatedir}/run/ceph mkdir -p %{buildroot}%{_localstatedir}/log/ceph mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/tmp mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/mon mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/osd mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/mds mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/mgr mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/crash mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/crash/posted mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/radosgw mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/bootstrap-osd mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/bootstrap-mds mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/bootstrap-rgw mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/bootstrap-mgr mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/bootstrap-rbd mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/bootstrap-rbd-mirror %if 0%{?suse_version} # create __pycache__ directories and their contents %py3_compile %{buildroot}%{python3_sitelib} # prometheus alerts install -m 644 -D monitoring/prometheus/alerts/ceph_default_alerts.yml %{buildroot}/etc/prometheus/SUSE/default_rules/ceph_default_alerts.yml # hardlink duplicate files under /usr to save space %fdupes %{buildroot}%{_prefix} %endif %if 0%{?rhel} == 8 %py_byte_compile %{__python3} %{buildroot}%{python3_sitelib} %endif %clean rm -rf %{buildroot} ################################################################################# # files and systemd scriptlets ################################################################################# %files %files base %{_bindir}/ceph-crash %{_bindir}/crushtool %{_bindir}/monmaptool %{_bindir}/osdmaptool %{_bindir}/ceph-kvstore-tool %{_bindir}/ceph-run %{_libexecdir}/systemd/system-preset/50-ceph.preset %{_sbindir}/ceph-create-keys %dir %{_libexecdir}/ceph %{_libexecdir}/ceph/ceph_common.sh %dir %{_libdir}/rados-classes %{_libdir}/rados-classes/* %dir %{_libdir}/ceph %dir %{_libdir}/ceph/erasure-code %{_libdir}/ceph/erasure-code/libec_*.so* %dir %{_libdir}/ceph/compressor %{_libdir}/ceph/compressor/libceph_*.so* %{_unitdir}/ceph-crash.service %dir %{_libdir}/ceph/crypto %{_libdir}/ceph/crypto/libceph_*.so* %if %{with lttng} %{_libdir}/libos_tp.so* %{_libdir}/libosd_tp.so* %endif %config(noreplace) %{_sysconfdir}/logrotate.d/ceph %if 0%{?fedora} || 0%{?rhel} %config(noreplace) %{_sysconfdir}/sysconfig/ceph %endif %if 0%{?suse_version} %{_fillupdir}/sysconfig.* %endif %{_unitdir}/ceph.target %if 0%{with python2} %dir %{python_sitelib}/ceph_volume %{python_sitelib}/ceph_volume/* %{python_sitelib}/ceph_volume-* %else %dir %{python3_sitelib}/ceph_volume %{python3_sitelib}/ceph_volume/* %{python3_sitelib}/ceph_volume-* %endif %{_mandir}/man8/ceph-deploy.8* %{_mandir}/man8/ceph-create-keys.8* %{_mandir}/man8/ceph-run.8* %{_mandir}/man8/crushtool.8* %{_mandir}/man8/osdmaptool.8* %{_mandir}/man8/monmaptool.8* %{_mandir}/man8/ceph-kvstore-tool.8* #set up placeholder directories %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/crash %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/crash/posted %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/tmp %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/bootstrap-osd %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/bootstrap-mds %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/bootstrap-rgw %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/bootstrap-mgr %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/bootstrap-rbd %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/bootstrap-rbd-mirror %post base /sbin/ldconfig %if 0%{?suse_version} %fillup_only if [ $1 -eq 1 ] ; then /usr/bin/systemctl preset ceph.target ceph-crash.service >/dev/null 2>&1 || : fi %endif %if 0%{?fedora} || 0%{?rhel} %systemd_post ceph.target ceph-crash.service %endif if [ $1 -eq 1 ] ; then /usr/bin/systemctl start ceph.target ceph-crash.service >/dev/null 2>&1 || : fi %preun base %if 0%{?suse_version} %service_del_preun ceph.target ceph-crash.service %endif %if 0%{?fedora} || 0%{?rhel} %systemd_preun ceph.target ceph-crash.service %endif %postun base /sbin/ldconfig %if 0%{?suse_version} DISABLE_RESTART_ON_UPDATE="yes" %service_del_postun ceph.target %endif %if 0%{?fedora} || 0%{?rhel} %systemd_postun ceph.target %endif if [ $1 -ge 1 ] ; then # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to # "yes". In any case: if units are not running, do not touch them. SYSCONF_CEPH=%{_sysconfdir}/sysconfig/ceph if [ -f $SYSCONF_CEPH -a -r $SYSCONF_CEPH ] ; then source $SYSCONF_CEPH fi fi %files common %dir %{_docdir}/ceph %doc %{_docdir}/ceph/sample.ceph.conf %license %{_docdir}/ceph/COPYING %{_bindir}/ceph %{_bindir}/ceph-authtool %{_bindir}/ceph-conf %{_bindir}/ceph-dencoder %{_bindir}/ceph-rbdnamer %{_bindir}/ceph-syn %{_bindir}/cephfs-data-scan %{_bindir}/cephfs-journal-tool %{_bindir}/cephfs-table-tool %{_bindir}/rados %{_bindir}/radosgw-admin %{_bindir}/rbd %{_bindir}/rbd-replay %{_bindir}/rbd-replay-many %{_bindir}/rbdmap %{_sbindir}/mount.ceph %if 0%{?suse_version} /sbin/mount.ceph %endif %if %{with lttng} %{_bindir}/rbd-replay-prep %endif %{_bindir}/ceph-post-file %{_tmpfilesdir}/ceph-common.conf %{_mandir}/man8/ceph-authtool.8* %{_mandir}/man8/ceph-conf.8* %{_mandir}/man8/ceph-dencoder.8* %{_mandir}/man8/ceph-diff-sorted.8* %{_mandir}/man8/ceph-rbdnamer.8* %{_mandir}/man8/ceph-syn.8* %{_mandir}/man8/ceph-post-file.8* %{_mandir}/man8/ceph.8* %{_mandir}/man8/mount.ceph.8* %{_mandir}/man8/rados.8* %{_mandir}/man8/radosgw-admin.8* %{_mandir}/man8/rbd.8* %{_mandir}/man8/rbdmap.8* %{_mandir}/man8/rbd-replay.8* %{_mandir}/man8/rbd-replay-many.8* %{_mandir}/man8/rbd-replay-prep.8* %{_mandir}/man8/rgw-orphan-list.8* %dir %{_datadir}/ceph/ %{_datadir}/ceph/known_hosts_drop.ceph.com %{_datadir}/ceph/id_rsa_drop.ceph.com %{_datadir}/ceph/id_rsa_drop.ceph.com.pub %dir %{_sysconfdir}/ceph/ %config %{_sysconfdir}/bash_completion.d/ceph %config %{_sysconfdir}/bash_completion.d/rados %config %{_sysconfdir}/bash_completion.d/rbd %config %{_sysconfdir}/bash_completion.d/radosgw-admin %config(noreplace) %{_sysconfdir}/ceph/rbdmap %{_unitdir}/rbdmap.service %dir %{_udevrulesdir} %{_udevrulesdir}/50-rbd.rules %attr(3770,ceph,ceph) %dir %{_localstatedir}/log/ceph/ %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/ %pre common CEPH_GROUP_ID=167 CEPH_USER_ID=167 %if 0%{?rhel} || 0%{?fedora} /usr/sbin/groupadd ceph -g $CEPH_GROUP_ID -o -r 2>/dev/null || : /usr/sbin/useradd ceph -u $CEPH_USER_ID -o -r -g ceph -s /sbin/nologin -c "Ceph daemons" -d %{_localstatedir}/lib/ceph 2>/dev/null || : %endif %if 0%{?suse_version} if ! getent group ceph >/dev/null ; then CEPH_GROUP_ID_OPTION="" getent group $CEPH_GROUP_ID >/dev/null || CEPH_GROUP_ID_OPTION="-g $CEPH_GROUP_ID" groupadd ceph $CEPH_GROUP_ID_OPTION -r 2>/dev/null || : fi if ! getent passwd ceph >/dev/null ; then CEPH_USER_ID_OPTION="" getent passwd $CEPH_USER_ID >/dev/null || CEPH_USER_ID_OPTION="-u $CEPH_USER_ID" useradd ceph $CEPH_USER_ID_OPTION -r -g ceph -s /sbin/nologin 2>/dev/null || : fi usermod -c "Ceph storage service" \ -d %{_localstatedir}/lib/ceph \ -g ceph \ -s /sbin/nologin \ ceph %endif exit 0 %post common %tmpfiles_create %{_tmpfilesdir}/ceph-common.conf %postun common # Package removal cleanup if [ "$1" -eq "0" ] ; then rm -rf %{_localstatedir}/log/ceph rm -rf %{_sysconfdir}/ceph fi %files mds %{_bindir}/ceph-mds %{_mandir}/man8/ceph-mds.8* %{_unitdir}/ceph-mds@.service %{_unitdir}/ceph-mds.target %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/mds %post mds %if 0%{?suse_version} if [ $1 -eq 1 ] ; then /usr/bin/systemctl preset ceph-mds@\*.service ceph-mds.target >/dev/null 2>&1 || : fi %endif %if 0%{?fedora} || 0%{?rhel} %systemd_post ceph-mds@\*.service ceph-mds.target %endif if [ $1 -eq 1 ] ; then /usr/bin/systemctl start ceph-mds.target >/dev/null 2>&1 || : fi %preun mds %if 0%{?suse_version} %service_del_preun ceph-mds@\*.service ceph-mds.target %endif %if 0%{?fedora} || 0%{?rhel} %systemd_preun ceph-mds@\*.service ceph-mds.target %endif %postun mds %if 0%{?suse_version} DISABLE_RESTART_ON_UPDATE="yes" %service_del_postun ceph-mds@\*.service ceph-mds.target %endif %if 0%{?fedora} || 0%{?rhel} %systemd_postun ceph-mds@\*.service ceph-mds.target %endif if [ $1 -ge 1 ] ; then # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to # "yes". In any case: if units are not running, do not touch them. SYSCONF_CEPH=%{_sysconfdir}/sysconfig/ceph if [ -f $SYSCONF_CEPH -a -r $SYSCONF_CEPH ] ; then source $SYSCONF_CEPH fi if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE" = "Xyes" ] ; then /usr/bin/systemctl try-restart ceph-mds@\*.service > /dev/null 2>&1 || : fi fi %files mgr %{_bindir}/ceph-mgr %dir %{_datadir}/ceph/mgr %{_datadir}/ceph/mgr/alerts %{_datadir}/ceph/mgr/ansible %{_datadir}/ceph/mgr/balancer %{_datadir}/ceph/mgr/crash %{_datadir}/ceph/mgr/deepsea %{_datadir}/ceph/mgr/devicehealth %{_datadir}/ceph/mgr/influx %{_datadir}/ceph/mgr/insights %{_datadir}/ceph/mgr/iostat %{_datadir}/ceph/mgr/localpool %{_datadir}/ceph/mgr/mgr_module.* %{_datadir}/ceph/mgr/mgr_util.* %{_datadir}/ceph/mgr/orchestrator_cli %{_datadir}/ceph/mgr/orchestrator.* %{_datadir}/ceph/mgr/osd_perf_query %{_datadir}/ceph/mgr/pg_autoscaler %{_datadir}/ceph/mgr/progress %{_datadir}/ceph/mgr/prometheus %{_datadir}/ceph/mgr/rbd_support %{_datadir}/ceph/mgr/restful %{_datadir}/ceph/mgr/selftest %{_datadir}/ceph/mgr/status %{_datadir}/ceph/mgr/telegraf %{_datadir}/ceph/mgr/telemetry %{_datadir}/ceph/mgr/test_orchestrator %{_datadir}/ceph/mgr/volumes %{_datadir}/ceph/mgr/zabbix %{_unitdir}/ceph-mgr@.service %{_unitdir}/ceph-mgr.target %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/mgr %post mgr %if 0%{?suse_version} if [ $1 -eq 1 ] ; then /usr/bin/systemctl preset ceph-mgr@\*.service ceph-mgr.target >/dev/null 2>&1 || : fi %endif %if 0%{?fedora} || 0%{?rhel} %systemd_post ceph-mgr@\*.service ceph-mgr.target %endif if [ $1 -eq 1 ] ; then /usr/bin/systemctl start ceph-mgr.target >/dev/null 2>&1 || : fi %preun mgr %if 0%{?suse_version} %service_del_preun ceph-mgr@\*.service ceph-mgr.target %endif %if 0%{?fedora} || 0%{?rhel} %systemd_preun ceph-mgr@\*.service ceph-mgr.target %endif %postun mgr %if 0%{?suse_version} DISABLE_RESTART_ON_UPDATE="yes" %service_del_postun ceph-mgr@\*.service ceph-mgr.target %endif %if 0%{?fedora} || 0%{?rhel} %systemd_postun ceph-mgr@\*.service ceph-mgr.target %endif if [ $1 -ge 1 ] ; then # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to # "yes". In any case: if units are not running, do not touch them. SYSCONF_CEPH=%{_sysconfdir}/sysconfig/ceph if [ -f $SYSCONF_CEPH -a -r $SYSCONF_CEPH ] ; then source $SYSCONF_CEPH fi if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE" = "Xyes" ] ; then /usr/bin/systemctl try-restart ceph-mgr@\*.service > /dev/null 2>&1 || : fi fi %files mgr-dashboard %{_datadir}/ceph/mgr/dashboard %post mgr-dashboard if [ $1 -eq 1 ] ; then /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || : fi %postun mgr-dashboard if [ $1 -eq 1 ] ; then /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || : fi %files mgr-diskprediction-local %{_datadir}/ceph/mgr/diskprediction_local %post mgr-diskprediction-local if [ $1 -eq 1 ] ; then /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || : fi %postun mgr-diskprediction-local if [ $1 -eq 1 ] ; then /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || : fi %files mgr-diskprediction-cloud %{_datadir}/ceph/mgr/diskprediction_cloud %post mgr-diskprediction-cloud if [ $1 -eq 1 ] ; then /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || : fi %postun mgr-diskprediction-cloud if [ $1 -eq 1 ] ; then /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || : fi %files mgr-rook %{_datadir}/ceph/mgr/rook %post mgr-rook if [ $1 -eq 1 ] ; then /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || : fi %postun mgr-rook if [ $1 -eq 1 ] ; then /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || : fi %files mgr-k8sevents %{_datadir}/ceph/mgr/k8sevents %post mgr-k8sevents if [ $1 -eq 1 ] ; then /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || : fi %postun mgr-k8sevents if [ $1 -eq 1 ] ; then /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || : fi %files mgr-ssh %{_datadir}/ceph/mgr/ssh %post mgr-ssh if [ $1 -eq 1 ] ; then /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || : fi %postun mgr-ssh if [ $1 -eq 1 ] ; then /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || : fi %files mon %{_bindir}/ceph-mon %{_bindir}/ceph-monstore-tool %{_mandir}/man8/ceph-mon.8* %{_unitdir}/ceph-mon@.service %{_unitdir}/ceph-mon.target %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/mon %post mon %if 0%{?suse_version} if [ $1 -eq 1 ] ; then /usr/bin/systemctl preset ceph-mon@\*.service ceph-mon.target >/dev/null 2>&1 || : fi %endif %if 0%{?fedora} || 0%{?rhel} %systemd_post ceph-mon@\*.service ceph-mon.target %endif if [ $1 -eq 1 ] ; then /usr/bin/systemctl start ceph-mon.target >/dev/null 2>&1 || : fi %preun mon %if 0%{?suse_version} %service_del_preun ceph-mon@\*.service ceph-mon.target %endif %if 0%{?fedora} || 0%{?rhel} %systemd_preun ceph-mon@\*.service ceph-mon.target %endif %postun mon %if 0%{?suse_version} DISABLE_RESTART_ON_UPDATE="yes" %service_del_postun ceph-mon@\*.service ceph-mon.target %endif %if 0%{?fedora} || 0%{?rhel} %systemd_postun ceph-mon@\*.service ceph-mon.target %endif if [ $1 -ge 1 ] ; then # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to # "yes". In any case: if units are not running, do not touch them. SYSCONF_CEPH=%{_sysconfdir}/sysconfig/ceph if [ -f $SYSCONF_CEPH -a -r $SYSCONF_CEPH ] ; then source $SYSCONF_CEPH fi if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE" = "Xyes" ] ; then /usr/bin/systemctl try-restart ceph-mon@\*.service > /dev/null 2>&1 || : fi fi %files fuse %{_bindir}/ceph-fuse %{_mandir}/man8/ceph-fuse.8* %{_sbindir}/mount.fuse.ceph %{_unitdir}/ceph-fuse@.service %{_unitdir}/ceph-fuse.target %files -n rbd-fuse %{_bindir}/rbd-fuse %{_mandir}/man8/rbd-fuse.8* %files -n rbd-mirror %{_bindir}/rbd-mirror %{_mandir}/man8/rbd-mirror.8* %{_unitdir}/ceph-rbd-mirror@.service %{_unitdir}/ceph-rbd-mirror.target %post -n rbd-mirror %if 0%{?suse_version} if [ $1 -eq 1 ] ; then /usr/bin/systemctl preset ceph-rbd-mirror@\*.service ceph-rbd-mirror.target >/dev/null 2>&1 || : fi %endif %if 0%{?fedora} || 0%{?rhel} %systemd_post ceph-rbd-mirror@\*.service ceph-rbd-mirror.target %endif if [ $1 -eq 1 ] ; then /usr/bin/systemctl start ceph-rbd-mirror.target >/dev/null 2>&1 || : fi %preun -n rbd-mirror %if 0%{?suse_version} %service_del_preun ceph-rbd-mirror@\*.service ceph-rbd-mirror.target %endif %if 0%{?fedora} || 0%{?rhel} %systemd_preun ceph-rbd-mirror@\*.service ceph-rbd-mirror.target %endif %postun -n rbd-mirror %if 0%{?suse_version} DISABLE_RESTART_ON_UPDATE="yes" %service_del_postun ceph-rbd-mirror@\*.service ceph-rbd-mirror.target %endif %if 0%{?fedora} || 0%{?rhel} %systemd_postun ceph-rbd-mirror@\*.service ceph-rbd-mirror.target %endif if [ $1 -ge 1 ] ; then # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to # "yes". In any case: if units are not running, do not touch them. SYSCONF_CEPH=%{_sysconfdir}/sysconfig/ceph if [ -f $SYSCONF_CEPH -a -r $SYSCONF_CEPH ] ; then source $SYSCONF_CEPH fi if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE" = "Xyes" ] ; then /usr/bin/systemctl try-restart ceph-rbd-mirror@\*.service > /dev/null 2>&1 || : fi fi %files -n rbd-nbd %{_bindir}/rbd-nbd %{_mandir}/man8/rbd-nbd.8* %files radosgw %{_bindir}/ceph-diff-sorted %{_bindir}/radosgw %{_bindir}/radosgw-token %{_bindir}/radosgw-es %{_bindir}/radosgw-object-expirer %{_bindir}/rgw-gap-list %{_bindir}/rgw-gap-list-comparator %{_bindir}/rgw-orphan-list %{_mandir}/man8/radosgw.8* %dir %{_localstatedir}/lib/ceph/radosgw %{_unitdir}/ceph-radosgw@.service %{_unitdir}/ceph-radosgw.target %post radosgw %if 0%{?suse_version} if [ $1 -eq 1 ] ; then /usr/bin/systemctl preset ceph-radosgw@\*.service ceph-radosgw.target >/dev/null 2>&1 || : fi %endif %if 0%{?fedora} || 0%{?rhel} %systemd_post ceph-radosgw@\*.service ceph-radosgw.target %endif if [ $1 -eq 1 ] ; then /usr/bin/systemctl start ceph-radosgw.target >/dev/null 2>&1 || : fi %preun radosgw %if 0%{?suse_version} %service_del_preun ceph-radosgw@\*.service ceph-radosgw.target %endif %if 0%{?fedora} || 0%{?rhel} %systemd_preun ceph-radosgw@\*.service ceph-radosgw.target %endif %postun radosgw %if 0%{?suse_version} DISABLE_RESTART_ON_UPDATE="yes" %service_del_postun ceph-radosgw@\*.service ceph-radosgw.target %endif %if 0%{?fedora} || 0%{?rhel} %systemd_postun ceph-radosgw@\*.service ceph-radosgw.target %endif if [ $1 -ge 1 ] ; then # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to # "yes". In any case: if units are not running, do not touch them. SYSCONF_CEPH=%{_sysconfdir}/sysconfig/ceph if [ -f $SYSCONF_CEPH -a -r $SYSCONF_CEPH ] ; then source $SYSCONF_CEPH fi if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE" = "Xyes" ] ; then /usr/bin/systemctl try-restart ceph-radosgw@\*.service > /dev/null 2>&1 || : fi fi %files osd %{_bindir}/ceph-clsinfo %{_bindir}/ceph-bluestore-tool %{_bindir}/ceph-objectstore-tool %{_bindir}/ceph-osdomap-tool %{_bindir}/ceph-osd %{_libexecdir}/ceph/ceph-osd-prestart.sh %{_sbindir}/ceph-volume %{_sbindir}/ceph-volume-systemd %{_mandir}/man8/ceph-clsinfo.8* %{_mandir}/man8/ceph-osd.8* %{_mandir}/man8/ceph-bluestore-tool.8* %{_mandir}/man8/ceph-volume.8* %{_mandir}/man8/ceph-volume-systemd.8* %{_unitdir}/ceph-osd@.service %{_unitdir}/ceph-osd.target %{_unitdir}/ceph-volume@.service %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/osd %config(noreplace) %{_sysctldir}/90-ceph-osd.conf %{_sysconfdir}/sudoers.d/ceph-osd-smartctl %post osd %if 0%{?suse_version} if [ $1 -eq 1 ] ; then /usr/bin/systemctl preset ceph-osd@\*.service ceph-volume@\*.service ceph-osd.target >/dev/null 2>&1 || : fi %endif %if 0%{?fedora} || 0%{?rhel} %systemd_post ceph-osd@\*.service ceph-volume@\*.service ceph-osd.target %endif if [ $1 -eq 1 ] ; then /usr/bin/systemctl start ceph-osd.target >/dev/null 2>&1 || : fi %if 0%{?sysctl_apply} %sysctl_apply 90-ceph-osd.conf %else /usr/lib/systemd/systemd-sysctl %{_sysctldir}/90-ceph-osd.conf > /dev/null 2>&1 || : %endif %preun osd %if 0%{?suse_version} %service_del_preun ceph-osd@\*.service ceph-volume@\*.service ceph-osd.target %endif %if 0%{?fedora} || 0%{?rhel} %systemd_preun ceph-osd@\*.service ceph-volume@\*.service ceph-osd.target %endif %postun osd %if 0%{?suse_version} DISABLE_RESTART_ON_UPDATE="yes" %service_del_postun ceph-osd@\*.service ceph-volume@\*.service ceph-osd.target %endif %if 0%{?fedora} || 0%{?rhel} %systemd_postun ceph-osd@\*.service ceph-volume@\*.service ceph-osd.target %endif if [ $1 -ge 1 ] ; then # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to # "yes". In any case: if units are not running, do not touch them. SYSCONF_CEPH=%{_sysconfdir}/sysconfig/ceph if [ -f $SYSCONF_CEPH -a -r $SYSCONF_CEPH ] ; then source $SYSCONF_CEPH fi if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE" = "Xyes" ] ; then /usr/bin/systemctl try-restart ceph-osd@\*.service ceph-volume@\*.service > /dev/null 2>&1 || : fi fi %if %{with ocf} %files resource-agents %dir %{_prefix}/lib/ocf %dir %{_prefix}/lib/ocf/resource.d %dir %{_prefix}/lib/ocf/resource.d/ceph %attr(0755,-,-) %{_prefix}/lib/ocf/resource.d/ceph/rbd %endif %files -n librados2 %{_libdir}/librados.so.* %dir %{_libdir}/ceph %{_libdir}/ceph/libceph-common.so.* %if %{with lttng} %{_libdir}/librados_tp.so.* %endif %dir %{_sysconfdir}/ceph %post -n librados2 -p /sbin/ldconfig %postun -n librados2 -p /sbin/ldconfig %files -n librados-devel %dir %{_includedir}/rados %{_includedir}/rados/librados.h %{_includedir}/rados/rados_types.h %{_libdir}/librados.so %if %{with lttng} %{_libdir}/librados_tp.so %endif %{_bindir}/librados-config %{_mandir}/man8/librados-config.8* %files -n libradospp-devel %dir %{_includedir}/rados %{_includedir}/rados/buffer.h %{_includedir}/rados/buffer_fwd.h %{_includedir}/rados/crc32c.h %{_includedir}/rados/inline_memory.h %{_includedir}/rados/librados.hpp %{_includedir}/rados/librados_fwd.hpp %{_includedir}/rados/page.h %{_includedir}/rados/rados_types.hpp %if 0%{with python2} %files -n python-rados %{python_sitearch}/rados.so %{python_sitearch}/rados-*.egg-info %endif %files -n python%{python3_pkgversion}-rados %{python3_sitearch}/rados.cpython*.so %{python3_sitearch}/rados-*.egg-info %if 0%{with libradosstriper} %files -n libradosstriper1 %{_libdir}/libradosstriper.so.* %post -n libradosstriper1 -p /sbin/ldconfig %postun -n libradosstriper1 -p /sbin/ldconfig %files -n libradosstriper-devel %dir %{_includedir}/radosstriper %{_includedir}/radosstriper/libradosstriper.h %{_includedir}/radosstriper/libradosstriper.hpp %{_libdir}/libradosstriper.so %endif %files -n librbd1 %{_libdir}/librbd.so.* %if %{with lttng} %{_libdir}/librbd_tp.so.* %endif %post -n librbd1 -p /sbin/ldconfig %postun -n librbd1 -p /sbin/ldconfig %files -n librbd-devel %dir %{_includedir}/rbd %{_includedir}/rbd/librbd.h %{_includedir}/rbd/librbd.hpp %{_includedir}/rbd/features.h %{_libdir}/librbd.so %if %{with lttng} %{_libdir}/librbd_tp.so %endif %files -n librgw2 %{_libdir}/librgw.so.* %{_libdir}/librgw_admin_user.so.* %if %{with lttng} %{_libdir}/librgw_op_tp.so.* %{_libdir}/librgw_rados_tp.so.* %endif %post -n librgw2 -p /sbin/ldconfig %postun -n librgw2 -p /sbin/ldconfig %files -n librgw-devel %dir %{_includedir}/rados %{_includedir}/rados/librgw.h %{_includedir}/rados/librgw_admin_user.h %{_includedir}/rados/rgw_file.h %{_libdir}/librgw.so %{_libdir}/librgw_admin_user.so %if %{with lttng} %{_libdir}/librgw_op_tp.so %{_libdir}/librgw_rados_tp.so %endif %if 0%{with python2} %files -n python-rgw %{python_sitearch}/rgw.so %{python_sitearch}/rgw-*.egg-info %endif %files -n python%{python3_pkgversion}-rgw %{python3_sitearch}/rgw.cpython*.so %{python3_sitearch}/rgw-*.egg-info %if 0%{with python2} %files -n python-rbd %{python_sitearch}/rbd.so %{python_sitearch}/rbd-*.egg-info %endif %files -n python%{python3_pkgversion}-rbd %{python3_sitearch}/rbd.cpython*.so %{python3_sitearch}/rbd-*.egg-info %files -n libcephfs2 %{_libdir}/libcephfs.so.* %dir %{_sysconfdir}/ceph %post -n libcephfs2 -p /sbin/ldconfig %postun -n libcephfs2 -p /sbin/ldconfig %files -n libcephfs-devel %dir %{_includedir}/cephfs %{_includedir}/cephfs/libcephfs.h %{_includedir}/cephfs/ceph_ll_client.h %{_libdir}/libcephfs.so %if 0%{with python2} %files -n python-cephfs %{python_sitearch}/cephfs.so %{python_sitearch}/cephfs-*.egg-info %{python_sitelib}/ceph_volume_client.py* %endif %files -n python%{python3_pkgversion}-cephfs %{python3_sitearch}/cephfs.cpython*.so %{python3_sitearch}/cephfs-*.egg-info %{python3_sitelib}/ceph_volume_client.py %{python3_sitelib}/__pycache__/ceph_volume_client.cpython*.py* %if 0%{with python2} %files -n python-ceph-argparse %{python_sitelib}/ceph_argparse.py* %{python_sitelib}/ceph_daemon.py* %endif %files -n python%{python3_pkgversion}-ceph-argparse %{python3_sitelib}/ceph_argparse.py %{python3_sitelib}/__pycache__/ceph_argparse.cpython*.py* %{python3_sitelib}/ceph_daemon.py %{python3_sitelib}/__pycache__/ceph_daemon.cpython*.py* %if 0%{with cephfs_shell} %files -n cephfs-shell %{python3_sitelib}/cephfs_shell-*.egg-info %{_bindir}/cephfs-shell %endif %if 0%{with ceph_test_package} %files -n ceph-test %{_bindir}/ceph-client-debug %{_bindir}/ceph_bench_log %{_bindir}/ceph_kvstorebench %{_bindir}/ceph_multi_stress_watch %{_bindir}/ceph_erasure_code %{_bindir}/ceph_erasure_code_benchmark %{_bindir}/ceph_omapbench %{_bindir}/ceph_objectstore_bench %{_bindir}/ceph_perf_objectstore %{_bindir}/ceph_perf_local %{_bindir}/ceph_perf_msgr_client %{_bindir}/ceph_perf_msgr_server %{_bindir}/ceph_psim %{_bindir}/ceph_radosacl %{_bindir}/ceph_rgw_jsonparser %{_bindir}/ceph_rgw_multiparser %{_bindir}/ceph_scratchtool %{_bindir}/ceph_scratchtoolpp %{_bindir}/ceph_test_* %{_bindir}/ceph-coverage %{_bindir}/ceph-debugpack %{_bindir}/cephdeduptool %{_mandir}/man8/ceph-debugpack.8* %dir %{_libdir}/ceph %{_libdir}/ceph/ceph-monstore-update-crush.sh %endif %if 0%{with cephfs_java} %files -n libcephfs_jni1 %{_libdir}/libcephfs_jni.so.* %post -n libcephfs_jni1 -p /sbin/ldconfig %postun -n libcephfs_jni1 -p /sbin/ldconfig %files -n libcephfs_jni-devel %{_libdir}/libcephfs_jni.so %files -n cephfs-java %{_javadir}/libcephfs.jar %{_javadir}/libcephfs-test.jar %endif %files -n rados-objclass-devel %dir %{_includedir}/rados %{_includedir}/rados/objclass.h %if 0%{with selinux} %files selinux %attr(0600,root,root) %{_datadir}/selinux/packages/ceph.pp %{_datadir}/selinux/devel/include/contrib/ceph.if %{_mandir}/man8/ceph_selinux.8* %post selinux # backup file_contexts before update . /etc/selinux/config FILE_CONTEXT=/etc/selinux/${SELINUXTYPE}/contexts/files/file_contexts cp ${FILE_CONTEXT} ${FILE_CONTEXT}.pre # Install the policy /usr/sbin/semodule -i %{_datadir}/selinux/packages/ceph.pp # Load the policy if SELinux is enabled if ! /usr/sbin/selinuxenabled; then # Do not relabel if selinux is not enabled exit 0 fi if diff ${FILE_CONTEXT} ${FILE_CONTEXT}.pre > /dev/null 2>&1; then # Do not relabel if file contexts did not change exit 0 fi # Check whether the daemons are running /usr/bin/systemctl status ceph.target > /dev/null 2>&1 STATUS=$? # Stop the daemons if they were running if test $STATUS -eq 0; then /usr/bin/systemctl stop ceph.target > /dev/null 2>&1 fi # Relabel the files fix for first package install /usr/sbin/fixfiles -C ${FILE_CONTEXT}.pre restore 2> /dev/null rm -f ${FILE_CONTEXT}.pre # The fixfiles command won't fix label for /var/run/ceph /usr/sbin/restorecon -R /var/run/ceph > /dev/null 2>&1 # Start the daemons iff they were running before if test $STATUS -eq 0; then /usr/bin/systemctl start ceph.target > /dev/null 2>&1 || : fi exit 0 %postun selinux if [ $1 -eq 0 ]; then # backup file_contexts before update . /etc/selinux/config FILE_CONTEXT=/etc/selinux/${SELINUXTYPE}/contexts/files/file_contexts cp ${FILE_CONTEXT} ${FILE_CONTEXT}.pre # Remove the module /usr/sbin/semodule -n -r ceph > /dev/null 2>&1 # Reload the policy if SELinux is enabled if ! /usr/sbin/selinuxenabled ; then # Do not relabel if SELinux is not enabled exit 0 fi # Check whether the daemons are running /usr/bin/systemctl status ceph.target > /dev/null 2>&1 STATUS=$? # Stop the daemons if they were running if test $STATUS -eq 0; then /usr/bin/systemctl stop ceph.target > /dev/null 2>&1 fi /usr/sbin/fixfiles -C ${FILE_CONTEXT}.pre restore 2> /dev/null rm -f ${FILE_CONTEXT}.pre # The fixfiles command won't fix label for /var/run/ceph /usr/sbin/restorecon -R /var/run/ceph > /dev/null 2>&1 # Start the daemons if they were running before if test $STATUS -eq 0; then /usr/bin/systemctl start ceph.target > /dev/null 2>&1 || : fi fi exit 0 %endif %if 0%{with python2} %files -n python-ceph-compat # We need an empty %%files list for python-ceph-compat, to tell rpmbuild to # actually build this meta package. %endif %files grafana-dashboards %if 0%{?suse_version} %attr(0755,root,root) %dir %{_sysconfdir}/grafana %attr(0755,root,root) %dir %{_sysconfdir}/grafana/dashboards %attr(0755,root,root) %dir %{_sysconfdir}/grafana/dashboards/ceph-dashboard %else %attr(0755,root,root) %dir %{_sysconfdir}/grafana/dashboards/ceph-dashboard %endif %config %{_sysconfdir}/grafana/dashboards/ceph-dashboard/* %doc monitoring/grafana/dashboards/README %doc monitoring/grafana/README.md %if 0%{?suse_version} %files prometheus-alerts %dir /etc/prometheus/SUSE/ %dir /etc/prometheus/SUSE/default_rules/ %config /etc/prometheus/SUSE/default_rules/ceph_default_alerts.yml %endif %changelog * Tue Apr 13 2021 Ceph Jenkins 2:14.2.11-147 - mon: set_healthy_stretch_mode in update_from_paxos, not random leader calls! (rhbz#1949166) - mon: maintain stretch_recovery_triggered in new OSDMon::set_*_stretch_mode (rhbz#1949166) - mon: add a set_recovery_stretch_mode function (rhbz#1949166) - mon: rename maybe_engage_stretch_mode to try_engage_stretch_mode (rhbz#1949166) * Thu Apr 08 2021 Ceph Jenkins 2:14.2.11-146 - rgw: Add request timeout beast (rhbz#1903990) - rgw/sts: fixes getsessiontoken authenticated with LDAP/Keystone, when object is uploaded via chunked encoding. (rhbz#1936647) * Wed Apr 07 2021 Ceph Jenkins 2:14.2.11-145 - Update patches * Mon Apr 05 2021 Ceph Jenkins 2:14.2.11-144 - rgw/multisite: handle case when empty marker is provided (rhbz#1919102) * Wed Mar 31 2021 Ceph Jenkins 2:14.2.11-143 - osd: osdmap: do not assert target_v when encoding under stretch mode (rhbz#1944611) - mon: let users specify a crush location on boot, and send it in MMonJoin (rhbz#1939766) - mon: messages: Extend MMonJoin so it can provide a crush_location on join (rhbz#1939766) - mon: if in stretch mode, don't allow new mons to join without a location (rhbz#1939766) - mon: notify_new_monmap in all the places we update our monmap (rhbz#1939766) * Wed Mar 31 2021 Ceph Jenkins 2:14.2.11-142 - Update patches * Mon Mar 29 2021 Ceph Jenkins 2:14.2.11-141 - rgw: add latency to the request summary of an op (rhbz#1881304) * Fri Mar 26 2021 Ceph Jenkins 2:14.2.11-140 - mgr/volumes: Retain suid/guid bits in subvolume clone (rhbz#1938669) - pybind/cephfs: Add lchmod python binding (rhbz#1938669) - client/libcephfs: Add lchmod (rhbz#1938669) * Thu Mar 25 2021 Ceph Jenkins 2:14.2.11-139 - rgw/cmake: fix the minimum required librdkafka version (rhbz#1925188) * Tue Mar 23 2021 Ceph Jenkins 2:14.2.11-138 - mon: monmap: fix backward-compatibility of mon_info_t, once more with feeling (rhbz#1942142) * Tue Mar 16 2021 Ceph Jenkins 2:14.2.11-137 - mon: monmap: fix forward- and backward-compatibility of mon_info_t encoding (rhbz#1936210) * Mon Mar 15 2021 Ceph Jenkins 2:14.2.11-136 - osd: PeeringState: implement an acting_set_writeable() function (rhbz#1937088) - osd: PeeringState: fix a boolean conditional direction (rhbz#1937088) - osd: PeeringState: fix stretch peering so PGs can go peered but not active (rhbz#1937088) - osd: PeeringState: don't add acting-set OSDs to candidate set in stretch mode (rhbz#1937088) - osd: PeeringState: fix calc_replicated_acting_stretch() syntax/logic (rhbz#1937088) - osd: PeeringState: respect stretch peering constraints for async recovery (rhbz#1937088) - osd: PeeringState: add a comment about using size as a proxy for activateable (rhbz#1937088) - osd: check for is_stretch_pool() in stretch_set_can_peer() (rhbz#1937088) - scripts: some additions to help with local testing (rhbz#1937088) - script: set_up_stretch_mode: include OSDs in root=default so pg creation works (rhbz#1937088) * Fri Mar 12 2021 Ceph Jenkins 2:14.2.11-135 - rgw: Shard numbers art part of public REST interface, don't assert (rhbz#1938105) * Thu Mar 11 2021 Ceph Jenkins 2:14.2.11-134 - rgw/notification:initializing kafka/amqp in librgw * Mon Mar 08 2021 Ceph Jenkins 2:14.2.11-133 - rgw: Fix probe failure on OSDs not suporting FIFO. (rhbz#1931329) * Fri Mar 05 2021 Ceph Jenkins 2:14.2.11-132 - mgr/restful: jsonify lists instead of maps (rhbz#1929714) * Thu Mar 04 2021 Ceph Jenkins 2:14.2.11-131 - rgw: data sync: fix obligation check (rhbz#1928019) * Thu Mar 04 2021 Ceph Jenkins 2:14.2.11-130 - rgw/notification: fix persistent notification hang when ack-levl=none - rgw/notification: fixing the "persistent=false" flag * Mon Mar 01 2021 Ceph Jenkins 2:14.2.11-129 - mgr: add doc to describe relationship to prometheus (rhbz#1885441) - mgr/prometheus: Add healthcheck metric for SLOW_OPS (rhbz#1885441) * Mon Mar 01 2021 Ceph Jenkins 2:14.2.11-128 - mgr/dashboard: Fix pool renaming functionality (rhbz#1932848) * Thu Feb 25 2021 Ceph Jenkins 2:14.2.11-127 - mgr/dashboard: delete EOF when reading passwords from file (rhbz#1932780) * Tue Feb 23 2021 Ken Dreyer - 2:14.2.11-126 - adjust gperftools version BR for ppc64le (rhbz#1925651) * Tue Feb 23 2021 Ceph Jenkins 2:14.2.11-125 - mgr/dashboard: set security headers (rhbz#1927719) * Mon Feb 22 2021 Ceph Jenkins 2:14.2.11-124 - cls/2pc_queue should be loaded by default to OSD (rhbz#1931441) * Wed Feb 17 2021 Ken Dreyer - 2:14.2.11-123 - enable tcmalloc and lttng on s390x (rhbz#1925650) - bump gperftools requirement for ppc64le (rhbz#1925651) * Wed Feb 17 2021 Ceph Jenkins 2:14.2.11-122 - prometheus: Properly split the port off IPv6 addresses (rhbz#1929064) * Fri Feb 12 2021 Ceph Jenkins 2:14.2.11-121 - pybind/mgr/rbd_support: fixed datetime.timedelta Python 2 incompatibility (rhbz#1928268) * Fri Feb 12 2021 Ceph Jenkins 2:14.2.11-120 - This commit is intended to hide CherryPy name and version, from HTTP header 'Server' response. (rhbz#1927719) * Thu Feb 11 2021 Ceph Jenkins 2:14.2.11-119 - rgw: Make empty datalog fifo markers empty strings (rhbz#1919201) - rgw: Try to prune empties even if no empties found (rhbz#1919201) - rgw: Wait until a generation has been empty for an hour to delete (rhbz#1919201) - rgw: Leave the zero'th shard of the zero'th generation for cls_lock (rhbz#1919201) * Tue Feb 09 2021 Ceph Jenkins 2:14.2.11-118 - pybind/rados: cast Ioctx.get_pool_id to int in Ioctx.dup (rhbz#1921829) - pybind/rados: correct the declarations of C APIs (rhbz#1921829) * Sat Feb 06 2021 Ceph Jenkins 2:14.2.11-117 - rgw/cmake: fix the minimum required librdkafka version (rhbz#1925188) * Thu Feb 04 2021 Ceph Jenkins 2:14.2.11-116 - rgw: Don't swallow errors in datalog async trim (rhbz#1919201) - rgw: Fix cursor handling in DataLogBackends::list (rhbz#1919201) - rgw: add rgw-gap-list-comparator tool (rhbz#1908910) - rgw: add rgw-gap-list tool upstream match (rhbz#1908910) - rgw: add radosgw-admin bucket radoslist bucket/obj mapping upstream match (rhbz#1908910) * Fri Jan 29 2021 Ceph Jenkins 2:14.2.11-115 - nautilus mgr/dashboard: fix 'ceph dashboard iscsi-gateway-add' (rhbz#1885869) * Thu Jan 28 2021 Ceph Jenkins 2:14.2.11-114 - rgw: Add multisite test for datalog backing switch (rhbz#1919102) - rgw: Prune datalog generations in the renew loop (rhbz#1919102) - rgw: Use LazyFIFO in data changes log (rhbz#1831798) - rgw: Add LazyFIFO to keep from blasting an op-per-shard on startup (rhbz#1831798) - cls/fifo: Don't error in the log if we're being probed for existence (rhbz#1919123) - rgw: Add and trim datalog generations (rhbz#1919102) - rgw: Actually pull logbacking_generations into datalog (rhbz#1919102) - rgw: Clamp FIFO trim to head (rhbz#1919102) - rgw: Lay groundwork for multigenerational datalog (rhbz#1919102) - rgw: Add rgw_complete_aio_completion() (rhbz#1919102) - rgw: Generational support for logback switching (rhbz#1919102) - rgw: Logback generation data structures (rhbz#1919102) - rgw/datalog: make get_oid take generation (rhbz#1919102) - rgw: Move get_oid back to RGWDataChangesLog (rhbz#1919102) - rgw/datalog: Pass IoCtx in, don't have each backend make its own (rhbz#1919102) - rgw: Use refactored log backing tools (rhbz#1919102) - rgw: Factor out tool to deal with different log backing (rhbz#1919102) - rgw: Add AioCompletion* versions for the rest of the FIFO methods (rhbz#1831798) - cls/log: Take const references of things you won't modify (rhbz#1831798) - Add function2 header (rhbz#1831798) - include: Add expected.hpp (rhbz#1831798) * Wed Jan 27 2021 Ceph Jenkins 2:14.2.11-113 - mgr/prometheus: add pool compression stats (rhbz#1882561) * Mon Jan 25 2021 Ceph Jenkins 2:14.2.11-112 - rgw: fix chunked encoding handling from Kafka cammel connector (rhbz#1919956) * Fri Jan 22 2021 Ceph Jenkins 2:14.2.11-111 - Update patches * Thu Jan 21 2021 Ceph Jenkins 2:14.2.11-110 - global/global_init: do first transport connection after setuid() (rhbz#1884469) - tools/ceph_conf: send help to cout in case of '--help' (rhbz#1884469) - tools/ceph_conf: use std::quoted() (rhbz#1884469) - tools/ceph_conf: do not "exit(1)" in usage() (rhbz#1884469) - tools/ceph_conf: replace exit(n) with "return n" (rhbz#1884469) - tools/ceph_conf: s/global_pre_init/global_init/ (rhbz#1884469) * Wed Jan 20 2021 Ceph Jenkins 2:14.2.11-109 - Update patches * Wed Jan 20 2021 Ceph Jenkins 2:14.2.11-108 - Update patches * Wed Jan 20 2021 Ken Dreyer 2:14.2.11-107 - re-add Boost::Context s390x patch (rhbz#1917592) - Drop ExcludeArch s390x (rhbz#1917592) * Tue Jan 19 2021 Ceph Jenkins 2:14.2.11-106 - global/global_init: do first transport connection after setuid() (rhbz#1884469) - tools/ceph_conf: send help to cout in case of '--help' (rhbz#1884469) - tools/ceph_conf: use std::quoted() (rhbz#1884469) - tools/ceph_conf: do not "exit(1)" in usage() (rhbz#1884469) - tools/ceph_conf: replace exit(n) with "return n" (rhbz#1884469) - tools/ceph_conf: s/global_pre_init/global_init/ (rhbz#1884469) * Tue Jan 19 2021 Ceph Jenkins 2:14.2.11-105 - rgw: Fix spurious error on empty datalog shard (rhbz#1917687) * Thu Jan 14 2021 Ceph Jenkins 2:14.2.11-104 - rgw: add rgw-gap-list tool (rhbz#1908910) - rgw: add radosgw-admin bucket radoslist bucket/obj mapping (rhbz#1908910) * Thu Jan 14 2021 Ceph Jenkins 2:14.2.11-103 - mgr/dashboard: Display users current bucket quota usage Fixes: https://tracker.ceph.com/issues/45011 (rhbz#1892824) * Thu Jan 14 2021 Ceph Jenkins 2:14.2.11-102 - mgr/dashboard: fix issues from cherry-pick conflict resolution (rhbz#1885869) - mgr/BaseMgrModule: add optional inbuf param to ceph_send_command. (rhbz#1885869) - mgr/dashboard: CLI commands: read passwords from file (rhbz#1885869) * Thu Jan 14 2021 Thomas Serlin - 2:14.2.11-101 - ceph.spec: exclude s390x * Wed Jan 13 2021 Ceph Jenkins 2:14.2.11-100 - rgw/rgw_http_client.cc: Introduce a new configuration item - rgw_curl_buffersize - rgw: add request time into beast log instead of current time (rhbz#1881304) - rgw: introduce safe user-reset-stats - rgw: distribute cache for exclusive put (rhbz#1901973) - test/rgw/notifications: fix push notification tests - rgw/http: add timeout to http client - rgw/notifications: persistency - cleanup stale reservations (rhbz#1873881) - rgw/notifications: add persistent delivery to notifications (rhbz#1873881) - cls/2pc_queue: add expire_reservation operation to queue (rhbz#1873881) - cls/2pc_queue: fix access to invalidated iterator (rhbz#1873881) - cls/2pc_queue: fix timing issue in test (rhbz#1873881) - cls/2pc_queue: add async API to read operations (rhbz#1873881) - cls/queue: fix empty markers when listing entries (rhbz#1873881) - cls/2pc_queue: remove the dependency of cls_2pc_queue with cls_queue (rhbz#1873881) - cls/queue: spillover of urgent data to xattrs (rhbz#1873881) - cls/queue: add 2-phase-commit queue implementation (rhbz#1873881) - cls/queue: add multithreaded unit tests (rhbz#1873881) - cls/queue: add unit tests (rhbz#1873881) - rgw: fix expiration header returned even if there is only one tag in the object the same as the rule (rhbz#1875346) - rgw: Be less noisy when probing FIFO existence (rhbz#1831798) - rgw: Create Omap by default, use FIFO when requested (rhbz#1831798) - rgw/fifo: Use unique_ptr and explicit release for callbacks (rhbz#1831798) - rgw/fifo: Catch two instances journaling a new part (rhbz#1831798) - rgw/fifo: Add some error logging (rhbz#1831798) - rgw/fifo: Fix a few missed return value assignments (rhbz#1831798) - cls/fifo: Switch use CLS_ERR for errors (rhbz#1831798) - cls/fifo: Add 'exclusive' option to Trim (rhbz#1831798) - cmake: add cls_fifo as a dependency of osd (rhbz#1831798) - rgw: Datalog with selectable backends, FIFO and Omap (rhbz#1831798) - rgw: Fix async caller into Datalog (rhbz#1831798) - rgw: Normalize DataLog function signatures (rhbz#1831798) - rgw: Datalog cleanups (rhbz#1831798) - rgw: Remove date from REST log trim/list (rhbz#1831798) - rgw: Remove some TimeLog options from radosgw-admin (rhbz#1831798) - gitignore: Add vstart_environment.sh (rhbz#1831798) - rgw: FIFO for legacy RADOS client (rhbz#1831798) - cls/fifo: Use neorados interface (rhbz#1831798) - cls/fifo: FIFO over RADOS (rhbz#1831798) - strtol: Add parse/consume for string_view friendly interface (rhbz#1831798) - common/Thread: Don't store pointer to thread_name (rhbz#1831798) - common/ceph_json: Support en/decoding Boost's flat containers (rhbz#1831798) - common: add ceph::allocate_unique() (rhbz#1831798) - common: bind_like (rhbz#1831798) - common: Add bind_allocator template (rhbz#1831798) - include: Import (modified) uses_allocator.h (rhbz#1831798) - test/rgw: add unittest_rgw_bucket_sync_cache (rhbz#1831798) - rgw: dont use RGWOmapAppend for error_repo (rhbz#1831798) - rgw: remove per-bucket-shard sync leases (rhbz#1831798) - rgw: ContinuousLeaseCR::is_locked() is const (rhbz#1831798) - rgw: ContinuousLeaseCR doesn't need locks/atomics (rhbz#1831798) - rgw: use objv_tracker to read/write bucket sync status (rhbz#1831798) - rgw: RadosRemoveCR takes objv_tracker (rhbz#1831798) - rgw: SysObj service applies objv on set_attrs (rhbz#1831798) - rgw: data sync no longer needs index_key_to_marker (rhbz#1831798) - rgw: DataSyncSingleEntry loops based on progress (rhbz#1831798) - rgw: DataSyncSingleEntry does not duplicate bucket sync (rhbz#1831798) - rgw: DataSyncSingleEntry takes cached state (rhbz#1831798) - rgw: add data sync cache for bucket shards (rhbz#1831798) - common/intrusive_lru: implement plain, non-creational get(). (rhbz#1831798) - common/: introduce intrusive_lru (rhbz#1831798) - rgw: track last timestamp written for bucket sync (rhbz#1831798) - rgw: store timestamp in InitBucketShardSyncStatus (rhbz#1831798) - rgw: add struct data_sync_obligation (rhbz#1831798) - rgw: add sync_single_entry() helper function (rhbz#1831798) - rgw: use optional for DataSyncShardMarkerTrack (rhbz#1831798) - rgw: parse bucket-shard before DataSyncSingleEntry (rhbz#1831798) - rgw: data sync tracks timestamps for error repo (rhbz#1831798) - rgw: add error repo primitives with timestamp comparisons (rhbz#1831798) - rgw: DataSyncShardCR uses GetOmapVals (rhbz#1831798) - rgw: add CR for omap_get_vals() (rhbz#1831798) - rgw: incremental bucket sync status stores timestamp (rhbz#1831798) - common: add [coarse_]real_time support to ceph_json.h (rhbz#1831798) - rgw: don't write to error repo for async notification failures (rhbz#1831798) - rgw: remove unused RGWWaitCR (rhbz#1831798) - rgw/tools: add flags to rgw_rados_operate api (rhbz#1831798) - ceph_test_cls_hello: set RETURNVEC on the expected EINVAL request (rhbz#1831798) - librados: allow passing flags to operate sync APIs (rhbz#1831798) - osd/PrimaryLogPG: include op_returns in dup replies (rhbz#1831798) - messages/MOSDOpReply: ensure input payload is not passed via reply (rhbz#1831798) - osd/PrimaryLogPG: make proxied writes behave with RETURNVEC (rhbz#1831798) - cls/hello: test large return buffer overflow (rhbz#1831798) - osd/PrimaryLogPG: impose a per-op return buffer limit (32) (rhbz#1831798) - osd/PrimaryLogPG: include op_returns in pg log [dup] records, reply (rhbz#1831798) - osd/osd_types: reset payload_len in merge_osd_op_vector_out_data (rhbz#1831798) - osd/osd_types: show in and out byte counts for OSDOp (rhbz#1831798) - cls/hello,ceph_test_cls_hello: test returning data from a mutation (rhbz#1831798) - osdc/Objecter: allow mutate ops to have return data (rhbz#1831798) - librados: add a RETURNVEC flag (rhbz#1831798) - osd/osd_types: add per-op return fields to log [dup] records (rhbz#1831798) - osd/PrimaryLogPG: remove finish_proxy_write reply path (rhbz#1831798) - osd/PrimaryLogPG: drop unused MOSDOpReply creation path (rhbz#1831798) - osd/PrimaryLogPG: remove unnecessary claim_op_out_data() calls (rhbz#1831798) - osd/PrimaryLogPG: do_pg_ops make MOSDOp const, fix comment (rhbz#1831798) - rgw: use qualified encode/decode in putobj processor (rhbz#1831737) * Wed Jan 13 2021 Ceph Jenkins 2:14.2.11-99 - mgr/PyModule: correctly remove config options (rhbz#1912454) - pybind/rados: don't try to close watch in dealoc if rados not connected (rhbz#1912454) - pybind/rados: add watch object bindings (rhbz#1912454) - pybind/rados: add Ioctx dup method (rhbz#1912454) * Tue Jan 12 2021 Ceph Jenkins 2:14.2.11-98 - ceph-volume: remove mention of dmcache from docs and help text (rhbz#1876827) - ceph-volume: implement the --log-level flag (rhbz#1867717) * Mon Jan 11 2021 Ceph Jenkins 2:14.2.11-97 - osd: osdmap: do not assert target_v when encoding in stretch mode (rhbz#1914159) - mon: add a missing space in disallowed_leaders output (rhbz#1800382) - mon: do not get pending crush to no purpose (rhbz#1800382) - osd: osdmap: Do not increase compatv when using stretch mode (rhbz#1800382) - mon: fix some erroneous safety asserts in OSDMonitor::try_enable_stretch_mode (rhbz#1800382) * Wed Jan 06 2021 Ceph Jenkins 2:14.2.11-96 - mgr/ActivePyModules.cc: don't log config value in get_typed_config (rhbz#1903757) - mon/ConfigMonitor.cc: don't log config values in refresh_config (rhbz#1903757) - mgr: don't add config values to mgr log in config_callback and module_config (rhbz#1903757) - mon/ConfigMonitor.cc: don't dump all keys and values in config map (rhbz#1903757) - mon: don't log "config set" and "config-key set" dispatch and finished messages (rhbz#1903757) - messages/MMonCommand, MMonCommandAck: don't log values for "config set" and "config-key set" (rhbz#1903757) * Thu Dec 17 2020 Ceph Jenkins 2:14.2.11-95 - tasks/cephfs/test_volume_client: Add tests for authorize/deauthorize (rhbz#1907532) - pybind/ceph_volume_client: Optionally authorize existing auth-ids (rhbz#1907532) - pybind/ceph_volume_client: Preserve existing caps while authorize/deauthorize auth-id (rhbz#1907532) - pybind/ceph_volume_client: Disallow authorize auth_id (rhbz#1907532) - pybind/ceph_volume_client: Fix PEP-8 SyntaxWarning (rhbz#1907532) * Wed Dec 16 2020 Ceph Jenkins 2:14.2.11-94 - librbd/object_map: don't assert if a snapshot doesn't exist (rhbz#1903612) - librbd: skip fast-diff optimization when deep copying with flatten (rhbz#1903612) - librbd: fix deep copy skipping clean object (rhbz#1903612) - librbd: fix regression in diff request (rhbz#1903612) * Fri Dec 11 2020 Ceph Jenkins 2:14.2.11-93 - mgr/crash: Serialize command handling (rhbz#1902034) * Thu Dec 10 2020 Ceph Jenkins 2:14.2.11-92 - rgw: append obj: prevent tail from being GC'ed (rhbz#1898599) * Thu Dec 10 2020 Ceph Jenkins 2:14.2.11-91 - rgw: in ordered bucket listing skip namespaced entries when possible (rhbz#1883283) * Thu Dec 10 2020 Ceph Jenkins 2:14.2.11-90 - mgr/dashboard: Adding the alert bad certificate error to the ssl providers error (rhbz#1904340) - mgr/dashboard: Updating the inbuilt ssl providers error (rhbz#1904340) * Fri Dec 04 2020 Ceph Jenkins 2:14.2.11-89 - mgr/progress: 'progress clear' command should clear events in 'ceph -s' (rhbz#1896587) * Thu Dec 03 2020 Ceph Jenkins 2:14.2.11-88 - ceph-volume: retry when acquiring lock fails (rhbz#1869797) * Wed Dec 02 2020 Ceph Jenkins 2:14.2.11-87 - pybind/mgr/restful: use dict.items() for py3 compatibility (rhbz#1897995) - mgr/prometheus: use threading.Event instead of sleep (rhbz#1901036) - mgr/prometheus: Log collection issues (rhbz#1901036) - mgr/prometheus: Use mgr.release_name for always on modules (rhbz#1901036) - mgr/prometheus: Clean up collection thread (rhbz#1901036) * Wed Dec 02 2020 Ceph Jenkins 2:14.2.11-86 - rgw: during GC defer, prevent new GC enqueue (rhbz#1892644) * Wed Dec 02 2020 Ceph Jenkins 2:14.2.11-85 - rgw/sts: Adding a configurable rgw_sts_min_session_duration that can be used to set the lower limit of duration for which an STS token is valid. * Tue Dec 01 2020 Ceph Jenkins 2:14.2.11-84 - rgw_file: return common_prefixes in lexical order (rhbz#1878250) * Thu Nov 26 2020 Ceph Jenkins 2:14.2.11-83 - rgw: fix rgw_ep_info nullptr handling when resharding (rhbz#1899860) * Mon Nov 23 2020 Ceph Jenkins 2:14.2.11-82 - mgr/progress: introduce turn off/on feature (rhbz#1896587) * Fri Nov 20 2020 Ceph Jenkins 2:14.2.11-81 - mon/Monitor.cc: fix connection scores dump/reset (rhbz#1892173) - mon: register the "connection scores" admin socket commands (rhbz#1892173) * Wed Nov 18 2020 Ceph Jenkins 2:14.2.11-80 - mon/MonClient: bring back CEPHX_V2 authorizer challenges (rhbz#1899327) - msg/async/ProtocolV1: resurrect "implement cephx_*require_version options" (rhbz#1899327) - msg/async/ProtocolV1: resurrect "include MGR as service when applying cephx settings" (rhbz#1899327) * Wed Nov 18 2020 Ceph Jenkins 2:14.2.11-79 - os/bluestore: fix "end reached" check in collection_list_legacy (rhbz#1880188) - mon: Log "ceph health detail" periodically in cluster log (rhbz#1891098) * Tue Nov 17 2020 Ceph Jenkins 2:14.2.11-78 - Update patches * Mon Nov 16 2020 Ceph Jenkins 2:14.2.11-77 - rgwlc: correctly dimension lc shard index vector (rhbz#1876976) * Sun Nov 15 2020 Ceph Jenkins 2:14.2.11-76 - doc: update stretch mode doc to not be a lie (rhbz#1800382) - mon: include stretch mode status in more outputs (rhbz#1800382) - mon: retain disallowed leader list on restart (rhbz#1886677) - mon: Output the real leader in ::_quorum_status() and get_leader_name() (rhbz#1886670) - mon: monmap: print out disallowed_leaders in text form, when non-empty (rhbz#1886653) - mon: Do not increase compatv when using monitor location or stretch mode (rhbz#1800382) - mon: fix erroneous commit of monmap stretch mode when failing to enable (rhbz#1889668) - mon: fixing extra copying in loops (rhbz#1800382) * Wed Nov 11 2020 Ceph Jenkins 2:14.2.11-75 - mgr/rbd_support: create mirror snapshots asynchronously (rhbz#1893740) - mgr/rbd_support: attempt to unregister watcher on mgr exit (rhbz#1893740) - mgr/rbd_support: make mirror_snapshot_schedule rescan only updated pools (rhbz#1893740) - pybind/rbd: add async mirror image get mode and info methods (rhbz#1893740) - librbd: add missing declaration of rbd_aio_mirror_image_get_mode (rhbz#1893740) - pybind/rbd: add image async open and close methods (rhbz#1893740) - pybind/rbd: async API for creating mirror snapshots (rhbz#1893740) - librbd: async API for creating mirror snapshots (rhbz#1893740) - mgr/rbd_support: backward compatibility when loading global schedule (rhbz#1892295) - mgr/rbd_support: store global schedule without localized prefix (rhbz#1892295) * Mon Nov 09 2020 Ceph Jenkins 2:14.2.11-74 - librbd: update hidden global config when removing pool config override (rhbz#1860057) * Wed Nov 04 2020 Ceph Jenkins 2:14.2.11-73 - doc/PendingReleaseNotes: mention mon_host DNS regression (rhbz#1892387) - mon/MonMap: fix unconditional failure for init_with_hosts (rhbz#1892387) - test/mon: add tests for mon_host build by hostname (rhbz#1892387) - test/mon: fix compiler errors in MonMap unittest (rhbz#1892387) - test/mon: build MonMap unittest (rhbz#1892387) * Wed Nov 04 2020 Ceph Jenkins 2:14.2.11-72 - rgw: keep syncstopped flag when copying bucket shard headers (rhbz#1894702) * Mon Nov 02 2020 Ceph Jenkins 2:14.2.11-71 - bluestore, common/options.cc: disable bluestore_fsck_quick_fix_on_mount (rhbz#1873221) * Mon Nov 02 2020 Ceph Jenkins 2:14.2.11-70 - librbd: refresh full global config when applying metadata (rhbz#1860057) - common/config_proxy: added 'get_config_values' method (rhbz#1860057) - common/config_proxy: expose the 'set_config_values' method (rhbz#1860057) * Thu Oct 29 2020 Ceph Jenkins 2:14.2.11-69 - rgw: fix decode version in bucket info (rhbz#1892265) * Wed Oct 28 2020 Ceph Jenkins 2:14.2.11-68 - RGW - Fix broken merge in #37774 (rhbz#1845501) - RGW - Don't writeback when inside a readdir callback (rhbz#1845501) * Tue Oct 27 2020 Ceph Jenkins 2:14.2.11-67 - include/encoding: Fix encode/decode of float types on big-endian systems (rhbz#1877413) * Thu Oct 22 2020 Ceph Jenkins 2:14.2.11-66 - rgw: fix bucket layout encoding (rhbz#1889963) - rgw: bucket-granularity sync: define policy structure (rhbz#1889963) * Thu Oct 22 2020 Ceph Jenkins 2:14.2.11-65 - Update patches * Thu Oct 22 2020 Ceph Jenkins 2:14.2.11-64 - messages,mds: Fix decoding of enum types on big-endian systems (rhbz#1872030) * Thu Oct 22 2020 Ceph Jenkins 2:14.2.11-63 - rgw: fix bucket layout encoding (rhbz#1889963) - rgw: bucket-granularity sync: define policy structure (rhbz#1889963) - rgw: allow encoding of std::optional type (rhbz#1889963) * Wed Oct 21 2020 Ceph Jenkins 2:14.2.11-62 - tools/rados: flush formatter periodically during json output of `rados ls` (rhbz#1883590) * Wed Oct 21 2020 Ceph Jenkins 2:14.2.11-61 - rgw: reject response headers w/illegal characters (rhbz#1813284) * Wed Oct 21 2020 Ceph Jenkins 2:14.2.11-60 - Fix s3 lifecycle expiration header does not return the earliest rule that will be applied (rhbz#1793160) * Wed Oct 21 2020 Ceph Jenkins 2:14.2.11-59 - Bucket link using '--bucket-new-name' should consider cases when a bucket is renamed under the same tenanted/non-tenanted namespace. Change the condition such that a full comparison of the buckets is done while deleting old bucket instance. (rhbz#1757298) - rgw: Correcting pool name for oidc provider for older versions of osd. (rhbz#127408) - cls/rgw: preserve olh entry's name on last unlink (rhbz#1749090) - rgw: fix boost::asio::async_write() does not return error... (rhbz#1850036) * Wed Oct 21 2020 Ceph Jenkins 2:14.2.11-58 - rgw: rgw-orphan-list should use "plain" formatted `rados ls` output (rhbz#1883590) * Wed Oct 21 2020 Ceph Jenkins 2:14.2.11-57 - rgw/gc: fixing the condition when marker for a queue is always reset to empty which causes RGWGC::list to get stuck in a loop, which ultimately is broken out of when the queue's truncated flag is false. (rhbz#1884023) - rgw/gc: fix for incrementing the perf counter 'gc_retire_object' in the new gc queue code for omap offload, when gc objects from queue are deleted. This was missed out initially. (rhbz#1882484) * Wed Oct 21 2020 Ceph Jenkins 2:14.2.11-56 - mgr/dashboard: Changed About modal version to 4.2 (rhbz#1889712) * Mon Oct 19 2020 Thomas Serlin 2:14.2.11-55 - rgw: Be less noisy when probing FIFO existence (rhbz#1831798) - rgw: Create Omap by default, use FIFO when requested (rhbz#1831798) - rgw/fifo: Use unique_ptr and explicit release for callbacks (rhbz#1831798) - rgw/fifo: Catch two instances journaling a new part (rhbz#1831798) - rgw/fifo: Add some error logging (rhbz#1831798) - rgw/fifo: Fix a few missed return value assignments (rhbz#1831798) - cls/fifo: Switch use CLS_ERR for errors (rhbz#1831798) - cls/fifo: Add 'exclusive' option to Trim (rhbz#1831798) - cmake: add cls_fifo as a dependency of osd (rhbz#1831798) - rgw: Datalog with selectable backends, FIFO and Omap (rhbz#1831798) - rgw: Fix async caller into Datalog (rhbz#1831798) - rgw: Normalize DataLog function signatures (rhbz#1831798) - rgw: Datalog cleanups (rhbz#1831798) - rgw: Remove date from REST log trim/list (rhbz#1831798) - rgw: Remove some TimeLog options from radosgw-admin (rhbz#1831798) - gitignore: Add vstart_environment.sh (rhbz#1831798) - rgw: FIFO for legacy RADOS client (rhbz#1831798) - cls/fifo: Use neorados interface (rhbz#1831798) - cls/fifo: FIFO over RADOS (rhbz#1831798) - strtol: Add parse/consume for string_view friendly interface (rhbz#1831798) - common/Thread: Don't store pointer to thread_name (rhbz#1831798) - common/ceph_json: Support en/decoding Boost's flat containers (rhbz#1831798) - common: add ceph::allocate_unique() (rhbz#1831798) - common: bind_like (rhbz#1831798) - common: Add bind_allocator template (rhbz#1831798) - include: Import (modified) uses_allocator.h (rhbz#1831798) * Fri Oct 16 2020 Ceph Jenkins 2:14.2.11-54 - test/rgw: add unittest_rgw_bucket_sync_cache (rhbz#1831798) - rgw: dont use RGWOmapAppend for error_repo (rhbz#1831798) - rgw: remove per-bucket-shard sync leases (rhbz#1831798) - rgw: ContinuousLeaseCR::is_locked() is const (rhbz#1831798) - rgw: ContinuousLeaseCR doesn't need locks/atomics (rhbz#1831798) - rgw: use objv_tracker to read/write bucket sync status (rhbz#1831798) - rgw: RadosRemoveCR takes objv_tracker (rhbz#1831798) - rgw: SysObj service applies objv on set_attrs (rhbz#1831798) - rgw: data sync no longer needs index_key_to_marker (rhbz#1831798) - rgw: DataSyncSingleEntry loops based on progress (rhbz#1831798) - rgw: DataSyncSingleEntry does not duplicate bucket sync (rhbz#1831798) - rgw: DataSyncSingleEntry takes cached state (rhbz#1831798) - rgw: add data sync cache for bucket shards (rhbz#1831798) - common/intrusive_lru: implement plain, non-creational get(). (rhbz#1831798) - common/: introduce intrusive_lru (rhbz#1831798) - rgw: track last timestamp written for bucket sync (rhbz#1831798) - rgw: store timestamp in InitBucketShardSyncStatus (rhbz#1831798) - rgw: add struct data_sync_obligation (rhbz#1831798) - rgw: add sync_single_entry() helper function (rhbz#1831798) - rgw: use optional for DataSyncShardMarkerTrack (rhbz#1831798) - rgw: parse bucket-shard before DataSyncSingleEntry (rhbz#1831798) - rgw: data sync tracks timestamps for error repo (rhbz#1831798) - rgw: add error repo primitives with timestamp comparisons (rhbz#1831798) - rgw: DataSyncShardCR uses GetOmapVals (rhbz#1831798) - rgw: add CR for omap_get_vals() (rhbz#1831798) - rgw: incremental bucket sync status stores timestamp (rhbz#1831798) - common: add [coarse_]real_time support to ceph_json.h (rhbz#1831798) - rgw: don't write to error repo for async notification failures (rhbz#1831798) - rgw: remove unused RGWWaitCR (rhbz#1831798) - build: Make libfmt available unconditionally * Thu Oct 15 2020 Ceph Jenkins 2:14.2.11-53 - Update patches * Thu Oct 15 2020 Ceph Jenkins 2:14.2.11-52 - rgw: Be less noisy when probing FIFO existence (rhbz#1831798) - rgw: Create Omap by default, use FIFO when requested (rhbz#1831798) - rgw/fifo: Use unique_ptr and explicit release for callbacks (rhbz#1831798) - rgw/fifo: Catch two instances journaling a new part (rhbz#1831798) - rgw/fifo: Add some error logging (rhbz#1831798) - rgw/fifo: Fix a few missed return value assignments (rhbz#1831798) - cls/fifo: Switch use CLS_ERR for errors (rhbz#1831798) - cls/fifo: Add 'exclusive' option to Trim (rhbz#1831798) - cmake: add cls_fifo as a dependency of osd (rhbz#1831798) - rgw: Datalog with selectable backends, FIFO and Omap (rhbz#1831798) - rgw: Fix async caller into Datalog (rhbz#1831798) - rgw: Normalize DataLog function signatures (rhbz#1831798) - rgw: Datalog cleanups (rhbz#1831798) - rgw: Remove date from REST log trim/list (rhbz#1831798) - rgw: Remove some TimeLog options from radosgw-admin (rhbz#1831798) - gitignore: Add vstart_environment.sh (rhbz#1831798) - rgw: FIFO for legacy RADOS client (rhbz#1831798) - cls/fifo: Use neorados interface (rhbz#1831798) - cls/fifo: FIFO over RADOS (rhbz#1831798) - strtol: Add parse/consume for string_view friendly interface (rhbz#1831798) - common/Thread: Don't store pointer to thread_name (rhbz#1831798) - common/ceph_json: Support en/decoding Boost's flat containers (rhbz#1831798) - common: add ceph::allocate_unique() (rhbz#1831798) - common: bind_like (rhbz#1831798) - common: Add bind_allocator template (rhbz#1831798) - include: Import (modified) uses_allocator.h (rhbz#1831798) * Thu Oct 15 2020 Ceph Jenkins 2:14.2.11-51 - rgw: use exponential back-off for retries after bucketinfo update race (rhbz#1846504) * Tue Oct 13 2020 Ceph Jenkins 2:14.2.11-50 - rgw: advance pseudo-folders properly in delimited ordered listing (rhbz#1874645) - Revert "rgw: fix list bucket with delimiter wrongly skip some special keys" (rhbz#1874645) * Thu Oct 08 2020 Ceph Jenkins 2:14.2.11-49 - Update patches * Thu Oct 08 2020 Ceph Jenkins 2:14.2.11-48 - Update patches * Thu Oct 08 2020 Ceph Jenkins 2:14.2.11-47 - rgw: allow rgw-orphan-list to note when rados objects are in namespace (rhbz#1886584) - rgw: fix setting of namespace in ordered and unordered bucket listing (rhbz#1886580) - rgw: radosgw-admin should paginate internally when listing bucket (rhbz#1886580) * Thu Oct 08 2020 Ceph Jenkins 2:14.2.11-46 - rgw: add access log to the beast frontend (rhbz#1886461) * Wed Oct 07 2020 Thomas Serlin - 2:14.2.11-45 - spec: mgr: Add python-enum34 dependency to package for older distributions (rhbz#1885693) * Mon Oct 05 2020 Thomas Serlin 2:14.2.11-44 - rgw/ document default for enable_unsafe_request_smuggling (rhbz#1827703) - rgw/beast: handle old clients with transfer-encoding: chunked; the beast patch. (rhbz#1827703) - rgw/beast: handle old clients with transfer-encoding: chunked. (rhbz#1827703) - rgw/civetweb: document civetweb enable_unsafe_request_smuggling (rhbz#1827703) - use civetweb chunk encoding fixes (rhbz#1827703) - rgw/s3: must close connection if mg_read indicates error. (rhbz#1827703) - use civetweb chunk encoding fixes (rhbz#1827703) - rgw/beast: must close after body read fails. (rhbz#1827703) - radosgw / AWSv4ComplMulti: better parsing for chunk header fields. (rhbz#1827703) - rgw/civetweb: handle old clients with transfer-encoding: chunked. (rhbz#1827703) - Fix transfer-encoding=chunked requests (rhbz#1827703) * Thu Oct 01 2020 Ceph Jenkins 2:14.2.11-43 - rgw: raise default rgw_bucket_index_max_aio to 128 (rhbz#1872459) * Thu Oct 01 2020 Ceph Jenkins 2:14.2.11-42 - rgw/tools: add flags to rgw_rados_operate api (rhbz#1831798) - ceph_test_cls_hello: set RETURNVEC on the expected EINVAL request (rhbz#1831798) - librados: allow passing flags to operate sync APIs (rhbz#1831798) - osd/PrimaryLogPG: include op_returns in dup replies (rhbz#1831798) - messages/MOSDOpReply: ensure input payload is not passed via reply (rhbz#1831798) - osd/PrimaryLogPG: make proxied writes behave with RETURNVEC (rhbz#1831798) - cls/hello: test large return buffer overflow (rhbz#1831798) - osd/PrimaryLogPG: impose a per-op return buffer limit (32) (rhbz#1831798) - osd/PrimaryLogPG: include op_returns in pg log [dup] records, reply (rhbz#1831798) - osd/osd_types: reset payload_len in merge_osd_op_vector_out_data (rhbz#1831798) - osd/osd_types: show in and out byte counts for OSDOp (rhbz#1831798) - cls/hello,ceph_test_cls_hello: test returning data from a mutation (rhbz#1831798) - osdc/Objecter: allow mutate ops to have return data (rhbz#1831798) - librados: add a RETURNVEC flag (rhbz#1831798) - osd/osd_types: add per-op return fields to log [dup] records (rhbz#1831798) - osd/PrimaryLogPG: remove finish_proxy_write reply path (rhbz#1831798) - osd/PrimaryLogPG: drop unused MOSDOpReply creation path (rhbz#1831798) - osd/PrimaryLogPG: remove unnecessary claim_op_out_data() calls (rhbz#1831798) - osd/PrimaryLogPG: do_pg_ops make MOSDOp const, fix comment (rhbz#1831798) * Thu Oct 01 2020 Ceph Jenkins 2:14.2.11-41 - rgw: define rgw_bucket::full_equal(...) method (rhbz#1763219) - rgw: fix if case for bucket rename (rhbz#1763219) - rgw: add rename_swift_keys for user rename (rhbz#1763219) - rgw: consolidate RGWUser::execute_rename (rhbz#1763219) - rgw: user rename calls update() to write final user (rhbz#1763219) - rgw: user rename overwrites new user with --yes-i-really-mean-it (rhbz#1763219) - rgw: user rename operates on 'stub' user (rhbz#1763219) - rgw: simplify bucket chown (rhbz#1763219) - rgw: fix version tracking across bucket link steps (rhbz#1763219) - On new uid check, return EEXIST. (rhbz#1763219) - Fixed line wrap (rhbz#1763219) - Minor fixes. (rhbz#1763219) - Modified rgw_store_user_info() checks to suit user rename. Added a helper function to modify bucket acl. Rebased onto master. (rhbz#1763219) - Create new user before deleting existing user. Migrate buckets one at a time. (rhbz#1763219) - This commit deals with renaming user. Under the hood, the attributes of an existing user are moved under the new user namespace specified by "--new-uid". It calls bucket link and bucket chown to link the buckets and objects to the new user namespace. Access and secret keys of the user(and the subusers) are preserved. (rhbz#1763219) - Set object ACLS to reflect bucket owner supporting bucket unlink/link. (rhbz#1763219) - rgw: bucket link: master rebase adaptions. (rhbz#1763219) - rgw: bucket link: "bucket move"; handle bucket names too. (rhbz#1763219) - rgw: bucket link: base "bucket move" (tenant id only) (rhbz#1763219) - rearrange / simplify RGWBucket::link logic - start bucket move support (rhbz#1763219) - rgw: bucket link: simplify use of get bucket info. (rhbz#1763219) * Thu Oct 01 2020 Ceph Jenkins 2:14.2.11-40 - rgw: return error if bucket info is not updated after reshard completion (rhbz#1831737) - rgw: reshard modifications for ceph-4.2 (rhbz#1831737) - rgw: - Better error handling - function update_bucket() handles updating bucket state (rhbz#1831737) - rgw: use a helper function to handle repetitive num_shards check (rhbz#1831737) - rgw: for backward compatibility during upgrades, adding new_bucket_instance_id and new_instance_id fields back for proper decoding. (rhbz#1831737) - rgw: code organization fixes and error handling (rhbz#1831737) - rgw: clean up fixes for extra spaces and indentation. (rhbz#1831737) - rgw: helper function to set reshard status from rgw::BucketReshardState. (rhbz#1831737) - rgw: minor fixes (rhbz#1831737) - rgw: failing to reshard, restore old indexes (rhbz#1831737) - rgw: - allow clean_index() to take const bucket_index_layout_generation& - fix bi_get() to get objects after being resharded (rhbz#1831737) - rgw: - take gen_id without optional as parameter in svc_bi_rados functions. (rhbz#1831737) - rgw: - make RGWBucketInfo a non-const reference in functions using guard_reshard() - remove unused 'instance_id' from cls_rgw_reshard_entry - other minor fixes (rhbz#1831737) - rgw: target_layout to be optional (rhbz#1831737) - rgw: use rgw::BucketReshardState for reshard state change (rhbz#1831737) - rgw: fetch updated bucketinfo rather than bucket_id in guard_reshard() to be able to read the updated layout. (rhbz#1831737) - rgw: use BucketReshardState states in appropriate places replacing cls_rgw_reshard_status. Remove unused parameters in cls_rgw_bucket_instance_entry. Other minor cleanup fixes. (rhbz#1831737) - rgw/dynamic-resharding: Allow clean_index to take generation number as a parameter. (rhbz#1831737) - rgw/dynamic-resharding: reshard bucket using the same bucket instance id (rhbz#1831737) - rgw/dynamic-resharding: remove creation of new bucket instance (rhbz#1831737) - rgw: downstream compatibility fix in rgw_common (rhbz#1831737) - rgw: use target bucket layout for reshard (rhbz#1831737) - modified get_target_shard_id() to take bucket_index_normal_layout directly (rhbz#1831737) - Removed redundant encoding of layout.* and adjusted the corresponding decoding (rhbz#1831737) - Moved ostream operator overloading to BucketIndexType() to rgw_bucket_layout header file (rhbz#1831737) - rgw: replace RGWBucketInfo's sharding-related fields with BucketLayout (rhbz#1831737) - rgw: add bucket layout encode/decode (downstream change only) (rhbz#1831737) - rgw: add BucketLayout to RGWBucketInfo (rhbz#1831737) - rgw: use qualified encode/decode in putobj processor (rhbz#1831737) * Thu Oct 01 2020 Ceph Jenkins 2:14.2.11-39 - rgw: add negative cache to the system object (rhbz#1859985) - rgw: fix rgw tries to fetch anonymous user (rhbz#1831865) * Thu Oct 01 2020 Ceph Jenkins 2:14.2.11-38 - rgwlc: fix (post-parallel) non-current expiration (rhbz#1875305) - rgwlc: remove lc entry on bucket delete (rhbz#1859585) - rgwlc: fix Segmentation Fault related to tags. (rhbz#1856754) * Tue Sep 29 2020 Ceph Jenkins 2:14.2.11-37 - rbd: make common options override krbd-specific options (rhbz#1882705) * Tue Sep 29 2020 Ceph Jenkins 2:14.2.11-36 - nautilus: mgr/dashboard: fix perf. issue when listing large amounts of buckets (rhbz#1877745) * Mon Sep 28 2020 Ceph Jenkins 2:14.2.11-35 - bluestore/bluefs: make accounting resiliant to unlock() (rhbz#1882426) * Fri Sep 25 2020 Ceph Jenkins 2:14.2.11-34 - ceph-volume: remove unneeded call to get_devices() (rhbz#1878500) - options: add cmpomap to osd_class_load_list (rhbz#1831798) - test: add ceph_test_cls_cmpomap (rhbz#1831798) - cls/cmpomap: add cls module for CMPXATTR-like functionality in omap (rhbz#1831798) - objclass: add cls_cxx_map_get_vals_by_keys (rhbz#1831798) - objclass: expose cls_cxx_map_get_val in header (rhbz#1831798) - buffer: add missing != operator for bufferlist (rhbz#1831798) - buffer: comparison operators take const bufferlist& (rhbz#1831798) * Wed Sep 23 2020 Ceph Jenkins 2:14.2.11-33 - qa: add test for mapping and unmapping from a network namespace (rhbz#1872879) - krbd: optionally skip waiting for udev events (rhbz#1872879) * Wed Sep 23 2020 Ceph Jenkins 2:14.2.11-32 - mgr/dashboard: table detail rows overflow (rhbz#1878267) * Wed Sep 23 2020 Ceph Jenkins 2:14.2.11-31 - Update patches * Wed Sep 23 2020 Ceph Jenkins 2:14.2.11-30 - mgr/dashboard: cpu stats incorrectly displayed (rhbz#1830375) * Tue Sep 22 2020 Ceph Jenkins 2:14.2.11-29 - mgr/dashboard: fix pool usage calculation (rhbz#1826690) * Mon Sep 21 2020 Ceph Jenkins 2:14.2.11-28 - test/objectstore: make store_test also run collection_list_legacy (rhbz#1880188) - os/kstore: fix collection_list properly set next if end reached (rhbz#1880188) - os/kstore: fix collection_list ordering (rhbz#1880188) - os/bluestore: refactor _collection_list (rhbz#1880188) - osd: add and utilize OSD_FIXED_COLLECTION_LIST feature (rhbz#1880188) - os: add collection_list_legacy (rhbz#1880188) - os/bluestore: fix collection_list properly set next if end reached (rhbz#1880188) - os/bluestore: make get_key_object work with temp keys (rhbz#1880188) - os/bluestore: fix collection_list ordering (rhbz#1880188) * Mon Sep 21 2020 Ceph Jenkins 2:14.2.11-27 - ceph-volume: fix wrong type passed in terminal.warning() (rhbz#1877672) * Fri Sep 18 2020 Ceph Jenkins 2:14.2.11-26 - mgr/dashboard: Monitoring: Fix for the infinite loading bar action (rhbz#1878271) * Thu Sep 17 2020 Ceph Jenkins 2:14.2.11-25 - mgr/dashboard: Fix for cephfs failing when clicked on Details or Clients tab (rhbz#1831299) * Thu Sep 17 2020 Ceph Jenkins 2:14.2.11-24 - test: remove a now-erroneous "mon add" CLI test from ceph_test_argparse.py (rhbz#1800382) - doc: describe stretch mode for users and developers (rhbz#1800382) - osd: only encode stretch mode variables in the OSDMap when in use (rhbz#1800382) - osd: conditionally encode stretch state in pg_pool_t, do not require new compat (rhbz#1800382) - mon: don't overwrite pending pool changes with stretch mode updates (rhbz#1800382) - mon: osd: switch crush_bucket_mandatory_member to be CRUSH_ITEM_NONE-based (rhbz#1800382) - osd: mon: account for stretch bucket configs/changes when detecting intervals (rhbz#1800382) - mon: remove an out-of-date TODO (rhbz#1800382) - mon: add a STRETCH_MODE feature and check it (rhbz#1800382) - mon: improve safety checks when enabling stretch mode (rhbz#1800382) - mon: try to enforce monitor locations in stretch mode; warn on failure (rhbz#1800382) - mon: enforce stretch mode on new pool creations (rhbz#1800382) - mon: require all pools be in stretch mode; remove explicit listing from command (rhbz#1800382) - mon: add an "osd force_recovery_stretch_mode" command (rhbz#1800382) - mon: add an "osd force_healthy_stretch_mode" command (rhbz#1800382) - mon: exit stretch recovery when no PGs are degraded/inactive/unknown (rhbz#1800382) - script: add a set_up_stretch_mode.sh that configures an existing vstart cluster in stretch mode (rhbz#1800382) - OSDMap: dump stretch values (rhbz#1800382) - osd: enforce the CRUSH bucket peering constraints on peering (rhbz#1800382) - mon: osd: add pg_pool_t::peering_crush_bucket_target, to ease peering/recovery (rhbz#1800382) - mon: osd: set a stretch recovering flag and increase pool size when dead sites return (rhbz#1800382) - mon: trigger degraded stretch mode from osdmap updates too (rhbz#1800382) - mon: add lots of debugging (rhbz#1800382) - mon: warn when in degraded stretch mode (rhbz#1800382) - mon: block OSDs from other zones when in stretch mode (rhbz#1800382) - mon: detect when a stretch mode site is down and enter "degraded" mode (rhbz#1800382) - mon: encode tiebreaker_mon in MonMap (rhbz#1800382) - mon: add enable_stretch_mode command with skeleton implementation (rhbz#1800382) - osd: add "bucket limits" to the pg_pool_t and OSDMap (rhbz#1800382) - mon: let users set a location for monitors (rhbz#1800382) - mon: add crush_loc to mon_info_t (rhbz#1800382) - crush: add get_verified_type_id function (rhbz#1800382) - mon: Drop proposals that appear to come from our own rank (rhbz#1800382) - mon: elector: include the election strategy in MMonElection and check it (rhbz#1800382) - mon: elector: actually parse the widely-shared election scores in MMonElection (rhbz#1800382) - qa: swap BytesIO for StringIO in ceph.py create_simple_monmap (rhbz#1800382) - qa: update the mon/misc.sh script for the new feature count (rhbz#1800382) - mon: elector: clean up pinging state properly on rank delete (rhbz#1800382) - test: unit test removing ranks from the ConnectionTracker (rhbz#1800382) - mon: fix monitor rank removal in the ConnectionTracker (rhbz#1800382) - mon: update ConnectionTracker internal representation again (rhbz#1800382) - mon: extra debug output (rhbz#1800382) - mon: switch removed_ranks monmap representation to fix issues (rhbz#1800382) - mon: elector: Fix a connectivity-mode first-election bug (rhbz#1800382) - mon: Guard new elector pinging and election strategies behind a mon_feature (rhbz#1800382) - mon: elector: continue degrading scores on dead peer connections (rhbz#1800382) - mon: elector: remove some unused code from ConnectionTracker (rhbz#1800382) - test: cleanups in test_election for Kefu (rhbz#1800382) - mon: elector: use unique_ptr on [stable|leader]peer_tracker, fix a leak (rhbz#1800382) - mon: elector: Use #pragma once instaed of #ifdef with wrong filename (rhbz#1800382) - mon: elector: add some flexibility when dropping out-of-quorum propose messages (rhbz#1800382) - test: add the beginnings of a netsplit suite (rhbz#1800382) - qa: add new netsplit task (rhbz#1800382) - test: add a mon_election directory to the rados and upgrade suites (rhbz#1800382) - qa: use the config when building a monmap (rhbz#1800382) - doc: user docs on configuring mon elections (rhbz#1800382) - doc: add a developer description of the election algorithms (rhbz#1800382) - mon: don't let users disallow monitors in CLASSIC mode (rhbz#1800382) - test: elector: add some TODOs I built up over time (rhbz#1800382) - mon: elector: support dumping and resetting scores via admin socket (rhbz#1800382) - mon: add/remove disallowed monitors from the command line (rhbz#1800382) - mon: make the election strategy configurable at setup and runtime (rhbz#1800382) - mon: elector: make timeouts etc configurable; resolves some TODOs (rhbz#1800382) - mon: track when we remove a rank and update ConnectionTracker (rhbz#1800382) - mon: elector: reset election when we encounter score disagreements (rhbz#1800382) - mon: elector: spread current election scores in election messages (rhbz#1800382) - mon: elector: simplify the report sharing interface (rhbz#1800382) - test: elector: remove init_pings; we handle this in ConnectionTracker better now (rhbz#1800382) - test: elector: Add a test which directly mangles scores to see if it can recover (rhbz#1800382) - mon: elector: switch ConnectionTracker pointers and members (rhbz#1800382) - mon: elector: debug output of Tracker (rhbz#1800382) - mon: elector: simplify the ConnectionTracker now that replacement is done (rhbz#1800382) - test: mon: switch some param names to avoid confusing masking (rhbz#1800382) - mon: replace ConnectionTracker with new implementation (rhbz#1800382) - mon: elector: test the ConnectionTracker implementations for equivalence (rhbz#1800382) - mon: elector: add new ConnectionTracker2 implementation (rhbz#1800382) - mon: start notifying the Elector and ConnectionTracker to be more explicit about ranks (rhbz#1800382) - test: elector: add debug output for pings (rhbz#1800382) - test: elector: support differing ping intervals, and add a complete-disconnect test using it (rhbz#1800382) - elector: maintain a stable score set while running an election (rhbz#1800382) - test: elector: new tests that we work while flapping (rhbz#1800382) - elector: ignore election proposals from out-of-quorum spammers (rhbz#1800382) - elector: Write a helper to combine scores with disallowed lists; use it (rhbz#1800382) - elector: move initial propose handling into the different strategy handlers (rhbz#1800382) - test: elector: add a new quorum_stable() check in addition to election_stable (rhbz#1800382) - test: elector: check that we stabilize after flapping connections (rhbz#1800382) - test: elector: build connection tracking and sharing by pings! (rhbz#1800382) - test: elector: explicitly count election messages in flight (rhbz#1800382) - test: elector: make macros to run test scenarios against each ElectionStrategy (rhbz#1800382) - test: elector: update test_election to pass around the ConnectionTracker (rhbz#1800382) - elector: ElectionLogic: implement a connectivity-based ElectionStrategy (rhbz#1800382) - elector: track the previous election winner for use in testing (rhbz#1800382) - elector: Set up infrastructure for having multiple election strategies (rhbz#1800382) - test: centralize checking leader and epoch matches across ElectionLogics (rhbz#1800382) - elector: support disallowing specific monitor ranks from becoming leaders (rhbz#1800382) - elector: actually persist connectivity scores on a regular basis (rhbz#1800382) - mon: elector: Build a ConnectionTracker and new MMonPing to heartbeat peers (rhbz#1800382) - mon: elector: return after triggering a new election (rhbz#1800382) - test: switch to ldout; let users specify mon debug level (rhbz#1800382) - test: add new ElectionLogic unit test framework (rhbz#1800382) - elector: const-ify a bunch of functions (rhbz#1800382) - elector: swap order of parameters in ElectionLogic::receive_propose (rhbz#1800382) - elector: Update Elector and ElectionLogic function documentation (rhbz#1800382) - elector: persist the epoch in bump_epoch() (rhbz#1800382) - elector: make some more ElectionLogic members private (rhbz#1800382) - elector: fix privacy and restore dout in Elector (rhbz#1800382) - elector: don't clear peer_info in bump_epoch() (rhbz#1800382) - elector: split ElectionLogic into its own compilation unit (rhbz#1800382) - elector: move all the elector callouts into the Elector (rhbz#1800382) - elector: make ElectionLogic private to Elector; undo most public shenanigans (rhbz#1800382) - elector: create declare_standlone_victory in Elector/Logic for Monitor (rhbz#1800382) - elector: make ElectionLogic::declare_victory private (rhbz#1800382) - elector: route _bump_epoch through the interface-to-be (rhbz#1800382) - elector: rename handle_propose_logic -> receive_propose (rhbz#1800382) - elector: hoist handle_victory into ElectionLogic (rhbz#1800382) - elector: hoist handle_ack into ElectionLogic (rhbz#1800382) - elector: hoist victory into ElectionLogic (rhbz#1800382) - elector: hoist expire into ElectionLogic (rhbz#1800382) - elector: hoist start into ElectionLogic (rhbz#1800382) - elector: hoist participating into ElectionLogic (rhbz#1800382) - elector: hoist init into ElectionLogic (rhbz#1800382) - elector: hoist defer into ElectionLogic (rhbz#1800382) - elector: split handle_propose in two and hoist into ElectionLogic (rhbz#1800382) - elector: hoist bump_epoch into ElectionLogic (rhbz#1800382) - elector: store accessors for ElectionLogic (rhbz#1800382) - elector: hoist Elector data bits out into a new ElectionLogic class (rhbz#1800382) - mon: Rearrange Paxos::dispatch to be a little cleaner (rhbz#1800382) * Wed Sep 16 2020 Ceph Jenkins 2:14.2.11-23 - mon: mark pgtemp messages as no_reply more consistently in preprocess_pgtemp (rhbz#1866257) - ceph-volume: fix simple activate when legacy osd (rhbz#1877672) - mon/OSDMonitor: only take in osd into consideration when trimming osdmaps (rhbz#1875628) - kv/RocksDBStore: make options compaction_threads/disableWAL/flusher_threads/compact_on_mount work. (rhbz#1877910) - os/bluestore: enable more flexible bluefs space management by default. (rhbz#1877910) * Wed Sep 16 2020 Ceph Jenkins 2:14.2.11-22 - mds/CInode: Optimize only pinned by subtrees check (rhbz#1867697) - client: fix extra open ref decrease (rhbz#1867698) * Tue Sep 15 2020 Ceph Jenkins 2:14.2.11-21 - mds: standy-replay mds remained in the "resolve" state after restart the active mds (rhbz#1872006) - mds: don't recover files after normal session close (rhbz#1872028) - mds: fix kcephfs parse dirfrag's ndist is always 0 (rhbz#1872033) - msg/msg_types: entity_addrvec_t: fix decode on big-endian hosts (rhbz#1872030) - messages,mds: Fix decoding of enum types on big-endian systems (rhbz#1872030) * Tue Sep 15 2020 Ceph Jenkins 2:14.2.11-20 - nautilus: mgr/volumes: convert uid and gid to integer type (rhbz#1848503) - mgr/volumes: Address python breakage in python 2 (rhbz#1848503) - mgr/volumes: Update doc/cephfs/fs-volumes.rst for nautilus (rhbz#1848503) - mgr/volumes: Prevent subvolume recreate if trash is not-empty (rhbz#1848503) - mgr/volumes: Disallow subvolume group level snapshots (rhbz#1848503) - mgr/volumes: Add test case to ensure subvolume is marked (rhbz#1848503) - mgr/volumes: handle idempotent subvolume marks (rhbz#1848503) - mgr/volumes: Tests amended and added to ensure subvolume trash functionality (rhbz#1848503) - mgr/volumes: Mark subvolume root with the vxattr ceph.dir.subvolume (rhbz#1848503) - mgr/volumes: Move incarnations for v2 subvolumes, to subvolume trash (rhbz#1848503) - mgr/volumes: maintain per subvolume trash directory (rhbz#1848503) - mgr/volumes: make subvolume_v2::_is_retained() object property (rhbz#1848503) - qa/workunits/fs: add test for subvolume (rhbz#1848503) - mds: don't move inode with nlink > 1 to global snaprealm if it's in subvolume (rhbz#1848503) - mds: disallow hardlink across subvolume (rhbz#1848503) - mds: disallow across subvolume rename (rhbz#1848503) - mds: disallow creating snapshot on descendent directory of subvolume (rhbz#1848503) - mds: add vxattr that marks/clears subvolume flag (rhbz#1848503) * Tue Sep 15 2020 Ceph Jenkins 2:14.2.11-19 - client: expose ceph.quota.max_bytes xattr within snapshots (rhbz#1863027) * Tue Sep 15 2020 Ceph Jenkins 2:14.2.11-18 - mds: resolve SIGSEGV in waiting for uncommitted fragments (rhbz#1850748) * Tue Sep 15 2020 Ceph Jenkins 2:14.2.11-17 - mgr/volumes: Use snapshot root directory attrs when creating clone root (rhbz#1850901) - mgr: Add python-enum34 dependency to package for older distributions (rhbz#1848494) - mgr/volumes: Add documentation regarding --retain-snapshots option (rhbz#1848494) - mgr/volumes: Avoid trashing retained subvolume on create errors (rhbz#1848494) - mgr/volumes: Add subvolume v2 test cases (rhbz#1848494) - mgr/volumes: Derive v2 from v1 to leverage common methods (rhbz#1848494) - mgr/volumes: Introduce v2 subvolumes (rhbz#1848494) - mgr/volumes: Use operation type during subvolume open (rhbz#1848494) * Tue Sep 15 2020 Ceph Jenkins 2:14.2.11-16 - librbd: ensure local site is included in mirror image global status (rhbz#1860073) * Tue Sep 15 2020 Ceph Jenkins 2:14.2.11-15 - librbd: ensure that thread pool lock is held when processing throttled IOs (rhbz#1878268) - common/WorkQueue: added lock-held versions of ContextWQ queue methods (rhbz#1878268) * Tue Sep 15 2020 Ceph Jenkins 2:14.2.11-14 - librbd: migration abort should revert data back to the original image (rhbz#1774428) - librbd: track in-progress migration aborting operation (rhbz#1774428) - librbd: improved debug logs on list watcher state machine (rhbz#1774428) * Wed Sep 09 2020 Ceph Jenkins 2:14.2.11-13 - os/bluestore: Add documentation for large bluefs log recovery (rhbz#1856960) - os/bluestore: Add ability to disable compaction (rhbz#1856960) - os/bluestore: Added rescue procedure for bluefs log replay (rhbz#1856960) * Wed Sep 09 2020 Ceph Jenkins 2:14.2.11-12 - ceph-volume: simple scan should ignore tmpfs (rhbz#1872983) * Fri Sep 04 2020 Ceph Jenkins 2:14.2.11-11 - mgr/dashboard: remove "This week/month/year" and "Today" time stamps of Grafana in dashboard (rhbz#1868638) * Thu Aug 27 2020 Ceph Jenkins 2:14.2.11-10 - Revert "os/bluestore: set hybrid allocator as a default for bluefs/bluestore" (rhbz#1873221) * Thu Aug 27 2020 Ceph Jenkins 2:14.2.11-9 - Update patches * Wed Aug 26 2020 Ceph Jenkins 2:14.2.11-8 - librbd: update hidden global config when setting pool config override (rhbz#1860057) - librbd: initialize/shut down config watcher during image open/close (rhbz#1860057) - librbd: initial config watcher implementation (rhbz#1860057) - librbd: hold ImageCtx::md_lock while computing config overrides (rhbz#1860057) * Wed Aug 26 2020 Ceph Jenkins 2:14.2.11-7 - qa/workunits/rbd: use more recent qemu-iotests that support EL8 (rhbz#1860073) - qa/workunits/rbd: retrieve peer uuid when attempting to delete duplicate (rhbz#1860073) - rbd: re-use helper method for adding mirror peer site-name optional (rhbz#1860073) - rbd-mirror: track journal replay flush requests to prevent race (rhbz#1860073) - test/rbd_mirror: fix 'Uninteresting mock function call' warnings (rhbz#1860073) - rbd-mirror: wait for in-flight start/stop/restart (rhbz#1860073) - rbd-mirror: make stop properly cancel restart (rhbz#1860073) - rbd-mirror: don't hold (stale) copy of local image journal pointer (rhbz#1860073) - librbd: avoid completing mirror:DisableRequest while holding its lock (rhbz#1860073) - rbd-mirror: skip snapshot image sync if mirror snapshot is marked clean (rhbz#1860073) - librbd: EnableRequest now accepts a boolean to indicate a clean image (rhbz#1860073) - librbd: pass clean_since_snap_id to CreatePrimaryRequest (rhbz#1860073) - cls/rbd: added clean_since_snap_id to MirrorSnapshotNamespace (rhbz#1860073) - rbd: add '--mirror-image-mode' optional to image creation actions (rhbz#1860073) - librbd: save requested mirror image mode during migration prepare (rhbz#1860073) - librbd: permit mirroring to be enabled upon image cloning (rhbz#1860073) - librbd: add non-primary global image id to mirror enable (rhbz#1860073) - librbd: permit mirroring to be enabled upon image creation (rhbz#1860073) - librbd: mirror enable state machine might need to open image (rhbz#1860073) - librbd: pass bit-flags to image::CreateRequest (rhbz#1860073) - qa/workunits/rbd: fix peer_add helper (rhbz#1860073) - qa/workunits/rbd: retry the addition of a mirror pool peer (rhbz#1860073) - rbd-mirror: track in-flight start/stop/restart in instance replayer (rhbz#1860073) - rbd-mirror: switch to common C_TrackedOp context class (rhbz#1860073) - common: add helper C_TrackerOp context class (rhbz#1860073) - rbd-mirror: utilize structured binding in 'for' loop (rhbz#1860073) - rbd-mirror: unlink from remote snapshot if required (rhbz#1860073) - rbd-mirror: prune unnecessary non-primary mirror snapshots (rhbz#1860073) - rbd-mirror: propagate full snap-seq mapping in non-primary snapshots (rhbz#1860073) - rbd-mirror: ignore non-primary read-only state for remote images (rhbz#1860073) - rbd: fix missing space when listing non-primary mirror snapshots (rhbz#1860073) - librbd: fixed race condition on demotion of snapshot-based mirrored image (rhbz#1860073) - librbd: store mirror peer uuids in non-primary demoted snapshots (rhbz#1860073) - librbd: additional debug logs for mirror snapshot unlink peer (rhbz#1860073) - test/rbd-mirror: fix gmock warnings during snapshot-based replayer tests (rhbz#1860073) - rbd-mirror: fixed race condition with snapshot sync and shutdown (rhbz#1860073) - rbd-mirror: add snapshot-based replay performance metrics (rhbz#1860073) - rbd-mirror: switch to json_spirit formatter for snapshot image status (rhbz#1860073) - rbd-mirror: add journal-based replay performance metrics (rhbz#1860073) - rbd-mirror: switch to json_spirit formatter for journal image status (rhbz#1860073) - rbd-mirror: periodically poll image replayer status (rhbz#1860073) - librbd: pass bytes-read statistics from deep-copy through handler (rhbz#1860073) - librbd: pass specialized handler interface to deep-copy (rhbz#1860073) - qa/workunits/rbd: retry the addition of a mirror pool peer (rhbz#1860073) - librbd: mirror peer add error message should include site name (rhbz#1860073) - rbd: improved error message when adding a duplicate mirror pool peer (rhbz#1860073) - rbd: ignore tx-only mirror peers when adding new peers (rhbz#1860073) - rbd-mirror: leader watcher should not cancel get locker if locker is invalid (rhbz#1860073) - rbd-mirror: snapshot sync request needs to check for interruption (rhbz#1860073) - librbd: request exclusive lock when moving to trash (rhbz#1860073) - rbd-mirror: basic integration with sync throttling (rhbz#1860073) - rbd-mirror: don't prematurely finish snapshot replay loop (rhbz#1860073) - rbd-mirror: pass InstanceWatcher to snapshot Replayer (rhbz#1860073) - qa/workunits/rbd: use context managers to control Rados lifespan (rhbz#1860073) - rbd-mirror: hold lock while updating local image name (rhbz#1860073) - librbd: deep-copy image copy state machine skips clean objects (rhbz#1860073) - librbd: switch diff-iterate API to use new object-map diff helper (rhbz#1860073) - librbd: helper state machine for computing diffs between object-maps (rhbz#1860073) - mgr/rbd_support: fix recursive non-global level schedule listing (rhbz#1860073) - mgr/rbd_support: don't scan pools that don't have schedules (rhbz#1860073) - librbd: peer removal needs to open non-primary images in R/W mode (rhbz#1860073) - librbd: race condition in image watcher notification callback (rhbz#1860073) - librbd: prevent 'non-primary' feature from being set via API (rhbz#1860073) - qa/suites/rbd: exercise different snapshot-based mirroring image features (rhbz#1860073) - rbd-mirror: remove exclusive-lock requirement from snapshot purge (rhbz#1860073) - librbd: enable mirroring for non-primary images w/o journaling (rhbz#1860073) - librbd: properly copy primary mirror uuid to out param (rhbz#1860073) - test/rbd-mirror: snapshot-based replaying with different features (rhbz#1860073) - librbd: re-use mirror promote state machine when disabling (rhbz#1860073) - librbd: enable/disable implicit non-primary feature bit (rhbz#1860073) - rbd-mirror: permit R/W operations against non-primary image (rhbz#1860073) - librbd: track reason why ImageCtx is read-only (rhbz#1860073) - librbd: new RBD_FEATURE_NON_PRIMARY to prevent R/W IO (rhbz#1860073) - librbd: remove unused variable (rhbz#1860073) - test/rbd_mirror: do not capture unused variables (rhbz#1860073) - tools/rbd_mirror: avoid forward declare CephContext in different ways (rhbz#1860073) - rbd-mirror: move resetting of snapshot replayer rescan variable (rhbz#1860073) - librbd: clean-up special casing for enabling mirroring on creating image (rhbz#1860073) - qa: test cases for snapshot-based mirroring (rhbz#1860073) - rbd-mirror: simple snapshot split-brain detection (rhbz#1860073) - librbd: refresh image after creating primary mirror snapshot (rhbz#1860073) - librbd: acquire exclusive lock from peer when removing (rhbz#1860073) - librbd: fixed issue with deep-copy incorrectly setting parent spec (rhbz#1860073) - rbd: do not show mirroring mode if not enabled (rhbz#1860073) - librbd: allow force promotions to create necessary orphan snapshot (rhbz#1860073) - librbd: forced promotion of snapshot mirrored image needs to create orphan (rhbz#1860073) - rbd-mirror: properly handle promoted/demoted snapshot-based images (rhbz#1860073) - librbd: improve debug logging on primary mirror snapshot creation (rhbz#1860073) - cls/rbd: fixed typo in mirror image state ostream operator (rhbz#1860073) - rbd-mirror: do not re-register the ASOK if the image replayer isn't running (rhbz#1860073) - rbd-mirror: fix issue with snapshot-based mirroring deletion propagation (rhbz#1860073) - librbd: trash move should disable mirroring first if snapshot-based (rhbz#1860073) - rbd-mirror: prepare local image shouldn't abort if image does not exist (rhbz#1860073) - rbd-mirror: bootstrap should only update image name if successful (rhbz#1860073) - librbd: ignore unexpected state when mirror image flagged as creating (rhbz#1860073) - librbd: don't create journal tag with non-primary mirror uuid (rhbz#1860073) - mgr/rbd_support: wait for latest osdmap on init (rhbz#1860073) - mgr/rbd_support: catch rados errors when loading schedules (rhbz#1860073) - mgr/rbd_support: use dateutil parser intead of datetime fromisoformat (rhbz#1860073) - mgr/rbd_support: check pool is rbd when validating level spec name (rhbz#1860073) - qa/workunits/rbd: add `mirror snapshot schedule' cli test (rhbz#1860073) - rbd: generalize schedule reusable code (rhbz#1860073) - mgr/rbd_support: generalize schedule reusable code (rhbz#1860073) - rbd-mirror: no need to perform extra image-meta filtering for image-state (rhbz#1860073) - librbd: snapshot image-state should use get image-meta state machine (rhbz#1860073) - librbd: optionally filter internal image-meta when copying/cloning (rhbz#1860073) - librbd: remove snapshot mirror image-meta when disabling (rhbz#1860073) - rbd-mirror: support resync request for snapshot-based mirroring (rhbz#1860073) - rbd-mirror: register for local image updates in snapshot replayer (rhbz#1860073) - rbd-mirror: check for resync request during snapshot prepare state machine (rhbz#1860073) - rbd-mirror: do not mirror snapshot image-meta key/value pairs (rhbz#1860073) - librbd: support resync requests for snapshot-based mirrored images (rhbz#1860073) - librbd: image-meta wrapper for snapshot-based mirroring properties (rhbz#1860073) - rbd-mirror: implement basic status feedback for snapshot mirroring (rhbz#1860073) - rbd-mirror: moved local to remote snapshot lookup to common function (rhbz#1860073) - rbd-mirror: expand lock scope for snapshot replayer (rhbz#1860073) - rbd-mirror: periodically update sync position for snapshot-based images (rhbz#1860073) - librbd: fix broken group snapshot handling (rhbz#1860073) - librbd: only create new mirror image state records for primary mirror snapshots (rhbz#1860073) - rbd-mirror: additional debugging messages for snapshot-based mirroring (rhbz#1860073) - librbd: additional debugging messages for snapshot-based mirroring (rhbz#1860073) - test/rbd-mirror: allow test to be run repeatedly (rhbz#1860073) - rbd-mirror: snapshot-based image replayer now applies image state (rhbz#1860073) - rbd-mirror: state machine to apply any image-state deltas (rhbz#1860073) - librbd: filter implicit features and non-user snapshots from image state (rhbz#1860073) - librbd: the journal SnapLimitEvent was not properly handled (rhbz#1860073) - librbd: fix issues with snapshot-based mirroring image state (rhbz#1860073) - librbd: switch to new metadata retrieval state machine (rhbz#1860073) - librbd: helper image-meta list state machine (rhbz#1860073) - pybind/mgr/rbd_support: wait for latest OSD map prior to handling commands (rhbz#1860073) - rbd: add 'mirror snapshot schedule' commands (rhbz#1860073) - mgr/rbd_support: rename 'dump' command to 'list' (rhbz#1860073) - mgr/rbd_support: return 'rbd mirror snapshot schedule status' as json (rhbz#1860073) - rbd-mirror: don't expect image map is always initialized (rhbz#1860073) - rbd-mirror: do not attempt to replay incomplete primary snapshots (rhbz#1860073) - librbd: delay marking primary mirror snapshot as completed (rhbz#1860073) - rbd-mirror: snapshot replayer should only unlink peers for unneeded snaps (rhbz#1860073) - rbd-mirror: initial snapshot-based mirroring replayer logic (rhbz#1860073) - rbd-mirror: pass pool meta cache to replayer state machine (rhbz#1860073) - rbd-mirror: keep remote image open after bootstrap for snapshot mirroring (rhbz#1860073) - librbd: permit last mirror peer to be removed from mirror snapshot (rhbz#1860073) - librbd: tweak create non-primary mirror snapshot request (rhbz#1860073) - librbd: no longer re-create full mirror snapshot namespace to get id (rhbz#1860073) - librbd: only use snapshot namespace type in unique key sort (rhbz#1860073) - librbd: drop MirrorNonPrimarySnapshotNamespace (rhbz#1860073) - librbd: rename MirrorPrimarySnapshotNamespace to MirrorSnapshotNamespace (rhbz#1860073) - test/pybind/rbd: demoted images cannot be deleted (rhbz#1860073) - librbd: collapse API mirror primary/non-primary namespaces to single type (rhbz#1860073) - librbd: deep-copy objects from specified start position (rhbz#1860073) - librbd: ensure deep-copy snapshot map includes all destination snap ids (rhbz#1860073) - librbd: deep-copy snapshots from a specified start/end position (rhbz#1860073) - librbd: deep-copy should accept a lower-bound for the destination snap_id (rhbz#1860073) - cls/rbd: store primary to non-primary snap mapping in mirror snapshot (rhbz#1860073) - librbd: pass mirror image mode from create image to enable mirror (rhbz#1860073) - librbd: expose mirror uuid via the API (rhbz#1860073) - librbd: switch from fsid to mirror within mirror peer (rhbz#1860073) - rbd: don't treat failure to gather mirror service daemons as a failure (rhbz#1860073) - test/pybind: fix expectations for mirror snapshots (rhbz#1860073) - librbd: corrected error code from image_snapshot_create API (rhbz#1860073) - rbd-mirror: stub snapshot replayer state machine (rhbz#1860073) - rbd-mirror: stub prepare snapshot replay state machine (rhbz#1860073) - librbd: relax snapshot mirror promotion state determination (rhbz#1860073) - librbd: create primary mirror snapshot when enabling mirroring (rhbz#1860073) - librbd: avoid refreshing within the mirror state machines (rhbz#1860073) - librbd: optionally ignore missing peers when creating promoted mirror snapshot (rhbz#1860073) - librbd: do not auto-delete mirror snapshots (rhbz#1860073) - rbd-mirror: permit opening local image in snapshot-based mode (rhbz#1860073) - test/rbd-mirror: image replayer test should test both mirroring mode (rhbz#1860073) - rbd-mirror: snapshot create image state machine (rhbz#1860073) - cls/rbd: new temporary MIRROR_IMAGE_STATE_CREATING state (rhbz#1860073) - librbd: clone state machine should accept snapshot namespace (rhbz#1860073) - rbd-mirror: replace journal-specific parent image validation (rhbz#1860073) - rbd-mirror: helper for retrieving the image sync snap name prefix (rhbz#1860073) - rbd-mirror: pass mirror image mode to create image state machine (rhbz#1860073) - rbd-mirror: image deleter should support snapshot-based mirroring (rhbz#1860073) - librbd: remove force non-primary validation from create request (rhbz#1860073) - librbd: pass mirror image mode to create/clone image state machines (rhbz#1860073) - librbd: don't pass API data types to internal state machines (rhbz#1860073) - librbd: utilize new helper methods for updating mirror image records (rhbz#1860073) - librbd: helper state machines for updating/removing mirror images (rhbz#1860073) - rbd-mirror: prepare remote image now handles the snapshot mode (rhbz#1860073) - rbd-mirror: move remote image life-cycle management to state builder (rhbz#1860073) - rbd-mirror: store remote image ctx in state builder (rhbz#1860073) - rbd-mirror: remove unnecessary get mirror info call from bootstrap (rhbz#1860073) - rbd-mirror: store remote promotion state within state builder (rhbz#1860073) - rbd-mirror: prepare remote image now uses get mirror info request (rhbz#1860073) - rbd-mirror: stop querying remote mirror uuid during image bootstrap (rhbz#1860073) - rbd-mirror: cache local and remote pool meta properties for all pools (rhbz#1860073) - rbd-mirror: stub version of snapshot image replayer state builder (rhbz#1860073) - rbd-mirror: generically track promotion state and primary mirror uuid (rhbz#1860073) - rbd-mirror: utilize get mirror info within prepare local image request (rhbz#1860073) - librbd: retrieve primary mirror uuid as part of get info request (rhbz#1860073) - qa: move existing rbd-mirror functional test to journal-specific test (rhbz#1860073) - librbd: make build on freebsd (rhbz#1860073) - librbd: optimize mirror_image_info_list (don't open image context) (rhbz#1860073) - librbd: make mirror get info request not require image context (rhbz#1860073) - mgr/rbd_support: optimize scanning images in mirror snapshot mode (rhbz#1860073) - librbd: add API to list mirror image info (rhbz#1860073) - mgr/rbd_support: implement mirror snapshot scheduler (rhbz#1860073) - pybind/mgr/rbd_support: split module.py into several files (rhbz#1860073) - librbd: fix typo in mirror:snapshot::UnlinkPeerRequest (rhbz#1860073) - librbd: ignore ENOENT for mirror::snapshot::RemoveImageStateRequest (rhbz#1860073) - rbd-mirror: ensure mirror status updater cannot attempt empty op (rhbz#1860073) - rbd-mirror: pool watcher no longer needs to query mirror uuid (rhbz#1860073) - rbd-mirror: removed peer ping from mirror status updater (rhbz#1860073) - rbd-mirror: pass remote pool meta through to bootstrap (rhbz#1860073) - rbd-mirror: pool replayer should instantiate the remote pool poller (rhbz#1860073) - rbd-mirror: periodic remote pool metadata poller (rhbz#1860073) - rbd-mirror: do not run pool replayers against TX-only peers (rhbz#1860073) - librbd: fix some edge cases for snapshot mirror mode promote (rhbz#1860073) - rbd-mirror: skip closing local image if it was already closed (rhbz#1860073) - rbd-mirror: bootstrap and related state machines now uses StateBuilder (rhbz#1860073) - rbd-mirror: added factory methods for journal replay state machines (rhbz#1860073) - rbd-mirror: journal helper state machines now inherits from simple BaseRequest (rhbz#1860073) - rbd-mirror: renamed BaseRequest to CancelableRequest (rhbz#1860073) - rbd-mirror: switch image sync to use abstract sync point handler (rhbz#1860073) - rbd-mirror: helper abstraction layer for image sync points (rhbz#1860073) - rbd-mirror: don't pass journal settings to prepare remote image state machine (rhbz#1860073) - rbd-mirror: created simple shell image replayer state builder (rhbz#1860073) - rbd-mirror: retrieve local image mirror mode during prepare (rhbz#1860073) - rbd-mirror: retrieve remote image mirror mode during prepare (rhbz#1860073) - rbd-mirror: allow bootstrap to populate remote image id (rhbz#1860073) - rbd-mirror: fix "pool replayer status" for case when init failed (rhbz#1860073) - librbd: when unlinking peer from mirror snaps do it in all namespaces (rhbz#1860073) - rbd-mirror: set proper state after journal replay shut down (rhbz#1860073) - rbd-mirror: do not log error upon bootstrap cancel (rhbz#1860073) - rbd-mirror: fix race between replay shutdown and notification (rhbz#1860073) - rbd-mirror: clear init/shutdown context before completion (rhbz#1860073) - rbd-mirror: consolidate prepare local/remote image steps to bootstrap (rhbz#1860073) - rbd-mirror: bootstrap now uses the prepare replay state machine (rhbz#1860073) - rbd-mirror: extract pre-journal replay handling to new state machine (rhbz#1860073) - rbd-mirror: bootstrap now uses the create local image state machine (rhbz#1860073) - rbd-mirror: extract journal local image creation to new state machine (rhbz#1860073) - rbd-mirror: reset bootstrap state to replaying if local image promoted (rhbz#1860073) - rbd-mirror: delay retrieval of remote tag class on bootstrap (rhbz#1860073) - rbd: read mirror pool peers from default namespace (rhbz#1860073) - rbd-mirror: ensure mirror status updater does not ping on namespaces (rhbz#1860073) - librbd: look for mirror peers in default namespace (rhbz#1860073) - rbd-mirror: ensure deterministic ordering of method calls (rhbz#1860073) - rbd: show mirror mode in image info (rhbz#1860073) - rbd: improve mirror snapshot list formatting for status command (rhbz#1860073) - rbd: allow to specify mode on mirror image enable (rhbz#1860073) - librbd: explicitly specify mode on mirror image enable (rhbz#1860073) - src/cls: store mirror image mode in migration spec (rhbz#1860073) - rbd-mirror: switch image replayer to new standalone journal replayer (rhbz#1860073) - rbd-mirror: extract journal replay logic to its own class (rhbz#1860073) - rbd-mirror: moved image asok/perf counter name helper to utils (rhbz#1860073) - rbd-mirror: moved event pre-processor to sub-namespace (rhbz#1860073) - rbd-mirror: moved replay status formatter to sub-namespace (rhbz#1860073) - rbd-mirror: drop 'using namespace' in image replayer state machine (rhbz#1860073) - rbd-mirror: fix race on namespace replayer initialization failure (rhbz#1860073) - rbd-mirror: allow to have different priority levels (rhbz#1860073) - rbd-mirror: rename per-image replication perf counters (rhbz#1860073) - librbd: force promote for snapshot mirroring (rhbz#1860073) - librbd: introduce LIST_WATCHERS_MIRROR_INSTANCES_ONLY flag (rhbz#1860073) - librbd: refactor CreateNonPrimaryRequest and CreatePrimaryRequest (rhbz#1860073) - librbd: store/remove image state when creating/removing mirror snapshot (rhbz#1860073) - librbd: requests for mirror snapshot image state (rhbz#1860073) - cls/rbd: async methods for snapshot_get_limit (rhbz#1860073) - rbd: list primary mirror snapshots in mirror image status (rhbz#1860073) - rbd: add 'mirror image snapshot' command (rhbz#1860073) - librbd: API method to get mirror image mode (rhbz#1860073) - librbd: add mirror image snapshot tests (rhbz#1860073) - librbd: add mirror image snapshot API (rhbz#1860073) - librbd: when removing mirror peer unlink it from all snapshots (rhbz#1860073) - librbd: snapshot mirror mode (rhbz#1860073) - librbd: state machine for snapshot based mirror promote/demote (rhbz#1860073) - librbd: state machine for creating mirroring snapshot (rhbz#1860073) - librbd: state machine for unlinking peer from mirror snapshot (rhbz#1860073) - cls/rbd: method to set mirror snapshot copy progress (rhbz#1860073) - cls/rbd: method to unlink peer from mirror snapshot (rhbz#1860073) - cls/rbd: async methods for mirror_peer_list (rhbz#1860073) - librbd: cleanup: remove unused function (rhbz#1860073) - cls/rbd: add mode (journal/snapshot) to mirror image (rhbz#1860073) - librbd: new mirroring snapshot namespace (rhbz#1860073) - librbd: invalid tracepoint in rbd_snap_get_group_namespace (rhbz#1860073) - librbd: move flatten_children API in internal.cc over to api/Image.cc (rhbz#1860073) - librbd: move all snapshot API functions in internal.cc over to api/Snapshot.cc (rhbz#1860073) - librbd: Modify related test cases (rhbz#1860073) - rbd: incorporate rbd-mirror daemon status in mirror pool status (rhbz#1860073) - rbd-mirror: peer_ping should send the local fsid to the remote (rhbz#1860073) - cls/rbd: improve efficiency of mirror image status queries (rhbz#1860073) - journal: properly handle immediate overflow upon advancing object set (rhbz#1860073) - journal: fix flush by age and in-flight byte tracking (rhbz#1860073) - journal: simplify object recorder locker aggregation (rhbz#1860073) - journal: always shutdown JournalRecoreder before destructing it (rhbz#1860073) - rbd-mirror: add namespace support to service daemon (rhbz#1860073) - test: fixup rbd tests as a side effect of reference counting (rhbz#1860073) - test: wait for pending journal replay operations (rhbz#1860073) - rbd: do not create temporary objects whenever possible (rhbz#1860073) - rbd: reference count objects when invoking async requests (rhbz#1860073) - rbd: add reference counting in create_context_callback() (rhbz#1860073) - rbd: track async journal operations and serialize destruction (rhbz#1860073) - rbd: remove unneeded header includes (rhbz#1860073) - librbd: fix rbd_features_to_string output (rhbz#1860073) - librbd: force reacquire lock if blacklist is disabled (rhbz#1860073) - qa/workunits/rbd: tweak mirror test case to handle peer status (rhbz#1860073) - rbd: include new mirror peer direction and image site status state (rhbz#1860073) - librbd: refactored mirror peer and image status APIs (rhbz#1860073) - rbd-mirror: don't report an error when the bootstrap is canceled (rhbz#1860073) - rbd-mirror: pass remote mirror status updater through to image replayer (rhbz#1860073) - rbd-mirror: initialize mirror status updater against remote peer (rhbz#1860073) - rbd-mirror: mirror status updater optionally pings peer (rhbz#1860073) - rbd-mirror: pass local site name through to namespace replayer (rhbz#1860073) - rbd-mirror: cluster watcher should periodically poll local site name (rhbz#1860073) - rbd-mirror: image replayer now uses the shared status updater (rhbz#1860073) - rbd-mirror: separate image replayer periodic flushing from status updates (rhbz#1860073) - rbd-mirror: move mirror status watcher under mirror status updater (rhbz#1860073) - rbd-mirror: batch mirror image status updater helper class (rhbz#1860073) - cls/rbd: store remote mirror image site status on disk (rhbz#1860073) - cls/rbd: preliminary support for mirror image status from multiple sites (rhbz#1860073) - cls/rbd: deprecate mirror_image_status_remove method (rhbz#1860073) - cls/rbd: moved MirrorImageStatusOnDisk to types header (rhbz#1860073) - cls/rbd: expand MirrorPeer to annotate bidirectional relationships (rhbz#1860073) - cls/rbd: removed unused pool id from MirrorPeer (rhbz#1860073) - rbd-mirror: potential nullptr dereference in ImageReplayer::handle_start_replay (rhbz#1860073) - include: convert FunctionContext usage to generic LambdaContext (rhbz#1860073) - rbd-mirror: per pool throttler shared between all namespace image deleters (rhbz#1860073) - rbd-mirror: generalize ImageSyncThrottler into Throttler (rhbz#1860073) - librbd: disable mirroring when removing namespace (rhbz#1860073) - qa/workunits/rbd: add rbd-mirror namespace tests (rhbz#1860073) - rbd: enable mirroring namespace support (rhbz#1860073) - librbd: enable mirroring namespace support (rhbz#1860073) - pybind/mgr: remove type conversions for ceph native options (rhbz#1860073) - mgr: return get_ceph_option result as typed Py object (not string) (rhbz#1860073) - rbd-mirror: add namespace support (rhbz#1860073) - librbd: Remove duplicated AsyncOpTracker in librbd/Utils.h (rhbz#1860073) - pybind/rados: add get_id and get_name method in class Ioctx (rhbz#1860073) - test/librados_test_stub: s/Mutex/ceph::mutex/ (rhbz#1860073) - tools/rbd: s/Mutex/ceph::mutex/ (rhbz#1860073) - tools/rbd_mirror: s/Mutex/ceph::Formatter/ (rhbz#1860073) - test/librbd: s/Mutex/ceph::mutex/ (rhbz#1860073) - librbd: s/Mutex/ceph::mutex/ (rhbz#1860073) - test/journal: s/Mutex/ceph::mutex/ (rhbz#1860073) - journal: s/Mutex/ceph::mutex/ (rhbz#1860073) - common/mutex_debug: add lockdep parameter to mutex's ctor (rhbz#1860073) - common/RWLock: add RWLock::{lock,unlock}_shared() (rhbz#1860073) - common/Throttle: s/Mutex/ceph::mutex/ (rhbz#1860073) - common: use of malloc.h is depricated (rhbz#1860073) - librbd: use custom allocator for aligned boost::lockfree::queue (rhbz#1860073) - common/Timer: support legacy and new-style Ceph mutexes (rhbz#1860073) - include/utime: add utime_t<>(duration) (rhbz#1860073) - common/mutex_debug.h: pass "no_lockdep" to try_lock() (rhbz#1860073) - common/Cond.h: include necessary header (rhbz#1860073) - common/condition_variable_debug: fix wait_until() (rhbz#1860073) - common: refactor handling of lockdep's group name in debug locks. (rhbz#1860073) - common: shared_mutex_debug doesn't use empty group name for lockdep. (rhbz#1860073) - common, crypto: give names to OpenSSL's mutexes. (rhbz#1860073) - osd: use steady clock in prepare_to_stop() (rhbz#1860073) - journal: fix race between player shut down and cache rebalance (rhbz#1860073) - qa/workunits/rbd: tweak mirror tests (rhbz#1860073) - librbd: mirror image enable/disable should enable/disable journaling (rhbz#1860073) - rbd-mirror: remove rbd_mirror_journal_max_fetch_bytes option (rhbz#1860073) - rbd-mirror: auto-tune journal fetch params based on memory target (rhbz#1860073) - rbd-mirror: fix potential context leak on replay interrupted (rhbz#1860073) - journal: auto-tune journal fetch params based on memory target (rhbz#1860073) - qa/workunits/rbd: fix compare_images and compare_image_snapshots (rhbz#1860073) - librados_test_stub: pass snap context to "create" method (rhbz#1860073) - librbd: removed 'ImageCtx::parent_lock' (rhbz#1860073) - librbd: removed 'ImageCtx::object_map_lock' (rhbz#1860073) - librbd: protect object map with a private member lock (rhbz#1860073) - librbd: removed 'ImageCtx::md_lock' (rhbz#1860073) - librbd: renamed 'ImageCtx::snap_lock' to 'image_lock' (rhbz#1860073) - librbd: optionally move parent image to trash on remove (rhbz#1860073) - librbd: fix typo in deep_copy::ObjectCopyRequest::compute_read_ops (rhbz#1860073) - test/librbd: allow parallel runs of run-rbd-unit-tests (rhbz#1860073) * Tue Aug 25 2020 Thomas Serlin 2:14.2.11-6 - osd, test: Special Nautilus handling because there is no health mute (rhbz#1682967) - test: flush_pg_stats() ignore OSDs that don't respond to getting sequence (rhbz#1682967) - mgr: Warn when too many reads are repaired on an OSD (rhbz#1682967) * Mon Aug 24 2020 Ceph Jenkins 2:14.2.11-5 - ceph-volume: handle idempotency with batch and explicit scenarios (rhbz#1827349) - ceph-volume: fix Volume mock in lvm test case (rhbz#1850955) - ceph-volume: filter by osd-id or osd-fsid when zapping (rhbz#1850955) - ceph-volume: delete devices.lvm.prepare.Prepare.get_lv (rhbz#1850955) - ceph-volume: don't use api.lvm.VolumeGroups (rhbz#1850955) - ceph-volume: don't use api.lvm.PVolumes (rhbz#1850955) - ceph-volume: don't use api.lvm.get_lv (rhbz#1850955) - ceph-volume: don't use api.lvm.get_lv_from_argument (rhbz#1850955) - ceph-volume: don't use class api.lvm.Volumes (rhbz#1850955) * Sun Aug 23 2020 Ceph Jenkins 2:14.2.11-4 - rgw:sts: oidc revisions, backport adjustments (rhbz#1274084) - rgw: adding new iam ops for iam oidc provider to correct unittest faliure. (rhbz#1274084) - rgw: modifying documentation to include explanation of open id connect provider related REST APIs and removing references to token introspection for validating incoming web token. (rhbz#1274084) - rgw: adds a commom method to remove prefix(www, http and https) from a url. (rhbz#1274084) - rgw: adds code to check for client id and cert thumbprint while validating incoming web token in AssumeRoleWithWebIdentity. (rhbz#1274084) - rgw: adds REST APIs for OpenID connect providers manipulation. (rhbz#1274084) - Allow admin APIs that write metadata to be executed first on the master zone. (rhbz#1553202) - rgwlc: fix error return from backward-compat decode (rhbz#1858733) - rgw/notifications: fix zero size in notifications (rhbz#1833685) - rgw: filter prefix should be used when generating expiration header. The rule prefix is set with old version lifecycle configure. While filter prefix is the latest version which AWS suggests users use. (rhbz#1833309) - rgwlc: wait for WorkQ threads on shutdown (rhbz#1834697) - rgw: lc: restore unordered listing (rhbz#1827799) - rgw: lc: cls_rgw_lc_list_entries_op struc_v off-by-one (rhbz#1827789) - rgwlc: make invalid OpRule, lc_op_ctx accesses impossible (rhbz#1827799) - rgwlc: properly accumulate in RGWLC::list_lc_progress() (rhbz#1827789) - rgwlc: LCOpAction MUST NOT acc. OCObjLister from WorkQ (rhbz#1825827) - rgwlc: re-hook RGWRados::process_lc() (rhbz#1822482) - rgw: fixup vault mock signature (rhbz#1777064) - rgw: improvements to SSE-KMS with Vault (rhbz#1777064) - rgw: Vault's Transit Secrets updates and docs (rhbz#1777064) - rgw: fixup vault mock signature (rhbz#1777064) - rgw: Add support to Vault's Transit Secrets Engine in SSE-KMS (rhbz#1777064) - rgw: improvements to SSE-KMS with Vault (rhbz#177706) - qa/rgw: use config overrides for vault kms backend (rhbz#1777064) - rgw: add SSE-KMS with Vault using token auth (rhbz#1777064) - rgw: add SSE-KMS with Vault using token auth (rhbz#1777064) - rgw: add SSE-KMS with Vault using token auth (rhbz#1777064) - rgwlc: revisions (rhbz#1794715) - rgwlc: permit per-bucket thread parallelism (rhbz#1794715) - rgwlc: make rgwlc entries extensible and extend (rhbz#1794715) - rgwlc: enable thread-parallelism in RGWLC (rhbz#1794715) - rgw: add SSE-KMS with Vault using token auth (rhbz#1777064) - rgw: s/std::map/boost::container::flat_map/ cls_bucket_list_ordered (RGWRados and CLS). (rhbz#1764673) - rgw: add reshard checks to bucket quota sync thread (rhbz#1763251) * Fri Aug 21 2020 Ceph Jenkins 2:14.2.11-3 - mon: store mon updates in ceph context for future MonMap instantiation (rhbz#1871238) * Thu Aug 20 2020 Ceph Jenkins 2:14.2.11-2 - common/config: less noise about configs from mon we can't apply (rhbz#1763021) - selinux: Fix ceph-iscsi etc access (rhbz#1786106) - selinux: Fix ceph-iscsi configfs access (rhbz#1786106) - librbd: Align rbd_write_zeroes declarations (rhbz#1848594) * Wed Aug 19 2020 Ken Dreyer 2:14.2.11-1 - Update to 14.2.11 (rhbz#1859679) * Tue Aug 18 2020 Ceph Jenkins 2:14.2.8-93 - qa/tasks: call super class's setUp() (rhbz#1851943) - nautilus: qa/test_volumes: Modify tests not to use json for 'ceph fs status' (rhbz#1851943) - nautilus: mgr/volumes: use MgrModule's mon_command() (rhbz#1851943) - nautilus: mgr/volumes: fix import typing error (rhbz#1851943) - pybind/mgr/volumes: fix volume search for pools (rhbz#1851943) - mgr/volumes: Validate mon_allow_pool_delete before volume deletion (rhbz#1851943) - qa: manage config changes through mons (rhbz#1851943) - mgr/volumes: Fix pool removal on volume deletion (rhbz#1851943) - mds: initialize MDSlaveUpdate::waiter (rhbz#1850747) - mds: fix nullptr dereference in MDCache::finish_rollback (rhbz#1850747) - mds: resolve SIGSEGV in waiting for uncommitted fragments (rhbz#1850748) - client: use non-static dirent for thread-safety (rhbz#1866940) - pybind/cephfs: raise custom Exception with same arguments (rhbz#1857143) - pybind/cephfs: add DiskQuotaExceeded exception (rhbz#1857143) - client: expose ceph.quota.max_bytes xattr within snapshots (rhbz#1863027) * Thu Aug 13 2020 Thomas Serlin 2:14.2.8-92 - mgr/volumes: Remove enum usage in code for Py2 support (rhbz#1857827) - mgr/volumes: Deprecate protect/unprotect CLI calls for subvolume snapshots (rhbz#1857827) - mds: Using begin() and empty() to iterate the xlist Fixes: https://tracker.ceph.com/issues/44316 The item p pointed to maybe cleaned during the process of request_kill previous one. (rhbz#1850718) - mds: cleanup code that kills session requests (rhbz#1850718) - tools/cephfs: don't bind to public_addr (rhbz#1850751) - mds: flag backtrace scrub failures for new files as okay (rhbz#1850750) - mds: cleanup uncommitted fragments before mds goes to active (rhbz#1850748) - mds: preserve ESlaveUpdate::OP_PREPARE logevent before doing commit (rhbz#1850747) - mds: Explicitly call slave_updates with 0 size (rhbz#1850747) - mds: Move log_segment_seq_t into class LogSegment (rhbz#1850747) - mds: Reorganize class members in LogSegment header (rhbz#1850747) - mds: take xlock in the order requests start locking (rhbz#1850746) - qa/cephfs: make run_shell() accept args as str too (rhbz#1850743) - cephfs: allow pool names with '-' and '.' (rhbz#1850743) - mds: don't shallow copy when decoding xattr map (rhbz#1850742) - client: only set MClientCaps::FLAG_SYNC when flushing dirty auth caps (rhbz#1850738) - cmake: detect fuse3 as well (rhbz#1850730) - cmake: check for FUSE version (rhbz#1850730) - cmake: link against FUSE::FUSE (rhbz#1850730) - cmake: rename Findfuse.cmake to FindFUSE.cmake (rhbz#1850730) - ceph-fuse: link to libfuse3 if fuse3 is installed (rhbz#1850730) - rbd-fuse: remove FUSE_CAP_BIG_WRITES when linking to libfuse3 (rhbz#1850730) - rbd-fuse: switch to use utimens instead (rhbz#1850730) - ceph-fuse: enable the big writes as default (rhbz#1850730) - ceph-fuse: don't get mount options from /etc/fstab when doing remount (rhbz#1850730) - mon/FSCommands: Fix 'fs new' command (rhbz#1850724) - mon/FSCommands: Fix 'add_data_pool' command (rhbz#1850724) - client: reset requested_max_size if file write is not wanted (rhbz#1850722) - mds: handle ceph_assert on blacklisting (rhbz#1850721) * Fri Aug 07 2020 Ceph Jenkins 2:14.2.8-91 - qa: skip cache_size check (rhbz#1866041) - qa: use real entity for config_get (rhbz#1866041) - qa: add tests for mds_min_caps_working_set (rhbz#1866041) - mds: add working set minimum for caps (rhbz#1866041) - qa: use config_set/config_get (rhbz#1866041) - qa: do not append file names to dirname (rhbz#1866041) - qa: add exception for test timeouts (rhbz#1866041) - qa/tasks: call super class's setUp() (rhbz#1866041) - qa: manage config changes through mons (rhbz#1866041) * Thu Aug 06 2020 Ceph Jenkins 2:14.2.8-90 - mds: don't assert empty io context list when shutting down (rhbz#1850720) - Revert "mds: make MDSIOContextBase delete itself when shutting down" (rhbz#1850720) - Revert "mds: just delete MDSIOContextBase during shutdown" (rhbz#1850720) - mds: just delete MDSIOContextBase during shutdown (rhbz#1850720) - mds: add comment explaining unusual locking for MDSIOContextBase (rhbz#1850720) - common/ceph_time: tolerate mono time going backwards 0;115;0c Some kernels (and possibly some hardware?) can trigger a monotonic clock that goes back in time. That, in turn, can lead to a negative monotonic time span. This would trigger an assert. (rhbz#1847685) * Fri Jul 24 2020 Ceph Jenkins 2:14.2.8-89 - Update patches * Thu Jul 23 2020 Ceph Jenkins 2:14.2.8-88 - fixup * Thu Jul 23 2020 Ceph Jenkins 2:14.2.8-87 - rgwlc: fix error return from backward-compat decode (rhbz#1858733) * Fri Jul 10 2020 Ceph Jenkins 2:14.2.8-81 - selinux: add new amqp and soundd types to "require" section (rhbz#1854083) * Thu Jul 09 2020 Ceph Jenkins 2:14.2.8-80 - Merge pull request #35983 from ceph/kalebskeithley-1854083-1 (rhbz#1854083) * Tue Jun 23 2020 Ceph Jenkins 2:14.2.8-79 - rgw: fix shutdown crash in RGWAsyncReadMDLogEntries (rhbz#1840858) * Tue Jun 23 2020 Ceph Jenkins 2:14.2.8-78 - rgw: reject response headers w/illegal characters (rhbz#1813284) - rgw: reject unauthenticated response-header actions (rhbz#1813284) * Tue Jun 23 2020 Ceph Jenkins 2:14.2.8-77 - rgw/notifications: fix zero size in notifications (rhbz#1833685) - rgw/url: fix commensts from review #34717 (rhbz#1840730) - src/rgw/rgw_url.cc, also cope with a vhost appended to a AMQP-URL (rhbz#1840730) * Mon Jun 22 2020 Ceph Jenkins 2:14.2.8-76 - mgr/volumes: Add snapshot info command (rhbz#1838931) * Mon Jun 22 2020 Ceph Jenkins 2:14.2.8-75 - rgw: filter prefix should be used when generating expiration header. The rule prefix is set with old version lifecycle configure. While filter prefix is the latest version which AWS suggests users use. (rhbz#1833309) * Fri Jun 19 2020 Ceph Jenkins 2:14.2.8-74 - cls/queue: Reverting code change that replaced cls_cxx_write_zero with cls_cxx_write2 in queue_remove_entries. (rhbz#1837206) * Fri Jun 19 2020 Ceph Jenkins 2:14.2.8-73 - rgw: sanitize newlines in s3 CORSConfiguration's ExposeHeader (rhbz#1841204) * Thu Jun 18 2020 Ceph Jenkins 2:14.2.8-72 - rgw/rgw_bucket: clear tenant string for non tenanted buckets in rgw_bucket_parse_bucket_key function. (rhbz#1830330) * Wed Jun 17 2020 Ceph Jenkins 2:14.2.8-71 - rgw: attempt retries after write race for bucket reshard bucketinfo update (rhbz#1835777) * Wed Jun 17 2020 Ceph Jenkins 2:14.2.8-70 - selinux: Allow getattr access to /proc/kcore (rhbz#1829758) - selinux: Allow ceph-mgr access to httpd dir (rhbz#1828232) * Tue Jun 16 2020 Thomas Serlin - 2:14.2.8-69 - spec: do not compile with SPDK * Thu Jun 11 2020 Ceph Jenkins 2:14.2.8-68 - mon/OSDMonitor: ensure lec only accounts for up osds (rhbz#1829646) - qa/standalone: exercise osdmon's last epoch clean (rhbz#1829646) - mon/OSDMonitor: dump last epoch clean info on report (rhbz#1829646) - mgr/DaemonServer: add explicit check that acting matches for merge (rhbz#1810949) - suites/rados/thrash: add rados-high-concurrency (rhbz#1839216) - PrimaryLogPG: add assert that we aren't trimming past last_update_ondisk (rhbz#1839216) - qa/osd-recovery: pass osd_pg_log_trim_min = 0 to exercise short pg logs (rhbz#1839216) - qa/short_pg_log: pass osd_pg_log_trim_min = 0 to exercise short pg logs (rhbz#1839216) - osd/PeeringState: do not trim pg log past last_update_ondisk (rhbz#1839216) * Thu Jun 11 2020 Ceph Jenkins 2:14.2.8-67 - common/blkdev: only pay attention to first 2 bits of smartctl return code (rhbz#1837645) - common/blkdev: include stdout and stderr on join error (rhbz#1837645) - common/blkdev: fix syntax of error message (rhbz#1837645) - common/blkdev: fix smartctl output in error path (rhbz#1837645) - common/blkdev: include bad json from smartctl when unparseable (rhbz#1837645) * Thu Jun 11 2020 Ceph Jenkins 2:14.2.8-66 - mgr/volumes: Create subvolume with isolated rados namespace (rhbz#1838996) - mgr/volumes: Fix subvolume create idempotency (rhbz#1838959) * Thu Jun 11 2020 Ceph Jenkins 2:14.2.8-65 - nautilus: mgr/volumes: Add interface to get subvolume metadata (rhbz#1835216) - bash_completion: Do not auto complete obsolete and hidden cmds (rhbz#1819667) * Wed Jun 10 2020 Ceph Jenkins 2:14.2.8-64 - mgr/k8sevents:sanitise kubernetes events (rhbz#1785445) * Wed Jun 10 2020 Ceph Jenkins 2:14.2.8-63 - Update patches * Wed Jun 10 2020 Ceph Jenkins 2:14.2.8-62 - rgw: stop realm reloader before store shutdown (rhbz#1845658) * Mon Jun 08 2020 Ceph Jenkins 2:14.2.8-61 - rgwlc: wait for WorkQ threads on shutdown (rhbz#1834697) * Wed Jun 03 2020 Ceph Jenkins 2:14.2.8-60 - cmake: Improve test for 16-byte atomic support on IBM Z (rhbz#1756077) * Wed May 27 2020 Ceph Jenkins 2:14.2.8-59 - cls/rgw_gc: Clearing off urgent data in bufferlist, before encoding the updated one. (rhbz#1837206) * Tue May 26 2020 Ceph Jenkins 2:14.2.8-58 - cls/queue: Replacing cls_cxx_write_zero with cls_cxx_write2 to zero out entries that have been removed from the queue in queue_remove_entries. (rhbz#1837206) * Wed May 20 2020 Ceph Jenkins 2:14.2.8-57 - cls/ queue and rgw_gc: debug messages. (rhbz#1837206) * Wed May 13 2020 Ceph Jenkins 2:14.2.8-56 - cls/queue: Populating marker correctly in queue_list_entries, when data is split between two chunks. (rhbz#1834790) * Fri May 08 2020 Ceph Jenkins 2:14.2.8-55 - rgw/notifications: version id was not sent in versioned buckets (rhbz#1814380) * Fri May 08 2020 Ceph Jenkins 2:14.2.8-54 - cls/rgw_gc: Fixing the iterator used to access urgent data map in xattr in cls_rgw_gc. The incorrect iterator caused a crash in osd. (rhbz#1833063) * Wed Apr 29 2020 Ceph Jenkins 2:14.2.8-53 - rgw: lc: restore unordered listing (rhbz#1827799) * Tue Apr 28 2020 Ceph Jenkins 2:14.2.8-52 - rgw: lc: cls_rgw_lc_list_entries_op struc_v off-by-one (rhbz#1827789) * Tue Apr 28 2020 Ceph Jenkins 2:14.2.8-51 - rgwlc: make invalid OpRule, lc_op_ctx accesses impossible (rhbz#1827799) * Mon Apr 27 2020 Ceph Jenkins 2:14.2.8-50 - rgw: nfs: disable gc, lc, quota, and sync threads by default (rhbz#1827781) * Fri Apr 24 2020 Ceph Jenkins 2:14.2.8-49 - Update patches * Fri Apr 24 2020 Ceph Jenkins 2:14.2.8-48 - rgwlc: properly accumulate in RGWLC::list_lc_progress() (rhbz#1827789) * Wed Apr 22 2020 Ceph Jenkins 2:14.2.8-47 - ceph-volume: lvm.get_device_vgs: don't create VolumeGroup with empty name (rhbz#1822153) - ceph-volume: don't create Volume/VolumeGroup objects with empty name (rhbz#1822153) - ceph-volume: get_device_lvs filter by provided prefix (rhbz#1822153) - ceph-volume: lvm: get_device_vgs() filter by provided prefix (rhbz#1822153) * Tue Apr 21 2020 Ceph Jenkins 2:14.2.8-46 - rgwlc: LCOpAction MUST NOT acc. OCObjLister from WorkQ (rhbz#1825827) * Mon Apr 20 2020 Ceph Jenkins 2:14.2.8-45 - mgr/dashboard: Fix error when listing RBD while deleting or moving (rhbz#1825988) * Mon Apr 20 2020 Ceph Jenkins 2:14.2.8-44 - mgr/dashboard: 'destroyed' view in CRUSH map viewer (rhbz#1788917) * Sun Apr 19 2020 Ceph Jenkins 2:14.2.8-43 - rgw: adding code for policy evaluation for ops like getbucketversioning, putbucketversioning etc (rhbz#1825104) * Fri Apr 17 2020 Ceph Jenkins 2:14.2.8-42 - mgr: synchronize ClusterState's health and mon_status. (rhbz#1816492) * Fri Apr 17 2020 Ceph Jenkins 2:14.2.8-41 - rgw: Correcting pool name for oidc provider for older versions of osd. (rhbz#127408) * Fri Apr 17 2020 Ceph Jenkins 2:14.2.8-40 - rgw: iam: add all http args to req_info (rhbz#1274084) - rgw: fix nullptr deref at debug-rgw==10 (rhbz#1778217) * Thu Apr 16 2020 Ceph Jenkins 2:14.2.8-39 - msg/async: perform recv reset immediately if called inside EC. (rhbz#1823975) - msg/async: reset the V1's session_security in proper EventCenter. (rhbz#1823975) - msg/async: mark down local_connection before draining the stack. (rhbz#1823975) - cmake: fix libtsan detection (rhbz#1823975) - cmake: workaround of false alarm from ubsan (rhbz#1823975) - test: librados startup/shutdown racer test (rhbz#1823975) - msg/async: reset the TX session handler in proper EventCenter. (rhbz#1823975) - msg/async: rename outcoming_bl -> outgoing_bl in AsyncConnection. (rhbz#1823975) * Wed Apr 15 2020 Ceph Jenkins 2:14.2.8-38 - mgr/dashboard: use FQDN for failover redirection (rhbz#1820560) * Mon Apr 13 2020 Ceph Jenkins 2:14.2.8-37 - Update patches * Mon Apr 13 2020 Thomas Serlin - 2:14.2.8-36 - spec: bump release for weak_deps and python3-saml * Thu Apr 09 2020 Ceph Jenkins 2:14.2.8-35 - rgwlc: re-hook RGWRados::process_lc() (rhbz#1274084) * Thu Apr 09 2020 Ceph Jenkins 2:14.2.8-34 - rgw:sts: oidc revisions, backport adjustments (rhbz#1274084) - rgw: adds code for role session to be used an ARN. (rhbz#1274084) - rgw: adding new iam ops for iam oidc provider to correct unittest faliure. (rhbz#1274084) - rgw: modifying documentation to include explanation of open id connect provider related REST APIs and removing references to token introspection for validating incoming web token. (rhbz#1274084) - rgw: adds a commom method to remove prefix(www, http and https) from a url. (rhbz#1274084) - rgw: adds code to check for client id and cert thumbprint while validating incoming web token in AssumeRoleWithWebIdentity. (rhbz#1274084) - rgw: Added code for offline OpenId Connect/ OAuth 2.0 tokens if the token is a JWT. (rhbz#1274084) - rgw: Adding jwt-cpp header only library for JWT validation. https://github.com/Thalhammer/jwt-cpp (rhbz#1274084) - rgw: adds REST APIs for OpenID connect providers manipulation. (rhbz#1274084) * Wed Apr 08 2020 Ceph Jenkins 2:14.2.8-33 - common/options: Disable bluefs_buffered_io by default again. (rhbz#1802199) * Wed Apr 08 2020 Ceph Jenkins 2:14.2.8-32 - rgw/cloud-sync: Handle BucketAlreadyExists error (rhbz#1821784) - rpm: add python3-saml as install dependency (rhbz#1820272) * Tue Apr 07 2020 Ceph Jenkins 2:14.2.8-31 - monitoring: Fix pool capacity incorrect (rhbz#1808046) * Sat Apr 04 2020 Ceph Jenkins 2:14.2.8-30 - Update patches * Thu Apr 02 2020 Ceph Jenkins 2:14.2.8-29 - rgw: fixup vault mock signature (rhbz#1777064) - rgw: improvements to SSE-KMS with Vault (rhbz#1777064) - rgw: Vault's Transit Secrets updates and docs (rhbz#1777064) * Wed Apr 01 2020 Ceph Jenkins 2:14.2.8-28 - mgr/dashboard: fix error when enabling SSO with cert. file (rhbz#1814806) * Fri Mar 27 2020 Ceph Jenkins 2:14.2.8-27 - Update patches * Fri Mar 27 2020 Ceph Jenkins 2:14.2.8-26 - Update patches * Wed Mar 25 2020 Ceph Jenkins 2:14.2.8-25 - Update patches * Wed Mar 25 2020 Ceph Jenkins 2:14.2.8-24 - rgw: Fix dynamic resharding not working for empty zonegroup in period (rhbz#1817069) * Tue Mar 24 2020 Ceph Jenkins 2:14.2.8-23 - Update patches * Tue Mar 24 2020 Ceph Jenkins 2:14.2.8-22 - rgwlc: permit per-bucket thread parallelism (rhbz#1794715) - rgwlc: enable thread-parallelism in RGWLC (rhbz#1794715) * Mon Mar 23 2020 Ceph Jenkins 2:14.2.8-21 - rgw: increase log level for same or older period pull msg (rhbz#1795406) * Fri Mar 20 2020 Ceph Jenkins 2:14.2.8-20 - mgr/pg_autoscaler: fix division by zero (rhbz#1815579) * Fri Mar 20 2020 Ceph Jenkins 2:14.2.8-19 - PendingReleaseNotes: mention target_size_ratio change (rhbz#1815579) - doc: update autoscaler docs for target ratio (rhbz#1815579) - mgr/pg_autoscaler: include effective target ratio in status (rhbz#1815579) - mgr/pg_autoscaler: add warning when target bytes and ratio are both set (rhbz#1815579) - mgr/pg_autoscaler: remove target ratio warning (rhbz#1815579) - qa: use ratios >1 in pg_autoscaler test (rhbz#1815579) - mgr/pg_autoscaler: treat target ratios as weights (rhbz#1815579) * Fri Mar 20 2020 Ceph Jenkins 2:14.2.8-18 - mgr/dashboard: Pool read/write OPS shows too many decimal places Fixes: https://tracker.ceph.com/issues/39714 (rhbz#1810948) * Fri Mar 20 2020 Ceph Jenkins 2:14.2.8-17 - Update patches * Fri Mar 20 2020 Ceph Jenkins 2:14.2.8-16 - mgr/dashboard: Pool read/write OPS shows too many decimal places Fixes: https://tracker.ceph.com/issues/39714 (rhbz#1810948) - mgr/dashboard: 'destroyed' view in CRUSH map viewer (rhbz#1788917) - mgr/dashboard: UI fixes Fixes: https://tracker.ceph.com/issues/42914 (rhbz#1765530) - mgr/dashboard: Fixes rbd image 'purge trash' button & modal text (rhbz#1764431) - mgr: Add get_rates_from_data to mgr_util.py (rhbz#1784405) * Fri Mar 20 2020 Ceph Jenkins 2:14.2.8-15 - doc: document `clone cancel` command (rhbz#1767144) - test: add `clone cancel` tests (rhbz#1767144) - mgr/volumes: introduce "clone cancel" volume command (rhbz#1767144) - mgr/volumes: allow canceling a single asynchronous job for a volume (rhbz#1767144) - mgr/volumes: helper for looking up a clone entry index (rhbz#1767144) - mgr/volumes: periodically check if clone operations should be canceled (rhbz#1767144) - mgr/volumes: periodically check if copy operations should be canceled (rhbz#1767144) - mgr/volumes: introduce 'canceled' state in clone op state machine (rhbz#1767144) - mgr/volumes: OpSmException.error -> OpSmException.errno (rhbz#1767144) - mgr/volumes: remove unneeded assignment to `NoneType` (rhbz#1767144) - mgr/volumes: add missing OpSmException import (rhbz#1767144) - mgr/volumes: add missing error code (rhbz#1767144) - mgr/volumes: remove stray return (rhbz#1767144) - mgr/volumes: fixup format string args (rhbz#1767144) - mgr/volumes: add missing `mgr` param (rhbz#1767144) - mgr/volumes: assert self.fs (rhbz#1767144) - mgr/volumes: fixup threading.Timer import (rhbz#1767144) - mgr/volumes: fix positional str formatting (rhbz#1767144) - mgr/volumes: place getters and setters next to each other (rhbz#1767144) - mgr/volumes: reverse params passed to `isinstace()` (rhbz#1767144) - mgr/volumes: fix arg typo '.' -> ',' (rhbz#1767144) - mgr/volumes: `threading.Event.isSet` no longer exists in py3 (rhbz#1767144) - mgr/volumes: assert JobThread class (rhbz#1767144) - mgr/volumes: import VolumeException (rhbz#1767144) - mgr/volumes: use `SafeConfigParser` with py2 (rhbz#1767144) - mgr/volumes: use python version during configparser import (rhbz#1767144) - mgr/volumes: import errno (rhbz#1767144) - mgr/volumes: type convert uid and gid to int (rhbz#1767144) - qa: allow keeping sudo in command arguments (rhbz#1767144) - qa: make execution abortion optional for command ran through run_shell() (rhbz#1767144) - test: add test_statx for new statx() (rhbz#1767144) - client: add statx in cephfs.pyx (rhbz#1767144) - pybind/cephfs: define variable for hexcode used in stat() (rhbz#1767144) - test_volumes: fix _verify_clone_attrs call (rhbz#1767144) - doc: update clone section for mgr/volumes w/ attr synchronization changes (rhbz#1767144) - doc: add mgr/volumes clone commands (rhbz#1767144) - doc: update '--force' flag to be precise (rhbz#1767144) - doc: list FS subvolumes, subvolume groups and their snapshots (rhbz#1767144) - test: revert to default mount state in test_cephfs:test_mount_root() (rhbz#1767144) - test: add test for verifying inode attrbiutes sync on clone (rhbz#1767144) - mgr/volumes: synchronize inode attributes for cloned subvolumes (rhbz#1767144) - pybind/cephfs: pybind calls for changing inode timestamps (rhbz#1767144) - pybind/cephfs: pybind call for changing ownership for symlinks (rhbz#1767144) * Thu Mar 19 2020 Ceph Jenkins 2:14.2.8-14 - rgw: fix loop problem with swift stat on account. (rhbz#1815261) * Thu Mar 19 2020 Ceph Jenkins 2:14.2.8-13 - rgw: allow protocol bucket listing default max to override config max (rhbz#1815239) - rgw: allow enforcing of maximum requested in listing when possible (rhbz#1815239) * Thu Mar 19 2020 Ceph Jenkins 2:14.2.8-12 - rgw: the 'bucket radoslist' admin subcommand should use ordered bucket listing (rhbz#1815211) - rgw: rgw-orphan-list script does not work correctly on all linux dists (rhbz#1815211) - rgw: add tooling to support rgw-orphan-list (rhbz#1815211) - rgw: updates and fixes to `radsogw-admin radoslist` subcommand (rhbz#1815211) - rgw: radosgw-admin radoslist subcommand doesn't list empty objects (rhbz#1815211) - rgw: add logging for looping checks (rhbz#1815211) - rgw: prevent slo and dlo loops in listing (rhbz#1815211) - rgw: fix bug with output on copied multipart objects (rhbz#1815211) - rgw: add support for swift dlo/slo with `radosgw-admin bucket radoslist` (rhbz#1815211) - rgw: fix bugs with `radosgw-admin bucket radoslist` (rhbz#1815211) - rgw: add radosgw-admin subcommand "bucket radoslist" (rhbz#1815211) * Thu Mar 19 2020 Ceph Jenkins 2:14.2.8-11 - test: query using mds id, not rank (rhbz#1559026) - mgr: re-enable mds `scrub status` info in ceph status (rhbz#1559026) - mon: filter out ceph normal ceph entity types when dumping service metadata (rhbz#1559026) - mgr: filter out normal ceph services when processing service map (rhbz#1559026) - mgr: helper function to check if a service is a normal ceph service (rhbz#1559026) - mds: establish session with mgr only after added to FSMap (rhbz#1559026) - mds: do not register as a service daemon (rhbz#1559026) - mds: do not try to diagnose cause of MDSMap removal (rhbz#1559026) - mds: fix handling of initial MDS states (rhbz#1559026) - mds: remove unnecessary const qualifier (rhbz#1559026) - mds: cleanup type decl and map iteration (rhbz#1559026) - mds: define stream operator for mds_info_t (rhbz#1559026) - mds/MDSRank: report state to mgr as mds id, not rank (rhbz#1559026) - mgr: missing lock release in DaemonServer::handle_report() (rhbz#1559026) - mgr/ServiceMap: use plain gid (rhbz#1559026) - doc: document scrub summary in ceph status output (rhbz#1559026) - test: extend scrub control test to validate mds task status (rhbz#1559026) - mds: send scrub state changes to cluster log. (rhbz#1559026) - mds: periodically sent mds scrub status to ceph manager (rhbz#1559026) - mgr, mon: allow normal ceph services to register with manager (rhbz#1559026) * Wed Mar 18 2020 Ceph Jenkins 2:14.2.8-10 - mds: fix use-after-free in Migrater (rhbz#1809242) * Wed Mar 18 2020 Ceph Jenkins 2:14.2.8-9 - mgr/dashboard: remove 'config-opt: read' perm. from system roles. (rhbz#1785580) - mgr/dashboard: NoRebalance flag is added to the Dashboard (rhbz#1798153) - mgr/dashboard: show correct RGW user 'system' info (rhbz#1785646) - mgr/dashboard: Use booleanText pipe (rhbz#1785646) - mgr/dashboard: Updated the version from 4.0 to 4.1 (rhbz#1810551) - mgr/dashboard: do not show API keys if user has only read-only privileges. (rhbz#1794713) * Wed Mar 18 2020 Ceph Jenkins 2:14.2.8-8 - qa/suites/rados/singleton/all/thrash-eio: whitelist 'slow request' (rhbz#1807184) - qa: Whitelist 'slow request' within a bunch of tests (rhbz#1807184) - qa/suites/rados/singleton/all/lost-unfound*: whitelist SLOW_OPS (rhbz#1807184) - qa/suites/rados/multimon: whitelist SLOW_OPS while thrashing mons (rhbz#1807184) - osd/OSD: Log slow ops/types to cluster logs (rhbz#1807184) * Wed Mar 18 2020 Ceph Jenkins 2:14.2.8-7 - mgr: update metadata if an osd just joins (rhbz#1724428) - mgr: update "hostname" when we already have the daemon state from the same entity (rhbz#1724428) * Wed Mar 18 2020 Ceph Jenkins 2:14.2.8-6 - mds: add configurable snapshot limit (rhbz#1759700) * Tue Mar 17 2020 Ceph Jenkins 2:14.2.8-5 - rgw/notifications: fix topic action fail with "MethodNotAllowed" (rhbz#1814380) * Mon Mar 16 2020 Ceph Jenkins 2:14.2.8-4 - rgw: add a config description for rgw_override_bucket_index_max_shards (rhbz#1813349) - rgw: Increase the default number of RGW bucket shards (rhbz#1813349) * Wed Mar 11 2020 Ceph Jenkins 2:14.2.8-3 - monitoring: fix RGW grafana chart 'Average GET/PUT Latencies' (rhbz#1810884) * Tue Mar 10 2020 Ceph Jenkins 2:14.2.8-2 - Update patches * Tue Mar 10 2020 Thomas Serlin - 2:14.2.8-1 - Update to 14.2.8 * Wed Mar 04 2020 Ceph Jenkins 2:14.2.7-4 - cls/queue: fix data corruption in urgent data (rhbz#1810121) * Mon Mar 02 2020 Ceph Jenkins 2:14.2.7-3 - mgr/dashboard: Use default language when running "npm run build" (rhbz#1808345) * Wed Feb 26 2020 Thomas Serlin 2:14.2.7-2 - Update patches * Thu Feb 20 2020 Thomas Serlin - 2:14.2.7-1 - spec: Update ceph.spec for upstream 14.2.7 * Mon Jan 27 2020 Ceph Jenkins 2:14.2.4-125 - rgw: data sync markers include timestamp from datalog entry (rhbz#1793124) * Thu Jan 23 2020 Ceph Jenkins 2:14.2.4-124 - mds: skip tell command scrub on multimds (rhbz#1787109) - mds: throttle scrub start for multiple active MDS (rhbz#1787109) * Wed Jan 22 2020 Thomas Serlin - 2:14.2.4-123 - ceph.spec: exclude s390x * Wed Jan 22 2020 Thomas Serlin - 2:14.2.4-122 - ceph.spec: add spawn git submodule * Wed Jan 22 2020 Ceph Jenkins 2:14.2.4-121 - Updated patches * Wed Jan 22 2020 Ceph Jenkins 2:14.2.4-120 - rgw: multisite: disable test_rgw_throttle (rhbz#1793468) - rgw: beast frontend uses 512k mprotected coroutine stacks post chery-pick fixes (rhbz#1793468) - common: move gen_rand_alphanumeric() helpers into common (rhbz#1793468) - CMake - Workaround set Boost_component_FOUND (rhbz#1793468) - rgw: Add more spawn linking (rhbz#1793468) - cmake/rgw: move {rgw_libs} dependency into test_rgw_a target (rhbz#1793468) - test/rgw: ceph_test_rgw_throttle uses spawn library (rhbz#1793468) - test/rgw: unittest_rgw_reshard_wait uses spawn library (rhbz#1793468) - rgw: use new spawn() implementation (rhbz#1793468) - adds a submodule for https://github.com/cbodley/spawn, a header-only fork of boost::asio::spawn(). the beast frontend uses this to customize the coroutine stack allocator in order to use mmap/mprotect to detect overflows. the default stack size is raised from 128K to 512K (rhbz#1793468) * Tue Jan 21 2020 Ceph Jenkins 2:14.2.4-119 - rgw: remove spawned_keys filter from incremental data sync (rhbz#1793124) - rgw: incremental data sync respects spawn window (rhbz#1793124) * Tue Jan 21 2020 Ceph Jenkins 2:14.2.4-118 - rgw/pubsub: notification filtering by object tags (rhbz#1781813) - Bucket link using '--bucket-new-name' should consider cases when a bucket is renamed under the same tenanted/non-tenanted namespace. Change the condition such that a full comparison of the buckets is done while deleting old bucket instance. (rhbz#1757298) * Mon Jan 20 2020 Ceph Jenkins 2:14.2.4-117 - rgw: address 0-length listing results when non-vis entries dominate (rhbz#1793224) * Mon Jan 20 2020 Ceph Jenkins 2:14.2.4-116 - Updated patches * Mon Jan 20 2020 Ceph Jenkins 2:14.2.4-115 - Fix s3 lifecycle expiration header does not return the earliest rule that will be applied (rhbz#1793160) - RGWLC: fix expiration header tag match (rhbz#1793160) - rgw: fix header timestamp (rhbz#1793160) - RGWLC: debug tags in rgwlc_s3_expiration_header (rhbz#1793160) - rgw: complete expiration header (object tags) (rhbz#1793160) - rgw: project and return lc expiration from GET/HEAD and PUT ops (rhbz#1793160) * Mon Jan 20 2020 Ceph Jenkins 2:14.2.4-114 - Updated patches * Mon Jan 20 2020 Ceph Jenkins 2:14.2.4-113 - mds: skip tell command scrub on multimds (rhbz#1787109) * Fri Jan 17 2020 Ceph Jenkins 2:14.2.4-112 - rgw_file: readdir: do not construct markers w/leading '/' (rhbz#1791651) - rgw_file: introduce fast S3 Unix stats (immutable) (rhbz#1791651) * Thu Jan 16 2020 Ceph Jenkins 2:14.2.4-111 - Updated patches * Thu Jan 16 2020 Ceph Jenkins 2:14.2.4-110 - Updated patches * Wed Jan 15 2020 Ceph Jenkins 2:14.2.4-109 - rgw: improve beast (rhbz#1791429) * Tue Jan 14 2020 Ceph Jenkins 2:14.2.4-108 - rgw/pubsub: prevent kafka thread from spinning when there are no messages (rhbz#1781813) - rgw/pubsub: add ssl+sasl security to kafka (rhbz#1781813) - rgw/pubsub: add kafka notification endpoint (rhbz#1781813) * Mon Jan 13 2020 Ceph Jenkins 2:14.2.4-107 - rgw: fix rgw crash in fips mode. (rhbz#1789237) * Mon Jan 13 2020 Ceph Jenkins 2:14.2.4-106 - rgw: auto-clean reshard queue entries for non-existent buckets (rhbz#1785080) - rgw: allow reshard log entries for non-existent buckets to be cancelled (rhbz#1785080) * Mon Jan 13 2020 Ceph Jenkins 2:14.2.4-105 - mds: audit memset & bzero users for FIPS. (rhbz#1746525) - osd: audit memset & bzero users for FIPS. (rhbz#1746525) - osdc: audit memset & bzero users for FIPS. (rhbz#1746525) - librbd: audit memset & bzero users for FIPS. (rhbz#1746525) - librados: audit memset & bzero users for FIPS. (rhbz#1746525) - rgw: add some missed FIPS zeroization calls. (rhbz#1746525) - rgw: switch to ceph::crypto::zeroize_for_security(). (rhbz#1746525) - rgw: audit memset & bzero users for FIPS. (rhbz#1746525) - rgw: fix indentation in parse_rgw_ldap_bindpw(). (rhbz#1746525) - msg/async: switch to ceph::crypto::zeroize_for_security(). (rhbz#1746525) - msg/async: audit memset & bzero users for FIPS. (rhbz#1746525) - common: switch to ceph::crypto::zeroize_for_security(). (rhbz#1746525) - common: audit memset & bzero users for FIPS. (rhbz#1746525) - auth: audit memset & bzero users for FIPS. (rhbz#1746525) - common: introduce ceph::crypto::zeroize_for_security(). (rhbz#1746525) * Sat Jan 11 2020 Ceph Jenkins 2:14.2.4-104 - qa: force creation of fs with EC default data pool (rhbz#1785465) - qa: add tests for adding EC data pools (rhbz#1785465) - mon/MDSMonitor: warn when creating fs with default EC data pool (rhbz#1785465) * Sat Jan 11 2020 Ceph Jenkins 2:14.2.4-103 - mds: throttle scrub start for multiple active MDS (rhbz#1787109) * Fri Jan 10 2020 Ceph Jenkins 2:14.2.4-102 - Updated patches * Fri Jan 10 2020 Ceph Jenkins 2:14.2.4-101 - rgw_file: avoid string::front() on empty path (rhbz#1786094) * Fri Jan 10 2020 Ceph Jenkins 2:14.2.4-100 - Updated patches * Thu Jan 09 2020 Ceph Jenkins 2:14.2.4-99 - rgw: fix rgw crash when token is not base64 encode (rhbz#1776483) * Thu Jan 09 2020 Ceph Jenkins 2:14.2.4-98 - mgr/dashboard: fix grafana dashboards (rhbz#1764548) * Thu Jan 09 2020 Ceph Jenkins 2:14.2.4-97 - rgw:[bug] civetweb mg_write with offset. (rhbz#1772556) * Thu Jan 09 2020 Ceph Jenkins 2:14.2.4-96 - rgw: RGWCoroutine::call(nullptr) sets retcode=0 (rhbz#1744276) * Wed Jan 08 2020 Ceph Jenkins 2:14.2.4-95 - mon/OSDMonitor: Don't update mon cache settings if rocksdb is not used (rhbz#1760257) * Wed Jan 08 2020 Ceph Jenkins 2:14.2.4-94 - common: fix typo in rgw_user_max_buckets option long description. (rhbz#1772454) * Wed Jan 08 2020 Ceph Jenkins 2:14.2.4-93 - cls/rgw: when object is versioned and lc transition it, the object is becoming non-current (rhbz#1786633) * Tue Jan 07 2020 Ceph Jenkins 2:14.2.4-92 - mgr/ActivePyModules: behave if a module queries a devid that does not exist (rhbz#1674086) * Mon Dec 23 2019 Ceph Jenkins 2:14.2.4-91 - mgr/dashboard: fix white border in about box (rhbz#1663030 rhbz#1663030) * Mon Dec 23 2019 Ceph Jenkins 2:14.2.4-90 - mgr/dashboard: A block-manager can not access the pool page (rhbz#1785536) * Thu Dec 19 2019 Ceph Jenkins 2:14.2.4-89 - pybind/mgr: use custom exception to handle authorization failures (rhbz#1762001) - qa/workunits/rbd: add permission tests for mgr profile (rhbz#1762001) - mgr: added placeholder 'osd' and 'mds' profiles (rhbz#1762001) - doc/rbd: add new 'profile rbd' mgr caps to examples (rhbz#1762001) - pybind/mgr: test session authorization against specific pools/namespaces (rhbz#1762001) - mgr: python modules can now perform authorization tests (rhbz#1762001) - mgr: validate that profile caps are actually valid (rhbz#1762001) - mgr: added 'profile rbd/rbd-read-only' cap (rhbz#1762001) - mgr: support optional arguments for module and profile caps (rhbz#1762001) - mgr: add new 'allow module' cap to MgrCap (rhbz#1762001) - mon: dropped daemon type argument for MonCap (rhbz#1762001) - mgr: stop re-using MonCap for handling MGR caps (rhbz#1762001) * Thu Dec 19 2019 Ceph Jenkins 2:14.2.4-88 - mgr/dashboard: use downstream docs link (rhbz#1779192) * Thu Dec 19 2019 Ceph Jenkins 2:14.2.4-87 - mgr/dashboard: Use serial RGW Admin OPS API calls (rhbz#1780556) * Tue Dec 17 2019 Ceph Jenkins 2:14.2.4-86 - rgw: revert passing address of pointer as RGWObjCtx* (rhbz#1777743) * Fri Dec 13 2019 Ceph Jenkins 2:14.2.4-85 - mgr/dashboard: Unify the labels on all table actions objects (rhbz#1772105) - mgr/dashboard: Unify action naming for NFS (rhbz#1772105) - mgr/dashboard: refactor TableKeyValueComponent (rhbz#1772367) - mgr/dashboard: key-value-table doesn't render booleans (rhbz#1772367) - mgr/dashboard: Cross sign button not working for some modals (rhbz#1779213) - mgr/dashboard: sort monitors by open sessions correctly. (rhbz#1774436) - mgr/dashboard: Remove compression mode unset in pool from (rhbz#1772318) - mgr/dashboard: show Rename in modal header & button when renaming RBD snapshot (rhbz#1772105) * Fri Dec 13 2019 Ceph Jenkins 2:14.2.4-84 - mgr/dashboard: Remove title from sparkline tooltips (rhbz#1764465) - mgr/dashboard: fix RGW subuser auto-generate key. (rhbz#1780556) * Thu Dec 12 2019 Ceph Jenkins 2:14.2.4-83 - rgw: fix version tracking across bucket link steps (rhbz#1763219) * Thu Dec 12 2019 Ceph Jenkins 2:14.2.4-82 - Updated patches * Thu Dec 12 2019 Ceph Jenkins 2:14.2.4-81 - ceph-volume: print most logging messages to stderr (rhbz#1738576 rhbz#1738576) * Thu Dec 12 2019 Ceph Jenkins 2:14.2.4-80 - ceph-volume devices.lvm zap use the identifier to report success (rhbz#1738379) - ceph-volume tests check success message when zapping (rhbz#1738379) * Tue Dec 10 2019 Ceph Jenkins 2:14.2.4-79 - mgr/dashboard: properly handle a missing rbd-mirror service status (rhbz#1776257) - mgr: cull service daemons when the last instance has been removed (rhbz#1776257) - mgr: ensure new daemons are properly indexed by hostname (rhbz#1776257) * Mon Dec 09 2019 Ceph Jenkins 2:14.2.4-78 - rgw: avoid 0-length result gaps when non-vis b-i entries dominate (rhbz#1781358) * Fri Dec 06 2019 Ceph Jenkins 2:14.2.4-77 - mon/OSDMonitor: make memory autotune disable itself if no rocksdb (rhbz#1760257) * Thu Dec 05 2019 Ceph Jenkins 2:14.2.4-76 - mgr/dashboard: unable to set bool values to false when default is true (rhbz#1779224) * Thu Dec 05 2019 Ceph Jenkins 2:14.2.4-75 - Revert "crush: remove invalid upmap items" (rhbz#1773139) * Wed Dec 04 2019 Ceph Jenkins 2:14.2.4-74 - mgr/dashboard: test_mgr_module QA test has not been adapted to latest controller changes (rhbz#1772375) - mgr/dashboard: Handle always-on Ceph Manager modules correctly (rhbz#1772375) * Wed Dec 04 2019 Ceph Jenkins 2:14.2.4-73 - mgr/dashboard: grafana charts match time picker selection. (rhbz#1764555) * Wed Dec 04 2019 Ceph Jenkins 2:14.2.4-72 - mgr/dashboard: edit/clone/copy rbd image after its data is received (rhbz#1779593) * Wed Dec 04 2019 Ceph Jenkins 2:14.2.4-71 - mgr/mgr_module: Allow resetting module options (rhbz#1771426) - doc/orchestrator: Disable the orchestrator (rhbz#1771426) * Tue Dec 03 2019 Ceph Jenkins 2:14.2.4-70 - rgw: apply_olh_log ignores RGW_ATTR_OLH_VER decode error (rhbz#1760854) - rgw: allow apply_olh_log to rewrite the same olh version (rhbz#1760854) - rgw: apply_olh_log filters out older instances of same epoch (rhbz#1760854) - rgw: factor out decode_olh_info() (rhbz#1760854) - cls/rgw: only promote instance entries if they sort after current instance (rhbz#1760854) - test/rgw: add test_concurrent_versioned_object_incremental_sync (rhbz#1760854) * Tue Dec 03 2019 Ceph Jenkins 2:14.2.4-69 - mgr/dashboard,grafana: remove shortcut menu (rhbz#1772441) * Thu Nov 28 2019 Ceph Jenkins 2:14.2.4-68 - mgr/dashboard: Automatically refresh CephFS chart (rhbz#1762701) - mgr/dashboard: Refactors CephFS chart component (rhbz#1762701) - mgr/dashboard: Add missing unit tests for CephFS chart (rhbz#1762701) - mgr/dashboard: Fix CephFS chart (rhbz#1762701) - mgr/dashboard: fix Cephfs hang and tests (rhbz#1762701) * Mon Nov 25 2019 Ceph Jenkins 2:14.2.4-67 - mgr/dashboard: do not show non-pool data in pool details (rhbz#1772327) * Sat Nov 23 2019 Ceph Jenkins 2:14.2.4-66 - osd: release backoffs during merge (rhbz#1770354) * Thu Nov 21 2019 Ceph Jenkins 2:14.2.4-65 - mds: release free heap pages after trim (rhbz#1775320) * Thu Nov 21 2019 Ceph Jenkins 2:14.2.4-64 - mgr/dashboard: Disable event propagation in the helper icon (rhbz#1743755) * Wed Nov 20 2019 Ceph Jenkins 2:14.2.4-63 - os/bluestore/BlueFS: Move bluefs alloc size initialization log message to log level 1 Fixes: https://tracker.ceph.com/issues/41399 (rhbz#1773137) - os/bluestore/BlueFS: apply shared_alloc_size to shared device (rhbz#1773137) - os/bluestore/BlueFS: fix device_migrate_to_* to handle varying alloc sizes (rhbz#1773137) - os/bluestore: whitespace (rhbz#1773137) - os/bluestore: cleanup around allocator calls (rhbz#1773137) - os/bluestore/BlueFS: add bluefs_shared_alloc_size (rhbz#1773137) - os/bluestore/BlueStore.cc: start should be >= _get_ondisk_reserved() (rhbz#1773137) * Wed Nov 20 2019 Ceph Jenkins 2:14.2.4-62 - mon/PGMap: fix incorrect pg_pool_sum when delete pool (rhbz#1705464) * Wed Nov 20 2019 Ceph Jenkins 2:14.2.4-61 - mgr: set hostname in DeviceState::set_metadata() (rhbz#1724428) * Tue Nov 19 2019 Ceph Jenkins 2:14.2.4-60 - restful: Use node_id for _gather_leaf_ids (rhbz#1774172) - restful: Query nodes_by_id for items (rhbz#1774172) * Mon Nov 18 2019 Ceph Jenkins 2:14.2.4-59 - osd: Remove unused osdmap flags full, nearfull from output (rhbz#1739233) * Mon Nov 18 2019 Ceph Jenkins 2:14.2.4-58 - doc/rados/operations/health-checks: document BlueStore fragmentation and BlueFS space available features (rhbz#1773757) - test/objectstore: Allocator_test. Add test for dumping free regions and fragmentation_score. (rhbz#1773757) - BlueStore/allocator: Add command to inspect how much BlueStore's block can go to BlueFS. (rhbz#1773757) - tools/ceph-bluestore-tool: add commands free-dump and free-score (rhbz#1773757) - common/admin_socket: Add 'execute_command' that allows for self-reflection. (rhbz#1773757) - common/admin_socket: Adapted old protocol to use new protocol, simplifies handle path. (rhbz#1773757) - BlueStore/allocator: Add ability to dump free allocations via admin socket interface. (rhbz#1773757) - BlueStore/allocator: Give allocator names, so they can be distinguished. (rhbz#1773757) - BlueStore/allocator: Improved (but slower) method of calculating fragmentation. (rhbz#1773757) - mgr: Improve balancer module status (rhbz#1773139) - test: Test balancer module commands (rhbz#1773139) - mgr: Release GIL before calling OSDMap::calc_pg_upmaps() (rhbz#1773139) - qa/mgr/balancer: Add cram based test for altering target_max_misplaced_ratio setting (rhbz#1773139) - pybind/rados: put lens array in outer scope (rhbz#1760936) - pybind/rados: fix set_omap() crash on py3 (rhbz#1760936) * Mon Nov 18 2019 Ceph Jenkins 2:14.2.4-57 - osd/PGLog: persist num_objects_missing for replicas when peering is done (rhbz#1457536) * Mon Nov 18 2019 Ceph Jenkins 2:14.2.4-56 - global: disable THP for Ceph daemons (rhbz#1773680) * Fri Nov 15 2019 Ceph Jenkins 2:14.2.4-55 - osd/PeeringState: do not complain about past_intervals constrained by oldest epoch (rhbz#1773139) - mgr/BaseMgrStandbyModule: drop GIL in ceph_get_module_option() (rhbz#1773139) - osd: clear PG_STATE_CLEAN when repair object (rhbz#1773139) - crush: remove invalid upmap items (rhbz#1773139) - osd/OSDMap: do not trust partially simplified pg_upmap_item (rhbz#1773139) * Fri Nov 15 2019 Ceph Jenkins 2:14.2.4-54 - os/bluestore: consolidate extents from the same device only (rhbz#1773137) - osd/PG: scrub error when objects are larger than osd_max_object_size (rhbz#1773137) - os/bluestore: refuse to mkfs or mount if osd_max_object_size >= MAX_OBJECT_SIZE (rhbz#1773137) - Revert "rocksdb: enable rocksdb_rmrange=true by default" (rhbz#1773137) - mgr/pg_autoscaler: fix race with pool deletion (rhbz#1674084) * Fri Nov 15 2019 Ceph Jenkins 2:14.2.4-53 - osd/PeeringState: fix wrong history of merge target (rhbz#1674084) * Fri Nov 15 2019 Ceph Jenkins 2:14.2.4-52 - tools/rados: add --pgid in help (rhbz#1773101) - tools/rados: call pool_lookup() after rados is connected This commit fixes a segmentation fault when using --pgid option in rados ls command in combination with --pool/-p option. The reason for the crash was that we can not use the rados object before connecting it with the cluster using rados.init_with_context(). (rhbz#1773101) * Fri Nov 15 2019 Ceph Jenkins 2:14.2.4-51 - osd/PG: Add PG to large omap log message (rhbz#1762041) * Thu Nov 14 2019 Ceph Jenkins 2:14.2.4-50 - mon/OSDMonitor: Add standalone test for mon_memory_target (rhbz#1760257) - mon/OSDMonitor: Implement config observer to handle changes to cache sizes (rhbz#1760257) - mon/OSDMonitor: Use generic priority cache tuner for mon caches (rhbz#1760257) - cmake: link libkv against libheap_profiler (rhbz#1760257) - cmake: link libkv against common_prioritycache_obj (rhbz#1760257) - cmake: remove kv_objs target (rhbz#1760257) - common: make pri cache perf counters optional (rhbz#1760257) - common: make extra memory allocation for pri cache optional (rhbz#1760257) - common/PriorityCache: fix over-aggressive assert when mem limited (rhbz#1760257) - common/PriorityCache: Implement a Cache Manager (rhbz#1760257) * Tue Nov 12 2019 Ceph Jenkins 2:14.2.4-49 - mds: trim cache on regular schedule (rhbz#1765923) - mds: move some MDCache member init to header (rhbz#1765923) * Tue Nov 12 2019 Ceph Jenkins 2:14.2.4-48 - osd: Rename backfill reservation reject names to reflect too full use (rhbz#1769745) - osd: Rename MBackfillReserve::TOOFULL to what it does in particular (revoke) (rhbz#1769745) - osd: Don't set backfill_toofull in RemoteReservationRevoked path (rhbz#1769745) - mon: Improve health status for backfill_toofull and recovery_toofull (rhbz#1769745) * Mon Nov 11 2019 Ceph Jenkins 2:14.2.4-47 - mgr/dashboard: Fix error on ceph-iscsi version pre controls_limits (rhbz#1764167) - mgr/dashboard: Set iSCSI disk WWN and LUN number from the UI (rhbz#1764167) - mgr/dashboard: Display WWN and LUN number in iSCSI target details (rhbz#1764167) - mgr/dashboard: Controls UI inputs based on "type" (rhbz#1764167) - mgr/dashboard: Support iSCSI target-level CHAP auth (rhbz#1764167) - mgr/dashboard: Wait for iSCSI target put and delete (rhbz#1764167) - mgr/dashboard: wait for iscsi/target create/put (rhbz#1764167) - mgr/dashboard: Gracefully handle client/target info not found (rhbz#1764167) - mgr/dashboard: Fix error editing iSCSI disk controls (rhbz#1764167) - mgr/dashboard: Validate iSCSI controls min/max value (rhbz#1764167) * Fri Nov 08 2019 Ceph Jenkins 2:14.2.4-46 - ceph-volume tests validate restorecon skip calls (rhbz#1768523) - ceph-volume util.system allow skipping restorecon calls (rhbz#1768523) * Fri Nov 08 2019 Ceph Jenkins 2:14.2.4-45 - mds: establish session with mgr only after added to FSMap (rhbz#1764977) - mds: do not register as a service daemon (rhbz#1764977) - mds: do not try to diagnose cause of MDSMap removal (rhbz#1764977) - mds: fix handling of initial MDS states (rhbz#1764977) - mds: remove unnecessary const qualifier (rhbz#1764977) - mds: cleanup type decl and map iteration (rhbz#1764977) - mds: define stream operator for mds_info_t (rhbz#1764977) * Fri Nov 08 2019 Ceph Jenkins 2:14.2.4-44 - Updated patches * Fri Nov 08 2019 Ceph Jenkins 2:14.2.4-43 - rgw: fix versioning on archive zone. When we sync from a non-versioned source zone, fetch the current version of src_obj by setting 'follow_olh' to true for archive zone. (rhbz#1760862) * Wed Nov 06 2019 Ceph Jenkins 2:14.2.4-42 - common/ceph_context: avoid unnecessary wait during service thread shutdown (rhbz#1762034) * Tue Nov 05 2019 Ceph Jenkins 2:14.2.4-41 - Cycles: Add support for IBM Z (rhbz#1768687) - bloom-filter: Improve test cases (rhbz#1768687) - osd: Endian fix for PGTempMap handling (rhbz#1768687) - librbd: Endian fix for handling old image format resize requests (rhbz#1768687) - rgw,test: Add missing init_le calls (rhbz#1768687) - librados,test: Fix incorrect use of __le16/32/64 (rhbz#1768687) - transaction: Fix incorrect use of __le16/32/64 (rhbz#1768687) - bluestore: Fix incorrect use of __le16/32/64 (rhbz#1768687) - async,crimson: Add missing init_le calls (rhbz#1768687) - msg: Fix incorrect use of __le16/32/64 (rhbz#1768687) - messages: Fix incorrect use of __le16/32/64 (rhbz#1768687) - mds: Fix incorrect use of __le16/32/64 (rhbz#1768687) - cephx: Fix incorrect use of __le16/32/64 (rhbz#1768687) - checksum: Fix incorrect use of __le16/32/64 (rhbz#1768687) - include: Fix new-style encoding routines on big-endian (rhbz#1768687) - include: Simplify usage of init_le16/32/64 routines (rhbz#1768687) - include: Endian fix for shared kernel/user headers (rhbz#1768687) - msg: fix addr2 encoding for sockaddrs (rhbz#1768687) * Thu Oct 31 2019 Ceph Jenkins 2:14.2.4-40 - mgr/pg_autoscaler: use 'stored' for pool_logical_used (rhbz#1767654) * Wed Oct 30 2019 Ceph Jenkins 2:14.2.4-39 - qa: add tests for CephFS admin commands (rhbz#1764977) - mds/MDSRank: report state to mgr as mds id, not rank (rhbz#1764977) * Fri Oct 25 2019 Ceph Jenkins 2:14.2.4-38 - rgw: define rgw_bucket::full_equal(...) method (rhbz#1763219) - rgw: fix if case for bucket rename (rhbz#1763219) - rgw: add rename_swift_keys for user rename (rhbz#1763219) - rgw: consolidate RGWUser::execute_rename (rhbz#1763219) - rgw: user rename calls update() to write final user (rhbz#1763219) - rgw: user rename overwrites new user with --yes-i-really-mean-it (rhbz#1763219) - rgw: user rename operates on 'stub' user (rhbz#1763219) - rgw: add rgw_remove_user_buckets_index (rhbz#1763219) - rgw: simplify bucket chown (rhbz#1763219) - rgw: fix version tracking across bucket link steps (rhbz#1763219) - Added test to verify user rename failure. (rhbz#1763219) - On new uid check, return EEXIST. (rhbz#1763219) - Fixed line wrap (rhbz#1763219) - Updated help.t with user rename command (rhbz#1763219) - Added user rename test (rhbz#1763219) - Minor fixes. (rhbz#1763219) - Modified rgw_store_user_info() checks to suit user rename. Added a helper function to modify bucket acl. Rebased onto master. (rhbz#1763219) - Create new user before deleting existing user. Migrate buckets one at a time. (rhbz#1763219) - This commit deals with renaming user. Under the hood, the attributes of an existing user are moved under the new user namespace specified by "--new-uid". It calls bucket link and bucket chown to link the buckets and objects to the new user namespace. Access and secret keys of the user(and the subusers) are preserved. (rhbz#1763219) - Documentation for 'bucket chown' (rhbz#1763219) - Set object ACLS to reflect bucket owner supporting bucket unlink/link. (rhbz#1763219) - rgw: bucket link: master rebase adaptions. (rhbz#1763219) - rgw: bucket link: "bucket move" documentation changes (rhbz#1763219) - rgw: bucket link: "bucket move"; handle bucket names too. (rhbz#1763219) - rgw: bucket link: base "bucket move" (tenant id only) (rhbz#1763219) - rearrange / simplify RGWBucket::link logic - start bucket move support (rhbz#1763219) - rgw: bucket link: use data from bucket_info to rewrite bucket_endpoint. (rhbz#1763219) - rgw: bucket link: simplify use of get bucket info. (rhbz#1763219) - rgw: bucket link: Add ability to name bucket w/ different tenant. (rhbz#1763219) - Add "--bucket-new-name" option to radosgw-admin. (rhbz#1763219) - Add several types to ceph-dencoder. (rhbz#1763219) - rgw: making implicit_tenants backwards compatible. (rhbz#1763219) * Fri Oct 25 2019 Thomas Serlin - 2:14.2.4-37 - Bump release for s390x build * Fri Oct 25 2019 Ceph Jenkins 2:14.2.4-36 - Updated patches * Fri Oct 25 2019 Ceph Jenkins 2:14.2.4-35 - rgw: Adding 'iam' namespace for Role and User Policy related REST APIs. (rhbz#1765430) * Thu Oct 24 2019 Ceph Jenkins 2:14.2.4-34 - rgw: use explicit to_string() overload for boost::string_ref (rhbz#1756077) * Wed Oct 23 2019 Ceph Jenkins 2:14.2.4-33 - mgr/volumes: fix incorrect snapshot path creation (rhbz#1760215) - rgw: s/std::map/boost::container::flat_map/ cls_bucket_list_ordered (RGWRados and CLS). (rhbz#1764673) * Wed Oct 23 2019 Ceph Jenkins 2:14.2.4-32 - qa/tasks: add/update tests for --yes-i-really-mean-it (rhbz#1761752) - mgr/volumes: protection for 'fs volume rm' command (rhbz#1761752) * Tue Oct 22 2019 Ceph Jenkins 2:14.2.4-31 - rgw: RGWSyncLogTrimCR wont set last_trim=max_marker (rhbz#1763257) - rgw: data/bilogs are trimmed when no peers are reading them (rhbz#1763257) - rgw: data/bilog trimming tracks min markers as strings (rhbz#1763257) - rgw: bilog trim uses bucket_info.num_shards to size marker array (rhbz#1763257) - rgw: fix end condition in AsyncMetadataList for bilog trim (rhbz#1763257) * Tue Oct 22 2019 Ceph Jenkins 2:14.2.4-30 - rgw: disable compression/encryption on Appendable objects (rhbz#1763254) - rgw: fix default storage class for get_compression_type (rhbz#1763254) * Mon Oct 21 2019 Ceph Jenkins 2:14.2.4-29 - rgw: fix potential realm watch lost (rhbz#1763265) - rgw: add minssing admin property when sync user info. (rhbz#1763263) * Mon Oct 21 2019 Ceph Jenkins 2:14.2.4-28 - rgw: fix a bug thart lifecycle expiraton generates delete marker continuously. (rhbz#1763260) * Mon Oct 21 2019 Ceph Jenkins 2:14.2.4-27 - rgw: add reshard checks to bucket quota sync thread (rhbz#1763251) - rgw: remove bucket reshard checks from write operations (rhbz#1763251) * Mon Oct 21 2019 Ceph Jenkins 2:14.2.4-26 - rgw: permit rgw-admin to populate user info by access-key (rhbz#1763255) * Fri Oct 18 2019 Ceph Jenkins 2:14.2.4-25 - Updated patches * Fri Oct 18 2019 Ceph Jenkins 2:14.2.4-24 - rgw: RGWSyncLogTrimCR wont set last_trim=max_marker (rhbz#1763257) - rgw: data/bilogs are trimmed when no peers are reading them (rhbz#1763257) - rgw: data/bilog trimming tracks min markers as strings (rhbz#1763257) - rgw: bilog trim uses bucket_info.num_shards to size marker array (rhbz#1763257) - rgw: fix end condition in AsyncMetadataList for bilog trim (rhbz#1763257) * Fri Oct 18 2019 Ceph Jenkins 2:14.2.4-23 - rgw: fix default storage class for get_compression_type (rhbz#1763254) - rgw: disable compression/encryption on Appendable objects (rhbz#1763254) * Fri Oct 18 2019 Ceph Jenkins 2:14.2.4-22 - rgw: permit rgw-admin to populate user info by access-key (rhbz#1763255) * Fri Oct 18 2019 Ceph Jenkins 2:14.2.4-21 - rgw: reduce per-shard entry count during ordered bucket listing (rhbz#1762857) - rgw: adjust allowable bucket index shard counts for dynamic resharding (rhbz#1762857) * Thu Oct 17 2019 Ceph Jenkins 2:14.2.4-20 - radosgw-admin: 'mdlog trim' loops until done (rhbz#1762931) - radosgw-admin: 'datalog trim' takes shard-id and loops until done (rhbz#1762931) * Thu Oct 17 2019 Ceph Jenkins 2:14.2.4-19 - rgw: make rollback refcount tag match (rhbz#1762926) - rgw: make sure object's idtag is updated when available (rhbz#1762926) * Thu Oct 17 2019 Ceph Jenkins 2:14.2.4-18 - rgw: sanitize the HTTP_* http header elements (rhbz#1762916) * Thu Oct 17 2019 Ceph Jenkins 2:14.2.4-17 - rgw: don't throw when accept errors are happening on frontend (rhbz#1762910) * Thu Oct 17 2019 Ceph Jenkins 2:14.2.4-16 - Updated patches * Thu Oct 17 2019 Ceph Jenkins 2:14.2.4-15 - rgw: fix memory growth while deleteing objects with radosgw-admin bucket rm --bucket=$BIG_BUCKET --bypass-gc --purge-objects by freeing map elements allocated at https://github.com/ceph/ceph/blob/master/src/rgw/rgw_rados.cc#L236 result = &objs_state[obj]; (rhbz#1753588) - rgw: fix cls_bucket_list_unordered() partial results returnied after -ENOENT dirent is encountered (rhbz#1750115) * Tue Oct 15 2019 Ceph Jenkins 2:14.2.4-14 - rgw: increase beast parse buffer size to 64k (rhbz#1761816) * Tue Oct 15 2019 Ceph Jenkins 2:14.2.4-13 - mgr/k8sevents: Add support for remote kubernetes (rhbz#1745607) - pybind/mgr: Remove code duplication (rhbz#1745607) * Fri Oct 11 2019 Ceph Jenkins 2:14.2.4-12 - rgw: lifecycle days may be 0 (rhbz#1493476) * Fri Oct 11 2019 Ceph Jenkins 2:14.2.4-11 - build-doc: allow building docs on fedora 30 (rhbz#1701030) - rgw/pubsub: backporting pubsub/notifications to nautilus (rhbz#1701030) * Fri Oct 11 2019 Ceph Jenkins 2:14.2.4-10 - mgr/dashboard: improve landing page. (rhbz#1744483) - mgr/dashboard: fix form & landing page titles (rhbz#1744483) - mgr/dashboard: Disable translations (rhbz#1744483) - mgr/dashboard: remove white area at the bottom (rhbz#1744483) - mgr/dashboard: hide refresh component (rhbz#1744483) - mgr/dashboard: use PF label for badges (rhbz#1744483) - mgr/dashboad: fix spacing in Pool form (rhbz#1744483) - mgr/dashboard: add Red Hat font [optional] (rhbz#1744483) - mgr/dashboard: fix right whitespaced by refresh (rhbz#1744483) - mgr/dashboard: add red hat favicon (rhbz#1744483) * Thu Oct 10 2019 Ceph Jenkins 2:14.2.4-9 - qa/tasks: tests for ls (rhbz#1734608) - mgr/volumes: list FS subvolumes, subvolume groups and their snapshots (rhbz#1734608) * Thu Oct 10 2019 Ceph Jenkins 2:14.2.4-8 - nautilus: rgw: protect AioResultList by AioThrottle::mutex to avoid race condition (rhbz#1760438) * Wed Oct 09 2019 Ceph Jenkins 2:14.2.4-7 - mgr/ServiceMap: use plain gid (rhbz#1559026) - doc: document scrub summary in ceph status output (rhbz#1559026) - test: extend scrub control test to validate mds task status (rhbz#1559026) - mds: send scrub state changes to cluster log. (rhbz#1559026) - mds: periodically sent mds scrub status to ceph manager (rhbz#1559026) - mgr, mon: allow normal ceph services to register with manager (rhbz#1559026) * Mon Oct 07 2019 Ceph Jenkins 2:14.2.4-6 - cmake: Test for 16-byte atomic support on IBM Z (rhbz#1756077) - rgw: tests: Fix building with -DWITH_BOOST_CONTEXT=OFF (rhbz#1756077) * Fri Sep 27 2019 Ceph Jenkins 2:14.2.4-5 - ceph-volume: do not fail when trying to remove crypt mapper (rhbz#1756371) * Mon Sep 23 2019 Ceph Jenkins 2:14.2.4-4 - mgr/volumes: return string type to ceph-manager (rhbz#1754393) - qa/tasks: test for prevent negative subvolume size (rhbz#1754393) - mgr/volumes: drop unnecessary size (rhbz#1754393) - mgr/volumes: prevent negative subvolume size (rhbz#1754393) - mgr/volumes: cleanup FS subvolume or subvolume group path (rhbz#1754393) * Sun Sep 22 2019 Ceph Jenkins 2:14.2.4-3 - mds: wake up lock waiters after forcibly changing lock state (rhbz#1754353) * Thu Sep 19 2019 Ceph Jenkins 2:14.2.4-2 - mgr/volumes: give useful error message (rhbz#1741618) * Tue Sep 17 2019 Ceph Jenkins 2:14.2.4-1 - Updated patches * Mon Sep 16 2019 Boris Ranto 2:14.2.3-5 - Package k8sevents (rhbz#1745607) * Mon Sep 16 2019 Ceph Jenkins 2:14.2.3-4 - mgr/k8sevents: Initial ceph -> k8s events integration (rhbz#1745607) * Thu Sep 12 2019 Ceph Jenkins 2:14.2.3-3 - ceph-volume tests create a shell test for functional unicode (rhbz#1743834) - ceph-volume create a new tox.ini for shell-based tests (rhbz#1743834) - ceph-volume: instantiate the new terminal logger in main() (rhbz#1743834) - ceph-volume tests verify new logging fallback and encodings in terminal (rhbz#1743834) - ceph-volume tests create a test file for checking unicode output (rhbz#1743834) - ceph-volume create a logger for the terminal (rhbz#1743834) - ceph-volume terminal remove unicode stream handler (rhbz#1743834) * Wed Sep 04 2019 Ceph Jenkins 2:14.2.3-2 - Updated patches * Wed Aug 28 2019 Ken Dreyer 2:14.2.2-435 - mgr/dashboard: fix health pipe test and other (rhbz#1744483) - fix(dashboard): remove dashboard text from nav, update colors (rhbz#1744483) * Tue Aug 27 2019 Ken Dreyer 2:14.2.2-434 - Updated patches * Thu Aug 22 2019 Ken Dreyer 2:14.2.2-433 - Updated patches * Thu Aug 22 2019 Boris Ranto 2:14.2.2-432 - Updated patches - Use gerrit - Use new Jenkins builder job * Mon Aug 19 2019 Thomas Serlin - 2:14.2.2-431.gb28c939 - git snapshot (b28c939) * Tue Aug 13 2019 Thomas Serlin - 2:14.2.2-339.g1fd0f60 - git snapshot (1fd0f60) * Tue Aug 06 2019 Thomas Serlin - 2:14.2.2-296.g6f82bc1 - git snapshot (6f82bc1) * Tue Jul 23 2019 Timothy Asir - 2:14.2.2-16.ga7a380a.1 - include redhat branding for dashboard (for a7a380a) * Mon Jul 22 2019 Thomas Serlin - 2:14.2.2-16.ga7a380a - git snapshot (a7a380a) * Fri Jul 19 2019 Timothy Asir - 14.2.1-622.g248994d.1 - include redhat branding for dashboard (for 248994d) * Mon Jul 15 2019 Ken Dreyer - 2:14.2.1-622.g248994d - git snapshot (248994d) * Mon Jul 8 2019 Ken Dreyer - 2:14.2.1-615.ga2fbaea - git snapshot (a2fbaea) * Fri Jul 5 2019 Timothy Asir - 2:14.2.1-602.g51abe8f.1 - include redhat branding for dashboard * Mon Jul 1 2019 Ken Dreyer - 2:14.2.1-602.g51abe8f - git snapshot (51abe8f)