Commit Graph

2272 Commits

Author SHA1 Message Date
Neha Ojha
04553e8822
Merge pull request #35544 from neha-ojha/wip-reduce-noise
qa/tasks/ceph_manager.py: dump more useful info before failing

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
2020-06-11 15:40:46 -07:00
Neha Ojha
4deba4e8bd qa/tasks/ceph_manager.py: dump more useful info before failing
Add helpers that dump information only about PGs that haven't reached
the desired state when we fail. Previously we dumped the output of
"ceph pg dump" before failing, which prints a lot of unnecessary information
about PGs that are not responsible for the failure, making debugging harder.

Also, try to make the failure messages distinct.

Signed-off-by: Neha Ojha <nojha@redhat.com>
2020-06-11 15:22:04 +00:00
Kefu Chai
b010a137c7
Merge pull request #35521 from sebastian-philipp/dashboard-mgr-module-option-default-value-none-for-it-or-float
mgr/dashboard: fix None value for ints and floats

Reviewed-by: Volker Theile <vtheile@suse.com>
Reviewed-by: Neha Ojha <nojha@redhat.com>
2020-06-11 14:17:15 +08:00
Kefu Chai
4fb37f881f
Merge pull request #35486 from jdurgin/wip-radosbench-qa
qa/tasks/radosbench: use long form of option for compatibility

Reviewed-by: Yuri Weinstein <yweinste@redhat.com>
Reviewed-by: Brad Hubbard <bhubbard@redhat.com>
2020-06-11 09:28:11 +08:00
Sebastian Wagner
f6f9b3fb99 mgr/dashboard: fix None value for ints and floats
Fixes: https://tracker.ceph.com/issues/45963

Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
2020-06-10 15:43:54 +02:00
Lenz Grimmer
11ddc9c8de
Merge pull request #35007 from rhcs-dashboard/fix-36354-master
mgr/dashboard: work with v1 RBD images

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
Reviewed-by: Kiefer Chang <kiefer.chang@suse.com>
Reviewed-by: Laura Paduano <lpaduano@suse.com>
Reviewed-by: Mykola Golub <mgolub@suse.com>
Reviewed-by: Stephan Müller <smueller@suse.com>
2020-06-10 13:32:37 +02:00
Josh Durgin
9673d37f1b qa/tasks/radosbench: use long form of option for compatibility
Since the short version of --object-size changed from -o to -O, it
does not work with upgrade tests.

Signed-off-by: Josh Durgin <jdurgin@redhat.com>
2020-06-09 13:13:55 -07:00
Josh Durgin
a78781d82e Revert "qa/tasks/radosbench: only set object size if != block size"
This reverts commit fb991fa5f6.

Signed-off-by: Josh Durgin <jdurgin@redhat.com>

Conflicts:
	qa/tasks/radosbench.py - extra context from -t, trivial resolution
2020-06-09 13:13:41 -07:00
Josh Durgin
5a8c7f7d7f Revert "qa/tasks/radosbench: fix usage of -O"
This reverts commit da19fd14db.

Signed-off-by: Josh Durgin <jdurgin@redhat.com>

Conflicts:
	qa/tasks/radosbench.py - concurrency arg added in context, trival resolution
2020-06-09 13:12:34 -07:00
Patrick Donnelly
6be968228e
Merge PR #35263 into master
* refs/pull/35263/head:
	test_cephfs_shell: use StringIO instead of BytesIO

Reviewed-by: Varsha Rao <varao@redhat.com>
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
2020-06-04 16:08:58 -07:00
Rishabh Dave
b67ce004ad test_cephfs_shell: use StringIO instead of BytesIO
Code in qa/ uses both StringIO and BytesIO. Let's use StringIO
exclusively (unless necessary) for uniformity. The reason for using
StringIO over BytesIO is that tests mostly need stdout as string than
as bytes and StringIO is used more frequently used in qa/ code at this
point.

