]> git.apps.os.sepia.ceph.com Git - ceph.git/log
ceph.git
6 years agoosd/OSDMap: more improvements to upmap
xie xingguo [Sat, 26 Jan 2019 10:03:15 +0000 (18:03 +0800)]
osd/OSDMap: more improvements to upmap

- add ability of appending a 2nd, 3rd, etc... pair to existing upmaps
  when possible, rather than just continuing to the next PG
- handle the underfull case: we can rm-pg-upmap-items if there exist
  any upmaps which remapped a PG out from an underfull OSD

See-also: http://tracker.ceph.com/issues/37940
Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
(cherry picked from commit a7d2adf4283cc11ed567b0ad07c4076a50d7d2a0)

Conflicts:
- various option changes since luminous
- s/assert/ceph_assert/
        - s/conf./conf->/

6 years agoMerge pull request #26194 from pdvian/wip-38078-mimic
Yuri Weinstein [Fri, 3 May 2019 21:55:46 +0000 (14:55 -0700)]
Merge pull request #26194 from pdvian/wip-38078-mimic

mimic: multisite: bucket full sync does not handle delete markers

Reviewed-by: Casey Bodley <cbodley@redhat.com>
6 years agoMerge pull request #26553 from pdvian/wip-38396-mimic
Yuri Weinstein [Fri, 3 May 2019 21:55:15 +0000 (14:55 -0700)]
Merge pull request #26553 from pdvian/wip-38396-mimic

mimic: rgw: when exclusive lock fails due existing lock, log add'l info

Reviewed-by: J. Eric Ivancich <ivancich@redhat.com>
6 years agoMerge pull request #26615 from pdvian/wip-38413-mimic
Yuri Weinstein [Fri, 3 May 2019 21:54:42 +0000 (14:54 -0700)]
Merge pull request #26615 from pdvian/wip-38413-mimic

mimic: multisite: rgw_data_sync_status json decode failure breaks automated datalog trimming

Reviewed-by: Casey Bodley <cbodley@redhat.com>
6 years agoMerge pull request #27122 from smithfarm/wip-38886-mimic
Yuri Weinstein [Fri, 3 May 2019 21:54:15 +0000 (14:54 -0700)]
Merge pull request #27122 from smithfarm/wip-38886-mimic

mimic: rgw: GetBucketCORS API returns Not Found error code when CORS configuration does not exist

Reviewed-by: Casey Bodley <cbodley@redhat.com>
6 years agoMerge pull request #27304 from pdvian/wip-38907-mimic
Yuri Weinstein [Fri, 3 May 2019 21:53:50 +0000 (14:53 -0700)]
Merge pull request #27304 from pdvian/wip-38907-mimic

mimic: rgw: fix read not exists null version return wrong

Reviewed-by: Casey Bodley <cbodley@redhat.com>
6 years agoMerge pull request #27335 from liaoxin01/mimic
Yuri Weinstein [Fri, 3 May 2019 21:53:00 +0000 (14:53 -0700)]
Merge pull request #27335 from liaoxin01/mimic

mimic: rgw: fix bug of apply default quota, for this create new a user may core using beast

Reviewed-by: Casey Bodley <cbodley@redhat.com>
6 years agoMerge pull request #27354 from pdvian/wip-38919-mimic
Yuri Weinstein [Fri, 3 May 2019 21:52:31 +0000 (14:52 -0700)]
Merge pull request #27354 from pdvian/wip-38919-mimic

mimic: rgw: don't crash on missing /etc/mime.types

Reviewed-by: Casey Bodley <cbodley@redhat.com>
6 years agoMerge pull request #26792 from cbodley/wip-38609
Yuri Weinstein [Fri, 3 May 2019 21:51:58 +0000 (14:51 -0700)]
Merge pull request #26792 from cbodley/wip-38609

mimic: qa/rgw: reduce number of multisite log shards

Reviewed-by: Ali Maredia <amaredia@redhat.com>
6 years agoMerge pull request #26670 from tspmelo/wip-npm-update-mimic
Yuri Weinstein [Fri, 3 May 2019 19:53:20 +0000 (12:53 -0700)]
Merge pull request #26670 from tspmelo/wip-npm-update-mimic

mimic: mgr/dashboard: Update npm packages

Reviewed-by: Lenz Grimmer <lgrimmer@suse.com>
Reviewed-by: Laura Paduano <lpaduano@suse.com>
6 years agoMerge pull request #27638 from tchaikov/mimic-39132
Yuri Weinstein [Fri, 3 May 2019 19:51:47 +0000 (12:51 -0700)]
Merge pull request #27638 from tchaikov/mimic-39132

mimic: mgr: enable inter-module calls

Reviewed-by: Sebastian Wagner <sebastian.wagner@suse.com>
6 years agoMerge pull request #27451 from badone/wip-mimic-spdk-rte_table_hash_cuckoo_create...
Brad Hubbard [Thu, 2 May 2019 22:31:26 +0000 (08:31 +1000)]
Merge pull request #27451 from badone/wip-mimic-spdk-rte_table_hash_cuckoo_create-build-error

mimic: spdk: update to latest spdk-18.05 branch

Reviewed-by: Kefu Chai <kchai@redhat.com>
6 years agoMerge pull request #26495 from pdvian/wip-38337-mimic
Yuri Weinstein [Thu, 2 May 2019 22:21:08 +0000 (15:21 -0700)]
Merge pull request #26495 from pdvian/wip-38337-mimic

mimic: test: run-standalone.sh set local library location so mgr can find li…

Reviewed-by: Neha Ojha <nojha@redhat.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
Reviewed-by: David Zafman <dzafman@redhat.com>
6 years agoMerge pull request #26777 from pdvian/wip-38532-mimic
Yuri Weinstein [Thu, 2 May 2019 22:20:15 +0000 (15:20 -0700)]
Merge pull request #26777 from pdvian/wip-38532-mimic

mimic: mgr/PyModule: put mgr_module_path first in sys.path

Reviewed-by: Tim Serong <tserong@suse.com>
6 years agoMerge pull request #26811 from ashishkumsingh/wip-38565-mimic
Yuri Weinstein [Thu, 2 May 2019 22:18:35 +0000 (15:18 -0700)]
Merge pull request #26811 from ashishkumsingh/wip-38565-mimic

