Commit Graph

136 Commits

Author SHA1 Message Date
Sage Weil
0bdaf4b953 qa/tasks/ceph_manager: fix ceph-objectstore-tool calls
Pass the correct paths based on whether this is the importing or exporting
OSD.

Signed-off-by: Sage Weil <sage@redhat.com>
2020-01-17 17:08:00 -06:00
Sage Weil
878e27ee0d qa/tasks/ceph_manager: fix admin_socket remote when using cephadm
Signed-off-by: Sage Weil <sage@redhat.com>
2020-01-17 17:07:40 -06:00
Sage Weil
81c735fc9c qa/tasks/ceph_manager: --no-mon-config to ceph-objectstore-tool
The config is currently fetched at osd.admin, so the keyring is not
found.

Signed-off-by: Sage Weil <sage@redhat.com>
2020-01-17 17:07:40 -06:00
Sage Weil
7fefcdb6d3 qa/tasks/ceph_manager: fix filestore split command
Signed-off-by: Sage Weil <sage@redhat.com>
2020-01-17 17:07:40 -06:00
Sage Weil
60c2b8e800 qa/tasks/ceph_manager: fix import line
Signed-off-by: Sage Weil <sage@redhat.com>
2020-01-17 17:07:39 -06:00
Sage Weil
2739ac4a60 qa/tasks/ceph_manager: enable ceph-objectstore-tool via cephadm
- drop support for keyvaluestore
- leave a few paths non-cephadm specific (filestore, upgrade workaround)

Signed-off-by: Sage Weil <sage@redhat.com>
2020-01-15 07:53:01 -06:00
Kefu Chai
e67034b95a qa/tasks/ceph_manager: do not pick a pool is there is no pools
random.choice(seq) raises IndexError if seq is empty. we cannot ensure
there is always one or more pools in the cluster while using pool
related thrasher. so skip the thrasher action if there is no pools at
that moment.

Fixes: https://tracker.ceph.com/issues/43412
Signed-off-by: Kefu Chai <kchai@redhat.com>
2020-01-09 10:26:32 +08:00
Kefu Chai
4c6a5798c2
Merge pull request #32222 from toabctl/qa-flake8-py3
qa: Run flake8 on python2 and python3

Reviewed-by: Kefu Chai <kchai@redhat.com>
2019-12-24 10:47:07 +08:00
Sage Weil
4e57785e74 qa/tasks/ceph_manager: asok commands via cephadm shell
Signed-off-by: Sage Weil <sage@redhat.com>
2019-12-23 13:59:26 -06:00
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
bdcc94a1d1 qa: Run flake8 on python2 and python3
To be able to catch problems with python2 *and* python3, run flake8
with both versions. From the flake8 homepage:

It is very important to install Flake8 on the correct version of
Python for your needs. If you want Flake8 to properly parse new
language features in Python 3.5 (for example), you need it to be
installed on 3.5 for Flake8 to understand those features. In many
ways, Flake8 is tied to the version of Python on which it runs.

Also fix the problems with python3 on the way.
Note: This requires now the six module for teuthology. But this is
already an install_require in teuthology itself.

Signed-off-by: Thomas Bechtold <tbechtold@suse.com>
2019-12-13 09:24:20 +01: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