Commit Graph

126 Commits

Author SHA1 Message Date
Sage Weil
3268ec7ac8 Merge PR #32252 into master
* refs/pull/32252/head:
	qa/cephfs/begin: libaio-devel on el8
	qa/tasks: nosetests -> python -m nose
	qa/tasks/rbd_fio: fio 2.21 -> 3.16
	src/test/cli-integration/rbd/snap-diff.t: python -> python
	qa/workunits: use nose 3
	qa/tasks/cbt: install python3 deps
	qa/tasks/ceph_manager.py: do not use python to write a file
	test/pybind/test_rados: execute takes a bytes (not str) payload
	qa/packages/packages: python[3]-ceph is no more
	qa: use python3 for venvs etc
	packaging: remove python3-ipaddres, as it is part of the stdlib in py3
	qa/packages: python-ceph -> python3-ceph
	qa/distros: centos7 -> centos8, rhel7 -> rhel8
	spec: remove _python_buildid in favor of python3_pkgversion macro
	spec: remove python2 packages and conditions
	debian: remove python >= 2.7 requirement
	debian: add mgr python versions
	debian: explicitly set PYTHON2=OFF to prevent picking up python2 interpreter
	debian: update control file to use python3 dependency names
	debian: remove all python2 overrides and declarations
	debian: remove all python2 install files

Reviewed-by: Alfredo Deza <adeza@redhat.com>
2019-12-17 15:23:27 -06:00
Sage Weil
d4f4a2cbd8 qa/tasks/ceph_manager.py: do not use python to write a file
/usr/bin/python dne on el8, /usr/bin/python3 dne on el7.  But
all we need to do is write a file--we can do that with tee.

Signed-off-by: Sage Weil <sage@redhat.com>
2019-12-13 12:44:42 -06:00
Thomas Bechtold
0127cd1e88 qa: Enable flake8 tox and fix failures
There were a couple of problems found by flake8 in the qa/
directory (most of them fixed now). Enabling flake8 during the usual
check runs hopefully avoids adding new issues in the future.

Signed-off-by: Thomas Bechtold <tbechtold@suse.com>
2019-12-12 10:21:01 +01:00
Sage Weil
51ecc1b922 qa/tasks: ceph-daemon -> cephadm throughput var names and comments
Signed-off-by: Sage Weil <sage@redhat.com>
2019-12-11 19:14:09 -06:00
Patrick Donnelly
e8368d61be
Merge PR #29421 into master
* refs/pull/29421/head:
	qa/cephfs: add tests for ACLs
	qa/cephfs: allow running tests from xfstests-dev
	qa/tasks: add methods to get monitor's sockets
	qa/cephfs: don't crash if mountpoint dir is already deleted
	vstart_runner.py: set omit_sudo's default value to False
	qa/vstart_runner.py: fix get_keyring_path()
	qa/cephfs: don't abort if mountpoint is already present
	qa/cephfs: allow specifying mountpoint for kernel mounts
	qa/cephfs: allow specifying mountpoints for FUSE mounts
	qa/vstart_runner.py: allow specifying mountpoint for local FUSE mounts
	qa/mount.py: allow setting mountpoint
	qa/vstart_runner.py: add a method to create a temporary directory

Reviewed-by: Jeff Layton <jlayton@redhat.com>
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
2019-12-05 13:25:03 -08:00
Patrick Donnelly
fcc9bf10a1
Merge PR #31428 into master
* refs/pull/31428/head:
	qa/tasks: Fixed AttributeError: can't set attribute
	qa/tasks: drop/update name from Thrasher

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
2019-12-04 14:55:17 -08:00
Sage Weil
3342436177 tasks/ceph2: add support for packaged ceph-daemon
Signed-off-by: Sage Weil <sage@redhat.com>
2019-12-02 21:19:09 +00:00
Jos Collin
4c67888ad8
qa/tasks: Fixed AttributeError: can't set attribute
Fixes: https://tracker.ceph.com/issues/42636
Signed-off-by: Jos Collin <jcollin@redhat.com>
2019-11-27 08:30:58 +05:30
Jos Collin
003550c493
qa/tasks: drop/update name from Thrasher
* Dropped name setter and property from Thrasher base class
* Updated each Thrasher class with a name attribute