mimic: run-standalone.sh: Need double-quotes to handle | in core_pattern on all distributions

Reviewed-by: David Zafman <dzafman@redhat.com>
Reviewed-by: Nathan Cutler <ncutler@suse.com>
6 years agoMerge pull request #27860 from ashishkumsingh/wip-39464-mimic
Yuri Weinstein [Thu, 2 May 2019 22:16:44 +0000 (15:16 -0700)]
Merge pull request #27860 from ashishkumsingh/wip-39464-mimic

mimic: msg: output peer address when detecting bad CRCs

Reviewed-by: Greg Farnum <gfarnum@redhat.com>
6 years agoMerge pull request #26709 from pdvian/wip-38507-mimic
Yuri Weinstein [Thu, 2 May 2019 22:15:11 +0000 (15:15 -0700)]
Merge pull request #26709 from pdvian/wip-38507-mimic

mimic: osd/PrimaryLogPG: handle object !exists in handle_watch_timeout

Reviewed-by: xie xingguo <xie.xingguo@zte.com.cn>
6 years agoMerge pull request #26760 from pdvian/wip-38511-mimic
Yuri Weinstein [Thu, 2 May 2019 22:14:30 +0000 (15:14 -0700)]
Merge pull request #26760 from pdvian/wip-38511-mimic

mimic: CLI: ability to change file ownership

Reviewed-by: Neha Ojha <nojha@redhat.com>
6 years agoMerge pull request #26810 from ashishkumsingh/wip-38587-mimic
Yuri Weinstein [Thu, 2 May 2019 22:09:59 +0000 (15:09 -0700)]
Merge pull request #26810 from ashishkumsingh/wip-38587-mimic

mimic: common/str_map: fix trim() on empty string

Reviewed-by: Kefu Chai <kchai@redhat.com>
Reviewed-by: Brad Hubbard <bhubbard@redhat.com>
Reviewed-by: Neha Ojha <nojha@redhat.com>
6 years agoMerge pull request #26833 from pdvian/wip-38561-mimic
Yuri Weinstein [Thu, 2 May 2019 22:09:10 +0000 (15:09 -0700)]
Merge pull request #26833 from pdvian/wip-38561-mimic

mimic: mgr/BaseMgrModule: drop GIL for ceph_send_command

Reviewed-by: Tim Serong <tserong@suse.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
Reviewed-by: Sage Weil <sage@redhat.com>
6 years agoMerge pull request #26862 from ashishkumsingh/wip-38646-mimic
Yuri Weinstein [Thu, 2 May 2019 22:07:58 +0000 (15:07 -0700)]
Merge pull request #26862 from ashishkumsingh/wip-38646-mimic

mimic: osd: fixup OpTracker destruct assert, waiting_for_osdmap take ref      with OpRequest

Reviewed-by: xie xingguo <xie.xingguo@zte.com.cn>
6 years agoMerge pull request #27078 from yuriw/wip-yuriw-clients-mimic_2
Yuri Weinstein [Wed, 1 May 2019 23:39:23 +0000 (16:39 -0700)]
Merge pull request #27078 from yuriw/wip-yuriw-clients-mimic_2

qa/tests: initial checkin for `client-upgrade-mimic` suite

6 years agoqa/tests: removed conflicting tests rbd_api_tests and rbd_import_export 27078/head
Yuri Weinstein [Mon, 29 Apr 2019 21:34:01 +0000 (14:34 -0700)]
qa/tests: removed conflicting tests rbd_api_tests and rbd_import_export
and added devstack-tempest-gate.yaml instead

Signed-off-by: Yuri Weinstein <yweinste@redhat.com>
6 years agoMerge pull request #27447 from ifed01/wip-ifed-fix-39144
Yuri Weinstein [Wed, 1 May 2019 15:57:44 +0000 (08:57 -0700)]
Merge pull request #27447 from ifed01/wip-ifed-fix-39144

mimic: os/bluestore_tool: bluefs-bdev-expand: indicate bypassed for main dev

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
6 years agoMerge pull request #27558 from tspmelo/wip-26986-mimic
Yuri Weinstein [Wed, 1 May 2019 15:57:19 +0000 (08:57 -0700)]
Merge pull request #27558 from tspmelo/wip-26986-mimic

mimic: mgr/dashboard: Use human readable units on the OSD I/O graphs

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
6 years agoMerge pull request #27587 from pdvian/wip-38972-mimic
Yuri Weinstein [Wed, 1 May 2019 15:56:56 +0000 (08:56 -0700)]
Merge pull request #27587 from pdvian/wip-38972-mimic

mimic: osd: process_copy_chunk remove obc ref before pg unlock

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
6 years agoMerge pull request #27366 from ifed01/wip-ifed-fix-alloc-overflow-mimic
Yuri Weinstein [Wed, 1 May 2019 15:52:06 +0000 (08:52 -0700)]
Merge pull request #27366 from ifed01/wip-ifed-fix-alloc-overflow-mimic

mimic: os/bluestore: fix length overflow.

Reviewed-by: Jianpeng Ma <jianpeng.ma@intel.com>
Reviewed-by: Neha Ojha <nojha@redhat.com>
Reviewed-by: Sage Weil <sage@redhat.com>
6 years agoMerge pull request #27570 from ifed01/wip-ifed-fix-21312-mimic
Yuri Weinstein [Wed, 1 May 2019 15:50:11 +0000 (08:50 -0700)]
Merge pull request #27570 from ifed01/wip-ifed-fix-21312-mimic

mimic: os/bluestore: call fault_range properly prior to looking for blob to …

Reviewed-by: xie xingguo <xie.xingguo@zte.com.cn>
6 years agoMerge pull request #27629 from pdvian/wip-39044-mimic
Yuri Weinstein [Wed, 1 May 2019 15:48:35 +0000 (08:48 -0700)]
Merge pull request #27629 from pdvian/wip-39044-mimic

mimic: osd/PGLog: preserve original_crt to check rollbackability

Reviewed-by: Neha Ojha <nojha@redhat.com>
Reviewed-by: Samuel Just <sjust@redhat.com>
6 years agoMerge pull request #27635 from smithfarm/wip-39342-mimic
Yuri Weinstein [Wed, 1 May 2019 15:47:39 +0000 (08:47 -0700)]
Merge pull request #27635 from smithfarm/wip-39342-mimic

