At the moment crimson offers only a partial and buggy
support for ProtocolV1. When it enters the production,
V1 will be long obsolete, so spending time on improving
it doesn't seem to be a sound investment while offering
half-baked feature can be worse that lacking it entirely.
Alfonso Martínez [Wed, 24 Feb 2021 07:20:53 +0000 (08:20 +0100)]
mgr/dashboard: select any object gateway on local cluster.
Dashboard backend settings:
- Refactoring: now accepting more than 1 type of value.
- RGW_API_ACCESS_KEY & RGW_API_SECRET_KEY accept string (backward compatibility: legacy behavior) as well as dictionary of strings for connecting multiple daemons.
- Ease of use: deprecated: mgr/dashboard/RGW_API_USER_ID: not useful anymore (kept for backward compatibility).
UI/UX:
- Created context component (to be shown only on rgw-related routes) for selecting operating daemon.
- Daemon selector only shown if there is more than 1 daemon running on a local cluster (to reduce cognitive load).
Fixes: https://tracker.ceph.com/issues/47375 Signed-off-by: Alfonso Martínez <almartin@redhat.com>
Zac Dover [Wed, 24 Feb 2021 03:41:50 +0000 (13:41 +1000)]
doc/dev: s/getting tests r.../getting test r...
s/getting tests results/getting test results/
This commit changes a title so that it is grammatically
correct. The adjective "test" now properly modifies the
noun "results". Another way of thinking of this is that
the complex noun "test results" has had a typo in it
corrected.
Jason Dillaman [Mon, 22 Feb 2021 15:23:01 +0000 (10:23 -0500)]
librbd: permit disabling QCOW migration format support
Downstream Red Hat products do not support the older QCOW format. This
will allow the support for the legacy QCOW format to be disabled for the
new RBD import-only migration support.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Lucian Petrut [Wed, 17 Feb 2021 13:27:11 +0000 (13:27 +0000)]
rbd: fix rbd-wnbd device status
The "rbd-wnbd show" command will always report the device status
as "inactive". This patch adds the missing check, similar to the
one used by the "list" command.
Lucian Petrut [Wed, 17 Feb 2021 12:49:02 +0000 (12:49 +0000)]
common: fix win32 event log source
The Windows "get_process_name" function uses the input buffer
to store the entire executable path, while the caller only
expects the filename.
The "get_process_name_cpp" function is using an insufficient
buffer, for which reason it will return "(unknown)" when the
executable path exceeds 32 characters.
Windows event log entries have the wrong source because of this.
We'll update "get_process_name" to use a separate buffer for the
full executable path and avoid requesting a larger buffer than
actually needed.
Josh Durgin [Tue, 23 Feb 2021 00:34:41 +0000 (00:34 +0000)]
qa: deprioritize master and upgrade runs
Keep pacific at high for now. Since teuthology-dispatcher locks nodes
before starting jobs, the upgrade jobs no longer need high priority to
run on more machines than average.
Patrick Donnelly [Mon, 22 Feb 2021 18:35:32 +0000 (10:35 -0800)]
Merge PR #39138 into master
* refs/pull/39138/head:
qa: valgrind test for cephfs-mirror daemon
cephfs-mirror: use preforker for daemonizing
test: adjust sleep time to account for valgrind runs
cephfs-mirror: gracefully shutdown threads, timers, etc..
cephfs-mirror: call ceph_release() to cleanup mount alloc
cephfs-mirror: shutdown filesystem/cluster connections on shutdown
cephfs-mirror: set init failed flag on FSMirror::init() failure
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
Ilya Dryomov [Fri, 19 Feb 2021 15:47:17 +0000 (16:47 +0100)]
krbd: make sure the device node is accessible after the mapping
We have always assumed this to be the case and users' scripts and
orchestration tools have grown to depend on this. Let's add some
enforcement, prompted by [1]:
"I am running my Kubernetes worker node inside of an LXC container
which doesn't benefit from the device node created by the kernel, so
I'm using udev to create the /dev/rbd* device nodes inside of the LXC
container."
which, through the unfortunate interaction with ceph-csi rbd plugin,
results in data loss for "volumeMode: Filesystem" PVs because it ends
up recreating the filesystem every time the PV is attached to the pod:
"When deleting the pod and re-creating it, I can see that the RBD
image is indeed being reformatted. This seems to be because when
blkid is being run to check if the image is formatted, the /dev/rbd*
device has not yet been created by udev. By the time the code gets
down to running mkfs, the device is there and the damage is done."
Sage Weil [Sun, 21 Feb 2021 16:51:54 +0000 (11:51 -0500)]
Merge PR #39328 into master
* refs/pull/39328/head:
tools/rados: replace omap_key_valid with std::optional.
tools/rados: replace omap_key_pretty with prettify().
tools/rados: add support for binary object names.
Reviewed-by: J. Eric Ivancich <ivancich@redhat.com>
Sage Weil [Sun, 21 Feb 2021 16:50:59 +0000 (11:50 -0500)]
Merge PR #39460 into master
* refs/pull/39460/head:
msg/async/dpdk: be compatible with DPDK 19.11
common/Tub: remove Tub.h
cmake: use NUMA for package name in FindNUMA.cmake
msg/async/dpdk: define MARKER in .hh
msg/async/dpdk: use optional<> instead of Tub<>
compressor/lz4: use optional<> instead of Tub<>
compressor/lz4: use range-based loop
Kotresh HR [Fri, 19 Feb 2021 11:27:23 +0000 (16:57 +0530)]
mgr/volumes: Bump up AuthMetadataManager's version
With ceph_volume_client and mgr-volumes co-existing
for sometime, the version of both needs to be same.
The ceph_volume_client version <=5 can't decode
'subvolumes' key in auth-metadata file. Hence to
handle version in-compatibility, the version of
ceph_volume_client is bumped up to 6 and the same
needs to be done in mgr-volume's AuthMetadataManager
Kefu Chai [Sat, 20 Feb 2021 08:49:19 +0000 (16:49 +0800)]
crimson/net: throw read_eof if short read
as per the implementation and the document of input_stream::read_exactly():
/// stream and returns them. If the end of stream is reached before n
/// bytes were read, fewer than n bytes will be returned - so despite
/// the method's name, the caller must not assume the returned buffer
/// will always contain exactly n bytes.
%cmake sets BUILD_SHARED_LIBS=ON. so quite a few internal libraries
defined using add_library() are now compiled into shared libraries which
are not installed or packagesd. when we are installing the rpm packages
compiled with this option, rpm compiles because the linked libraries are
missing, for instance, `libgmock.so.1.10.0` was compiled as a static
library before da7030db79c5dbd480040eb249a76638caf52707, and was
included by the test executables. but after that change it's compiled
as a shared library.
so we need to either package the linked shared libraries or just link
against them statically. at this moment, the latter approach is simpler,
albeit larger size of exectuable and dbg symbols.
Jason Dillaman [Sat, 20 Feb 2021 02:38:49 +0000 (21:38 -0500)]
cmake: libneoradostest-support should be static
Some builds seem to be creating a libneoradostest-support.so dynamic
library instead, which results in unresolved dependencies when installing
ceph-test.
See: https://tracker.ceph.com/issues/38611 Signed-off-by: Jason Dillaman <dillaman@redhat.com>