Signed-off-by: Jos Collin <jcollin@redhat.com>
2019-11-27 08:27:04 +05:30
Sage Weil
ae1c1210f9 qa/tasks/ceph2: make image cluster-private
Signed-off-by: Sage Weil <sage@redhat.com>
2019-11-25 20:01:29 +00:00
Sage Weil
e2bc637ace qa/tasks/ceph2: set up managers
Signed-off-by: Sage Weil <sage@redhat.com>
2019-11-21 10:46:54 -06:00
Sage Weil
7c0eacb780 qa/tasks/ceph: healthy: use manager helpers (instead of teuthology/misc ones)
Signed-off-by: Sage Weil <sage@redhat.com>
2019-11-21 10:46:54 -06:00
Rishabh Dave
2130785f2c qa/tasks: add methods to get monitor's sockets
Signed-off-by: Rishabh Dave <ridave@redhat.com>
2019-11-06 16:14:36 +05:30
Patrick Donnelly
154f1ccc86
Merge PR #31207 into master
* refs/pull/31207/head:
	qa/tasks: Better handling of thrasher names and __init__ calls

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
2019-11-01 15:37:12 -07:00
Jos Collin
8138cd5198
qa/tasks: Better handling of thrasher names and __init__ calls
Fixes: https://tracker.ceph.com/issues/42062
Fixes: https://tracker.ceph.com/issues/42478
Signed-off-by: Jos Collin <jcollin@redhat.com>
2019-10-30 10:21:25 +05:30
Sage Weil
29c97547a9 Merge PR #30859 into master
* refs/pull/30859/head:
	auth: EACCES, not EPERM
	mon: shunt old tell commands from cli interface to asok
	mon: allow mgr to tell mon.foo smart
	mon: include quorum features in quorum_status
	qa/workunits/mon/caps.sh: fix test
	ceph_test_rados_api_cmd: fix MonDescribe test
	Merge branch 'vstart-fs-auth' of git://github.com/batrick/ceph into wip-cleanup-mon-asok
	test/pybind/test_ceph_argparse: fix tests
	vstart: add volume client keys to keyring
	vstart: use fs authorize to create master client key
	vstart: redirect some output to stderr
	vstart: output command strings to stderr
	qa/workunits/cephtool/test.sh: fix 'quorum enter' caller
	qa: change mon_status calls to quorum_status or tell commands
	mon: fix 'heap ...' command
	mon: consolidate 'sync force' commands
	mon: allow asok commands to return an error code
	mon: move 'quorum enter|exit' and 'mon_status' to asok
	mon: fix 'smart' asok command
	mon: remove old 'config set' and 'injectargs'

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
2019-10-23 21:05:42 -05:00
Patrick Donnelly
3c4328c0a4
Merge PR #30813 into master
* refs/pull/30813/head:
	qa: get rid of iteritems for python3 compatibility

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
2019-10-21 21:22:00 -07:00
Kefu Chai
548098668e qa/tasks/ceph_manager: do not panic of "pg_num_target" is missing
we don't have "pg_num_target" in "osd dump" back in mimic, so we don't
need to check it if it is missing when performing upgrade test.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-10-21 12:18:58 +08:00
Kyr Shatskyy
50b1823fac qa: get rid of iteritems for python3 compatibility
Fixes: https://tracker.ceph.com/issues/42267
Signed-off-by: Kyr Shatskyy <kyrylo.shatskyy@suse.com>
2019-10-15 11:27:39 +02:00
Sage Weil
70367de903 qa: change mon_status calls to quorum_status or tell commands
The tests were doing logs of 'ceph mon_status'; change that to
quorum_status or tell.

Signed-off-by: Sage Weil <sage@redhat.com>
2019-10-12 12:05:36 -05:00
Kyr Shatskyy
7e87f80a87 tests: use python3 compatible print
Fixes: https://tracker.ceph.com/issues/42210
Signed-off-by: Kyr Shatskyy <kyrylo.shatskyy@suse.com>
2019-10-11 19:02:04 +02:00
Patrick Donnelly
f13b3483e7
Merge PR #28855 into master
* refs/pull/28855/head:
	doc: document scrub summary in ceph status output
	test: extend scrub control test to validate mds task status
	mds: send scrub state changes to cluster log.
	mds: periodically sent mds scrub status to ceph manager
	mgr, mon: allow normal ceph services to register with manager

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
2019-08-23 16:16:16 -07:00
Patrick Donnelly
dad94db7ae
Merge PR #28378 into master
* refs/pull/28378/head:
	qa/tasks: introduce Thrasher base class
	qa/tasks: Fix typo
	qa/tasks: manage thrashers
	qa/tasks: start DaemonWatchdog when ceph starts
	qa/tasks: make watch and bark handle more daemons
	qa/tasks: move DaemonWatchdog to new file

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
2019-08-21 10:57:15 -07:00
Jos Collin
f31791e35d
qa/tasks: introduce Thrasher base class
* Introduced a Thrasher base class.
* Updated thrashers to inherit from Thrasher.
* Replaced the magic variable e with Thrasher.exception as per the discussion.
  Now the exception variable sets by default as the thrashers are inheriting
  from the Thrasher class.