mimic: ceph-objectstore-tool: rename dump-import to dump-export

Reviewed-by: David Zafman <dzafman@redhat.com>
6 years agoMerge pull request #27647 from smithfarm/wip-39353-mimic
Yuri Weinstein [Wed, 1 May 2019 15:46:50 +0000 (08:46 -0700)]
Merge pull request #27647 from smithfarm/wip-39353-mimic

mimic: mon/OSDMonitor: further improve prepare_command_pool_set E2BIG error message

Reviewed-by: Brad Hubbard <bhubbard@redhat.com>
6 years agoMerge pull request #27738 from ifed01/wip-ifed-fix-39445
Yuri Weinstein [Wed, 1 May 2019 15:46:11 +0000 (08:46 -0700)]
Merge pull request #27738 from ifed01/wip-ifed-fix-39445

mimic: os/bluestore: fix out-of-bound access in bmap allocator.

Reviewed-by: Sage Weil <sage@redhat.com>
6 years agoMerge pull request #27745 from ashishkumsingh/wip-39433-mimic
Yuri Weinstein [Wed, 1 May 2019 15:45:22 +0000 (08:45 -0700)]
Merge pull request #27745 from ashishkumsingh/wip-39433-mimic

mimic: osd/PG: discover missing objects when an OSD peers and PG is degraded

Reviewed-by: Neha Ojha <nojha@redhat.com>
6 years agoMerge pull request #27747 from s0nea/wip-39347-mimic
Yuri Weinstein [Wed, 1 May 2019 15:44:31 +0000 (08:44 -0700)]
Merge pull request #27747 from s0nea/wip-39347-mimic

mimic: mgr/dashboard: Manager should complain about wrong dashboard certificate

Reviewed-by: Volker Theile <vtheile@suse.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
6 years agoMerge pull request #27845 from mykaul/patch-1
Kefu Chai [Wed, 1 May 2019 04:56:14 +0000 (12:56 +0800)]
Merge pull request #27845 from mykaul/patch-1

doc: Update bluestore config docs - fix typo (as -> has)

Reviewed-by: Igor Fedotov <ifedotov@suse.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
6 years agodoc/rados: Update bluestore config - fix typo 27845/head
Yaniv Kaul [Mon, 29 Apr 2019 09:35:28 +0000 (12:35 +0300)]
doc/rados: Update bluestore config - fix typo

as -> has

Signed-off-by: Yaniv Kaul <ykaul@redhat.com>
6 years agomgr/dashboard: Add package-lock.json and use "npm ci" 26670/head
Tiago Melo [Thu, 7 Mar 2019 23:22:13 +0000 (22:22 -0100)]
mgr/dashboard: Add package-lock.json and use "npm ci"

This will make sure that in the future we always install the same version
of every npm package.

Since we don't use the same npm packages anymore, it's not possible to backport
this changes from master to mimic.

Fixes: http://tracker.ceph.com/issues/39080
Signed-off-by: Tiago Melo <tmelo@suse.com>
6 years agomgr/dashboard: Update npm packages
Tiago Melo [Wed, 27 Feb 2019 11:39:52 +0000 (11:39 +0000)]
mgr/dashboard: Update npm packages

Fix some npm packages vulnerabilities.

Since we don't use the same npm packages anymore, it's not possible to backport
this changes from master to mimic.

Fixes: http://tracker.ceph.com/issues/39080
Signed-off-by: Tiago Melo <tmelo@suse.com>
6 years agoMerge pull request #26643 from pdvian/wip-38448-mimic
Yuri Weinstein [Mon, 29 Apr 2019 16:43:22 +0000 (09:43 -0700)]
Merge pull request #26643 from pdvian/wip-38448-mimic

mimic: MDSMonitor: do not assign standby-replay when degraded

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
Reviewed-by: Venky Shankar <vshankar@redhat.com>
6 years agoMerge pull request #26804 from pdvian/wip-38542-mimic
Yuri Weinstein [Mon, 29 Apr 2019 16:42:50 +0000 (09:42 -0700)]
Merge pull request #26804 from pdvian/wip-38542-mimic

mimic: qa: unmount clients before deleting fs

Reviewed-by: Venky Shankar <vshankar@redhat.com>
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
6 years agoMerge pull request #26807 from pdvian/wip-38544-mimic
Yuri Weinstein [Mon, 29 Apr 2019 16:42:19 +0000 (09:42 -0700)]
Merge pull request #26807 from pdvian/wip-38544-mimic

mimic: qa: remove libcephfs-java tests

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
Reviewed-by: Venky Shankar <vshankar@redhat.com>
6 years agoMerge pull request #26963 from ashishkumsingh/wip-38734-mimic
Yuri Weinstein [Mon, 29 Apr 2019 16:41:46 +0000 (09:41 -0700)]
Merge pull request #26963 from ashishkumsingh/wip-38734-mimic

mimic: qa: extend MDS heartbeat grace for valgrind

Reviewed-by: Venky Shankar <vshankar@redhat.com>
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
6 years agoMerge pull request #27023 from pdvian/wip-38670-mimic
Yuri Weinstein [Mon, 29 Apr 2019 16:41:12 +0000 (09:41 -0700)]
Merge pull request #27023 from pdvian/wip-38670-mimic

mimic: mds: wait for client to release shared cap when re-acquiring xlock

Reviewed-by: Venky Shankar <vshankar@redhat.com>
Reviewed-by: Yan, Zheng <zyan@redhat.com>
6 years agoMerge pull request #27058 from pdvian/wip-38689-mimic
Yuri Weinstein [Mon, 29 Apr 2019 16:40:36 +0000 (09:40 -0700)]
Merge pull request #27058 from pdvian/wip-38689-mimic

mimic: mds: inode filtering on 'dump cache' asok

Reviewed-by: Venky Shankar <vshankar@redhat.com>
6 years agomsg: output peer address when detecting bad CRCs 27860/head
Greg Farnum [Wed, 17 Apr 2019 22:27:22 +0000 (15:27 -0700)]
msg: output peer address when detecting bad CRCs

Fixes: http://tracker.ceph.com/issues/39367
Signed-off-by: Greg Farnum <gfarnum@redhat.com>
(cherry picked from commit 19679231fc32daa405cc060847a02ac1cfd51300)

