Commit Graph

89 Commits

Author SHA1 Message Date
Thomas Bechtold
f5e77561e9 qa: Fix problems detected by mypy
This is a first step to enable mypy on the qa/ directory.

Signed-off-by: Thomas Bechtold <tbechtold@suse.com>
2020-03-05 06:53:31 +01:00
Kyr Shatskyy
49592af400 qa/tasks/vstart_runner: use io.BytesIO for py3 compat
Use io.BytesIO instead of StringIO for py3 compatibility.

Signed-off-by: Kefu Chai <kchai@redhat.com>
Signed-off-by: Kyr Shatskyy <kyrylo.shatskyy@suse.com>
2020-03-04 13:09:17 +08:00
Patrick Donnelly
61681cffd2
Merge PR #33506 into master
* refs/pull/33506/head:
	client: add client_fs mount option support

Reviewed-by: Ramana Raja <rraja@redhat.com>
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
2020-03-02 16:58:02 -08:00
Xiubo Li
1a58e64299 client: add client_fs mount option support
"client_fs" is one alias for "client_mds_namespace=" and it will be
cleaner and be more user-friendly to use. "client_mds_namespace="
will be kept and backwards compatibility used.

Update the documents at the same time.

Fixes: https://tracker.ceph.com/issues/44212
Signed-off-by: Xiubo Li <xiubli@redhat.com>
2020-02-27 19:30:31 -05:00
Patrick Donnelly
a7d273cef7
Merge PR #31200 into master
* refs/pull/31200/head:
	qa/cephfs: test case for auto reconnect after blacklisted

Reviewed-by: Jeff Layton <jlayton@redhat.com>
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
2020-02-26 06:26:13 -08:00
Patrick Donnelly
e5841cefb4
Merge PR #33263 into master
* refs/pull/33263/head:
	qa/vstart_runner.py: make run()'s interface same as teuthology's run

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
2020-02-25 14:45:49 -08:00
Rishabh Dave
061d972278 qa/vstart_runner.py: make run()'s interface same as teuthology's run
Arguments accepted by method run in teuthology should be exactly same as
that of arguments accepted by vstart_runner.py's method run to prevent
test failure with teuthology due to silly argument mismatch.
Teuthology's entry method run expects **kwargs, therefore so should
vstart_runner.py's run.

Fixes: https://tracker.ceph.com/issues/44117
Signed-off-by: Rishabh Dave <ridave@redhat.com>
2020-02-20 16:01:39 +05:30
Patrick Donnelly
2c9642131f
qa: add tests for mds_join_fs cluster affinity
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
2020-02-13 07:51:10 -08:00
Patrick Donnelly
8729281121
qa: manage config changes through mons
This provides a generic framework for modifying Ceph configuration
changes in tests through the monitors rather than the asok interface or
local ceph.conf changes. Any changes are reverted during test teardown.

A future patch will convert existing tests manipulating the local
ceph.conf or admin socket.

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
2020-02-13 07:51:09 -08:00
Yan, Zheng
261a456439 qa/cephfs: test case for auto reconnect after blacklisted
Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
Fixes: https://tracker.ceph.com/issues/42085
2020-01-15 15:43:17 +08:00
Rishabh Dave
b7d740ede7 vstart_runnner: add sh method to LocalRemote
The method is a wrapper of teuthology.misc.sh

Fixes: https://tracker.ceph.com/issues/43496
Signed-off-by: Rishabh Dave <ridave@gmail.com>
2020-01-13 10:22:56 +05:30
Kefu Chai
5fe27c2267 qa/tasks/vstart_runner: write string to StringIO
we use `six.StringIO` for stdout when writing output messages from
`self.subproc.communicate()`, and `six.StringIO` accepts strings, so we
need to decode the output before sending them to `six.StringIO`.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-12-28 01:11:54 +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
Kefu Chai
130e3eddb9 qa/tasks/vstart_runner.py: use current python executable
python3 is not always the path to executable used by current python
session.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-12-20 21:39:49 +08:00
Kefu Chai
79584862f6 src,qa: install python bindings into lib/cython_modules/lib.3
instead of checking for the WITH_PYTHON* options, just hardwire to lib.3

Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-12-19 11:52:54 +08: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
Kefu Chai
0a83d9003e
Merge pull request #31815 from tchaikov/wip-mgr-dashboard-gevent
mgr/dashboard: install teuthology using pip

Reviewed-by: Sage Weil <sage@redhat.com>
Reviewed-by: Ernesto Puertat <epuertat@redhat.com>
2019-12-16 17:30:08 +08:00
Sage Weil
240154f114 qa: use python3 for venvs etc
Signed-off-by: Sage Weil <sage@redhat.com>
2019-12-13 08:47:28 -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
Kefu Chai
a9906b8cd2 vstart_runner: be python3 compatible
Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-12-12 20:38:35 +08: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
Rishabh Dave
8d7c45d3b0 qa/vstart_runner: add a method to create temporary file
The method's signature is kept identical to the method in teuthology.