Fixes: https://github.com/ceph/ceph/pull/28378#discussion_r309337928
Fixes: https://tracker.ceph.com/issues/41133
Signed-off-by: Jos Collin <jcollin@redhat.com>
2019-08-21 10:49:46 +05:30
Sage Weil
8827bc1022 Merge PR #29493 into master
* refs/pull/29493/head:
	qa/tasks/mgr/mgr_test_case: get mgrmap from 'mgr dump', not status
	qa/tasks/ceph_manager: no newlines in 'ceph -s' output
	mon: make mon summary more concise in 'ceph -s'
	mon/MgrStatMonitor: set initial service_map 'modified' to cluster mkfs
	mon: remove double-nesting of "osdmap" for ceph status
	mon/MgrMap: make print_summary (used by 'ceph -s') more concise

Reviewed-by: Neha Ojha <nojha@redhat.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
2019-08-08 15:52:45 -05:00
Venky Shankar
465a3adc6c test: extend scrub control test to validate mds task status
Signed-off-by: Venky Shankar <vshankar@redhat.com>
2019-08-06 02:33:09 -04:00
Sage Weil
9719920920 qa/tasks/ceph_manager: no newlines in 'ceph -s' output
This gets dumped to the log, making it hard to read.

Signed-off-by: Sage Weil <sage@redhat.com>
2019-08-05 22:02:31 -05:00
Sage Weil
41e4056174 qa/tasks/ceph_manager: remove race from all_active_or_peered()
Signed-off-by: Sage Weil <sage@redhat.com>
2019-08-05 14:01:02 -05:00
Kefu Chai
310ccd9f9f qa/tasks/ceph_manager.py: always use self.logger
in fbd4836d, a regression is introduced:

self.log("failed to read erasure_code_profile. %s was likely removed",
pool)

because `self.log` is actually a lambda which just do

self.logger.info(x)

in this change

* `Thrasher.log()` is added for three reasons:
 - in PEP-8,

> Always use a def statement instead of an assignment statement that
> binds a lambda expression directly to an identifier
so a better way is to define a method using `def`
 - and i think it helps with the readability
* `logger` parameter is now mandatory now in the constructor of
  `Thrasher` class. because the instance of this class is only created
by `qa/tasks/thrashosds.py`, like:

thrash_proc = ceph_manager.Thrasher(
        cluster_manager,
        config,
        logger=log.getChild('thrasher')
        )

and `log.getChild()` does not return `None`, so there is no need to
handle that case.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-07-24 10:28:00 +08:00
Sage Weil
c8f35af6e1 Merge PR #29109 into master
* refs/pull/29109/head:
	qa/tasks/ceph_manager: wait for clean before asserting clean on minsize test

Reviewed-by: Kefu Chai <kchai@redhat.com>
2019-07-22 13:39:31 -05:00
Sage Weil
848c5b4a9a qa/tasks/ceph_manager: fix thrash_pg_upmap_items when no pools
Follow-on to e7ca5a92d4

Fixes: https://tracker.ceph.com/issues/40635
Signed-off-by: Sage Weil <sage@redhat.com>
2019-07-19 14:49:26 -05:00
Sage Weil
50b439f22f qa/tasks/ceph_manager: wait for clean before asserting clean on minsize test
Signed-off-by: Sage Weil <sage@redhat.com>
2019-07-18 09:11:30 -05:00
Sage Weil
e7ca5a92d4 qa/tasks/ceph_manager: make upmap thrasher behave when no pools/pgs
Fixes: https://tracker.ceph.com/issues/40635
Signed-off-by: Sage Weil <sage@redhat.com>
2019-07-16 10:04:35 -05:00
Sage Weil
d014b7924d qa/tasks/ceph_manager: 5s -> 15s for 'osd out' to be visible
Signed-off-by: Sage Weil <sage@redhat.com>
2019-07-12 08:56:50 -05:00
Sage Weil
0b4ce2ab4c qa/tasks/ceph_manager: make is_{clean,recovered,active_or_down} less racy
Currently these can be thrown off if the cluster is creating or removing
pools at the same time.  Fix by taking a single snapshot of the pg stats
and based our judgement on that.