6 years agocmake: update BuildSPDK for spdk-18.05 27451/head
Kefu Chai [Thu, 14 Jun 2018 01:32:08 +0000 (09:32 +0800)]
cmake: update BuildSPDK for spdk-18.05

in spdk v18.05, libuuid is linked by libspdk_util.a, in which,
it is used by lib/util/uuid.c. and libspdk_vol.a uses the wrapper
function exposed by libspdk_util.a, so update the CMakefile script to
reflect the change.

Signed-off-by: Kefu Chai <kchai@redhat.com>
(cherry picked from commit c2026b7473173e021c1f5ee072828538ea5c5d61)

6 years agomgr/dashboard: .pylintrc: ignore too-many-statements check 27747/head
Ricardo Dias [Fri, 15 Jun 2018 08:04:11 +0000 (09:04 +0100)]
mgr/dashboard: .pylintrc: ignore too-many-statements check

Signed-off-by: Ricardo Dias <rdias@suse.com>
(cherry picked from commit c3465e03ad11d8c39b61a221aaee78762bc9465c)

6 years agoosd/PG: discover missing objects when an OSD peers and PG is degraded 27745/head
Jonas Jelten [Mon, 1 Apr 2019 10:28:09 +0000 (12:28 +0200)]
osd/PG: discover missing objects when an OSD peers and PG is degraded

When a PG is remapped from OSD `a` to OSD `b`, the objects are
backfilled. When OSD `a` is restarted, objects become degraded
as `a` is no longer queried or considered as a backfill source.

As the PG is degraded, `PG::discover_all_missing` is not called
when a candidate OSD peers with the primary: The PG is already
active, thus `PG::activate` (and in turn missing object discovery)
is not called. Discovery is also not initiated from
`PG::RecoveryState::Active::react(const MNotifyRec& notevt)`
as there are no unfound objects.

This patch adds a call to `discover_all_missing` when
when an OSD sends its `MNotifyRec` message and the PG is degraded.

Fixes: https://tracker.ceph.com/issues/37439
Signed-off-by: Jonas Jelten <jj@stusta.net>
(cherry picked from commit e152d092f7b7839bb27ac7a5cf1c95f4d3752b32)

6 years agomgr/dashboard: Manager should complain about wrong dashboard certificate
Volker Theile [Mon, 18 Mar 2019 16:00:09 +0000 (17:00 +0100)]
mgr/dashboard: Manager should complain about wrong dashboard certificate

Fixes: https://tracker.ceph.com/issues/24453
Signed-off-by: Volker Theile <vtheile@suse.com>
(cherry picked from commit a9ba5ba152cd54c3b4c94f5627cc85239906fe67)

6 years agoos/bluestore: fix out-of-bound access in bmap allocator. 27738/head
Igor Fedotov [Fri, 19 Apr 2019 12:43:07 +0000 (15:43 +0300)]
os/bluestore: fix out-of-bound access in bmap allocator.

Fixes: https://tracker.ceph.com/issues/39334
Signed-off-by: Igor Fedotov <ifedotov@suse.com>
(cherry picked from commit b0d2411c9c48b49fff827841c5ec6b66533d9c58)

 Conflicts:
src/os/bluestore/fastbmap_allocator_impl.h

6 years agoos/bluestore_tool: bluefs-bdev-expand: indicate bypassed for main dev 27447/head
Igor Fedotov [Mon, 8 Apr 2019 18:54:25 +0000 (21:54 +0300)]
os/bluestore_tool: bluefs-bdev-expand: indicate bypassed for main dev

Pre-nautilis releases are unable to expand main device but they do not
 report about that hence user thinks expansion succeeds. Which is confusing.

Fixes: https://tracker.ceph.com/issues/39144
Signed-off-by: Igor Fedotov <ifedotov@suse.com>
6 years agoMerge pull request #26829 from pdvian/wip-38546-mimic
Nathan Cutler [Tue, 23 Apr 2019 15:02:00 +0000 (17:02 +0200)]
Merge pull request #26829 from pdvian/wip-38546-mimic

mimic: doc: updated reference link for log based PG

Reviewed-by: Neha Ojha <nojha@redhat.com>
6 years agoMerge pull request #27606 from ifed01/wip-ifed-fix-alloc-ut
Nathan Cutler [Fri, 19 Apr 2019 11:02:38 +0000 (13:02 +0200)]
Merge pull request #27606 from ifed01/wip-ifed-fix-alloc-ut

mimic: os/bluestore: fix improper backport for p2 macros for bmap allocator

Reviewed-by: Xie Xingguo <xie.xingguo@zte.com.cn>
Reviewed-by: Nathan Cutler <ncutler@suse.com>
6 years agoos/bluestore: fix improper backport for p2 macros for bmap alocator 27606/head
Igor Fedotov [Tue, 16 Apr 2019 11:28:43 +0000 (14:28 +0300)]
os/bluestore: fix improper backport for p2 macros for bmap alocator

Fixes: 3244c871f36ee22ee826a96f30e82a8d05c9170c
This caused TestAllocatorLevel01.test_4G_alloc_bugN to fail in mimic.

Signed-off-by: Igor Fedotov <ifedotov@suse.com>
6 years agoMerge pull request #27228 from tchaikov/mimic-36737
Yuri Weinstein [Wed, 17 Apr 2019 23:33:34 +0000 (16:33 -0700)]
Merge pull request #27228 from tchaikov/mimic-36737

mimic: ceph-disk/tests: use random unused port for CEPH_MON

Reviewed-by: Yuri Weinstein <yweinste@redhat.com>
Reviewed-by: Alfredo Deza <adeza@redhat.com>
6 years agoMerge pull request #27259 from pdvian/wip-38872-mimic
Yuri Weinstein [Wed, 17 Apr 2019 23:32:35 +0000 (16:32 -0700)]
Merge pull request #27259 from pdvian/wip-38872-mimic

mimic: pybind/rados: fixed Python3 string conversion issue on get_fsid

Reviewed-by: Kefu Chai <kchai@redhat.com>
6 years agomon/OSDMonitor: further improve prepare_command_pool_set E2BIG error message 27647/head
Nathan Cutler [Wed, 17 Apr 2019 12:46:06 +0000 (14:46 +0200)]
mon/OSDMonitor: further improve prepare_command_pool_set E2BIG error message

