]> git.apps.os.sepia.ceph.com Git - ceph.git/log
ceph.git
5 years agoMerge pull request #35463 from bk201/wip-45836-octopus
Yuri Weinstein [Tue, 23 Jun 2020 20:13:10 +0000 (13:13 -0700)]
Merge pull request #35463 from bk201/wip-45836-octopus

octopus: monitoring: fixing some issues in RBD detail dashboard

Reviewed-by: Stephan Müller <smueller@suse.com>
5 years agoMerge pull request #35446 from smithfarm/wip-45682-octopus
Yuri Weinstein [Tue, 23 Jun 2020 20:12:24 +0000 (13:12 -0700)]
Merge pull request #35446 from smithfarm/wip-45682-octopus

octopus: os/bluestore: fix large (>2GB) writes when bluefs_buffered_io = true

Reviewed-by: Neha Ojha <nojha@redhat.com>
Reviewed-by: Igor Fedotov <ifedotov@suse.com>
5 years agoMerge pull request #35236 from smithfarm/wip-45676-octopus
Yuri Weinstein [Tue, 23 Jun 2020 20:11:29 +0000 (13:11 -0700)]
Merge pull request #35236 from smithfarm/wip-45676-octopus

octopus: qa/workunits: Remove redundant Xenial cmake3 requirements

Reviewed-by: Kefu Chai <kchai@redhat.com>
Reviewed-by: Brad Hubbard <bhubbard@redhat.com>
5 years agoMerge pull request #34849 from rhcs-dashboard/wip-45346-octopus
Yuri Weinstein [Tue, 23 Jun 2020 20:10:18 +0000 (13:10 -0700)]
Merge pull request #34849 from rhcs-dashboard/wip-45346-octopus

octopus: mgr/dashboard: Asynchronous unique username validation for User Component

Reviewed-by: Ernesto Puerta <epuertat@redhat.com>
Reviewed-by: Volker Theile <vtheile@suse.com>
Reviewed-by: Lenz Grimmer <lgrimmer@suse.com>
5 years agoMerge pull request #35718 from callithea/wip-46136-octopus
Lenz Grimmer [Tue, 23 Jun 2020 10:13:21 +0000 (12:13 +0200)]
Merge pull request #35718 from callithea/wip-46136-octopus

octopus: mgr/dashboard: fix autocomplete input backgrounds in chrome and firefox

Reviewed-by: Alfonso Martínez <almartin@redhat.com>
Reviewed-by: Ishan Rai <ishanrai05@gmail.com>
5 years agoMerge pull request #35135 from shyukri/wip-45557-octopus
Laura Paduano [Tue, 23 Jun 2020 08:47:41 +0000 (10:47 +0200)]
Merge pull request #35135 from shyukri/wip-45557-octopus

octopus: mgr/dashboard: Prevent dashboard breakdown on bad pool selection

Reviewed-by: Alfonso Martínez <almartin@redhat.com>
Reviewed-by: Stephan Müller <smueller@suse.com>
Reviewed-by: Laura Paduano <lpaduano@suse.com>
5 years agoMerge pull request #35706 from tspmelo/wip-45541-octopus
Laura Paduano [Tue, 23 Jun 2020 08:40:59 +0000 (10:40 +0200)]
Merge pull request #35706 from tspmelo/wip-45541-octopus

octopus: mgr/dashboard: Fix random E2E error in mgr-modules

Reviewed-by: Alfonso Martínez <almartin@redhat.com>
Reviewed-by: Laura Paduano <lpaduano@suse.com>
5 years agoMerge pull request #35693 from rhcs-dashboard/wip-45727-octopus
Laura Paduano [Tue, 23 Jun 2020 07:27:50 +0000 (09:27 +0200)]
Merge pull request #35693 from rhcs-dashboard/wip-45727-octopus

octopus: mgr/dashboard: grafana panels for rgw multisite sync performance

Reviewed-by: Ernesto Puertat <epuertat@redhat.com>
Reviewed-by: Stephan Müller <smueller@suse.com>
Reviewed-by: Laura Paduano <lpaduano@suse.com>
5 years agomgr/dashboard: fix autocomplete input backgrounds in chrome and firefox 35718/head
Ishan Rai [Fri, 19 Jun 2020 14:56:16 +0000 (14:56 +0000)]
mgr/dashboard: fix autocomplete input backgrounds in chrome and firefox

Fixes: https://tracker.ceph.com/issues/46109
Signed-off-by: Ishan Rai <ishanrai05@gmail.com>
(cherry picked from commit 01df08a49d7d06c7688cc1bcb5eac1fac402c5da)

5 years agoMerge pull request #35670 from kotreshhr/wip-46001-octopus
Yuri Weinstein [Mon, 22 Jun 2020 17:45:30 +0000 (10:45 -0700)]
Merge pull request #35670 from kotreshhr/wip-46001-octopus

octopus: mgr/volumes: Add snapshot info command

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
Reviewed-by: Ramana Raja <rraja@redhat.com>
5 years agoMerge pull request #35671 from kotreshhr/wip-45849-octopus
Yuri Weinstein [Mon, 22 Jun 2020 17:44:54 +0000 (10:44 -0700)]
Merge pull request #35671 from kotreshhr/wip-45849-octopus

octopus: mgr/volumes: Create subvolume with isolated rados namespace

Reviewed-by: Ramana Raja <rraja@redhat.com>
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
5 years agoMerge pull request #35600 from smithfarm/wip-46013-octopus
Yuri Weinstein [Mon, 22 Jun 2020 17:43:16 +0000 (10:43 -0700)]
Merge pull request #35600 from smithfarm/wip-46013-octopus

octopus: qa/vstart_runner: update vstart_runner.LocalRemote.sh

Reviewed-by: Rishabh Dave <ridave@redhat.com>
Reviewed-by: Kyr Shatskyy <kyrylo.shatskyy@suse.com>
Reviewed-by: Jos Collin <jcollin@redhat.com>
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
5 years agoMerge pull request #35555 from Vicente-Cheng/wip-45851-octopus
Yuri Weinstein [Mon, 22 Jun 2020 17:41:14 +0000 (10:41 -0700)]
Merge pull request #35555 from Vicente-Cheng/wip-45851-octopus