Signed-off-by: Sage Weil <sage@redhat.com>
2019-07-10 11:04:49 -05:00
Kefu Chai
fbd4836d24 qa/tasks/ceph_manager.py: ignore errors in test_pool_min_size
to be specific, ignore errors when querying erasure coded pool's
erasure-code-profile. the pool might be removed after
"test_pool_min_size" lists all pools and before queries the pools'
erasure-code-profile. in that case, we should just continue on with the
next pool.

normally, the pools are created by the "radosbench" tasks. and they
don't delete the ec profiles after removing the ec pools using them, but
i don't want to rely on this fact. so, in this change, the `try` block
guards both `ceph osd pool get <pool_name> erasure_code_profile`
and `ceph osd erasure-code-profile get <profile>` calls.

Fixes: http://tracker.ceph.com/issues/40533
Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-06-27 19:00:23 +08:00
Kefu Chai
1a2700f404 qa/tasks: extract {ERASURE_CODED,REPLICATED}_POOL out
so they can be reused by `Thrasher`.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-06-27 19:00:23 +08:00
Chang Liu
b02e2f6cf2 test: update test_pool_min_size test in thrasher
Signed-off-by: Chang Liu <liuchang0812@gmail.com>
2019-05-10 10:45:25 +08:00
Greg Farnum
0ee63a0450 qa: extend get_pool_property() to allow non-int values
Signed-off-by: Greg Farnum <gfarnum@redhat.com>
2019-05-10 10:45:25 +08:00
Greg Farnum
7950ce2488 qa: don't create rbd pool for min-size thrashing tests
Signed-off-by: Greg Farnum <gfarnum@redhat.com>
2019-05-10 10:45:25 +08:00
Greg Farnum
b701395065 qa: write a thrasher for putting PGs below min_size and watching them recover
Signed-off-by: Greg Farnum <gfarnum@redhat.com>
2019-05-10 10:45:25 +08:00
Greg Farnum
78755091f9 qa: remove unused variable from ceph_manager
Pyflakes warned me about this.

Signed-off-by: Greg Farnum <gfarnum@redhat.com>
2019-05-10 10:45:25 +08:00
Sage Weil
54c5202b74 qa/tasks/ceph: stop any split/merge activity before scrubbing
If there are leftover merges at the end of the run they can take a long
time to get through, blowing our timeout for (waiting for pgs to become
active and to stop splitting/merge) and scrubbing pgs.  Stop all of that
at the end of the run so that we don't have to wait so long.

Signed-off-by: Sage Weil <sage@redhat.com>
2019-01-14 06:51:21 -06:00
Sage Weil
0d4c4db3c0 qa/tasks/ceph_manager: compare osd flush seq #'s as ints
Signed-off-by: Sage Weil <sage@redhat.com>
2019-01-03 11:17:38 -06:00
Sage Weil
ac2430a43d qa/tasks/ceph_manager: make get_mon_status use mon addr
We don't have the 'mon addr' config property any more.

Signed-off-by: Sage Weil <sage@redhat.com>
2019-01-03 11:17:31 -06:00
Sage Weil
28aaca58e7 qa/tasks/ceph_manager: avoid test_map_discontinuity stall with too few up osds
Some tests have m=2,k=2 and this will break them.  Sometimes even if we
have 5 up osds, we end up with 4 and CRUSH gets picky, so build in a
buffer and only do this if we have 6 up.

We don't have an easy way from here to see what the min up osds for healthy
is...  basically this map discontinuity test just sucks.

Signed-off-by: Sage Weil <sage@redhat.com>
2018-11-20 17:12:43 -06:00
Sage Weil
b678356594 qa/tasks/ceph_manager: fix get_stuck_pgs from pg dump change
Fixes 95b7d2340c

Fixes: http://tracker.ceph.com/issues/36485
Signed-off-by: Sage Weil <sage@redhat.com>
2018-10-21 10:52:38 -05:00
Patrick Donnelly
d491227956
qa: fix run call args
Fixes: http://tracker.ceph.com/issues/36450
Introduced-by: 95746ecce9
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
2018-10-15 14:45:18 -07:00
John Spray
67d147c00d
Merge pull request #23622 from renhwztetecs/renhw-wip-25103
mgr: fixup pgs show in unknown state

Reviewed-by: Kefu Chai <kchai@redhat.com>
Reviewed-by: John Spray <john.spray@redhat.com>
2018-10-10 13:28:33 +01:00
Volker Theile
95746ecce9 mgr: Add ability to trigger a cluster/audit log message from Python
Fixes: https://tracker.ceph.com/issues/36194

Signed-off-by: Volker Theile <vtheile@suse.com>
2018-10-04 13:33:18 +02:00