d2c0fe9b5319a4404965c40ec92e291802ef30f6 improved this error message,
but it can be improved further by suggesting that the pg_num be increased in
smaller increments.

This commit is not cherry-picked from master because 4d3407ba93b2c15dd86aa7f97bd9f29c3508c60e
(merged for Nautilus) removed the error message in question.

Fixes: http://tracker.ceph.com/issues/39353
Signed-off-by: Nathan Cutler <ncutler@suse.com>
6 years agomgr: enable inter-module calls 27638/head
John Spray [Thu, 14 Dec 2017 11:24:18 +0000 (06:24 -0500)]
mgr: enable inter-module calls

This is being done by passing native CPython objects
back and forth.  It's safe because sub-interpreters in CPython
share memory allocation infrastructure and share the GIL.

With a view to PEP554, we limit inter-interpreter calls
to pickleable objects, so that this may be implemented
using byte-arrays in future.

This infrastructure should enable:
 - the dashboard to display the status of other modules, for
   example the set of progress indicators from `progress`
 - dashboard and restful to share an underlying long running
   job mechanism.

Signed-off-by: John Spray <john.spray@redhat.com>
(cherry picked from commit f02316adb4baf4dceaab79cc0ef4c2acdb544f3e)

6 years agoceph-objectstore-tool: Rename dump-import to dump-export 27635/head
David Zafman [Fri, 12 Apr 2019 20:09:43 +0000 (13:09 -0700)]
ceph-objectstore-tool: Rename dump-import to dump-export

If user specifies dump-import it will still work, but isn't
in the usage that way.

Fixes: http://tracker.ceph.com/issues/39284
Signed-off-by: David Zafman <dzafman@redhat.com>
(cherry picked from commit 96861a8116242bdef487087348c24c97723dfafc)

Conflicts:
qa/standalone/special/ceph_objectstore_tool.py
src/tools/ceph_objectstore_tool.cc
- trivial resolution

6 years agoosd/PGLog: preserve original_crt in merge_log() 27629/head
Neha Ojha [Mon, 25 Mar 2019 21:48:04 +0000 (14:48 -0700)]
osd/PGLog: preserve original_crt in merge_log()

Fixes: https://tracker.ceph.com/issues/21174
Signed-off-by: Neha Ojha <nojha@redhat.com>
(cherry picked from commit 47215a5c0e1544c9080fda1eee8f04c9890eea42)

6 years agoosd/PGLog: preserve original_crt in proc_replica_log()
Neha Ojha [Tue, 12 Feb 2019 01:21:53 +0000 (17:21 -0800)]
osd/PGLog: preserve original_crt in proc_replica_log()

This is to prevent rolling back further than deleted object version.

Signed-off-by: Neha Ojha <nojha@redhat.com>
(cherry picked from commit cd25c1d79d189b4e0389927e7c20d75afd2661d9)

6 years agoosd/PGLog: should not rollback further than deleted object version
Neha Ojha [Wed, 6 Feb 2019 03:23:21 +0000 (19:23 -0800)]
osd/PGLog: should not rollback further than deleted object version

When a deleted object becomes a divergent entry in the pg log,
we should not be able to rollback to a version of the deleted
object that doesn't exist.

To avoid this, we need to preserve the original crt of the pg log,
before we update it in rewind_from_head() and use that to decide whether
we can rollback or not in _merge_object_divergent_entries().

Fixes: http://tracker.ceph.com/issues/36739
Signed-off-by: Neha Ojha <nojha@redhat.com>
(cherry picked from commit de18c592259816ad013ac82983cdec71bbfa51a0)

Conflicts:
src/osd/PGLog.h : Resolved in struct PGLog

6 years agomgr/dashboard: Use human readable units on the sparkline graphs 27558/head
Tiago Melo [Mon, 6 Aug 2018 10:32:02 +0000 (11:32 +0100)]
mgr/dashboard: Use human readable units on the sparkline graphs

Fixes: http://tracker.ceph.com/issues/25075
Signed-off-by: Tiago Melo <tmelo@suse.com>
(cherry picked from commit 6a8cdcef779a84a4610bbf78a87ec9e58f18465c)

6 years agoosd: process_copy_chunk remove obc ref before pg unlock 27587/head
Zengran Zhang [Mon, 25 Mar 2019 08:54:54 +0000 (16:54 +0800)]
osd: process_copy_chunk remove obc ref before pg unlock

drop the obc ref when pg locked is more safer, if not, on_change
may failed to clear it, and on_flushed may find leak.

Fixes: http://tracker.ceph.com/issues/38842
Signed-off-by: Kefu Chai kchai@redhat.com
Signed-off-by: Zengran Zhang <zhangzengran@sangfor.com.cn>
(cherry picked from commit 70874399da47411e1e07824ef50dd82c4ebb6922)

6 years agoos/bluestore: call fault_range properly prior to looking for blob to reuse 27570/head
Igor Fedotov [Mon, 8 Apr 2019 16:41:55 +0000 (19:41 +0300)]
os/bluestore: call fault_range properly prior to looking for blob to reuse

Fixes: https://tracker.ceph.com/issues/21312
Signed-off-by: Igor Fedotov <ifedotov@suse.com>
(cherry picked from commit e0a395ee2240d7565953a9bb0a1e5c336efe6336)

6 years agoMerge pull request #27284 from pdvian/wip-38904-mimic
Yuri Weinstein [Fri, 12 Apr 2019 20:23:44 +0000 (13:23 -0700)]
Merge pull request #27284 from pdvian/wip-38904-mimic

mimic: osd/PGLog.h: print olog_can_rollback_to before deciding to rollback

Reviewed-by: xie xingguo <xie.xingguo@zte.com.cn>
6 years agoMerge pull request #27298 from ifed01/wip-ifed-alloc-issues-mimic
Yuri Weinstein [Fri, 12 Apr 2019 20:23:14 +0000 (13:23 -0700)]
Merge pull request #27298 from ifed01/wip-ifed-alloc-issues-mimic

mimic: os/bluestore: bitmap allocator might fail to return contiguous chunk despite having enough space