octopus: mds: flag backtrace scrub failures for new files as okay

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
5 years agoMerge pull request #35554 from Vicente-Cheng/wip-45848-octopus
Yuri Weinstein [Mon, 22 Jun 2020 17:39:51 +0000 (10:39 -0700)]
Merge pull request #35554 from Vicente-Cheng/wip-45848-octopus

octopus: qa/tasks/vstart_runner.py: add def mountpoint parameter

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
Reviewed-by: Xiubo Li <xiubli@redhat.com>
5 years agoMerge pull request #35451 from smithfarm/wip-45846-octopus
Yuri Weinstein [Mon, 22 Jun 2020 17:37:30 +0000 (10:37 -0700)]
Merge pull request #35451 from smithfarm/wip-45846-octopus

octopus: tests: cephfs: run modprobe beforehand so that /sys/fs/fuse/connections is never absen

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>t
5 years agoMerge pull request #35450 from smithfarm/wip-45845-octopus
Yuri Weinstein [Mon, 22 Jun 2020 17:36:05 +0000 (10:36 -0700)]
Merge pull request #35450 from smithfarm/wip-45845-octopus

octopus: src/client/fuse_ll: compatible with libfuse3.5 or higher

Reviewed-by: Xiubo Li <xiubli@redhat.com>
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
5 years agoMerge pull request #35449 from smithfarm/wip-45842-octopus
Yuri Weinstein [Mon, 22 Jun 2020 17:34:36 +0000 (10:34 -0700)]
Merge pull request #35449 from smithfarm/wip-45842-octopus

octopus: cephfs: fuse: add the '-d' option back for libfuse

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
5 years agoMerge pull request #34998 from smithfarm/wip-45476-octopus
Yuri Weinstein [Mon, 22 Jun 2020 17:33:54 +0000 (10:33 -0700)]
Merge pull request #34998 from smithfarm/wip-45476-octopus

octopus: cephfs-shell: Change tox testenv name to py3

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
5 years agoMerge pull request #35616 from Vicente-Cheng/wip-45888-octopus
Yuri Weinstein [Mon, 22 Jun 2020 17:31:27 +0000 (10:31 -0700)]
Merge pull request #35616 from Vicente-Cheng/wip-45888-octopus

octopus: qa/tasks/cephfs/test_scrub.py: use umount_wait to avoid possible ceph-fuse daemon stuck

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
5 years agoMerge pull request #35448 from smithfarm/wip-45838-octopus
Yuri Weinstein [Mon, 22 Jun 2020 17:28:00 +0000 (10:28 -0700)]
Merge pull request #35448 from smithfarm/wip-45838-octopus

octopus: mds: cleanup uncommitted fragments before mds goes to active

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
5 years agomgr/dashboard: Fix random E2E error in mgr-modules 35706/head
Tiago Melo [Sat, 9 May 2020 02:28:39 +0000 (02:28 +0000)]
mgr/dashboard: Fix random E2E error in mgr-modules

This test failed at random times when it tried to find the new value of pool_ids
in the balancer module.
This happened because the value of pool_ids is automatically reverted by ceph,
so in some situations when we tried to read the new value,
it was already reverted and failed.

Enhanced the tests to be able to use any text input, not only the ones with
empty default values.

Fixes: https://tracker.ceph.com/issues/45445
Signed-off-by: Tiago Melo <tmelo@suse.com>
(cherry picked from commit 08bb5a851f729b01c7cf69f662588903fd7c14bc)

5 years agoMerge pull request #35268 from callithea/wip-45710-octopus
Nathan Cutler [Mon, 22 Jun 2020 11:35:47 +0000 (13:35 +0200)]
Merge pull request #35268 from callithea/wip-45710-octopus

octopus: mgr/dashboard: redesign the login screen

Reviewed-by: Tatjana Dehler <tdehler@suse.com>
Reviewed-by: Alfonso Martínez <almartin@redhat.com>
Reviewed-by: Ernesto Puerta <epuertat@redhat.com>
5 years agoMerge pull request #35269 from callithea/wip-45368-octopus
Nathan Cutler [Mon, 22 Jun 2020 10:44:56 +0000 (12:44 +0200)]
Merge pull request #35269 from callithea/wip-45368-octopus

octopus: mgr/dashboard: displaying Service detail inside table

Reviewed-by: Lenz Grimmer <lgrimmer@suse.com>
Reviewed-by: Kiefer Chang <kiefer.chang@suse.com>
Reviewed-by: Sebastian Krah <skrah@suse.com>
Reviewed-by: Stephan Müller <smueller@suse.com>
5 years agomgr/dashboard: grafana panels for rgw multisite sync performance 35693/head
Alfonso Martínez [Fri, 22 May 2020 11:36:10 +0000 (13:36 +0200)]
mgr/dashboard: grafana panels for rgw multisite sync performance

* RGW sync perf. counters are now exposed through grafana panels.
* Sync Performance tab is only shown if rgw realm is detected.
* Prometheus module: added metrics suitable for prometheus consumption (from existing ones, not replacing for backward compatibility).

Fixes: https://tracker.ceph.com/issues/45310
Signed-off-by: Alfonso Martínez <almartin@redhat.com>
(cherry picked from commit cf4ff7d2f03bc285a3fae3f27577333f11dab58a)

 Conflicts:
   src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-bucket-form/rgw-bucket-form.component.spec.ts
   src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-bucket-form/rgw-bucket-form.component.ts

   - Backport conflicts resolved in these files.

5 years agoMerge pull request #35679 from tspmelo/wip-46111-octopus
Kefu Chai [Mon, 22 Jun 2020 06:59:49 +0000 (14:59 +0800)]
Merge pull request #35679 from tspmelo/wip-46111-octopus

octopus: mgr/dashboard: Fix e2e chromium binary validation

Reviewed-by: Laura Paduano <lpaduano@suse.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
5 years agomgr/dashboard: Fix e2e chrome and chromium binaries verification 35679/head
Tiago Melo [Fri, 19 Jun 2020 11:19:16 +0000 (11:19 +0000)]
mgr/dashboard: Fix e2e chrome and chromium binaries verification

Fixes: https://tracker.ceph.com/issues/46110
Signed-off-by: Tiago Melo <tmelo@suse.com>
(cherry picked from commit e4b8d7eac352eb31fd17e420521aa2c1ce44453f)