Signed-off-by: Rishabh Dave <ridave@redhat.com>
2020-06-05 00:02:36 +05:30
Ernesto Puerta
119851ec89
mgr/dashboard: work with RBD images v1
Add support for RBD Image Format v1:
- This format lacks ID field, required for dashboard. Instead,
RBD image `block_name_prefix` is used as unique ID (together with pool
id and namespace)
- Additionally, `image_format` is now exposed.
- In the front-end side:
  - Copy action on a v1 image will cause the image to be copied to v2
format.
  - List doesn't allow Move to Trash on v1 images,
  - Details section now shows `image_format` for images,
  - Edit Form disables flags not supported for v1 (`deep-flatten`,
`layering`, `exclusive-lock`).
  - Protect does not work on v1 images or v2 images created from v1
ones.

Fixes: https://tracker.ceph.com/issues/36354
Signed-off-by: Ernesto Puerta <epuertat@redhat.com>
2020-06-04 16:55:06 +02:00
Patrick Donnelly
4729688792
Merge PR #35202 into master
* refs/pull/35202/head:
	qa: return a string via getfattr

Reviewed-by: Sidharth Anupkrishnan <sanupkri@redhat.com>
2020-06-03 07:43:08 -07:00
Patrick Donnelly
f3d52ec619
Merge PR #35328 into master
* refs/pull/35328/head:
	qa/tasks/cephfs/test_scrub.py: use umount_wait to avoid ceph-fuse stuck

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
2020-06-03 07:41:09 -07:00
Lenz Grimmer
b6dcd15ac4
Merge pull request #35051 from Devp00l/wip-44620
Reviewed-by: Laura Paduano <lpaduano@suse.com>
Reviewed-by: Tiago Melo <tmelo@suse.com>
2020-06-03 15:39:06 +02:00
Kefu Chai
bfb08d7b14
Merge pull request #35352 from tchaikov/wip-vstart-runner-create-cluster-only
qa/tasks/vstart_runner: do not teardown test_path if "create-cluster-…

Reviewed-by: Alfonso Martínez <almartin@redhat.com>
Reviewed-by: Kiefer Chang <kiefer.chang@suse.com>
2020-06-03 17:56:00 +08:00
Sebastian Wagner
115492f28f
Merge pull request #35069 from sebastian-philipp/qa-cephadm-add-rgw-and-iscsi
qa/cephadm: Add RGW

Reviewed-by: Michael Fritch <mfritch@suse.com>
2020-06-03 09:50:04 +02:00
Kefu Chai
954e9a6fa6 qa/tasks/vstart_runner: do not teardown test_path if "create-cluster-only"
otherwise we could be removing a "None" directory when tearing down the cluster,
and have following failure:

Exception ignored in: <bound method LocalContext.__del__ of <__main__.LocalContext object at 0x7f99fd4a6cc0>>
Traceback (most recent call last):
  File "../qa/tasks/vstart_runner.py", line 1189, in __del__
    shutil.rmtree(self.teuthology_config['test_path'])
  File "/tmp/tmp.mmM2ugspuR/venv/lib/python3.6/shutil.py", line 477, in rmtree
    onerror(os.lstat, path, sys.exc_info())
  File "/tmp/tmp.mmM2ugspuR/venv/lib/python3.6/shutil.py", line 475, in rmtree
    orig_st = os.lstat(path)
TypeError: lstat: path should be string, bytes or os.PathLike, not NoneType

Signed-off-by: Kefu Chai <kchai@redhat.com>
2020-06-03 15:24:16 +08:00
Patrick Donnelly
340d2a828f
Merge PR #34288 into master
* refs/pull/34288/head:
	mds: flag backtrace scrub failures for new files as okay

Reviewed-by: Zheng Yan <zyan@redhat.com>
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
2020-06-02 18:57:28 -07:00
Patrick Donnelly
cc36113ad4
Merge PR #34776 into master
* refs/pull/34776/head:
	mgr/volumes: Create subvolume with isolated rados namespace