Signed-off-by: Rishabh Dave <ridave@redhat.com>
2019-12-06 08:54:05 +05:30
Rishabh Dave
2f85a03b56 test_cephfs_shell: update test since shell can now read ceph.conf
In the test
test_cephfs_shell.TestMisc.test_issue_cephfs_shell_cmd_at_invocation,
don't set the shell option with in the command to be tested since
CephFS shell can now read it's value from ceph.conf.

Also, add methods to set config options for vstart as well teuthology
testing.

Signed-off-by: Rishabh Dave <ridave@redhat.com>
2019-12-06 08:52:59 +05:30
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
Rishabh Dave
5f19d2227d vstart_runner.py: set omit_sudo's default value to False
This shouldn't be an inconvenience since default value for omit_sudo is
already False in teuthology's codebase.

Signed-off-by: Rishabh Dave <ridave@redhat.com>
2019-11-06 11:36:10 +05:30
Rishabh Dave
ee3dedc6ea qa/vstart_runner.py: fix get_keyring_path()
Return "keyring" file in build directory in source repo when the
expected keyring file is absent.

Signed-off-by: Rishabh Dave <ridave@redhat.com>
2019-11-06 11:36:10 +05:30
Rishabh Dave
39a15d091f qa/cephfs: don't abort if mountpoint is already present
Instead, let the execution continue.

Signed-off-by: Rishabh Dave <ridave@redhat.com>
2019-11-06 11:36:10 +05:30
Rishabh Dave
514b58e3a3 qa/vstart_runner.py: allow specifying mountpoint for local FUSE mounts
Allow specifying the directory in CephFS that should be FUSE mounted on
the given path when running tests locally.

Signed-off-by: Rishabh Dave <ridave@redhat.com>
2019-11-06 11:36:10 +05:30
Rishabh Dave
06c6d5c9bc qa/vstart_runner.py: add a method to create a temporary directory
Add a method that creates a temporary directory and returns the path to
it.

Signed-off-by: Rishabh Dave <ridave@redhat.com>
2019-11-06 11:36:09 +05:30
Patrick Donnelly
fc88e6c6c5
qa: use small default pg count for CephFS pools
The pg count needs to be a power-of-two since
dff5697464.

Also, mon_pg_warn_min_per_osd is disabled by default now (or set to a
low value in vstart/testing) so there's no need to base the pg count on
this value.

Ideally someday we can remove this so that the default cluster value is
used but we need to keep this for deployments of older versions of Ceph.

Fixes: https://tracker.ceph.com/issues/42228
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
2019-10-14 10:45:05 -07:00
Jeff Layton
5b36293ab8 vstart_runner: allow the use of it with kernel mounts
Add a new command-line switch to allow it to use the kernel client
instead, and add all of the machinery to handle local kcephfs mounts.

Document this in the developer guide, along with the appropriate scary
warnings about using this on a machine that you care about. While we're
in there, also correct a typo about FUSE configuration.

Fixes: https://tracker.ceph.com/issues/41910
Signed-off-by: Jeff Layton <jlayton@redhat.com>
2019-09-27 08:23:07 -04:00
Rishabh Dave
dc21d04172 vstart_runner: name booleans for options differently
This achieves 2 things: makes it more understandable for the reader that
the boolean variable is an option and reads less like a method name.

Signed-off-by: Rishabh Dave <ridave@redhat.com>
2019-09-25 12:13:18 +05:30
Rishabh Dave
254f705e27 qa/vstart_runner.py: add an option to remove old log
Add an option "--clear-old-log" to get rid of log entries before making
entries for current batch of tests.

Signed-off-by: Rishabh Dave <ridave@redhat.com>
2019-09-25 12:13:10 +05:30
Rishabh Dave
e16ad0126b qa/vstart_runner.py: make log initialization code reusable
Move it to a method so that the code be can be reused.

Signed-off-by: Rishabh Dave <ridave@redhat.com>
2019-09-25 12:12:00 +05:30
Rishabh Dave
1ef02b724d qa/vstart_runner.py: make printing of stdout of ps optional
stdout of ps command is generally pretty huge which makes it harder to
interpret logs. Don't print it by default and add "--log-ps-output" to
enable printing it.

Signed-off-by: Rishabh Dave <ridave@redhat.com>
2019-09-25 12:11:54 +05:30
Rishabh Dave
842b5590aa qa/vstart_runner.py: add timeout for vstart.sh and stop.sh
Override default timeout for execution of vstart.sh and stop.sh since
neither scripts take more than 100 seconds normally.