Conflicts:
src/pybind/mgr/dashboard/run-frontend-e2e-tests.sh
There was an extra square bracket in octopus that caused the conflict.
This was manually fixed, since the commit that removed it will not be
backported.

5 years agoMerge pull request #35243 from smithfarm/wip-45707-octopus
Lenz Grimmer [Fri, 19 Jun 2020 14:47:23 +0000 (16:47 +0200)]
Merge pull request #35243 from smithfarm/wip-45707-octopus

octopus: mgr/dashboard: Fix redirect after changing password

Reviewed-by: Laura Paduano <lpaduano@suse.com>
Reviewed-by: Tatjana Dehler <tdehler@suse.com>
Reviewed-by: Tiago Melo <tmelo@suse.com>
5 years agomgr/volumes: Create subvolume with isolated rados namespace 35671/head
Kotresh HR [Mon, 27 Apr 2020 18:31:33 +0000 (00:01 +0530)]
mgr/volumes: Create subvolume with isolated rados namespace

1. Add --namespace-isolated option to 'subvolume create' command
   to create subvolume in a separate RADOS namespace
2. Add "pool_namespace" field to 'subvolume info' command
   which displays the rados namespace if set else empty string

Fixes: https://tracker.ceph.com/issues/45289
Signed-off-by: Kotresh HR <khiremat@redhat.com>
(cherry picked from commit 7396880d4096b3a2a813b8ebcdcdf3082ee98b23)

5 years agomgr/volumes: Add snapshot info command 35670/head
Kotresh HR [Wed, 22 Apr 2020 10:40:27 +0000 (16:10 +0530)]
mgr/volumes: Add snapshot info command

The following command is added

"ceph fs subvolume snapshot info <vol_name> <sub_name> <snap_name> [<group_name>]"

The output is in json format with following fields

    created_at: time of creation of snapshot in the format "YYYY-MM-DD HH:MM:SS:ffffff"
    data_pool: data pool the snapshot belongs to
    has_pending_clones: "yes" if snapshot clone is in progress otherwise "no"
    protected: "yes" if snapshot is protected otherwise "no"
    size: snapshot size in bytes

Fixes: https://tracker.ceph.com/issues/45237
Signed-off-by: Kotresh HR <khiremat@redhat.com>
(cherry picked from commit 171930ef773ee6630c76eb9581c725594fb4e884)

5 years agoMerge pull request #35270 from callithea/wip-45232-octopus
Lenz Grimmer [Fri, 19 Jun 2020 09:14:26 +0000 (11:14 +0200)]
Merge pull request #35270 from callithea/wip-45232-octopus

octopus: mgr/dashboard: Show table details inside the datatable

Reviewed-by: Alfonso Martínez <almartin@redhat.com>
Reviewed-by: Kiefer Chang <kiefer.chang@suse.com>
Reviewed-by: Sebastian Krah <skrah@suse.com>
Reviewed-by: Stephan Müller <smueller@suse.com>
5 years agoMerge pull request #35452 from shyukri/wip-45783-octopus
Jan Fajerski [Fri, 19 Jun 2020 08:15:37 +0000 (10:15 +0200)]
Merge pull request #35452 from shyukri/wip-45783-octopus

octopus: ceph-volume: add and delete lvm tags in a single lvchange call.

5 years agomgr/dashboard: Asynchronous unique username validation for User Component 34849/head
Nizamudeen A [Wed, 22 Apr 2020 11:23:41 +0000 (16:53 +0530)]
mgr/dashboard: Asynchronous unique username validation for User Component

Implements an asynchronous validation for the username field in the Create User form which immediately display an error message if the username already exists.

Fixes: https://tracker.ceph.com/issues/36375
Signed-off-by: Nizamudeen <nia@redhat.com>
(cherry picked from commit c4dfe20c08ecb9e50b7cb7bef6eb603e04d56387)

5 years agomgr/dashboard: update background image in about modal box 35268/head
Ishan Rai [Tue, 12 May 2020 09:10:28 +0000 (14:40 +0530)]
mgr/dashboard: update background image in about modal box

Signed-off-by: Ishan Rai <ishanrai05@gmail.com>
(cherry picked from commit 80d5ad81fa740bd3b9f597632f546949700dc0ec)

5 years agomgr/dashboard: redesign the login screen
Ishan Rai [Fri, 20 Mar 2020 11:22:06 +0000 (16:52 +0530)]
mgr/dashboard: redesign the login screen

fixes: https://tracker.ceph.com/issues/35689
Signed-off-by: Ishan Rai <ishanrai05@gmail.com>
(cherry picked from commit 6b35508ef87cf5c94f6290e5752e36af3acab9bf)

5 years agoMerge pull request #35444 from smithfarm/wip-45882-octopus
Yuri Weinstein [Thu, 18 Jun 2020 22:32:35 +0000 (15:32 -0700)]
Merge pull request #35444 from smithfarm/wip-45882-octopus

octopus: Objecter: don't attempt to read from non-primary on EC pools

Reviewed-by: Kefu Chai <kchai@redhat.com>
Reviewed-by: Samuel Just <sjust@redhat.com>
5 years agoMerge pull request #35442 from smithfarm/wip-45775-octopus
Yuri Weinstein [Thu, 18 Jun 2020 22:31:21 +0000 (15:31 -0700)]
Merge pull request #35442 from smithfarm/wip-45775-octopus

octopus: osd: make "missing incremental map" a debug log message

Reviewed-by: Kefu Chai <kchai@redhat.com>
Reviewed-by: Neha Ojha <nojha@redhat.com>
5 years agoMerge pull request #35382 from jschmid1/wip-45880-octopus
Yuri Weinstein [Thu, 18 Jun 2020 22:29:45 +0000 (15:29 -0700)]
Merge pull request #35382 from jschmid1/wip-45880-octopus

octopus: osd: add --osdspec-affinity flag

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
5 years agoMerge pull request #35291 from callithea/wip-45738-octopus
Yuri Weinstein [Thu, 18 Jun 2020 22:28:49 +0000 (15:28 -0700)]
Merge pull request #35291 from callithea/wip-45738-octopus

octopus: mgr/dashboard: Proposed About Modal box