Reviewed-by: Sage Weil <sage@redhat.com>
6 years agoMerge pull request #27318 from ifed01/wip-ifed-fix-p2-mimic
Yuri Weinstein [Fri, 12 Apr 2019 20:22:41 +0000 (13:22 -0700)]
Merge pull request #27318 from ifed01/wip-ifed-fix-p2-mimic

mimic: include/intarith: enforce the same type for p2*() arguments

Reviewed-by: Ilya Dryomov <idryomov@redhat.com>
6 years agoMerge pull request #27188 from smithfarm/wip-38901-mimic
Nathan Cutler [Fri, 12 Apr 2019 15:13:57 +0000 (17:13 +0200)]
Merge pull request #27188 from smithfarm/wip-38901-mimic

mimic: doc: Minor rados related documentation fixes

Reviewed-by: David Zafman <dzafman@redhat.com>
6 years agoMerge pull request #27476 from tchaikov/mimic-39164
Yuri Weinstein [Fri, 12 Apr 2019 15:00:16 +0000 (08:00 -0700)]
Merge pull request #27476 from tchaikov/mimic-39164

mimic: qa: install python36-{cephfs,rados} instead of python34-*

Reviewed-by: Yuri Weinstein <yweinste@redhat.com>
Reviewed-by: Boris Ranto <branto@redhat.com>
6 years agoinstall-deps.sh: install '*rpm-macros' 27476/head
Kefu Chai [Thu, 11 Apr 2019 16:11:42 +0000 (00:11 +0800)]
install-deps.sh: install '*rpm-macros'

so `yum-builddep` can have access to the latest macros for preparing the
build dependencies

Fixes: http://tracker.ceph.com/issues/39164
Signed-off-by: Kefu Chai <kchai@redhat.com>
(cherry picked from commit 087ea813a061a1d6858aeae57950e90965f4ae15)

6 years agoqa/tasks/ceph_deploy: install python3.6 instead of python3.4 for py3 tests
Kefu Chai [Thu, 11 Apr 2019 02:02:32 +0000 (10:02 +0800)]
qa/tasks/ceph_deploy: install python3.6 instead of python3.4 for py3 tests

EPEL7 has switched over to python3.6 as the main python3. and we started
packaging python bindings for python3.6 since
https://github.com/ceph/ceph-build/pull/1283

Signed-off-by: Kefu Chai <kchai@redhat.com>
(cherry picked from commit 42167b87909c20c9bb4d32bac02b1e01ec94af13)

6 years agoPendingReleaseNotes: note on python3.6 changes
Kefu Chai [Wed, 10 Apr 2019 10:08:04 +0000 (18:08 +0800)]
PendingReleaseNotes: note on python3.6 changes

Fixes: http://tracker.ceph.com/issues/39164
Signed-off-by: Kefu Chai <kchai@redhat.com>
(cherry picked from commit 77c5ee06311d610f9accd94edf14becdf5820542)

Conflicts: resolve conflict as the PendingReleaseNotes in master is
quite different than that of mimic

6 years agoqa: install python3-{cephfs,rados} instead of python34-*
Kefu Chai [Wed, 10 Apr 2019 03:06:35 +0000 (11:06 +0800)]
qa: install python3-{cephfs,rados} instead of python34-*

we install the latest python-rpm-macros on all builders since
https://github.com/ceph/ceph-build/pull/1283 . now that we started
building python36-* after that change, for testing the python3 packages on
CentOS/RHEL 7, we need to install python36-* instead of python34-*.

and after the change of 8ae1947, python36-* now "Provides" python3-*, we
can just install python3-* for fulfill the requirement for testing
python3 cephfs bindings.

Fixes: http://tracker.ceph.com/issues/39164
Signed-off-by: Kefu Chai <kchai@redhat.com>
Conflicts: this change is not cherry-picked from master, because,
  in master, we don't install python3 packages after 7e5c85b604.

6 years agorpm: add "Provides: python3-*" for python packages
Kefu Chai [Tue, 9 Apr 2019 15:22:57 +0000 (23:22 +0800)]
rpm: add "Provides: python3-*" for python packages

so user can install python3-rados, instead of python36-rados, without
specifying the minor version of python. also, we should not break our
teuthology tests with this naming scheme change. for instance, our
cephfs qa suite installs `python3-cephfs` for testing the `cephfs-shell`

Signed-off-by: Kefu Chai <kchai@redhat.com>
(cherry picked from commit 8ae1947728837bf4a4bcc8e9325aea69ff14b706)

6 years agorpm: always use 3 as the default python3_{pkgversion,version}
Kefu Chai [Tue, 9 Apr 2019 15:15:16 +0000 (23:15 +0800)]
rpm: always use 3 as the default python3_{pkgversion,version}

as we have the rpm macros installed in
https://github.com/ceph/ceph-build/pull/1283 .

Signed-off-by: Kefu Chai <kchai@redhat.com>
(cherry picked from commit 11f0b8d5a8951cb50437f5e87055f3b9405f4556)

6 years agorpm: use python 3.6 as the default python3
Kefu Chai [Sun, 7 Apr 2019 00:43:59 +0000 (08:43 +0800)]
rpm: use python 3.6 as the default python3

some of our centos7 jenkins builders are failing to build ceph master and
nautilus branches. because EPEL7 recently switched from python3.4 to
python3.6 as the native python3. see
https://lists.fedoraproject.org/archives/list/epel-announce@lists.fedoraproject.org/message/EGUMKAIMPK2UD5VSHXM53BH2MBDGDWMO/

and one of our BuildRequires, cmake3,
was offered by EPEL7. it also followed the python3.6 switch-over to
rebuild against python3.6. as a result, the cmake3-data-3.13.4-2.el7
started to depend on /usr/bin/python3.6, which is in turn offered by
python36 package. after installing python36 as a dependency of the
updated cmake3. but in cmake, we originally checks for the latest
python3 interpreter if WITH_PYTHON3 is enabled, that's why these
builders which happen to install these updated packages started to fail
when detecting the existence of python3.6 related build dependencies.

as a fix, in d1e83082,
python%{python3_pkgversion}-{devel,setuptools,Cython} are listed as
BuildRequires to reflect this change in EPEL7. before d1e83082, we
hardwired them to python34-*.

but as following analysis puts, there are cases where `yum-builddep`
is inconsistent with `rpmbuild`. as `yum-builddep` changes the how
`python3_pkgversion` and `python3_version` macros are expanded:

- none of the packages installed by `yum-builddep` installs the python3
  related rpm macros, so the system stays with whatever python3 it was
  using. in this case, `rpmbuild` won't complain, as the
  `python3_pkgversion` and `python_version` are consistent before and
  after `yum-builddep`.
- system has python3.4 installed before `yum-builddep`. but
  `yum-builddep` installed python3.6 and also the updated
  `python-rpm-macros` packages, which points `python3_version` and
  `python3_pkgversion` to 3.6 and 36 respectively. in this case,
  `rpmbuild` will complain, because when we run `yum-builddep`,
  `python3_version` was still "3.4".
- system does not have python3 installed before `yum-builddep`. so
  it was using python34 for preparing the "BuildRequires". but some
  of the packages installed by `yum-builddep` installs python36, and
  also the updated `python-rpm-macros` packages, which points
  `python3_version` and `python3_pkgversion` to 3.6 and 36 respectively.
  in this case, `rpmbuild` will complain, because the python36 related
  dependencies are missing. what the system has is python34
  dependencies.
- system does not have python3 installed before `yum-builddep`. so
  it was using python34 for preparing the "BuildRequires". but some
  of the packages installed by `yum-builddep` installs python34, and
  also the updated `python-rpm-macros` packages, which points
  `python3_version` and `python3_pkgversion` to 3.4 and 34 respectively.
  in this case, `rpmbuild` won't complain, as the
  `python3_pkgversion` and `python_version` are also consistent before and
  after `yum-builddep`.

as we cannot tell if the system has python3 or what the python3 version
the system has before `yum-builddep`, so what we can do is to ensure
`rpmbuild` has what it needs to build Ceph. so let's just stick with
python3.6.

Signed-off-by: Kefu Chai <kchai@redhat.com>
(cherry picked from commit 658ca2b0d79022edbc6cb1e488b243844e87bfbe)

6 years agorpm: use python3.4 on RHEL7 by default
Kefu Chai [Thu, 4 Apr 2019 18:46:40 +0000 (02:46 +0800)]
rpm: use python3.4 on RHEL7 by default

python3.4 is the native python3 before 7.6

Signed-off-by: Kefu Chai <kchai@redhat.com>
(cherry picked from commit cea9d18ced929a330f2299681ef93768449a05ed)

6 years agorpm: install python%{python3_pkgversion}-devel on el7
Kefu Chai [Fri, 5 Apr 2019 02:16:23 +0000 (10:16 +0800)]
rpm: install python%{python3_pkgversion}-devel on el7

as RHEL 7.7 support a native python3.6, we cannot hardwire to python3.4
on RHEL7/CentOS7 anymore.

Signed-off-by: Kefu Chai <kchai@redhat.com>
(cherry picked from commit d1e83082b42f784d83b2342bb953d3931a940173)

6 years agorpm: pass %{python3_version} to cmake
Kefu Chai [Thu, 4 Apr 2019 04:07:25 +0000 (12:07 +0800)]
rpm: pass %{python3_version} to cmake

to force cmake to use the python3 and python3 modules for building
python3 bindings

on the debian side, it's okay to continue using "-DWITH_PYTHON3=ON", as

- cmake does normalize "ON" to 3
- debian's cmake extension lives on /usr/lib/python3/dist-packages/
  not in a specific /usr/lib/python3.x/dist-packages directory

Signed-off-by: Kefu Chai <kchai@redhat.com>
(cherry picked from commit 7681a38ce51743a19ec5679d49b362f04e271ddb)

6 years agocmake: should PYTHON3_VERSION_STRING of libpython3
Kefu Chai [Fri, 5 Apr 2019 17:54:15 +0000 (01:54 +0800)]
cmake: should PYTHON3_VERSION_STRING of libpython3

and make sure the version matches exactly the requested one

in future, we should use FindPython.cmake

Signed-off-by: Kefu Chai <kchai@redhat.com>
(cherry picked from commit 7b15b682b1201929e0ba9efc332ebb8652be40a8)

6 years agocmake: check for MAJOR.MINOR version of python3
Boris Ranto [Thu, 4 Apr 2019 20:00:55 +0000 (22:00 +0200)]
cmake: check for MAJOR.MINOR version of python3

We can only check for MAJOR.MINOR version of python3 since
FindPython3Libs does not support checking for MAJOR.MINOR.PATCH version
of python3. We also need to make sure we use the PYTHON3 versions of
these variables.

This should fix a regression introduced by c961e00.

Signed-off-by: Boris Ranto <branto@redhat.com>
(cherry picked from commit 8b3f0d5bcce8a5c8ddff0a362fbccb05d18335f6)

6 years agocmake: check for libpython of the same version of interpreter
Kefu Chai [Thu, 4 Apr 2019 03:44:56 +0000 (11:44 +0800)]
cmake: check for libpython of the same version of interpreter

actually cython or python3-cython's dependencies should take care of it.
but we should at least get it right on our side if we check it.

Signed-off-by: Kefu Chai <kchai@redhat.com>
(cherry picked from commit c961e002d22ab7ceec20f1019f8c558ec9fcce6c)

6 years agocmake: use specified python3 version if any
Kefu Chai [Thu, 4 Apr 2019 03:37:00 +0000 (11:37 +0800)]
cmake: use specified python3 version if any

use might have multiple python3 installed, some of them has/have all
dependencies installed and is good enough for building Ceph. we should
not always use the latest python installed in the system and complain that
there is missing dependencies, even if user has installed all the
python3 dependencies for the older python3.

put in other words, if user only installs cython module for python3.4, but
she has both python3.6 and python3.4 in her system. we should not force
her to uninstall python3.6 for installing Ceph.

this change also aligns with MGR_PYTHON_VERSION. i am not applying the
same change to WITH_PYTHON2, because python2 is already stablized. and distros
are not likely to release new python2 releases.

Signed-off-by: Kefu Chai <kchai@redhat.com>
(cherry picked from commit d8c13e86048b7aac458f3eda101f9778e3d45dcf)

6 years agoMerge pull request #26901 from pdvian/wip-38566-mimic
David Zafman [Tue, 9 Apr 2019 20:03:54 +0000 (13:03 -0700)]
Merge pull request #26901 from pdvian/wip-38566-mimic