Signed-off-by: Rishabh Dave <ridave@redhat.com>
2019-09-25 12:10:22 +05:30
Rishabh Dave
83ff993e95 qa/vstart_runner.py: add an option to teardown cluster
Add "--teardown" option so that vstart_runner.py tears down Ceph
cluster automatically after the batch of tests has completed running.
Also delete build/dev and build/out directories, after running stop.sh.

Update the doc for vstart_runner.py as well.

Signed-off-by: Rishabh Dave <ridave@redhat.com>
2019-09-25 12:09:58 +05:30
alfonsomthd
7563f8b6d6 mgr/dashboard: run-backend-api-tests.sh CI improvements
As there is now a jenkins job to run this script
(see https://github.com/ceph/ceph-build/pull/1351),
this refactoring adapt the script to be run in a jenkins job as well as locally.

Signed-off-by: alfonsomthd <almartin@redhat.com>
2019-08-22 15:33:02 +02:00
Rishabh Dave
07688b96e1 qa/vstart_runner.py: ignores when source and destination are same
put_file() in vstart_runner.py should ignore the error when source and
destination paths supplied are same, since source and destination for
put_file() method in teuthology are on different machines, they
represent different locations.

Signed-off-by: Rishabh Dave <ridave@redhat.com>
2019-07-25 10:51:50 +05:30
Volker Theile
b812689c48 qa: vstart_runner fails because of string index out of range
Fix problem in LocalRemote::_perform_checks_and_return_list_of_args() when LocalCephManager::raw_cluster_cmd() is called with a empty command parameter.

Fixes: https://tracker.ceph.com/issues/40729
Signed-off-by: Volker Theile <vtheile@suse.com>
2019-07-11 15:15:10 +02:00
Patrick Donnelly
475f2deaf3
Merge PR #28561 into master
* refs/pull/28561/head:
	vstart_runner: upgrade the check for commands to be run as another user
	vstart_runner: split unicode arguments into lists

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
2019-06-20 11:09:01 -07:00
Rishabh Dave
21a1b30a3e vstart_runner: upgrade the check for commands to be run as another user
Rectify the condition that checks if command to be issued as another
user using sudo is issued as a single argument after "-c".

Signed-off-by: Rishabh Dave <ridave@redhat.com>
2019-06-20 21:35:38 +05:30
Rishabh Dave
da441cb381 vstart_runner: split unicode arguments into lists
Split not just string arguments but also unicode arguments into lists.

Signed-off-by: Rishabh Dave <ridave@redhat.com>
2019-06-20 11:04:59 +05:30
Rishabh Dave
c086c13b22 qa/tasks: upgrade command arguments checks in vstart_runner.py
Exempt run.Raw from checks in vstart_runner.py as most of them are
meant for strings.

Signed-off-by: Rishabh Dave <ridave@redhat.com>
2019-06-07 13:20:06 +05:30
Rishabh Dave
96be56c4f1 qa/tasks: upgrade the check for -c sudo option in vstart_runner.py
Right now vstart_runner.py checks if the command to be ran as a
different user using sudo is a single argument by checking if "-c" is
the second last arguemnt. However, this check fails in a case where
"-c" is option for a command being ran as root (e.g. "sudo python -c
some-python-program"). So, add check for this.

Fixes: http://tracker.ceph.com/issues/39385
Signed-off-by: Rishabh Dave <ridave@redhat.com>
2019-05-26 17:10:44 +02:00
Rishabh Dave
532670bd05 qa: add wrappers for vstart's run() with check_status as False
Too often in tests it is required to run a command that we want to (or
will probably) fail so that we can check if it failed for expected
reason(s) (eg. a testcase where command must fail with "Permission
denied"). Therefore, add few wrapper methods for vstart_runner.py's
run() with check_status's default value as False so that we don't need
to pass check_status's value at every call to run() or it's other
wrappers.

Signed-off-by: Rishabh Dave <ridave@redhat.com>
2019-04-17 23:58:22 +05:30
Rishabh Dave
d90c0a0e81 qa: add stdin parameter to run_shell
Signed-off-by: Rishabh Dave <ridave@redhat.com>
2019-04-17 23:58:22 +05:30
Rishabh Dave
5462ba5d9d qa: command to be ran as a different user should be a single string
Signed-off-by: Rishabh Dave <ridave@redhat.com>
2019-04-17 23:58:19 +05:30
Rishabh Dave
bbca211225 qa: looks for quotes in Python shell and get rid of them
Since quotes are not a token for Python's shell simulation (unlike
Bash), raise a RuntimeError for them and add an exception for Python
command since it quotes to define a program on commandline.

Signed-off-by: Rishabh Dave <ridave@redhat.com>
2019-04-12 15:00:58 +05:30
Rishabh Dave
512f4721a5 qa: move checks on command arguments to a different method
Signed-off-by: Rishabh Dave <ridave@redhat.com>
2019-04-12 15:00:58 +05:30