Reviewed-by: Ernesto Puerta <epuertat@redhat.com>
Reviewed-by: Tiago Melo <tmelo@suse.com>
5 years agoMerge pull request #35152 from callithea/wip-45370-octopus
Yuri Weinstein [Thu, 18 Jun 2020 22:26:04 +0000 (15:26 -0700)]
Merge pull request #35152 from callithea/wip-45370-octopus

octopus: mgr/dashboard: ECP modal enhancement

Reviewed-by: Tatjana Dehler <tdehler@suse.com>
Reviewed-by: Stephan Müller <smueller@suse.com>
5 years agoMerge pull request #35151 from callithea/wip-45468-octopus
Yuri Weinstein [Thu, 18 Jun 2020 22:24:47 +0000 (15:24 -0700)]
Merge pull request #35151 from callithea/wip-45468-octopus

octopus: monitoring: Fix "10% OSDs down" alert description

Reviewed-by: Alfonso Martínez <almartin@redhat.com>
Reviewed-by: Patrick Seidensal <pnawracay@suse.com>
5 years agoMerge pull request #35447 from smithfarm/wip-45773-octopus
Yuri Weinstein [Thu, 18 Jun 2020 22:23:01 +0000 (15:23 -0700)]
Merge pull request #35447 from smithfarm/wip-45773-octopus

octopus: cephfs: vstart_runner: set mounted to True at the end of mount()

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
5 years agoMerge pull request #35256 from Vicente-Cheng/wip-45680-octopus
Yuri Weinstein [Thu, 18 Jun 2020 22:22:36 +0000 (15:22 -0700)]
Merge pull request #35256 from Vicente-Cheng/wip-45680-octopus

octopus: mgr/volumes: Fix subvolume create idempotency

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
5 years agofuse: update to newer FUSE_USE_VERSION 35450/head
Jeff Layton [Wed, 3 Jun 2020 15:29:07 +0000 (11:29 -0400)]
fuse: update to newer FUSE_USE_VERSION

The build was failing for me against fuse-devel v3.9.1. The prototype
for fuse_ll_ioctl was wrong, as it was expecting the old-style one with
signed int args.

In newer libfuse versions, the prototype varies based on
FUSE_USE_VERSION. Update to a newer FUSE_USE_VERSION value to ensure
that we use the newer ioctl prototype. This also means that we need to
handle a new prototype for fuse_session_loop_mt as well.

While we're in here, move the definition of FUSE_USE_VERSION to
ceph_fuse.h so we have the definition in one place. This does mean we
need to reorganize the includes in a few places.

Fixes: https://tracker.ceph.com/issues/45866
Signed-off-by: Jeff Layton <jlayton@redhat.com>
(cherry picked from commit cfbc0fb48a9880dabe8f332e9bf67d81867ae198)

5 years agoMerge pull request #35531 from bk201/wip-45921-octopus
Lenz Grimmer [Thu, 18 Jun 2020 11:32:02 +0000 (13:32 +0200)]
Merge pull request #35531 from bk201/wip-45921-octopus

octopus: mgr/dashboard: remove space after service name in the Hosts List table

Reviewed-by: Stephan Müller <smueller@suse.com>
Reviewed-by: Tatjana Dehler <tdehler@suse.com>
5 years agoqa/tasks/vstart_runner: make remote.sh return str as default 35600/head
Xiubo Li [Thu, 23 Apr 2020 23:14:36 +0000 (19:14 -0400)]
qa/tasks/vstart_runner: make remote.sh return str as default

To address the issue in https://github.com/ceph/teuthology/pull/1459.

Signed-off-by: Xiubo Li <xiubli@redhat.com>
(cherry picked from commit 624944503e7c6aa246331f4d9f291cf714296380)

5 years agoqa/tasks/cephfs/test_scrub.py: use umount_wait to avoid ceph-fuse stuck 35616/head
Xiubo Li [Mon, 1 Jun 2020 01:57:24 +0000 (21:57 -0400)]
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>
(cherry picked from commit a7423b2286154a4403e586b5148984649f988a03)

5 years agoqa/cephfs: add FUSE module before running mount -t fusectl 35451/head
Rishabh Dave [Tue, 28 Apr 2020 10:19:19 +0000 (15:49 +0530)]
qa/cephfs: add FUSE module before running mount -t fusectl

Also, change timeout from 15 minutes to 30 seconds for the command
"mount -t fusectl xxx xxx" since 15 minutes is too much as per Zheng.

Fixes: https://tracker.ceph.com/issues/45304
Signed-off-by: Rishabh Dave <ridave@redhat.com>
(cherry picked from commit 2d7c32997b9e5db5a13f5ed6e117ac9f71dac370)

5 years agoqa/tasks/cephfs/fuse_mount.py: by python3 compatible
Kefu Chai [Mon, 20 Apr 2020 11:50:02 +0000 (19:50 +0800)]
qa/tasks/cephfs/fuse_mount.py: by python3 compatible

pass `StringIO()` to capture stdout whose value will be interpreted as a
string later on

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

5 years agoqa/vstart_runner: update vstart_runner.LocalRemote.sh
Rishabh Dave [Fri, 13 Mar 2020 07:03:50 +0000 (07:03 +0000)]
qa/vstart_runner: update vstart_runner.LocalRemote.sh

Commit 9f6c764f10f replaces remote.run calls by remote.sh without
updating the definition of vstart_runner.LocalRemote.sh which breaks the
cephfs tests when executed locally.

Fixes: https://tracker.ceph.com/issues/44579
Signed-off-by: Rishabh Dave <ridave@redhat.com>
(cherry picked from commit 2cc0ee709c36eabe03311a00b72295da468bccf4)

Conflicts:
qa/tasks/vstart_runner.py
- trivial

5 years agoMerge pull request #35364 from tchaikov/octopus-py3
Kefu Chai [Tue, 16 Jun 2020 01:22:34 +0000 (09:22 +0800)]
Merge pull request #35364 from tchaikov/octopus-py3

octopus: migrate qa/ to Python3

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
Reviewed-by: Neha Ojha <nojha@redhat.com>
Reviewed-by: Kyr Shatskyy <kyrylo.shatskyy@suse.com>
5 years agoqa: add .teuthology_branch with `master` contents 35364/head
Kyr Shatskyy [Tue, 2 Jun 2020 17:05:30 +0000 (19:05 +0200)]
qa: add .teuthology_branch with `master` contents