Reviewed-by: Ramana Raja <rraja@redhat.com>
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
2020-06-02 17:44:21 -07:00
Patrick Donnelly
3d75b5a55f
Merge PR #34839 into master
* refs/pull/34839/head:
	qa/cephfs: add FUSE module before running mount -t fusectl

Reviewed-by: Zheng Yan <zyan@redhat.com>
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
Reviewed-by: Jeff Layton <jlayton@redhat.com>
2020-06-02 17:42:59 -07:00
Patrick Donnelly
0c6a92f5c0
Merge PR #35193 into master
* refs/pull/35193/head:
	qa/tasks/mds_thrash: s/random.sample/random.choice/

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
2020-06-02 17:38:09 -07:00
Patrick Donnelly
182985455a
Merge PR #34838 into master
* refs/pull/34838/head:
	vstart_runner: don't use namespaces by default
	qa/cephfs: run nsenter commands with superuser privileges
	qa/cephfs: look for mountpoint in cmdline file

Reviewed-by: Xiubo Li <xiubli@redhat.com>
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
2020-06-02 12:01:52 -07:00
Patrick Donnelly
963bb62ec9
Merge PR #34782 into master
* refs/pull/34782/head:
	qa/tasks/cephfs/mount.py: remove netns name parsing in mountpoint setter
	qa/tasks/vstart_runner.py: add kwargs parameter to ignore the ones it does not understand

Reviewed-by: Rishabh Dave <ridave@redhat.com>
Reviewed-by: Jeff Layton <jlayton@redhat.com>
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
2020-06-02 07:40:39 -07:00
Rishabh Dave
a4040bf0d2 vstart_runner: don't use namespaces by default
And add option --usens to vstart_runner.py to use namespaces.

Signed-off-by: Rishabh Dave <ridave@redhat.com>
2020-06-02 17:10:56 +05:30
Rishabh Dave
04d501d6ff qa/cephfs: run nsenter commands with superuser privileges
And add a method that sets self.fuse_daemon.subproc.pid to the PID of
the process that doesn't have sudo in its arguments. For example, when
"sudo ceph-fuse /mnt/cephfs" is run on the shell, it launches process
with arguments "ceph-fuse /mnt/cephfs". The added method gets PID of
latter/child process and sets that as the fuse daemon's PID. Not doing
so kills the former/parent process but the not the child process.

Also, since we are around cleanup this method a bit.

Fixes: https://tracker.ceph.com/issues/45339
Signed-off-by: Rishabh Dave <ridave@redhat.com>
2020-06-02 17:07:49 +05:30
Sebastian Wagner
cca6533da2
Merge pull request #35313 from sebastian-philipp/qa-py2-filenotfound
qa/cephadm: FileNotFoundError doesn't exist in py2

Reviewed-by: Tim Serong <tserong@suse.com>
2020-06-02 12:58:25 +02:00
Stephan Müller
c76926bcd2 mgr/dashboard: Use right size in pool form
Currently the max size is determined by the number of OSDs, which is
compared with the maximum of the current crush rule.

The problem with that is, that this is wrong for every crush rule that
doesn't have OSDs as failure domain and that don't have the root of the
cluster set as root of the crush rule.

Now the crush map will be used to determine how many failure domains are
really available in the cluster and how many can really be used in the
end. This number now defines the maximum size you can enter.

The crush detail view will now the new attribute usable_size and hide
the redundant information steps, ruleset, type and rule_name.

Fixes: https://tracker.ceph.com/issues/44620
Signed-off-by: Stephan Müller <smueller@suse.com>
2020-06-02 10:38:06 +02:00
Milind Changire
be650fe47d mds: flag backtrace scrub failures for new files as okay
New, unwritten files, fail when backtracing during scrub.
This is not necessarily bad. So flag such failures as okay and continue
with other entries.

Fixes: https://tracker.ceph.com/issues/43543
Signed-off-by: Milind Changire <mchangir@redhat.com>
2020-06-02 07:41:40 +05:30
Kefu Chai
b51139fce7 qa/tasks/tempest: use --black-regex for blacklisting tests
simpler this way