mimic: osd_recovery_priority is not documented (but osd_recovery_op_priority is)

Reviewed-by: David Zafman <dzafman@redhat.com>
6 years agospdk: update to latest spdk-18.05 branch
Kefu Chai [Wed, 13 Jun 2018 13:35:24 +0000 (21:35 +0800)]
spdk: update to latest spdk-18.05 branch

also bump dpdk to to spdk-18.05 branch. this should fix the build
failure on Fedora 28

Signed-off-by: Kefu Chai <kchai@redhat.com>
(cherry picked from commit 8098e549643cd98f527ee923d6e3ab804cfe5b65)

Conflicts:
src/spdk

6 years agoMerge pull request #24639 from dmick/wip-crashdump-mimic-backport
Sage Weil [Fri, 5 Apr 2019 22:31:05 +0000 (17:31 -0500)]
Merge pull request #24639 from dmick/wip-crashdump-mimic-backport

mimic: mgr: crashdump feature backport

6 years agoMerge pull request #26497 from k0ste/mimic_backports
Yuri Weinstein [Fri, 5 Apr 2019 20:52:37 +0000 (13:52 -0700)]
Merge pull request #26497 from k0ste/mimic_backports

mimic: mgr/balancer: blame if upmap won't actually work

Reviewed-by: Jan Fajerski <jfajerski@suse.com>
Reviewed-by: xie xingguo <xie.xingguo@zte.com.cn>
6 years agoMerge pull request #26537 from k0ste/mimic_backports3
Yuri Weinstein [Fri, 5 Apr 2019 20:51:33 +0000 (13:51 -0700)]
Merge pull request #26537 from k0ste/mimic_backports3

mimic: mgr/prometheus: add interface and objectstore to osd metadata

Reviewed-by: Jan Fajerski <jfajerski@suse.com>
6 years agoMerge pull request #26750 from noahdesu/cherrypy-ipv6-mimic
Yuri Weinstein [Fri, 5 Apr 2019 20:50:53 +0000 (13:50 -0700)]
Merge pull request #26750 from noahdesu/cherrypy-ipv6-mimic

mimic: mgr/dashboard: fix for using '::' on hosts without ipv6

Reviewed-by: Volker Theile <vtheile@suse.com>
6 years agoMerge pull request #27082 from pdvian/wip-38720-mimic
Yuri Weinstein [Fri, 5 Apr 2019 20:50:22 +0000 (13:50 -0700)]
Merge pull request #27082 from pdvian/wip-38720-mimic

mimic: crush/CrushWrapper: ensure crush_choose_arg_map.size == max_buckets

Reviewed-by: Sage Weil <sage@redhat.com>
6 years agoMerge pull request #27257 from pdvian/wip-38858-mimic
Yuri Weinstein [Fri, 5 Apr 2019 20:49:56 +0000 (13:49 -0700)]
Merge pull request #27257 from pdvian/wip-38858-mimic

mimic: crush: add root_bucket to identify underfull buckets

Reviewed-by: xie xingguo <xie.xingguo@zte.com.cn>
6 years agoos/bluestore: fix length overflow. 27366/head
Jianpeng Ma [Wed, 20 Jun 2018 12:22:38 +0000 (20:22 +0800)]
os/bluestore: fix length overflow.

In fact, length of 'struct interval_t' and 'struct bluestore_pextent_t'
is uint32_t. But len of AllocatorLevel02::_mark_allocated is uint64_t.
So it may cause data overflow which cause bug.

Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
(cherry picked from commit 40d13406b85ad1630e61296b0b4f2a85f228d2a4)

6 years agoMerge pull request #27351 from liewegas/wip-fix-osd-check-mimic
Sage Weil [Wed, 3 Apr 2019 20:51:13 +0000 (15:51 -0500)]
Merge pull request #27351 from liewegas/wip-fix-osd-check-mimic

mimic: mon/OSDMonitor: fix osd boot check

6 years agoMerge pull request #27039 from pdvian/wip-38684-mimic
Yuri Weinstein [Wed, 3 Apr 2019 20:07:26 +0000 (13:07 -0700)]
Merge pull request #27039 from pdvian/wip-38684-mimic

mimic: librbd: avoid aggregate-initializing IsWriteOpVisitor

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
6 years agoMerge pull request #27041 from pdvian/wip-38685-mimic
Yuri Weinstein [Wed, 3 Apr 2019 19:37:14 +0000 (12:37 -0700)]
Merge pull request #27041 from pdvian/wip-38685-mimic

mimic: librbd: avoid aggregate-initializing any static_visitor

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
6 years agoMerge pull request #26529 from pdvian/wip-38353-mimic
Yuri Weinstein [Wed, 3 Apr 2019 19:34:24 +0000 (12:34 -0700)]
Merge pull request #26529 from pdvian/wip-38353-mimic

mimic: rgw: check for non-existent bucket in RGWGetACLs

Reviewed-by: Adam Emerson <aemerson@redhat.com>
Reviewed-by: Abhishek Lekshmanan <abhishek.lekshmanan@gmail.com>
6 years agoMerge pull request #26641 from pdvian/wip-38447-mimic
Yuri Weinstein [Wed, 3 Apr 2019 19:33:47 +0000 (12:33 -0700)]
Merge pull request #26641 from pdvian/wip-38447-mimic

mimic: rgw: only update last_trim marker on ENODATA

Reviewed-by: Casey Bodley <cbodley@redhat.com>
6 years agoMerge pull request #27029 from pdvian/wip-38672-mimic
Yuri Weinstein [Wed, 3 Apr 2019 19:33:12 +0000 (12:33 -0700)]
Merge pull request #27029 from pdvian/wip-38672-mimic

mimic: rgw: sync module: avoid printing attrs of objects in log

Reviewed-by: Casey Bodley <cbodley@redhat.com>
6 years agoMerge pull request #27174 from pdvian/wip-38756-mimic
Yuri Weinstein [Wed, 3 Apr 2019 19:32:48 +0000 (12:32 -0700)]
Merge pull request #27174 from pdvian/wip-38756-mimic

mimic: rgw: ldap: fix LDAPAuthEngine::init() when uri !empty()

Reviewed-by: Casey Bodley <cbodley@redhat.com>