This is follow up change for:

    teuthology-suite: automate -t argument default value
    https://github.com/ceph/teuthology/pull/1490

Signed-off-by: Kyr Shatskyy <kyrylo.shatskyy@suse.com>
(cherry picked from commit 07cc36dcd264b66a7f3a19687b336737a772c2f5)

5 years agoqa/tasks/rbd_fio: unbreak after the conversion from StringIO
Ilya Dryomov [Wed, 8 Apr 2020 10:24:51 +0000 (12:24 +0200)]
qa/tasks/rbd_fio: unbreak after the conversion from StringIO

Fix a bad typo in commit db7ae8eff60a ("qa/tasks/rbd_fio: get rid of
StringIO for py3").

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
(cherry picked from commit c3f4f1d6604749a51c552b868ef373f321139005)

5 years agoqa/tasks/cephfs: add mount_wait() support to simplify the code
Xiubo Li [Fri, 3 Apr 2020 09:26:22 +0000 (05:26 -0400)]
qa/tasks/cephfs: add mount_wait() support to simplify the code

Mostly we should wait the mountpoint to get ready, especially for
the fuse mountpoint, sometimes it may take a few seconds to get
ready.

Fixes: https://tracker.ceph.com/issues/44044
Signed-off-by: Xiubo Li <xiubli@redhat.com>
(cherry picked from commit 5c24d91327f598ea9fee59ea87ddc6582d48bd96)

5 years agoqa/tasks/cephfs: use StringIO for capturing str
Kefu Chai [Sat, 28 Mar 2020 11:10:03 +0000 (19:10 +0800)]
qa/tasks/cephfs: use StringIO for capturing str

if we don't expect non-utf8 in stdout, use StringIO instead of BytesIO.

see also d8d44ed1566b19eec055e07da2a0fed88fed4152

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

5 years agoqa/rgw: partial revert of 'import with full path'
Casey Bodley [Wed, 25 Mar 2020 20:19:15 +0000 (16:19 -0400)]
qa/rgw: partial revert of 'import with full path'

Signed-off-by: Casey Bodley <cbodley@redhat.com>
(cherry picked from commit aa60edcec89b1538070b316c496e55bd0e15f966)

5 years agoqa/cephfs: use StringIO instead of BytesIO
Rishabh Dave [Wed, 6 May 2020 18:06:45 +0000 (23:36 +0530)]
qa/cephfs: use StringIO instead of BytesIO

Fixes: https://tracker.ceph.com/issues/45425
Signed-off-by: Rishabh Dave <ridave@redhat.com>
(cherry picked from commit 71b823daee05dd96cb3cced8ff34943d7afc4210)

Conflicts:
qa/tasks/cephfs/mount.py: trivial resolution

5 years agotest/rgw: should import parse not urlparse
Kefu Chai [Wed, 25 Mar 2020 13:47:54 +0000 (21:47 +0800)]
test/rgw: should import parse not urlparse

urlparse is a function while parse is a submodule where parse_qsl() is
provided

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

5 years agoqa/tasks/barbican.py: convert to str before json.loads()
Kefu Chai [Mon, 6 Apr 2020 09:36:18 +0000 (17:36 +0800)]
qa/tasks/barbican.py: convert to str before json.loads()

in Python3, json.loads() expects a string, while
HTTPConnection.getresponse() returns a byte-like object, so we need to
coerce it to str first.

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

5 years agoqa/tasks/tempest: use --black-regex for blacklisting tests
Kefu Chai [Sun, 31 May 2020 01:03:12 +0000 (09:03 +0800)]
qa/tasks/tempest: use --black-regex for blacklisting tests

simpler this way

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

5 years agoqa/keystone: unpin python-openstackclient
Kefu Chai [Sun, 31 May 2020 01:01:39 +0000 (09:01 +0800)]
qa/keystone: unpin python-openstackclient

this reverts 2dac5c5012cffb5f41d7e7457569c6bfdc53ec26,
as we don't use `--os-url` anymore.

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

5 years agoqa/tasks/tempest: use user/pass to authenticate
Kefu Chai [Sun, 31 May 2020 00:54:41 +0000 (08:54 +0800)]
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>
(cherry picked from commit 8f5c832915cd5f7e7e9c4f2a0517edc9573fa349)

5 years agoqa/suites/rgw/tempest: update unsupported tests of tempest
Kefu Chai [Sun, 31 May 2020 00:47:34 +0000 (08:47 +0800)]
qa/suites/rgw/tempest: update unsupported tests of tempest

after rerunning tempest with lastest radosgw, remove the supported
tests from the blacklist, and add the ones which are not supported
yet. now we can pass 123 tests in total.

also enable discoverity for better testing coverage, since it's
supported now.

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

5 years agoqa/tasks/keystone: use "keystone-manage bootstrap"
Kefu Chai [Sun, 31 May 2020 00:38:00 +0000 (08:38 +0800)]
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>
(cherry picked from commit a53c69943ca363c6e7b377f5c538553e037d9bf5)

5 years agoqa/suites/rgw/tempest: use the latest tempest supporting py3.5
Kefu Chai [Thu, 28 May 2020 16:51:39 +0000 (00:51 +0800)]
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>
(cherry picked from commit 8cb3f0411d4e8ff32f54a447c638187f0e7e42ae)

5 years agoqa/tasks/keystone.py: support multiple positional args
Kefu Chai [Thu, 28 May 2020 15:14:35 +0000 (23:14 +0800)]
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>
(cherry picked from commit a620587ecfd2fb5351deff0f073c4abe1a222c3d)

5 years agoqa/suites/rgw/tempest: bump up keystone to 17.0.0
Kefu Chai [Mon, 25 May 2020 07:52:04 +0000 (15:52 +0800)]
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>
(cherry picked from commit 9bd3e0ff4027cfbef0c62931b669f20c989e8bb2)

5 years agoqa/tasks/tox: use python3 for tox tests
Kefu Chai [Sun, 24 May 2020 17:04:37 +0000 (01:04 +0800)]
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>
(cherry picked from commit 874f8b79e5a52a868b5e6ef2ba7fd4f88817e3a0)

5 years agotest/rgw/rgw_multi: do not decode a str
Kefu Chai [Mon, 6 Apr 2020 07:03:22 +0000 (15:03 +0800)]
test/rgw/rgw_multi: do not decode a str

`s` comes from `rgwadmin()`, which passes `StringIO` as stdout, so the
the output should an instance of `str` in both Python2 and Python3.
hence there is no need to decode it using UTF-8 codecs again.

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

5 years agoqa/tasks/util/rgw: use StringIO for capturing strings
Kefu Chai [Mon, 6 Apr 2020 04:48:18 +0000 (12:48 +0800)]
qa/tasks/util/rgw: use StringIO for capturing strings

this change should address the failure of
```
2020-04-06T03:07:59.152 ERROR:teuthology.contextutil:Saw exception from nested tasks
Traceback (most recent call last):
  File "/home/teuthworker/src/git.ceph.com_git_teuthology_wip-py3/teuthology/contextutil.py", line 32, in nested
    vars.append(enter())
  File "/usr/lib/python3.5/contextlib.py", line 59, in __enter__
    return next(self.gen)
  File "/home/teuthworker/src/github.com_tchaikov_ceph_wip-qa-py3/qa/tasks/rgw.py", line 266, in configure_compression
    rgwadmin(ctx, client, cmd=['user', 'list'], check_status=True)
  File "/home/teuthworker/src/github.com_tchaikov_ceph_wip-qa-py3/qa/tasks/util/rgw.py", line 43, in rgwadmin
    j = json.loads(out)
  File "/usr/lib/python3.5/json/__init__.py", line 312, in loads
    s.__class__.__name__))
TypeError: the JSON object must be str, not 'bytes'
```

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

5 years agoqa/tasks/cephfs/kernel_mount: get rid of StringIO.StringIO for py3
Kyr Shatskyy [Mon, 16 Dec 2019 01:46:13 +0000 (02:46 +0100)]
qa/tasks/cephfs/kernel_mount: get rid of StringIO.StringIO for py3

Signed-off-by: Kyr Shatskyy <kyrylo.shatskyy@suse.com>
(cherry picked from commit 875b45f3c903781ba99dbd2fcf4d2fc89001c25b)

5 years agoqa/tasks/kclient: fix import for py3
Kyr Shatskyy [Mon, 16 Dec 2019 01:50:09 +0000 (02:50 +0100)]
qa/tasks/kclient: fix import for py3

Signed-off-by: Kyr Shatskyy <kyrylo.shatskyy@suse.com>
(cherry picked from commit 06f22a3097c66a3f04e2b00a388aa468fa5dbd30)

5 years agoqa/tasks/ceph_fuse: fix import for py3
Kyr Shatskyy [Mon, 16 Dec 2019 02:13:50 +0000 (03:13 +0100)]
qa/tasks/ceph_fuse: fix import for py3

Signed-off-by: Kyr Shatskyy <kyrylo.shatskyy@suse.com>
(cherry picked from commit ac2fa95b21a3d4b3719af39c6416606111458cf8)

5 years agoqa/tasks/radosgw_admin: fix tab inconsistancy
Kyr Shatskyy [Mon, 16 Dec 2019 02:42:28 +0000 (03:42 +0100)]
qa/tasks/radosgw_admin: fix tab inconsistancy

Signed-off-by: Kyr Shatskyy <kyrylo.shatskyy@suse.com>
(cherry picked from commit 08b83007dcbfd20d6188fce8175939ed5cff5ba1)

5 years agoqa/tasks/devstack: get rid of cStringIO
Kyr Shatskyy [Mon, 16 Dec 2019 02:47:38 +0000 (03:47 +0100)]
qa/tasks/devstack: get rid of cStringIO

Signed-off-by: Kyr Shatskyy <kyrylo.shatskyy@suse.com>
(cherry picked from commit b23ae40a8b07dbbfee23c746b583d3c94bcfd4e5)

5 years agoqa/tasks/rbd: get rid of cStringIO for py3
Kyr Shatskyy [Sat, 15 Feb 2020 02:51:46 +0000 (03:51 +0100)]
qa/tasks/rbd: get rid of cStringIO for py3

Use io.BytesIO and six.ensure_str for py3 compatibility
instead of cStringIO.StringIO

Signed-off-by: Kyr Shatskyy <kyrylo.shatskyy@suse.com>
(cherry picked from commit 7b72097cd1cf93f5445483802344327f1e3da0bc)

5 years agoqa/tasks/s3tests: py3 compat
Kyr Shatskyy [Sat, 15 Feb 2020 10:12:40 +0000 (11:12 +0100)]
qa/tasks/s3tests: py3 compat

- use string.ascii_uppercase instead string.uppercase
- use six.ensure_str for bytes when required
- use six.ensure_binary if needed
- get rid of dict.itervalues in favor of dict.values
- get rid of cStringIO.StringIO in favor io.BytesIO

Signed-off-by: Kyr Shatskyy <kyrylo.shatskyy@suse.com>
(cherry picked from commit 478083e7319b0fc0eba5fc4f7fa9193ece784b15)

5 years agoqa/tasks/ragweed: get rid of itervalues for py3
Kyr Shatskyy [Sat, 15 Feb 2020 10:15:28 +0000 (11:15 +0100)]
qa/tasks/ragweed: get rid of itervalues for py3

Signed-off-by: Kyr Shatskyy <kyrylo.shatskyy@suse.com>
(cherry picked from commit b3e42cf30c7b341b2a08ae1335040e91c9e18b31)

5 years agoqa/tasks/mgr: fix imports for py3
Kyr Shatskyy [Sat, 15 Feb 2020 10:17:41 +0000 (11:17 +0100)]
qa/tasks/mgr: fix imports for py3

Signed-off-by: Kyr Shatskyy <kyrylo.shatskyy@suse.com>
(cherry picked from commit e7473b631d862110160c3ef95aa6edce11fe2092)

5 years agoqa/tasks/ragweed: get rid of cString for py3
Kyr Shatskyy [Sat, 15 Feb 2020 10:20:11 +0000 (11:20 +0100)]
qa/tasks/ragweed: get rid of cString for py3

Signed-off-by: Kyr Shatskyy <kyrylo.shatskyy@suse.com>
(cherry picked from commit f0c5f56ef8ba869ccacf799a9ed6df9dedf0caaa)

5 years agoqa/tasks/util/rgw: get rid of cString for py3
Kyr Shatskyy [Sat, 15 Feb 2020 11:05:44 +0000 (12:05 +0100)]
qa/tasks/util/rgw: get rid of cString for py3

Signed-off-by: Kyr Shatskyy <kyrylo.shatskyy@suse.com>
(cherry picked from commit 683421ea24bbed4ba72ea96a9055134bed554696)

5 years agoqa/tasks/rgw_logsocket: get rid of cStringIO for py3
Kyr Shatskyy [Sat, 15 Feb 2020 11:08:52 +0000 (12:08 +0100)]
qa/tasks/rgw_logsocket: get rid of cStringIO for py3

Signed-off-by: Kyr Shatskyy <kyrylo.shatskyy@suse.com>
(cherry picked from commit 4cf205f2856b66140f798484bff4951c95ad01a1)

5 years agoqa/tasks/radosgw_admin: get rid of cStringIO for py3
Kyr Shatskyy [Fri, 21 Feb 2020 18:13:16 +0000 (19:13 +0100)]
qa/tasks/radosgw_admin: get rid of cStringIO for py3

Signed-off-by: Kyr Shatskyy <kyrylo.shatskyy@suse.com>
(cherry picked from commit 0a224991cfb4cb9683e27c9afe6b922415a6f8ed)

5 years agoqa/tasks/qemu: get rid of cStringIO for py3
Kyr Shatskyy [Fri, 21 Feb 2020 18:45:58 +0000 (19:45 +0100)]
qa/tasks/qemu: get rid of cStringIO for py3

Signed-off-by: Kyr Shatskyy <kyrylo.shatskyy@suse.com>
(cherry picked from commit 914c0816e639b16780cfb991f5a89ffbb496d001)

5 years agoqa/tasks/keystone: get rid of cStringIO for py3
Kyr Shatskyy [Fri, 21 Feb 2020 19:15:44 +0000 (20:15 +0100)]
qa/tasks/keystone: get rid of cStringIO for py3

Signed-off-by: Kyr Shatskyy <kyrylo.shatskyy@suse.com>
(cherry picked from commit dcf85e4328bfba057d30b6720f6e641dacb11e9f)

5 years agoqa/tasks/s3tests_java: get rid of cStringIO
Kyr Shatskyy [Fri, 21 Feb 2020 20:23:33 +0000 (21:23 +0100)]
qa/tasks/s3tests_java: get rid of cStringIO

Signed-off-by: Kyr Shatskyy <kyrylo.shatskyy@suse.com>
(cherry picked from commit b0bafd1416c9f5ec0e0e93834257d4cc33d6fbce)

5 years agoqa/tasks/rbd_fio: get rid of StringIO for py3
Kyr Shatskyy [Thu, 5 Mar 2020 22:40:47 +0000 (23:40 +0100)]
qa/tasks/rbd_fio: get rid of StringIO for py3

Signed-off-by: Kyr Shatskyy <kyrylo.shatskyy@suse.com>
(cherry picked from commit db7ae8eff60a9e3cb26e4e5c736a9691cd3224e3)

5 years agoqa/tasks/devstack: use six.StringIO for py3 compat
Kyr Shatskyy [Thu, 5 Mar 2020 23:27:59 +0000 (00:27 +0100)]
qa/tasks/devstack: use six.StringIO for py3 compat

Signed-off-by: Kyr Shatskyy <kyrylo.shatskyy@suse.com>
(cherry picked from commit 09ae86aa9ecc276d75a14395aaabc12de1115c04)

5 years agoqa/tasks/rgw: fix imports for py3
Kyr Shatskyy [Sat, 15 Feb 2020 10:05:01 +0000 (11:05 +0100)]
qa/tasks/rgw: fix imports for py3

Signed-off-by: Kyr Shatskyy <kyrylo.shatskyy@suse.com>
(cherry picked from commit eec9479f6d9ee0ed8dfa705491159d49a89bec19)

5 years agoqa: import py3 compatible modules using six
Kefu Chai [Tue, 24 Mar 2020 08:33:57 +0000 (16:33 +0800)]
qa: import py3 compatible modules using six

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

5 years agoqa: import with full path
Kefu Chai [Tue, 24 Mar 2020 08:33:22 +0000 (16:33 +0800)]
qa: import with full path

to be py3 compatible

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

5 years agoqa/tasks/cephfs: fix syntax error
Kefu Chai [Tue, 24 Mar 2020 10:15:58 +0000 (18:15 +0800)]
qa/tasks/cephfs: fix syntax error

it's a regression introduced by 9f6c764f10

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

5 years agoqa/suites/krbd: whitelist MON_DOWN health warning
Kefu Chai [Wed, 10 Jun 2020 15:20:40 +0000 (23:20 +0800)]
qa/suites/krbd: whitelist MON_DOWN health warning

see also

93de19adcf1233ce4c68f1253e0b9abef6d97a9d
608e002195638e80323780f1907db40c0b9768f0

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

5 years agotest/rgw: upload using a NamedTemporaryFile
Kefu Chai [Wed, 8 Apr 2020 02:50:21 +0000 (10:50 +0800)]
test/rgw: upload using a NamedTemporaryFile

in boto, it tries to figure out the MIME type of a file by its name, if
the file-like objects has an attribute of "name". in Python2, the "name"
is always "<fdopen>", fortunately. while in Python3, `TemporaryFile` also
have a "name" which is its fd, and it is an integer now. so we have following
error when sending a `TemporaryFile` using
`upload_part_from_file()`:
```
2020-04-08T02:25:34.660 INFO:tasks.rgw_multisite_tests:Traceback (most recent call last):
2020-04-08T02:25:34.661 INFO:tasks.rgw_multisite_tests:  File "/home/teuthworker/src/git.ceph.com_git_teuthology_wip-py3/virtualenv/lib/python3.5/site-packages/nose/case.py", line 198, in runTest
2020-04-08T02:25:34.661 INFO:tasks.rgw_multisite_tests:    self.test(*self.arg)
2020-04-08T02:25:34.662 INFO:tasks.rgw_multisite_tests:  File "/home/teuthworker/src/github.com_tchaikov_ceph_wip-qa-py3/qa/tasks/rgw_multi/tests_ps.py", line 2567, in test_ps_creation_triggers
2020-04-08T02:25:34.662 INFO:tasks.rgw_multisite_tests:    uploader.upload_part_from_file(fp, 1)
2020-04-08T02:25:34.663 INFO:tasks.rgw_multisite_tests:  File "/home/teuthworker/src/git.ceph.com_git_teuthology_wip-py3/virtualenv/lib/python3.5/site-packages/boto/s3/multipart.py", line 260, in upload_part_from_file
2020-04-08T02:25:34.663 INFO:tasks.rgw_multisite_tests:    query_args=query_args, size=size)
2020-04-08T02:25:34.664 INFO:tasks.rgw_multisite_tests:  File "/home/teuthworker/src/git.ceph.com_git_teuthology_wip-py3/virtualenv/lib/python3.5/site-packages/boto/s3/key.py", line 1293, in set_contents_from_file
2020-04-08T02:25:34.664 INFO:tasks.rgw_multisite_tests:    chunked_transfer=chunked_transfer, size=size)
2020-04-08T02:25:34.664 INFO:tasks.rgw_multisite_tests:  File "/home/teuthworker/src/git.ceph.com_git_teuthology_wip-py3/virtualenv/lib/python3.5/site-packages/boto/s3/key.py", line 750, in send_file
2020-04-08T02:25:34.665 INFO:tasks.rgw_multisite_tests:    chunked_transfer=chunked_transfer, size=size)
2020-04-08T02:25:34.665 INFO:tasks.rgw_multisite_tests:  File "/home/teuthworker/src/git.ceph.com_git_teuthology_wip-py3/virtualenv/lib/python3.5/site-packages/boto/s3/key.py", line 920, in
_send_file_internal
2020-04-08T02:25:34.666 INFO:tasks.rgw_multisite_tests:    self.content_type = mimetypes.guess_type(self.path)[0]
2020-04-08T02:25:34.666 INFO:tasks.rgw_multisite_tests:  File "/usr/lib/python3.5/mimetypes.py", line 289, in guess_type
2020-04-08T02:25:34.667 INFO:tasks.rgw_multisite_tests:    return _db.guess_type(url, strict)
2020-04-08T02:25:34.667 INFO:tasks.rgw_multisite_tests:  File "/usr/lib/python3.5/mimetypes.py", line 114, in guess_type
2020-04-08T02:25:34.667 INFO:tasks.rgw_multisite_tests:    scheme, url = urllib.parse.splittype(url)
2020-04-08T02:25:34.668 INFO:tasks.rgw_multisite_tests:  File "/usr/lib/python3.5/urllib/parse.py", line 881, in splittype
2020-04-08T02:25:34.668 INFO:tasks.rgw_multisite_tests:    match = _typeprog.match(url)
2020-04-08T02:25:34.669 INFO:tasks.rgw_multisite_tests:TypeError: expected string or bytes-like object
```

to address this issue, in this change, a `NamedTemporaryFile` is used
instead of `TemporaryFile`. the former does have a "name" which is a
`str`.

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

5 years agoqa/tasks: use StringIO for capturing string output
Kefu Chai [Sun, 5 Apr 2020 10:35:42 +0000 (18:35 +0800)]
qa/tasks: use StringIO for capturing string output

see d8d44ed1566b19eec055e07da2a0fed88fed4152

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

Conflicts:
qa/tasks/cephadm.py: trivial resolution

5 years agotest/rgw/rgw_multi: s/urllib.urlencode/urlparse.urlencode/
Kefu Chai [Tue, 7 Apr 2020 12:00:52 +0000 (20:00 +0800)]
test/rgw/rgw_multi: s/urllib.urlencode/urlparse.urlencode/

urllib in python3 does not offer urlencode anymore, so let's use
six.moves.parse now.

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

5 years agoqa/tasks/radosgw_admin.py: coerce key.name and key.acl to str
Kefu Chai [Mon, 6 Apr 2020 16:51:12 +0000 (00:51 +0800)]
qa/tasks/radosgw_admin.py: coerce key.name and key.acl to str

if `key.name` is not set, boto fills it with md5, in that case, it comes
from `base64.b64encode()`. so we need to make sure it's str before
passing it to shell.

the same applies to `key.get_xml_acl()`, as its return value comes
directly from something like
```
        response = self.connection.make_request('GET', self.name, key_name,
                                                query_args=query_args,
                                                headers=headers)
        body = response.read()
        # ...
        return body
```

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

5 years agoqa,test: decode return val of base64.b64encode()
Kefu Chai [Mon, 6 Apr 2020 10:55:53 +0000 (18:55 +0800)]
qa,test: decode return val of base64.b64encode()

base64.b64encode() returns bytes in Python3, and we will pass it as a
commandline parameter later on, which will be quoted. so the command
line can be consumed by shell. so before sending it to shell, we should
convert it to string.

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

5 years agoqa/tasks/radosgw_admin.py: do not use dict.has_keys()
Kefu Chai [Mon, 6 Apr 2020 08:55:05 +0000 (16:55 +0800)]
qa/tasks/radosgw_admin.py: do not use dict.has_keys()

in python3, `dict.has_key()` was removed. let's use __contains__
instead.

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

5 years agoqa/tasks/tempest.py: always write str is value of options
Kefu Chai [Mon, 6 Apr 2020 08:37:55 +0000 (16:37 +0800)]
qa/tasks/tempest.py: always write str is value of options

in Python2, ConfigParser is almost the same as RawConfigParser, which
allows set non-string values, but in Python3, ConfigParser.set() only
accepts strings as value of option.

since we do not use "cpar" as an internal storage for options, it does
not matter what type of options we set using ConfigParser as long as it
can be consumed by tempest. boolean settings are translated to "true" or
"false". see also
https://docs.openstack.org/tempest/latest/sampleconf.html

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

5 years agoqa/tasks/tempest.py: use configparser from six.moves
Kefu Chai [Mon, 6 Apr 2020 07:18:51 +0000 (15:18 +0800)]
qa/tasks/tempest.py: use configparser from six.moves

as ConfigParser is offerd by `configparser` module in Python3, so use
six.moves before the migration.

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