Signed-off-by: Kefu Chai <kchai@redhat.com>
2020-06-02 09:48:32 +08:00
Kefu Chai
60269764b4 qa/keystone: unpin python-openstackclient
this reverts 2dac5c5012,
as we don't use `--os-url` anymore.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2020-06-02 09:48:32 +08:00
Kefu Chai
8f5c832915 qa/tasks/tempest: use user/pass to authenticate
instead of using admin token use "admin" user to authenticate,
as admin token is not suggested anymore.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2020-06-02 09:48:32 +08:00
Kefu Chai
a53c69943c qa/tasks/keystone: use "keystone-manage bootstrap"
* qa/tasks/keystone.py:
  instead of prefilling keystone manually, use "keystone-manage bootstrap"
  instead. it helps to setup the admin user, a "Default" domain with
  "default" id, and wire them up with the expected role and a "admin" project,
  etc. as id of the admin domain is known to be "default", we can just use it
  in our tests without querying openstack for the id of "Default"
  domain. this is very handy.
* qa/suites/rgw/tempest/tasks/rgw_tempest.yaml:
  use "Default" for domain name. as "Default" is the name of the domain
  created by bootstrap, while "default" is its id.
* qa/suites/rgw/crypt/2-kms/barbican.yaml:
  remove settings to bootstrap keystone

Signed-off-by: Kefu Chai <kchai@redhat.com>
2020-06-02 09:48:32 +08:00
Kefu Chai
8cb3f0411d qa/suites/rgw/tempest: use the latest tempest supporting py3.5
in case we need to use ubuntu xenial for testing, xenial only had python
3.5 packaged. and tempest 23.0 was the last version which supports
python3.5 and python2.7.

also do not replace link in tox.ini, as it is reachable.

to address the issues of

- pallets/markupsafe#116
- pypa/setuptools#2017

MarkupSafe is installed by
https://opendev.org/openstack/requirements/raw/branch/stable/pike/upper-constraints.txt

Signed-off-by: Kefu Chai <kchai@redhat.com>
2020-06-02 09:48:32 +08:00
Kefu Chai
9bd3e0ff40 qa/suites/rgw/tempest: bump up keystone to 17.0.0
* also generate a sample conf file following the document at
  https://github.com/openstack/keystone/tree/17.0.0.0rc2/etc
* use "projects" instead of "tenants" to match the terminology used by
  openstack identify API 3.0.
* test API 3.0 instead of API 2.0, by changing
  `rgw_keystone_api_version` from "2" to "3"
* explicitly specify a domain "default" for project to be created,
  otherwise a POST request will fail with:
```
{"error":{"code":400,"message":"You have tried to create a resource using the admin token. As this token is not within a domain you must explicitly include a domain for this resource to belong
to.","title":"Bad Request"}}
````
* create "default" domain, and use it, othewise a GET request fails
  like:
```
2020-05-28T11:17:28.751 INFO:teuthology.orchestra.run.smithi092.stderr:http://smithi092.front.sepia.ceph.com:35357 "GET /v3/domains/default HTTP/1.1" 404 87
2020-05-28T11:17:28.752 INFO:teuthology.orchestra.run.smithi092.stderr:RESP: [404] Content-Length: 87 Content-Type: application/json Date: Thu, 28 May 2020 11:17:28 GMT Server: WSGIServer/0.2
CPython/3.6.9 Vary: X-Auth-Token x-openstack-request-id: req-bc33796f-2bc3-411c-a7fb-1208918e0dbd
2020-05-28T11:17:28.752 INFO:teuthology.orchestra.run.smithi092.stderr:RESP BODY: {"error":{"code":404,"message":"Could not find domain: default.","title":"Not Found"}}
```
* add user to "default" domain when creating it.
* use "type" as the positional argument, per
  https://docs.openstack.org/keystone/pike/admin/cli-keystone-manage-services.html
  otherwise we will have failures like:
```
2020-05-28T13:38:24.867 INFO:teuthology.orchestra.run.smithi198.stderr:openstack service create: error: unrecognized arguments: --type keystone
```
* update `create_endpoint()` to use the V3 API,
  see
  https://docs.openstack.org/python-openstackclient/pike/cli/command-objects/endpoint.html

Fixes: https://tracker.ceph.com/issues/45692
Signed-off-by: Kefu Chai <kchai@redhat.com>
2020-06-02 09:48:32 +08:00
Kefu Chai
a620587ecf qa/tasks/keystone.py: support multiple positional args
it's required when creating endpoint, see
https://docs.openstack.org/python-openstackclient/pike/cli/command-objects/endpoint.html,
where we need to pass <service>, <interface>, and <url>

Signed-off-by: Kefu Chai <kchai@redhat.com>
2020-06-02 09:48:32 +08:00
Kefu Chai
b7152e8e94 qa/tasks/tox: use the latest stable tox
in hope to avoid any ancient bugs

Signed-off-by: Kefu Chai <kchai@redhat.com>
2020-06-02 09:48:32 +08:00
Kefu Chai
874f8b79e5 qa/tasks/tox: use python3 for tox tests
both tempest and keystone have dropped python2 support in their tox
based tests.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2020-06-02 09:48:32 +08:00
Patrick Donnelly
9442abd152
Merge PR #34672 into master
* refs/pull/34672/head:
	qa/tasks/cephfs: Enable multiple exports tests
	mgr/nfs: Instead of 'auth del' use 'auth rm'
	qa/tasks/cephfs: Don't enable cephadm in TestNFS
	qa/tasks/cephfs: Add tests for nfs exports
	mgr/volumes/nfs: Fix idempotency of cluster and export commands
	mgr/volumes/nfs: Fix incorrect read only access_type value
	mgr/fs/nfs: Use check_mon_command() instead of mon_command()
	qa/cephfs: Add tests for nfs
	mgr/volumes/nfs: Remove type option from export create interface
	vstart: Instead of CACHEINODE use MDCACHE
	mgr/volumes: Rearrange nfs export interface
	mgr/volumes/nfs: Delete common config object on cluster deletion
	mgr/volumes/nfs: Delete all exports on cluster deletion
	mgr/volumes: Make nfs create export interface idempotent
	vstart: Add watch url for conf-nfs object
	mgr/volumes/nfs: Delete user on removing export
	mgr/volumes: Create user for given path and fs
	vstart: Ensure cephadm and NFS does not conflict
	vstart: Update details about ganesha packages
	mgr/volumes/nfs: Add delete cephfs export command
	mgr/volumes/nfs: Add RADOS notify for common config object
	mgr/volumes/nfs: Pass cluster_id directly to NFSCluster {create, update, delete} methods
	mgr/volumes: Add nfs cluster delete interface
	mgr/volumes: Add nfs cluster update interface
	vstart: Enable test_orchestrator in start_ganesha()
	mgr/volumes: Add placement option to create nfs cluster interface
	mgr/volumes/nfs: Change common ganesha config object name to 'conf-nfs.ganesha-<cluster_id>'
	mgr/volumes/nfs: Call orch nfs apply

Reviewed-by: Jeff Layton <jlayton@redhat.com>
Reviewed-by: Sebastian Wagner <swagner@suse.com>
Reviewed-by: Ramana Raja <rraja@redhat.com>
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
2020-06-01 11:23:03 -07:00
Rishabh Dave
ea1432810c qa/cephfs: look for mountpoint in cmdline file
Look for self.mountpoint in the contents of /proc/<pid>/cmdline file
when finding asok file for the client so that vstart_runner.py won't end
up picking asok file for a client not created in current run.

This usually never happens so far because PID of newly created processes
is higher than that of previously created processes and list of asok
files returned by "glob.glob(asok_path)" in find_socket() is in
descending order of PIDs.

Signed-off-by: Rishabh Dave <ridave@redhat.com>
2020-06-01 23:53:02 +05:30
Xiubo Li
a7423b2286 qa/tasks/cephfs/test_scrub.py: use umount_wait to avoid ceph-fuse stuck
If the ceph-fuse client need to flush the caps and does sync wait,
the umount() will just return successfully, then the netns container
will be destroyed and the network will not be reachable, but the
ceph-fuse daemon is still stucked and waiting for the flush caps ack.

This will cause the ceph-fuse daemon get stuck forever and if the
mds daemons get restarted, it will try to reconnect the clients,
but the stucked ceph-fuse daemnon won't reply to it, because it is
not reachable any more.

Fixes: https://tracker.ceph.com/issues/45665
Signed-off-by: Xiubo Li <xiubli@redhat.com>
2020-06-01 09:24:02 -04:00
Varsha Rao
b2adff10b5 qa/tasks/cephfs: Enable multiple exports tests
Signed-off-by: Varsha Rao <varao@redhat.com>
2020-05-29 23:36:34 +05:30
Sebastian Wagner
eddb6354e1 qa/cephadm: FileNotFoundError doesn't exist in py2
Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
2020-05-29 16:04:20 +02:00
Sebastian Wagner
ffef64d046 qa/cephadm: Add RGW
Fixes: https://tracker.ceph.com/issues/43911

Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
2020-05-29 13:33:05 +02:00
Varsha Rao
1477c98764 qa/tasks/cephfs: Don't enable cephadm in TestNFS
Signed-off-by: Varsha Rao <varao@redhat.com>
2020-05-29 15:24:03 +05:30
Varsha Rao
af3b925dfd qa/tasks/cephfs: Add tests for nfs exports
Signed-off-by: Varsha Rao <varao@redhat.com>
2020-05-29 14:56:34 +05:30
Varsha Rao
ab41951b04 qa/cephfs: Add tests for nfs
Signed-off-by: Varsha Rao <varao@redhat.com>
2020-05-29 14:47:32 +05:30
Georgios Kyratsas
fabcbeab2c qa/tasks/cephadm: Add check fox already set image
Adding a check for already bootstrapped clusters where the image is
already set to avoid overriding it.

Signed-off-by: Georgios Kyratsas <gkyratsas@suse.com>
2020-05-28 17:15:59 +02:00
Xiubo Li
9bc1a74342 qa/tasks/cephfs/mount.py: remove netns name parsing in mountpoint setter
We can get the correct netns name always by using the netns_name
getter.

Signed-off-by: Xiubo Li <xiubli@redhat.com>
2020-05-27 21:34:02 -04:00
Xiubo Li
9f757c18a8 qa/tasks/vstart_runner.py: add kwargs parameter to ignore the ones it does not understand
INFO:__main__:test_replay_create (tasks.cephfs.test_cap_flush.TestCapFlush) ... ERROR
INFO:__main__:Stopped test: test_replay_create (tasks.cephfs.test_cap_flush.TestCapFlush) in 22.251901s
INFO:__main__:
INFO:__main__:======================================================================
INFO:__main__:ERROR: test_replay_create (tasks.cephfs.test_cap_flush.TestCapFlush)
INFO:__main__:----------------------------------------------------------------------
INFO:__main__:Traceback (most recent call last):
INFO:__main__:  File "/data/ceph/qa/tasks/cephfs/cephfs_test_case.py", line 145, in setUp
INFO:__main__:    self.mounts[i].mount_wait()
INFO:__main__:  File "/data/ceph/qa/tasks/cephfs/mount.py", line 420, in mount_wait
INFO:__main__:    mount_options=mount_options)
INFO:__main__:TypeError: mount() got an unexpected keyword argument 'mountpoint'
INFO:__main__:
INFO:__main__:----------------------------------------------------------------------
INFO:__main__:Ran 1 test in 22.253s
INFO:__main__:
INFO:__main__:FAILED (errors=1)
INFO:__main__:

Fixes: https://tracker.ceph.com/issues/45300
Signed-off-by: Xiubo Li <xiubli@redhat.com>
2020-05-27 21:18:53 -04:00